/* Ravnsborg — delt designsystem for app og hæfter. */
:root{
  --blaek:#1B1F3B; --blaek-lys:#4A5070; --papir:#E9ECF1; --ark:#FFFFFF;
  --messing:#A0702B; --messing-lys:#F3E9D8;
  --irgroen:#2C6357; --irgroen-lys:#E2EDE9;
  --rubin:#8A2B36;
  --streg:#B9BFCC; --streg-lys:#DDE1E8;
  --display:"Fraunces","Iowan Old Style",Georgia,serif;
  --brod:"Literata","Charter",Georgia,serif;
  --mono:"IBM Plex Mono","SFMono-Regular",Consolas,monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--papir);color:var(--blaek);font-family:var(--brod);font-size:16px;line-height:1.55}
[data-sprog="da"] .en{display:none !important}
[data-sprog="en"] .da{display:none !important}

.top{background:var(--blaek);color:#fff;padding:1.4rem 2rem 0;position:relative}
.top .stempel{font-family:var(--mono);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:#A9C6BD;margin:0 0 .4rem}
.top h1{font-family:var(--display);font-weight:800;font-size:clamp(1.35rem,3.6vw,2rem);margin:0;letter-spacing:-.02em;line-height:1.05}
.top .handlinger{position:absolute;right:2rem;top:1.4rem;display:flex;gap:.45rem;flex-wrap:wrap}
.knap{font-family:var(--mono);font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  border:1.5px solid rgba(255,255,255,.35);background:transparent;color:#fff;border-radius:2px;padding:.5rem .85rem;cursor:pointer}
.knap:hover{background:rgba(255,255,255,.12);border-color:#fff}
.knap.primaer{background:var(--irgroen);border-color:var(--irgroen)}
.knap.fare{border-color:#D98A94;color:#F3D2D6}
.knap:focus-visible{outline:3px solid var(--messing);outline-offset:2px}
.faner{display:flex;gap:.3rem;margin-top:1.1rem}
.fane{font-family:var(--mono);font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  background:transparent;border:none;border-bottom:4px solid transparent;color:#9AA4C0;padding:.7rem 1.1rem;cursor:pointer}
.fane:hover{color:#fff}
.fane.aktiv{color:#fff;border-bottom-color:var(--irgroen)}
.fane:focus-visible{outline:2px solid var(--messing);outline-offset:-2px}

.gitter{max-width:1400px;margin:0 auto;padding:1.5rem 2rem 7rem;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:2rem;align-items:start}
@media (max-width:1050px){.gitter{grid-template-columns:1fr;padding:1.2rem 1rem 7rem}}
.enkelt{max-width:1000px;margin:0 auto;padding:1.5rem 2rem 7rem}
@media (max-width:1050px){.enkelt{padding:1.2rem 1rem 7rem}}

.trin{background:var(--ark);border:1px solid var(--streg-lys);border-left:4px solid var(--irgroen);padding:1.3rem 1.5rem;margin-bottom:1.1rem}
.trin > h2{font-family:var(--display);font-weight:600;font-size:1.2rem;margin:0 0 .2rem}
.trin > .nr{font-family:var(--mono);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--irgroen);font-weight:600;display:block;margin-bottom:.35rem}
.trin > .under{font-size:.85rem;color:var(--blaek-lys);margin:0 0 1rem}
.trin.mangler{border-left-color:var(--messing);background:#FFFDF8}

label.felt{display:block;margin-bottom:.9rem}
label.felt > span{font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--blaek-lys);display:block;margin-bottom:.3rem}
input[type=text],select,textarea{font-family:var(--brod);font-size:.95rem;color:var(--blaek);width:100%;border:1px solid var(--streg);border-radius:2px;background:#fff;padding:.5rem .6rem}
input[type=text]:focus,select:focus,textarea:focus{outline:2px solid var(--irgroen);outline-offset:-1px;border-color:var(--irgroen)}
textarea{resize:vertical;min-height:4rem;line-height:1.5}
.rk2{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}
.rk3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 1rem}
@media (max-width:600px){.rk2,.rk3{grid-template-columns:1fr}}

.valg{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.7rem}
.kort{border:1.5px solid var(--streg);background:#fff;border-radius:2px;padding:.75rem .85rem;line-height:1.4;position:relative}
.kort.klik{cursor:pointer;text-align:left;font-family:var(--brod);color:var(--blaek);width:100%}
.kort.klik:hover{border-color:var(--irgroen)}
.kort.valgt{border-color:var(--irgroen);border-width:2px;background:var(--irgroen-lys)}
.kort b{display:block;font-family:var(--display);font-size:1rem;font-weight:600;margin-bottom:.15rem;padding-right:1.6rem}
.kort .lille{font-size:.76rem;color:var(--blaek-lys);display:block}
.kort .taeller{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--irgroen);font-weight:600;display:block}
.kort:focus-visible{outline:3px solid var(--irgroen);outline-offset:2px}

.info{position:absolute;top:.5rem;right:.5rem;width:1.35rem;height:1.35rem;border-radius:50%;
  border:1.5px solid var(--messing);background:#fff;color:var(--messing);
  font-family:var(--mono);font-size:.72rem;font-weight:600;line-height:1;cursor:pointer;padding:0;z-index:2}
.info:hover{background:var(--messing);color:#fff}
.info:focus-visible{outline:3px solid var(--messing);outline-offset:2px}
.detalje{grid-column:1/-1;background:var(--blaek);color:#D6DAE8;padding:1rem 1.2rem;border-left:4px solid var(--messing);font-size:.86rem;line-height:1.55}
.detalje h4{font-family:var(--display);color:#fff;font-size:1.05rem;margin:0 0 .1rem;font-weight:600}
.detalje .meta{font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;color:#E8C79A;margin:.35rem 0 .7rem;display:flex;flex-wrap:wrap;gap:.2rem 1.1rem}
.detalje p{margin:0 0 .5rem}
.detalje p:last-child{margin:0}
.detalje .luk{float:right;background:none;border:none;color:#9AA4C0;font-family:var(--mono);font-size:.8rem;cursor:pointer}

.nivfaner{display:flex;gap:.4rem;margin-bottom:.9rem;flex-wrap:wrap}
.nivfane{font-family:var(--mono);font-size:.66rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  border:1.5px solid var(--streg);background:#fff;border-radius:2px;padding:.45rem .8rem;cursor:pointer}
.nivfane.aktiv{border-color:var(--irgroen);background:var(--irgroen-lys);color:var(--irgroen)}
.nivfane:disabled{opacity:.4;cursor:not-allowed}

table.evner{width:100%;border-collapse:collapse;font-size:.9rem}
table.evner th{text-align:left;font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--blaek-lys);border-bottom:1.5px solid var(--blaek);padding:.35rem .4rem}
table.evner td{padding:.3rem .4rem;border-bottom:1px solid var(--streg-lys);vertical-align:middle}
table.evner .mod{font-family:var(--mono);font-weight:600;text-align:center;font-size:1rem}
.forslag{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.9rem}
.forslag button{font-family:var(--mono);font-size:.68rem;border:1px solid var(--streg);background:#fff;border-radius:2px;padding:.4rem .7rem;cursor:pointer}
.forslag button:hover{border-color:var(--irgroen);background:var(--irgroen-lys)}

.raekke{display:grid;gap:.5rem;align-items:center;margin-bottom:.5rem}
.raekke.time{grid-template-columns:60px 1fr 1fr 34px}
@media (max-width:700px){.raekke.time{grid-template-columns:1fr}}
.slet{border:1px solid var(--streg);background:#fff;color:var(--rubin);border-radius:2px;cursor:pointer;font-family:var(--mono);font-size:.85rem;padding:.45rem 0;line-height:1}
.slet:hover{background:#FBEDEE;border-color:var(--rubin)}
.tilfoej{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;border:1px dashed var(--irgroen);background:var(--irgroen-lys);color:var(--irgroen);border-radius:2px;padding:.5rem .9rem;cursor:pointer;font-weight:600}
.tom{font-size:.85rem;color:var(--blaek-lys);font-style:italic;margin:0 0 .7rem}

.panel{position:sticky;top:1.5rem;background:var(--blaek);color:#fff;padding:1.3rem 1.4rem 1.5rem}
@media (max-width:1050px){.panel{position:static}}
.panel h3{font-family:var(--mono);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:#A9C6BD;margin:0 0 .8rem;font-weight:600}
.panel .navn{font-family:var(--display);font-size:1.35rem;font-weight:800;line-height:1.15;margin:0 0 .2rem}
.panel .sub{font-size:.82rem;color:#B9C2D6;margin:0 0 1.1rem}
.talgitter{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin-bottom:1.1rem}
.talkasse{border:1px solid #3A4066;padding:.5rem .3rem;text-align:center}
.talkasse .v{font-family:var(--mono);font-size:1.15rem;font-weight:600;display:block;line-height:1.2}
.talkasse .n{font-family:var(--mono);font-size:.54rem;letter-spacing:.08em;text-transform:uppercase;color:#8E97B5;display:block;margin-top:.25rem}
.talkasse.frem{border-color:var(--messing);background:rgba(160,112,43,.18)}
.evnestrimmel{display:grid;grid-template-columns:repeat(6,1fr);gap:.35rem;margin-bottom:1.1rem}
.evnestrimmel div{text-align:center;border-top:1px solid #3A4066;padding-top:.35rem}
.evnestrimmel .k{font-family:var(--mono);font-size:.54rem;color:#8E97B5;display:block}
.evnestrimmel .m{font-family:var(--mono);font-size:.95rem;font-weight:600;display:block}
.panel ul{margin:0 0 1rem;padding-left:1rem;font-size:.82rem;color:#D6DAE8}
.mangelliste{border-top:1px solid #3A4066;padding-top:.9rem;font-size:.8rem}
.mangelliste b{font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:#E8C79A;display:block;margin-bottom:.4rem}
.mangelliste ul{color:#E8C79A;margin-bottom:0}
.faerdig{color:#9FD4C2}
.status{font-family:var(--mono);font-size:.62rem;color:#8E97B5;border-top:1px solid #3A4066;margin-top:1rem;padding-top:.8rem;line-height:1.6}

.spilhoved{background:var(--blaek);color:#fff;padding:1.2rem 1.4rem;display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center;margin-bottom:1.2rem}
@media (max-width:700px){.spilhoved{grid-template-columns:1fr}}
.spilhoved .navn{font-family:var(--display);font-size:1.5rem;font-weight:800;margin:0;line-height:1.1}
.spilhoved .sub{font-size:.82rem;color:#B9C2D6;margin:.2rem 0 0}
.lptaeller{display:flex;align-items:center;gap:.5rem}
.lptaeller button{width:2.2rem;height:2.2rem;border:1.5px solid rgba(255,255,255,.4);background:transparent;color:#fff;font-family:var(--mono);font-size:1rem;cursor:pointer;border-radius:2px}
.lptaeller button:hover{background:rgba(255,255,255,.15)}
.lptaeller .tal{font-family:var(--mono);font-size:1.5rem;font-weight:600;min-width:5.5rem;text-align:center}
.lptaeller .tal small{font-size:.8rem;color:#8E97B5}

.spilkort{background:var(--ark);border:1px solid var(--streg-lys);padding:1.1rem 1.3rem;margin-bottom:1.1rem}
.spilkort > h3{font-family:var(--mono);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--irgroen);font-weight:600;margin:0 0 .8rem;border-bottom:1px solid var(--streg-lys);padding-bottom:.5rem}
.slaaliste{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.4rem}
.slaaknap{display:flex;justify-content:space-between;align-items:center;gap:.6rem;
  border:1px solid var(--streg);background:#fff;border-radius:2px;padding:.5rem .7rem;cursor:pointer;
  font-family:var(--brod);font-size:.88rem;color:var(--blaek);text-align:left;width:100%}
.slaaknap:hover{border-color:var(--irgroen);background:var(--irgroen-lys)}
.slaaknap:focus-visible{outline:3px solid var(--irgroen);outline-offset:2px}
.slaaknap .b{font-family:var(--mono);font-weight:600;font-size:.95rem;color:var(--irgroen)}
.slaaknap.traent{border-left:3px solid var(--irgroen)}
.pips{display:flex;gap:.45rem;flex-wrap:wrap;align-items:center}
.pip{width:1.8rem;height:1.8rem;border:2px solid var(--irgroen);background:#fff;border-radius:2px;cursor:pointer;padding:0}
.pip.brugt{background:var(--irgroen)}
.pip:focus-visible{outline:3px solid var(--messing);outline-offset:2px}
.fordelvalg{display:flex;gap:.35rem;margin-bottom:.9rem;flex-wrap:wrap}
.fordelvalg button{font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;border:1.5px solid var(--streg);background:#fff;border-radius:2px;padding:.4rem .8rem;cursor:pointer}
.fordelvalg button.aktiv{border-color:var(--blaek);background:var(--blaek);color:#fff}

.terningknap{position:fixed;left:1.25rem;bottom:1.25rem;z-index:60;width:3.6rem;height:3.6rem;border-radius:50%;
  border:none;background:var(--blaek);color:#fff;font-size:1.5rem;cursor:pointer;box-shadow:0 6px 20px rgba(27,31,59,.35)}
.terningknap:hover{background:var(--irgroen)}
.terningknap:focus-visible{outline:3px solid var(--messing);outline-offset:3px}
.bakke{position:fixed;left:1.25rem;bottom:9.8rem;z-index:59;width:310px;max-width:calc(100vw - 2.5rem);
  background:var(--blaek);color:#fff;padding:1rem 1.1rem 1.1rem;box-shadow:0 10px 34px rgba(27,31,59,.4);display:none}
.bakke.aabe{display:block}
.bakke h4{font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:#A9C6BD;margin:0 0 .7rem;font-weight:600}
.terninger{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem;margin-bottom:.8rem}
.terninger button{font-family:var(--mono);font-size:.74rem;font-weight:600;border:1.5px solid rgba(255,255,255,.3);background:transparent;color:#fff;border-radius:2px;padding:.5rem 0;cursor:pointer}
.terninger button:hover{background:rgba(255,255,255,.15);border-color:#fff}
.bakke .fordelvalg button{border-color:rgba(255,255,255,.3);background:transparent;color:#fff}
.bakke .fordelvalg button.aktiv{background:#fff;color:var(--blaek);border-color:#fff}
.log{max-height:210px;overflow-y:auto;border-top:1px solid #3A4066;padding-top:.7rem}
.log .post{border-bottom:1px solid #2A3055;padding:.45rem 0;font-size:.8rem;overflow:hidden}
.log .post:last-child{border-bottom:none}
.log .post .n{color:#D6DAE8}
.log .post .res{font-family:var(--mono);font-size:1.15rem;font-weight:600;color:#fff;float:right}
.log .post .del{font-family:var(--mono);font-size:.66rem;color:#8E97B5;display:block;margin-top:.1rem}
.log .post.ny .res{color:#9FD4C2}
.log .tomlog{font-size:.78rem;color:#8E97B5;font-style:italic;margin:0}
.bakke .ryd{background:none;border:none;color:#8E97B5;font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;padding:0;margin-top:.6rem}
.bakke .ryd:hover{color:#fff}

/* --- kortholder: gør at !-knappen sidder på selve kortet --- */
.kortholder{position:relative;display:flex}
.kortholder > .kort{width:100%}

/* --- terningeanimation --- */
#terningelag{position:fixed;inset:0;z-index:80;pointer-events:none;display:flex;
  align-items:center;justify-content:center;flex-direction:column;gap:1rem}
#terningelag.ud{opacity:0;transition:opacity .45s ease}
.kastning{display:flex;gap:1rem;align-items:center;justify-content:center;flex-wrap:wrap}
.terning{width:5.2rem;height:5.2rem;border-radius:10px;display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:2rem;font-weight:600;
  background:var(--blaek);color:#fff;border:3px solid var(--messing);
  box-shadow:0 14px 40px rgba(27,31,59,.45);animation:rul .75s cubic-bezier(.2,.9,.25,1.05) both}
.terning.kasseret{opacity:.32;transform:scale(.78);border-color:var(--streg);box-shadow:none}
.terning.krit{border-color:#5FBF9B;color:#9FD4C2}
.terning.fejl{border-color:#D98A94;color:#F3D2D6}
.terning small{position:absolute;margin-top:4.4rem;font-size:.6rem;letter-spacing:.14em;color:#8E97B5}
.kastetotal{background:var(--blaek);color:#fff;padding:.7rem 1.6rem;border-radius:3px;
  font-family:var(--mono);font-size:1.05rem;letter-spacing:.05em;box-shadow:0 10px 30px rgba(27,31,59,.4);
  animation:pop .4s .5s both}
.kastetotal b{font-size:1.7rem;color:#9FD4C2;margin-left:.6rem}
@keyframes rul{
  0%{transform:translate(34vw,40vh) rotate(-40deg) scale(.35);opacity:0}
  20%{opacity:1}
  70%{transform:translate(0,0) rotate(710deg) scale(1.06)}
  100%{transform:translate(0,0) rotate(720deg) scale(1);opacity:1}
}
@keyframes pop{0%{transform:translateY(14px) scale(.9);opacity:0}100%{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){
  .terning{animation:none}
  .kastetotal{animation:none}
}

/* --- vælger: normal / fordel / ulempe --- */
.vaelger{position:fixed;inset:0;z-index:90;background:rgba(27,31,59,.55);display:none;
  align-items:center;justify-content:center;padding:1.5rem}
.vaelger.aabe{display:flex}
.vaelgerboks{background:var(--ark);max-width:420px;width:100%;padding:1.6rem 1.7rem 1.4rem;
  box-shadow:0 20px 60px rgba(27,31,59,.5);border-top:5px solid var(--irgroen);
  max-height:calc(100vh - 3rem);overflow-y:auto;-webkit-overflow-scrolling:touch}
#tavleboks,#folkboks,#taskeboks{max-width:520px}
.vaelgerboks .hvad{font-family:var(--display);font-size:1.35rem;font-weight:600;margin:0 0 .2rem;line-height:1.15}
.vaelgerboks .bonus{font-family:var(--mono);font-size:.78rem;color:var(--blaek-lys);margin:0 0 1.2rem}
.valgknapper{display:grid;gap:.5rem}
.valgknapper button{font-family:var(--brod);font-size:1rem;text-align:left;
  border:1.5px solid var(--streg);background:#fff;border-radius:2px;padding:.75rem .9rem;cursor:pointer;color:var(--blaek)}
.valgknapper button:hover{border-color:var(--irgroen);background:var(--irgroen-lys)}
.valgknapper button:focus-visible{outline:3px solid var(--irgroen);outline-offset:2px}
.valgknapper button b{display:block;font-family:var(--display);font-weight:600}
.valgknapper button span{font-size:.8rem;color:var(--blaek-lys)}
.vaelgerboks .afbryd{margin-top:.9rem;background:none;border:none;color:var(--blaek-lys);
  font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;padding:0}
.vaelgerboks .afbryd:hover{color:var(--rubin)}

#udskrift{display:none}
@media print{
  body{background:#fff}
  .top,.gitter,.enkelt,.terningknap,.bakke,#terningelag,.vaelger{display:none !important}
  #udskrift{display:block}
}
.a4{width:210mm;height:297mm;background:#fff;padding:11mm 12mm;display:flex;flex-direction:column;font-size:16px}
.a4 + .a4{break-before:page;page-break-before:always}
.sidehoved{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:.9mm solid var(--blaek);padding-bottom:2mm;margin-bottom:4mm}
.sidehoved h2{font-family:var(--display);font-weight:800;font-size:19pt;line-height:1;margin:0}
.sidehoved .kilde{font-family:var(--mono);font-size:6pt;letter-spacing:.16em;text-transform:uppercase;color:var(--irgroen);font-weight:600;text-align:right;line-height:1.6}
.pblok{margin-bottom:4mm}
.pblok > .ptitel{font-family:var(--mono);font-size:6pt;letter-spacing:.16em;text-transform:uppercase;color:var(--irgroen);font-weight:600;border-bottom:.25mm solid var(--streg);padding-bottom:1mm;margin-bottom:2.4mm}
.pmrk{font-family:var(--mono);font-size:5.6pt;letter-spacing:.12em;text-transform:uppercase;color:var(--blaek-lys);display:block;margin-bottom:.5mm}
.pvaerdi{font-family:var(--mono);font-size:9pt;border-bottom:.25mm solid var(--streg);min-height:5mm;padding:.5mm 1mm;display:block}
.pkasse{border:.3mm solid var(--blaek);height:9mm;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:11pt;font-weight:600}
.pkasse.tyk{border-width:.7mm}
.pkasse.messing{background:var(--messing-lys);border-width:.7mm}
.pkasse.groen{background:var(--irgroen-lys);border-width:.7mm}
.pfelt{text-align:center}
.pfelt .pmrk{margin:1mm 0 0;font-size:5.4pt}
.p6{display:grid;grid-template-columns:repeat(6,1fr);gap:3mm}
.p4{display:grid;grid-template-columns:repeat(4,1fr);gap:4mm}
.p3{display:grid;grid-template-columns:repeat(3,1fr);gap:5mm}
.p2{display:grid;grid-template-columns:1fr 1fr;gap:0 6mm}
.pevne .navn{font-family:var(--mono);font-size:7pt;letter-spacing:.1em;font-weight:600;display:block;margin-bottom:1mm;text-align:center}
.pevne .under{font-size:5.4pt;color:var(--blaek-lys);display:block;margin-top:1mm;text-align:center}
.plinje{display:grid;grid-template-columns:3.4mm 8mm 1fr 10mm;align-items:center;gap:0 1.6mm;font-size:7.5pt}
.plinje.rk{grid-template-columns:3.4mm 1fr 10mm}
.plinje .kode{font-family:var(--mono);font-size:5.4pt;color:var(--blaek-lys)}
.plinje .tal{font-family:var(--mono);font-size:8pt;font-weight:600;text-align:right}
.pboks{width:3.2mm;height:3.2mm;border:.3mm solid var(--blaek-lys);display:inline-block}
.pboks.fyldt{background:var(--blaek);border-color:var(--blaek)}
.pfaerd{display:grid;grid-template-columns:1fr 1fr;gap:1.6mm 6mm}
.prk{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.6mm 6mm}
.phint{font-family:var(--mono);font-size:5.6pt;line-height:1.5;color:var(--blaek-lys)}
table.ptabel{width:100%;border-collapse:collapse;font-size:7.2pt}
table.ptabel th{text-align:left;font-family:var(--mono);font-size:5.4pt;letter-spacing:.12em;text-transform:uppercase;color:var(--blaek-lys);border-bottom:.3mm solid var(--blaek);padding:1mm}
table.ptabel td{padding:1.1mm 1mm;border-bottom:.2mm solid var(--streg-lys);vertical-align:top}
table.ptabel td.c{text-align:center}
table.ptabel .sp{font-family:var(--mono);font-size:5.8pt;color:var(--blaek-lys);display:block;line-height:1.4}
.pnoter{border:.25mm solid var(--streg);flex:1;min-height:22mm;background:repeating-linear-gradient(#fff 0 6mm,var(--streg-lys) 6mm 6.1mm)}
.pfod{margin-top:auto;padding-top:2.5mm;border-top:.25mm solid var(--streg);font-family:var(--mono);font-size:5.4pt;letter-spacing:.08em;color:var(--blaek-lys);display:flex;justify-content:space-between;gap:4mm}
@page{size:A4 portrait;margin:0}
@media print{*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ================= APP: login, kampagner, spilleder ================= */
.appramme{max-width:1100px;margin:0 auto;padding:2rem 2rem 7rem}
@media (max-width:700px){.appramme{padding:1.2rem 1rem 7rem}}
.midterkort{max-width:460px;margin:3rem auto;background:var(--ark);border:1px solid var(--streg-lys);
  border-top:5px solid var(--irgroen);padding:2rem 2rem 1.7rem}
.midterkort h2{font-family:var(--display);font-weight:800;font-size:1.7rem;margin:0 0 .3rem;letter-spacing:-.02em}
.midterkort .under{color:var(--blaek-lys);font-size:.9rem;margin:0 0 1.5rem}
.midterkort .skift{margin-top:1.1rem;font-size:.85rem;color:var(--blaek-lys);text-align:center}
.midterkort .skift button{background:none;border:none;color:var(--irgroen);font:inherit;text-decoration:underline;cursor:pointer;padding:0}
input[type=email],input[type=password]{font-family:var(--brod);font-size:.95rem;color:var(--blaek);width:100%;
  border:1px solid var(--streg);border-radius:2px;background:#fff;padding:.6rem .7rem}
input[type=email]:focus,input[type=password]:focus{outline:2px solid var(--irgroen);outline-offset:-1px;border-color:var(--irgroen)}
.hovedknap{width:100%;font-family:var(--mono);font-size:.74rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  background:var(--irgroen);color:#fff;border:none;border-radius:2px;padding:.85rem 1rem;cursor:pointer;margin-top:.4rem}
.hovedknap:hover{background:#37796B}
.hovedknap:disabled{opacity:.5;cursor:wait}
.hovedknap.sekundaer{background:transparent;color:var(--blaek);border:1.5px solid var(--blaek)}
.hovedknap.sekundaer:hover{background:var(--blaek);color:#fff}
.fejlboks{background:#FBEDEE;border-left:4px solid var(--rubin);color:var(--rubin);padding:.7rem .9rem;font-size:.85rem;margin:0 0 1rem}
.okboks{background:var(--irgroen-lys);border-left:4px solid var(--irgroen);color:var(--irgroen);padding:.7rem .9rem;font-size:.85rem;margin:0 0 1rem}

.rollevalg{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.6rem}
@media (max-width:600px){.rollevalg{grid-template-columns:1fr}}
.rollekort{border:1.5px solid var(--streg);background:#fff;padding:1.1rem 1.2rem;cursor:pointer;text-align:left;
  font-family:var(--brod);color:var(--blaek);border-radius:2px}
.rollekort:hover{border-color:var(--irgroen)}
.rollekort.valgt{border-color:var(--irgroen);border-width:2px;background:var(--irgroen-lys)}
.rollekort b{display:block;font-family:var(--display);font-size:1.1rem;font-weight:600;margin-bottom:.2rem}
.rollekort span{font-size:.82rem;color:var(--blaek-lys)}

.kampagneliste{display:grid;gap:.7rem;margin-bottom:1.6rem}
.kampagnerk{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center;
  border:1.5px solid var(--streg);background:#fff;padding:1rem 1.2rem;cursor:pointer;text-align:left;
  font-family:var(--brod);color:var(--blaek);width:100%;border-radius:2px}
.kampagnerk:hover{border-color:var(--irgroen);background:var(--irgroen-lys)}
.kampagnerk b{font-family:var(--display);font-size:1.15rem;font-weight:600;display:block}
.kampagnerk .rolle{font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--irgroen);font-weight:600}
.kampagnerk .kode{font-family:var(--mono);font-size:.8rem;color:var(--blaek-lys)}

.kodefelt{background:var(--blaek);color:#fff;padding:1.2rem 1.4rem;display:flex;justify-content:space-between;
  align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.4rem}
.kodefelt .mrkat{font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:#A9C6BD;display:block;margin-bottom:.2rem}
.kodefelt .kode{font-family:var(--mono);font-size:2rem;font-weight:600;letter-spacing:.34em}
.kodefelt button{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;
  border:1.5px solid rgba(255,255,255,.4);background:transparent;color:#fff;border-radius:2px;padding:.6rem 1rem;cursor:pointer}
.kodefelt button:hover{background:rgba(255,255,255,.15)}

.spillerliste{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.7rem}
.spillerrk{border:1.5px solid var(--streg);background:#fff;padding:.9rem 1rem;cursor:pointer;text-align:left;
  font-family:var(--brod);color:var(--blaek);border-radius:2px;width:100%}
.spillerrk:hover{border-color:var(--irgroen)}
.spillerrk.valgt{border-color:var(--irgroen);border-width:2px;background:var(--irgroen-lys)}
.spillerrk b{font-family:var(--display);font-size:1.05rem;font-weight:600;display:block}
.spillerrk .detalje2{font-size:.78rem;color:var(--blaek-lys);display:block;margin-top:.15rem}
.spillerrk .antal{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--irgroen);font-weight:600;display:block;margin-top:.35rem}

.dmpanel{background:var(--ark);border:1px solid var(--streg-lys);border-left:4px solid var(--messing);padding:1.3rem 1.5rem;margin-top:1.2rem}
.dmpanel h3{font-family:var(--display);font-size:1.25rem;margin:0 0 .2rem;font-weight:600}
.dmpanel .under{color:var(--blaek-lys);font-size:.85rem;margin:0 0 1.1rem}
.dmvaelg{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:.6rem}
.dmspell{border:1.5px solid var(--streg);background:#fff;padding:.6rem .75rem;cursor:pointer;text-align:left;
  font-family:var(--brod);color:var(--blaek);border-radius:2px;position:relative;width:100%}
.dmspell:hover{border-color:var(--messing)}
.dmspell.aaben{border-color:var(--irgroen);border-width:2px;background:var(--irgroen-lys)}
.dmspell b{display:block;font-family:var(--display);font-size:.95rem;font-weight:600}
.dmspell span{font-size:.72rem;color:var(--blaek-lys)}
.dmspell .flag{font-family:var(--mono);font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;color:var(--irgroen);font-weight:600;display:block;margin-top:.25rem}

.appbjaelke{background:var(--blaek);color:#fff;padding:1rem 2rem;display:flex;justify-content:space-between;
  align-items:center;gap:1rem;flex-wrap:wrap}
@media (max-width:700px){.appbjaelke{padding:.9rem 1rem}}
.appbjaelke .hvor{font-family:var(--display);font-size:1.1rem;font-weight:600;margin:0;line-height:1.2}
.appbjaelke .hvor small{display:block;font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:#A9C6BD;font-weight:400;margin-top:.2rem}
.appbjaelke .knapper{display:flex;gap:.4rem;flex-wrap:wrap}
.tomtekst{color:var(--blaek-lys);font-style:italic;font-size:.9rem}
.afsnit{font-family:var(--mono);font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--irgroen);
  font-weight:600;border-bottom:1px solid var(--streg);padding-bottom:.5rem;margin:2rem 0 1rem}
.afsnit:first-child{margin-top:0}
@media print{.appbjaelke,.midterkort,.dmpanel,.kodefelt{display:none !important}}
@media print{ #app{display:none !important} #udskrift{display:block !important} }


/* ================= BESVÆRGELSESBOG: knap og skuffe ================= */
.bogknap{position:fixed;left:1.25rem;bottom:5.4rem;z-index:60;width:3.6rem;height:3.6rem;border-radius:50%;
  border:none;background:var(--irgroen);color:#fff;cursor:pointer;box-shadow:0 6px 20px rgba(27,31,59,.35);
  display:flex;align-items:center;justify-content:center}
.bogknap svg{width:1.6rem;height:1.6rem;fill:none;stroke:currentColor;stroke-width:1.8}
.bogknap:hover{background:#37796B}
.bogknap:focus-visible{outline:3px solid var(--messing);outline-offset:3px}
.bogknap .prik{position:absolute;top:-2px;right:-2px;min-width:1.35rem;height:1.35rem;border-radius:1rem;
  background:var(--messing);color:#fff;font-family:var(--mono);font-size:.62rem;font-weight:600;
  display:flex;align-items:center;justify-content:center;padding:0 .3rem;border:2px solid var(--papir)}

.bogskygge{position:fixed;inset:0;z-index:70;background:rgba(27,31,59,.45);display:none}
.bogskygge.aabe{display:block}
.bogskuffe{position:fixed;top:0;right:0;bottom:0;z-index:71;width:470px;max-width:100vw;background:var(--papir);
  box-shadow:-14px 0 44px rgba(27,31,59,.35);transform:translateX(102%);transition:transform .28s ease;
  display:flex;flex-direction:column}
.bogskuffe.aabe{transform:none}
@media (prefers-reduced-motion:reduce){.bogskuffe{transition:none}}
.bogtop{background:var(--blaek);color:#fff;padding:1.2rem 1.4rem;display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.bogtop h2{font-family:var(--display);font-size:1.35rem;font-weight:800;margin:0;line-height:1.15}
.bogtop p{font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:#A9C6BD;margin:.3rem 0 0}
.bogtop button{background:none;border:none;color:#9AA4C0;font-family:var(--mono);font-size:1.1rem;cursor:pointer;padding:0;line-height:1}
.bogtop button:hover{color:#fff}
.bogindhold{overflow-y:auto;padding:1.2rem 1.4rem 3rem;flex:1}
.bogafsnit{font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--irgroen);
  font-weight:600;border-bottom:1px solid var(--streg);padding-bottom:.5rem;margin:1.6rem 0 .9rem;display:flex;justify-content:space-between;gap:1rem}
.bogafsnit:first-child{margin-top:0}
.bogafsnit em{font-style:normal;color:var(--blaek-lys)}
.bogindhold .valg{grid-template-columns:1fr}
.bogtom{font-size:.86rem;color:var(--blaek-lys);font-style:italic;margin:0}
@media print{.bogknap,.bogskuffe,.bogskygge{display:none !important}}

/* ---- kampknapper på besværgelseskort ---- */
.kampknapper{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.6rem}
.kampknap{font-family:var(--mono);font-size:.68rem;font-weight:600;letter-spacing:.04em;
  border-radius:100px;padding:.32rem .7rem;line-height:1.4;white-space:nowrap}
button.kampknap.slaa{border:1.5px solid var(--blaek);background:var(--blaek);color:#fff;cursor:pointer}
button.kampknap.slaa:hover{background:var(--messing);border-color:var(--messing)}
button.kampknap.slaa:focus-visible{outline:3px solid var(--messing);outline-offset:2px}
button.kampknap.slaa.helb{background:var(--irgroen);border-color:var(--irgroen)}
button.kampknap.slaa.helb:hover{background:#37796B}
.kampknap.fast{border:1.5px solid var(--streg);background:transparent;color:var(--blaek-lys)}

/* ---- udråbstegn på slå-knapper ---- */
.slaaholder{position:relative;display:flex}
.slaaholder > .slaaknap{width:100%;padding-right:2.1rem}
.info.mini{top:50%;right:.45rem;transform:translateY(-50%);width:1.2rem;height:1.2rem;font-size:.62rem;border-width:1px}

/* ---- niveaustigning ---- */
.nivsum{display:grid;gap:.5rem}
.nivrk{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;
  border-bottom:1px solid var(--streg-lys);padding-bottom:.45rem;font-size:.9rem}
.nivrk:last-child{border-bottom:none}
.nivrk span{color:var(--blaek-lys)}
.nivrk b{font-family:var(--mono);font-size:1rem}
.nivrk.fremhaev b{color:var(--irgroen)}

/* ---- kampagnerækker med forlad/slet ---- */
.kampagneholder{display:grid;grid-template-columns:1fr auto;gap:.5rem;align-items:stretch}
.kampagneholder > .kampagnerk{height:100%}
.kampagneholder > .slet{padding:0 1rem;font-size:1rem}

/* ---- ny udgave ---- */
.nyversion{background:var(--messing);color:#fff;padding:.7rem 2rem;display:flex;justify-content:space-between;
  align-items:center;gap:1rem;flex-wrap:wrap;font-size:.88rem}
@media (max-width:700px){.nyversion{padding:.7rem 1rem}}
.nyversion button{font-family:var(--mono);font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  border:1.5px solid rgba(255,255,255,.6);background:transparent;color:#fff;border-radius:2px;padding:.45rem .9rem;cursor:pointer}
.nyversion button:hover{background:rgba(255,255,255,.2);border-color:#fff}
.udgave{font-family:var(--mono);font-size:.58rem;letter-spacing:.12em;color:var(--blaek-lys);text-align:right;padding:1.5rem 2rem 2rem}
@media print{.nyversion,.udgave{display:none !important}}

/* ---- værktøjer kun i spilletilstand ---- */
body:not([data-vaerktoej="1"]) .bogknap,
body:not([data-vaerktoej="1"]) .terningknap,
body:not([data-vaerktoej="1"]) .bakke,
body:not([data-vaerktoej="1"]) .bogskuffe,
body:not([data-vaerktoej="1"]) .bogskygge{display:none !important}

/* ---- lydknap i terningebakken ---- */
.lydknap{font-family:var(--mono);font-size:.62rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  border:1px solid rgba(255,255,255,.3);background:transparent;color:#8E97B5;border-radius:100px;
  padding:.35rem .8rem;cursor:pointer;margin-top:.5rem}
.lydknap.til{color:#fff;border-color:rgba(255,255,255,.55)}
.lydknap:hover{background:rgba(255,255,255,.12);color:#fff}

/* ---- småtrylvælger direkte i oprettelsen ---- */
.magivalg .bogafsnit{margin-top:1.2rem}
.magivalg .bogafsnit:first-child{margin-top:0}
.magivalg .valg{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.magivalg .bogtom{font-size:.85rem;color:var(--blaek-lys);font-style:italic}

/* ---- lektionsvalg ---- */
.fagliste{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.4rem}
@media (max-width:520px){.fagliste{grid-template-columns:1fr}}
.fagkort{border:1.5px solid var(--streg);background:#fff;border-radius:2px;padding:.65rem .8rem;cursor:pointer;
  text-align:left;font-family:var(--brod);color:var(--blaek);width:100%}
.fagkort:hover{border-color:var(--irgroen);background:var(--irgroen-lys)}
.fagkort b{display:block;font-family:var(--display);font-size:.98rem;font-weight:600}
.fagkort span{font-family:var(--mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--blaek-lys)}
.fagkort.frem{border-color:var(--messing)}
.fagkort.frem span{color:var(--messing)}
.fagkort.lukket{opacity:.45;cursor:not-allowed}
.fagkort:disabled{cursor:not-allowed}
.fagkort:focus-visible{outline:3px solid var(--irgroen);outline-offset:2px}
.lekoversigt{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.6rem}
.lekrk{border:1.5px solid var(--streg);background:#fff;border-radius:2px;padding:.8rem .95rem}
.lekrk b{font-family:var(--display);font-size:1rem;font-weight:600;display:block}
.lekrk .fag{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--irgroen);font-weight:600;display:block;margin-top:.2rem}
.lekrk .oensk{font-size:.86rem;color:var(--blaek);display:block;margin-top:.35rem}
.lekrk .ingen{font-size:.82rem;color:var(--blaek-lys);font-style:italic;display:block;margin-top:.35rem}

/* ---- kør timen ---- */
.lekgoer{display:inline-block;margin-top:.6rem;font-family:var(--mono);font-size:.62rem;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;border:1.5px solid var(--blaek);background:var(--blaek);
  color:#fff;border-radius:2px;padding:.4rem .8rem;cursor:pointer}
.lekgoer:hover{background:var(--messing);border-color:var(--messing)}
.lekstatus{display:block;margin-top:.6rem;font-family:var(--mono);font-size:.62rem;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase}
.lekstatus.ok{color:var(--irgroen)}
.lekstatus.nej{color:var(--rubin)}

.lekskygge{position:fixed;inset:0;z-index:80;background:rgba(27,31,59,.5)}
.lekpanel{position:fixed;z-index:81;top:50%;left:50%;transform:translate(-50%,-50%);
  width:min(720px,94vw);max-height:92vh;background:var(--papir);border-radius:3px;
  box-shadow:0 24px 70px rgba(27,31,59,.45);display:flex;flex-direction:column}
.lektop{background:var(--blaek);color:#fff;padding:1.2rem 1.4rem;display:flex;align-items:flex-start;gap:1rem}
.lektop h2{font-family:var(--display);font-size:1.4rem;font-weight:800;margin:0;line-height:1.15}
.lektop p{font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:#A9C6BD;margin:.35rem 0 0}
.lektop .lekform{font-family:var(--mono);font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;
  color:var(--messing);border:1px solid var(--messing);border-radius:100px;padding:.2rem .6rem;white-space:nowrap;margin-left:auto}
.lektop .lekluk{background:none;border:none;color:#9AA4C0;font-size:1.1rem;cursor:pointer;padding:0;line-height:1}
.lektop .lekluk:hover{color:#fff}
.lekkrop{overflow-y:auto;padding:1.3rem 1.5rem 1.8rem;flex:1}
.lekkrop p{margin:0 0 .6rem;line-height:1.6}
.lekaab{background:#F1F3F7;border-top:2px solid var(--blaek);padding:.9rem 1.1rem;margin-bottom:1rem}
.lekaab p{font-family:var(--display);font-style:italic;font-size:1.02rem}
.lekaab p:last-child{margin-bottom:0}
.lekvil{background:var(--rubin-lys);border-left:3px solid var(--rubin);padding:.7rem .95rem;font-size:.92rem}
.lekvil b{color:var(--rubin)}
.lekmrkat{font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--blaek-lys);margin:1.2rem 0 .4rem !important}
.lekveje{margin:0 0 .8rem;padding-left:1.2rem}
.lekveje li{margin-bottom:.45rem;line-height:1.55;font-size:.94rem}
.lekskaevt{font-size:.9rem;color:var(--blaek-lys)}
.lekskaevt b{color:var(--blaek)}
.lekoej{border-left:3px solid var(--irgroen);background:var(--irgroen-lys);padding:.9rem 1.1rem}
.lekoej p{font-family:var(--display);font-size:1.02rem;line-height:1.6}
.lekoej p:last-child{margin-bottom:0}
.lekpay{border-left:3px solid var(--messing);background:var(--messing-lys);padding:.85rem 1.1rem;
  margin-top:.9rem !important;font-family:var(--display);font-style:italic;font-size:1.02rem;line-height:1.55}
.lekbund{border-top:1px solid var(--streg);padding:1rem 1.4rem;display:flex;gap:.6rem;flex-wrap:wrap;background:var(--papir)}
.lekknap{font-family:var(--mono);font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  border:1.5px solid var(--streg);background:#fff;color:var(--blaek);border-radius:2px;padding:.7rem 1.3rem;cursor:pointer}
.lekknap:hover{border-color:var(--blaek)}
.lekknap.ok{background:var(--irgroen);border-color:var(--irgroen);color:#fff}
.lekknap.ok:hover{background:#37796B;border-color:#37796B}
.lekknap.ok:disabled{opacity:.4;cursor:not-allowed}
.lekknap.nej{border-color:var(--rubin);color:var(--rubin)}
.lekknap.nej:hover{background:var(--rubin);color:#fff}
.lekknap:last-child{margin-left:auto}
@media (max-width:560px){.lekpanel{width:100vw;height:100vh;max-height:none;border-radius:0}.lekknap:last-child{margin-left:0}}
.lekrkknap{display:flex;align-items:center;gap:.4rem;margin-top:.6rem}
.lekryd{font-family:var(--mono);font-size:.7rem;border:1.5px solid var(--streg);background:#fff;color:var(--blaek-lys);
  border-radius:2px;padding:.4rem .6rem;cursor:pointer;line-height:1}
.lekryd:hover{border-color:var(--rubin);color:var(--rubin)}

/* ---- magipladser pr. niveau ---- */
.pladsgruppe{display:inline-flex;align-items:center;gap:.3rem;margin-right:1rem}
.pladsgruppe em{font-family:var(--mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--blaek-lys);font-style:normal;margin-right:.15rem}
.tilfoej em{font-family:var(--mono);font-size:.62rem;font-style:normal;opacity:.7;margin-left:.3rem}
.tilfoej:disabled{opacity:.4;cursor:not-allowed}

/* ---- kast, opskalering, ingen pladser ---- */
button.kampknap.kast em{font-family:var(--mono);font-size:.6rem;font-style:normal;opacity:.75;margin-left:.4rem}
button.kampknap.op{border:1.5px solid var(--messing);background:transparent;color:var(--messing);
  cursor:pointer;padding:.32rem .55rem;font-size:.6rem}
button.kampknap.op:hover,button.kampknap.op.aaben{background:var(--messing);color:#fff}
.kampknap.tom{border:1.5px dashed var(--rubin);background:transparent;color:var(--rubin)}
.kort.ingenplads{opacity:.55}
.kort.ingenplads b{color:var(--blaek-lys)}
.opskalering{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.5rem;
  border-top:1px dashed var(--streg);padding-top:.5rem}
.opskalering > span{font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--blaek-lys)}
.opskalering button{font-family:var(--mono);font-size:.66rem;font-weight:600;border:1.5px solid var(--messing);
  background:transparent;color:var(--messing);border-radius:100px;padding:.3rem .7rem;cursor:pointer}
.opskalering button:hover{background:var(--messing);color:#fff}
.opskalering button em{font-style:normal;opacity:.7;margin-left:.25rem}
.kampknap.opmrk{border:1.5px solid var(--messing);background:var(--messing-lys);color:var(--messing)}
.opskalering .optekst{flex-basis:100%;margin:.35rem 0 0;font-size:.82rem;line-height:1.5;color:var(--blaek-lys)}
.detalje .opinfo{border-top:1px solid rgba(255,255,255,.18);margin-top:.7rem;padding-top:.6rem;font-size:.86rem}
.detalje .opinfo b{color:var(--messing);display:block;font-family:var(--mono);font-size:.6rem;
  letter-spacing:.14em;text-transform:uppercase;margin-bottom:.25rem}

/* ---- fagbarometer ---- */
.baro{display:grid;gap:.55rem}
.barork{display:grid;grid-template-columns:9.5rem 1fr 3rem auto;align-items:center;gap:.7rem}
@media (max-width:640px){.barork{grid-template-columns:1fr auto;grid-template-areas:"navn tal" "stang stang" "grad grad";gap:.25rem}
  .barork .navn{grid-area:navn}.barork .stang{grid-area:stang}.barork .tal{grid-area:tal;text-align:right}.barork .grad{grid-area:grad}}
.barork .navn{font-family:var(--display);font-size:.95rem;font-weight:600}
.barork .stang{height:.6rem;background:var(--streg-lys);border:1px solid var(--streg);border-radius:100px;overflow:hidden;display:block}
.barork .stang i{display:block;height:100%;background:var(--irgroen);transition:width .4s ease}
.barork .tal{font-family:var(--mono);font-size:.72rem;color:var(--blaek-lys);text-align:right}
.barork .grad{font-family:var(--mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--messing);white-space:nowrap}
@media (prefers-reduced-motion:reduce){.barork .stang i{transition:none}}
.ptabel td.pruder{font-family:var(--mono);font-size:8pt;letter-spacing:.09em}

/* ---- niveaustigning: flere trin ---- */
.nivtrin{font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--irgroen);font-weight:600;border-bottom:1px solid var(--streg);padding-bottom:.4rem;margin:1.4rem 0 .6rem}
.nivhjaelp{font-size:.88rem;line-height:1.55;color:var(--blaek-lys);margin:0 0 .7rem}
.nivvalg{display:grid;grid-template-columns:1fr 1fr;gap:.45rem;margin-bottom:.4rem}
@media (max-width:520px){.nivvalg{grid-template-columns:1fr}}
.nivvalg button{border:1.5px solid var(--streg);background:#fff;border-radius:2px;padding:.55rem .7rem;
  cursor:pointer;text-align:left;font-family:var(--display);font-size:.95rem;font-weight:600;color:var(--blaek)}
.nivvalg button:hover{border-color:var(--irgroen)}
.nivvalg button.valgt{border-color:var(--irgroen);background:var(--irgroen-lys)}
.nivvalg button em{display:block;font-family:var(--mono);font-size:.66rem;font-style:normal;
  font-weight:400;color:var(--blaek-lys);margin-top:.15rem}
.nivevner{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}
@media (max-width:520px){.nivevner{grid-template-columns:1fr}}
.nivevne{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:.5rem;
  border:1.5px solid var(--streg);border-radius:2px;padding:.4rem .55rem}
.nivevne.aktiv{border-color:var(--irgroen);background:var(--irgroen-lys)}
.nivevne .n{font-family:var(--display);font-size:.9rem;font-weight:600}
.nivevne .t{font-family:var(--mono);font-size:.7rem;color:var(--blaek-lys)}
.nivevne .k{display:flex;align-items:center;gap:.3rem}
.nivevne .k button{width:1.5rem;height:1.5rem;border:1.5px solid var(--streg);background:#fff;
  border-radius:2px;cursor:pointer;font-family:var(--mono);line-height:1;color:var(--blaek)}
.nivevne .k button:hover:not(:disabled){border-color:var(--irgroen)}
.nivevne .k button:disabled{opacity:.3;cursor:not-allowed}
.nivevne .k b{font-family:var(--mono);font-size:.75rem;min-width:1.6rem;text-align:center}
.valgknapper button:disabled{opacity:.45;cursor:not-allowed}

/* ---- specialisering ---- */
.ukliste{display:grid;gap:.5rem;margin-bottom:.4rem}
.ukkort{border:1.5px solid var(--streg);border-radius:2px;overflow:hidden}
.ukkort.kan{border-color:var(--irgroen)}
.ukkort.laast{opacity:.65}
.ukhoved{width:100%;display:flex;justify-content:space-between;align-items:baseline;gap:1rem;
  background:#fff;border:none;padding:.7rem .9rem;cursor:pointer;text-align:left}
.ukhoved:hover{background:var(--irgroen-lys)}
.ukhoved .n{font-family:var(--display);font-size:1.05rem;font-weight:600;color:var(--blaek)}
.ukhoved .k{font-family:var(--mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--blaek-lys);text-align:right}
.ukkort.kan .ukhoved .k{color:var(--irgroen)}
.ukkrop{padding:0 .9rem .9rem;border-top:1px solid var(--streg-lys)}
.uke{font-size:.9rem;line-height:1.55;margin:.7rem 0 0}
.uke b{display:block;font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--messing);margin-bottom:.2rem}
.ukkrav{font-family:var(--mono);font-size:.66rem;color:var(--blaek-lys);margin:.7rem 0 0}
.ukvaelg{margin-top:.8rem;font-family:var(--mono);font-size:.66rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  border:1.5px solid var(--irgroen);background:var(--irgroen);color:#fff;border-radius:2px;padding:.55rem 1.1rem;cursor:pointer}
.ukvaelg:hover{background:#37796B;border-color:#37796B}
.ukevne{font-size:.92rem;line-height:1.6;margin:.9rem 0 0}
.ukevne b{display:block;font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--messing);margin-bottom:.2rem}
.ukquest{border-left:3px solid var(--messing);background:var(--messing-lys);padding:.8rem 1rem;margin:1.1rem 0 0;
  font-size:.92rem;line-height:1.6}
.ukquest b{display:block;font-family:var(--display);font-size:.95rem;margin-bottom:.3rem;font-style:italic}
.vaerge,.varsler{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:.7rem;
  border:1.5px solid var(--streg);border-radius:2px;padding:.6rem .8rem;margin-bottom:.8rem}
.vaerge.aktiv{border-color:var(--irgroen);background:var(--irgroen-lys)}
.varsler{grid-template-columns:auto 1fr}
.vaerge .vn,.varsler .vn{font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--blaek-lys)}
.vaerge .vt{font-family:var(--mono);font-size:1.05rem;font-weight:600}
.vaerge .vh{font-size:.82rem;color:var(--blaek-lys)}
.varsler .vkort{display:flex;gap:.4rem}
.varsler .vkort button{font-family:var(--mono);font-size:1rem;font-weight:600;border:1.5px solid var(--messing);
  background:var(--messing-lys);color:var(--messing);border-radius:2px;padding:.35rem .8rem;cursor:pointer}
.varsler .vkort button:hover{background:var(--messing);color:#fff}
.ukstat{border:1px solid var(--streg);border-radius:2px;padding:.7rem .85rem;margin-bottom:.8rem;font-size:.86rem}
.ukstat > b{font-family:var(--display);font-size:1rem}
.ukstat em{font-family:var(--mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--blaek-lys);font-style:normal}
.ukstat .l{display:block;margin-top:.35rem;line-height:1.5}
.proeve{border-left:3px solid var(--messing);background:var(--messing-lys);padding:.9rem 1.1rem;margin-bottom:1rem}
.proeve .pt{font-family:var(--display);font-size:1rem;font-weight:600;font-style:italic;margin:0 0 .6rem}
.proeve .ptrin{margin:0;padding-left:1.15rem;font-size:.9rem;line-height:1.6}
.proeve .ptrin li{margin-bottom:.2rem}
.proeve .pn{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--messing);margin:.7rem 0 0}
.ukevne.laast{opacity:.5}
.hintliste{margin:0 0 .8rem;padding-left:1.2rem;list-style:none}
.hintliste li{position:relative;margin-bottom:.4rem;font-family:var(--display);font-style:italic;
  font-size:.96rem;line-height:1.5;color:var(--blaek)}
.hintliste li::before{content:"›";position:absolute;left:-1rem;color:var(--messing);font-style:normal}
.spmliste{margin:0 0 .5rem}
.spmliste dt{font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;color:var(--messing);
  font-weight:600;margin-top:.7rem}
.spmliste dd{margin:.2rem 0 0;font-size:.9rem;line-height:1.55;color:var(--blaek)}

/* ---- spillederens filer ---- */
.dmfiler{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.6rem}
.dmfil{display:block;border:1.5px solid var(--streg);border-radius:2px;padding:.8rem .95rem;
  background:#fff;text-decoration:none;color:var(--blaek)}
.dmfil:hover{border-color:var(--irgroen);background:var(--irgroen-lys)}
.dmfil .n{display:block;font-family:var(--display);font-size:1rem;font-weight:600}
.dmfil .b{display:block;font-size:.86rem;color:var(--blaek-lys);margin-top:.25rem;line-height:1.5}
.dmfil .m{display:block;font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--blaek-lys);margin-top:.45rem}
.dmfil.modul{border-color:var(--rubin);background:var(--rubin-lys);grid-column:1/-1}
.dmfil.modul:hover{background:#F6E3E3}
.dmfil.modul .n{color:var(--rubin)}

/* ---- kollegievalg med portrætter ---- */
.kollegievalg{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.7rem}
.kollegiekort{border:1.5px solid var(--streg);border-radius:2px;background:#fff;padding:0 0 .8rem;
  cursor:pointer;text-align:left;overflow:hidden;display:flex;flex-direction:column;
  font-family:var(--brod);color:var(--blaek);transition:border-color .2s ease,transform .2s ease}
.kollegiekort:hover{border-color:var(--irgroen);transform:translateY(-2px)}
.kollegiekort.valgt{border-color:var(--irgroen);background:var(--irgroen-lys);border-width:2px}
.kollegiekort:focus-visible{outline:3px solid var(--irgroen);outline-offset:2px}
.kollegiekort img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center top;display:block;
  background:var(--streg-lys);margin-bottom:.6rem}
.kollegiekort .kn{font-family:var(--display);font-size:1.05rem;font-weight:600;padding:0 .8rem}
.kollegiekort .kd{font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--messing);padding:.15rem .8rem 0}
.kollegiekort .kb{font-size:.84rem;line-height:1.5;color:var(--blaek-lys);padding:.45rem .8rem 0}
@media (prefers-reduced-motion:reduce){.kollegiekort{transition:none}}

/* ---- personer ---- */
.folkgitter{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:.55rem}
.folkmini{border:1.5px solid var(--streg);border-radius:2px;background:#fff;padding:0 0 .55rem;cursor:pointer;
  text-align:left;overflow:hidden;position:relative;font-family:var(--brod);color:var(--blaek)}
.folkmini:hover{border-color:var(--irgroen)}
.folkmini.moedt{border-color:var(--irgroen);background:var(--irgroen-lys)}
.folkmini img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center top;display:block;
  background:var(--streg-lys);margin-bottom:.4rem}
.folkmini .n{display:block;font-family:var(--display);font-size:.86rem;font-weight:600;line-height:1.2;padding:0 .55rem}
.folkmini .r{display:block;font-family:var(--mono);font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--blaek-lys);padding:.15rem .55rem 0}
.folkmini .t{position:absolute;top:.35rem;right:.35rem;background:var(--irgroen);color:#fff;
  font-family:var(--mono);font-size:.58rem;font-weight:600;padding:.15rem .4rem;border-radius:100px}
.moedetop{display:grid;grid-template-columns:150px 1fr;gap:1.1rem;margin-bottom:.4rem}
@media (max-width:560px){.moedetop{grid-template-columns:1fr}}
.moedetop img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center top;
  border:1px solid var(--streg);background:var(--streg-lys)}
.ptoej2{border-top:1px solid var(--streg);padding-top:.7rem;font-size:.9rem;color:var(--blaek-lys)}
.ptoej2 b{display:block;font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--blaek);margin-bottom:.25rem}
.moedevalg{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.45rem}
.moedevalg button{border:1.5px solid var(--streg);background:#fff;border-radius:2px;padding:.55rem .7rem;
  cursor:pointer;text-align:left;font-family:var(--display);font-size:.95rem;font-weight:600;color:var(--blaek)}
.moedevalg button.valgt{border-color:var(--irgroen);background:var(--irgroen-lys)}
.moedevalg button em{display:block;font-family:var(--mono);font-size:.58rem;letter-spacing:.1em;
  text-transform:uppercase;font-style:normal;font-weight:400;color:var(--blaek-lys);margin-top:.15rem}
.folkstrimmel{display:flex;gap:.5rem;flex-wrap:wrap}
.folkstrimmel button{border:1.5px solid var(--streg);background:#fff;border-radius:2px;padding:0 0 .35rem;
  cursor:pointer;width:74px;overflow:hidden;font-family:var(--brod)}
.folkstrimmel button:hover{border-color:var(--irgroen)}
.folkstrimmel img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center top;display:block;
  background:var(--streg-lys);margin-bottom:.25rem}
.folkstrimmel span{display:block;font-size:.66rem;line-height:1.2;padding:0 .3rem;color:var(--blaek)}
.folkstrimmel .flere{width:74px;display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:.9rem;color:var(--blaek-lys)}
.folkliste{display:grid;gap:.5rem;margin-bottom:.4rem}
.folkkort{border:1.5px solid var(--streg);border-radius:2px;overflow:hidden}
.folkkort.doed{opacity:.6}
.folkkort.savnet{border-color:var(--messing)}
.folkhoved{width:100%;display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:.7rem;
  background:#fff;border:none;padding:.5rem .7rem;cursor:pointer;text-align:left}
.folkhoved:hover{background:var(--irgroen-lys)}
.folkhoved img{width:52px;aspect-ratio:3/4;object-fit:cover;object-position:center top;background:var(--streg-lys)}
.folkhoved .fn{font-family:var(--display);font-size:1rem;font-weight:600;color:var(--blaek)}
.folkhoved .fr{display:block;font-family:var(--mono);font-size:.56rem;letter-spacing:.1em;text-transform:uppercase;color:var(--blaek-lys)}
.folkhoved .fs{font-family:var(--mono);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--blaek-lys)}
.folkkort.savnet .fs{color:var(--messing)}
.folkkort.doed .fs{color:var(--rubin)}
.folkkrop{padding:.7rem .8rem;border-top:1px solid var(--streg-lys)}
.statusvalg{display:flex;gap:.35rem;margin-bottom:.7rem}
.statusvalg button{flex:1;font-family:var(--mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;
  border:1.5px solid var(--streg);background:#fff;border-radius:2px;padding:.4rem;cursor:pointer;color:var(--blaek-lys)}
.statusvalg button.valgt{color:#fff;background:var(--irgroen);border-color:var(--irgroen)}
.statusvalg button.valgt.savnet{background:var(--messing);border-color:var(--messing)}
.statusvalg button.valgt.doed{background:var(--rubin);border-color:var(--rubin)}
.palder2{font-family:var(--mono);font-size:.78rem;color:var(--blaek-lys);margin-bottom:.7rem !important}
.palder2 b{color:var(--messing);letter-spacing:.14em;text-transform:uppercase;font-size:.6rem;margin-right:.5rem}
.dpraekke{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.dpraekke button{width:3rem;height:2.4rem;border:1.5px solid var(--streg);background:#fff;border-radius:2px;
  font-family:var(--mono);font-size:.85rem;font-weight:600;color:var(--blaek);cursor:pointer}
.dpraekke button:hover:not(:disabled){border-color:var(--messing);color:var(--messing)}
.dpraekke button:disabled{opacity:.35;cursor:not-allowed}
.dpraekke .dptal{font-family:var(--mono);font-size:1.6rem;font-weight:600;min-width:3rem;text-align:center;color:var(--messing)}
.dpraekke .dphjaelp{font-size:.82rem;color:var(--blaek-lys);flex:1;min-width:12rem}

/* ---- ting: knap, skuffe, stort billede ---- */
.taskeknap{position:fixed;left:1.25rem;bottom:9.6rem;z-index:60;width:3.6rem;height:3.6rem;border-radius:50%;
  border:none;background:var(--messing);color:#fff;cursor:pointer;box-shadow:0 6px 20px rgba(27,31,59,.35);
  display:flex;align-items:center;justify-content:center}
.taskeknap svg{width:1.6rem;height:1.6rem;fill:none;stroke:currentColor;stroke-width:1.8}
.taskeknap:hover{background:#96702A}
.taskeknap:focus-visible{outline:3px solid var(--blaek);outline-offset:3px}
body:not([data-vaerktoej="1"]) .taskeknap{display:none !important}
.bakke{bottom:13.9rem !important}
.tingliste{display:grid;gap:.5rem;margin-bottom:.4rem}
.tingkort{border:1.5px solid var(--streg);border-radius:2px;overflow:hidden}
.tingkort.aaben{border-color:var(--messing)}
.tinghoved{width:100%;display:grid;grid-template-columns:1fr auto;align-items:center;gap:.7rem;background:#fff;
  border:none;padding:.6rem .8rem;cursor:pointer;text-align:left}
.tinghoved.medbil{grid-template-columns:40px 1fr auto}
.tinghoved:hover{background:var(--messing-lys)}
.tinghoved .tbil{width:40px;aspect-ratio:3/4;object-fit:cover;object-position:center top;display:block;
  border:1px solid var(--streg);background:var(--streg-lys)}
.tinghoved .tmid{min-width:0}
.tinghoved .ta{display:block;font-family:var(--mono);font-size:.55rem;letter-spacing:.14em;text-transform:uppercase;color:var(--messing)}
.tinghoved .tn{display:block;font-family:var(--display);font-size:1rem;font-weight:600;color:var(--blaek);line-height:1.2}
.tinghoved .tk{font-family:var(--mono);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--blaek-lys);white-space:nowrap}
.tingkrop{padding:.2rem .8rem .8rem;border-top:1px solid var(--streg-lys)}
.tingkrop p{font-size:.9rem;line-height:1.6;margin:.6rem 0}
.tingknapper{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:.6rem}
.tingknapper button{font-family:var(--mono);font-size:.62rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  border:1.5px solid var(--streg);background:#fff;color:var(--blaek);border-radius:2px;padding:.4rem .7rem;cursor:pointer}
.tingknapper button:hover:not(:disabled){border-color:var(--messing);color:var(--messing)}
.tingknapper button:disabled{opacity:.3;cursor:not-allowed}
.tingknapper button.slet{border-color:var(--rubin);color:var(--rubin);margin-left:auto}
.tingknapper button.slet:hover{background:var(--rubin);color:#fff}
.givtil{font-family:var(--mono);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blaek-lys);margin:.5rem 0 .3rem !important}
.givvalg{display:flex;gap:.35rem;flex-wrap:wrap}
.givvalg button{font-family:var(--display);font-size:.88rem;font-weight:600;border:1.5px solid var(--irgroen);
  background:var(--irgroen-lys);color:var(--irgroen);border-radius:2px;padding:.4rem .8rem;cursor:pointer}
.givvalg button:hover{background:var(--irgroen);color:#fff}
.tingstrimmel{display:flex;gap:.45rem;flex-wrap:wrap}
.tingstrimmel button{border:1.5px solid var(--streg);background:#fff;border-radius:2px;padding:.45rem .6rem;cursor:pointer;text-align:left}
.tingstrimmel button:hover{border-color:var(--messing)}
.tingstrimmel .a{display:block;font-family:var(--mono);font-size:.52rem;letter-spacing:.12em;text-transform:uppercase;color:var(--messing)}
.tingstrimmel .n{display:block;font-family:var(--display);font-size:.86rem;font-weight:600;color:var(--blaek)}
.tingstrimmel .flere{font-family:var(--mono);color:var(--blaek-lys)}
.stortlag{position:fixed;inset:0;z-index:95;background:rgba(27,31,59,.8);display:none;align-items:center;justify-content:center;padding:2rem;cursor:zoom-out}
.stortlag.aabe{display:flex}
#stortindhold{max-width:min(90vw,720px);text-align:center}
#stortindhold img{max-width:100%;max-height:78vh;display:block;margin:0 auto;box-shadow:0 20px 60px rgba(0,0,0,.5)}
#stortindhold .stortnavn{font-family:var(--display);font-size:1.1rem;color:#fff;margin:1rem 0 0}
#stortindhold .ingenbil{color:#C9CEDF;font-family:var(--mono);font-size:.8rem}
.tinggitter{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5rem}
.tingmini{border:1.5px solid var(--streg);background:#fff;border-radius:2px;padding:.7rem .8rem;cursor:pointer;
  text-align:left;position:relative;font-family:var(--brod)}
.tingmini:hover{border-color:var(--messing)}
.tingmini.har{border-color:var(--irgroen);background:var(--irgroen-lys)}
.tingmini .a{display:block;font-family:var(--mono);font-size:.54rem;letter-spacing:.12em;text-transform:uppercase;color:var(--blaek-lys)}
.tingmini .n{display:block;font-family:var(--display);font-size:.92rem;font-weight:600;color:var(--blaek);margin-top:.2rem;line-height:1.2}
.tingmini .t{position:absolute;top:.35rem;right:.35rem;background:var(--irgroen);color:#fff;font-family:var(--mono);
  font-size:.56rem;font-weight:600;padding:.12rem .38rem;border-radius:100px}
@media print{.taskeknap,.taskelag,.stortlag{display:none !important}}
.nyting{display:grid;grid-template-columns:230px 1fr;gap:1.4rem;align-items:start}
@media (max-width:620px){.nyting{grid-template-columns:1fr}}
.nytingbil canvas{width:100%;aspect-ratio:3/4;display:block;border:1.5px solid var(--streg);
  background:var(--streg-lys);cursor:grab;touch-action:none}
.nytingbil canvas:active{cursor:grabbing}
.klipnote{font-size:.78rem;color:var(--blaek-lys);line-height:1.5;margin:.5rem 0 .8rem}
.nytingbil input[type=file]{font-size:.8rem}
.nytingbil input[type=range]{width:100%}
.tingmini .tm{aspect-ratio:16/10;object-fit:cover;object-position:center 20%;display:block;
  margin:-.7rem -.8rem .5rem;width:calc(100% + 1.6rem);background:var(--streg-lys)}


/* ---- bibliotek: moduler ---- */
.spamnote{font-size:.8rem;line-height:1.5;color:var(--blaek-lys);margin:.4rem 0 0;text-align:center}
.modulliste{display:grid;gap:.7rem}
.modul{border:1.5px solid var(--streg);border-radius:2px;overflow:hidden;background:#fff}
.modul.ejet{border-color:var(--irgroen)}
.modul.laast{opacity:.72}
.modulhoved{width:100%;display:grid;grid-template-columns:96px 1fr;gap:1rem;background:none;border:none;
  padding:0;cursor:pointer;text-align:left;align-items:stretch}
.modulhoved:hover{background:var(--irgroen-lys)}
.modul.laast .modulhoved:hover{background:#F3F4F8}
.mbil{background:var(--f);display:block;min-height:118px;position:relative}
.mbil img{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0}
.mtekst{padding:.85rem .95rem .95rem 0;min-width:0}
.ma{display:block;font-family:var(--mono);font-size:.56rem;letter-spacing:.16em;text-transform:uppercase;color:var(--messing);margin-bottom:.2rem}
.modul.laast .ma{color:var(--blaek-lys)}
.mn{display:block;font-family:var(--display);font-size:1.15rem;font-weight:700;color:var(--blaek);line-height:1.15}
.mb{display:block;font-size:.86rem;line-height:1.5;color:var(--blaek-lys);margin-top:.3rem}
.modulkrop{border-top:1px solid var(--streg-lys);padding:.8rem .95rem}
.modulsider{display:grid;gap:.4rem}
.modulsider a{display:block;border:1.5px solid var(--streg);border-radius:2px;padding:.55rem .8rem;
  text-decoration:none;font-family:var(--display);font-size:.95rem;font-weight:600;color:var(--blaek)}
.modulsider a:hover{border-color:var(--irgroen);background:var(--irgroen-lys)}
.modulsider a.dmside{border-color:var(--rubin);color:var(--rubin);background:var(--rubin-lys)}
.modulsider a em{float:right;font-family:var(--mono);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;font-style:normal;opacity:.8}
.modulnote{font-size:.86rem;line-height:1.55;color:var(--blaek-lys);margin:.7rem 0 0}
.kodefelt2{border:1.5px dashed var(--streg);border-radius:2px;padding:1rem 1.1rem;margin-top:1.4rem}
.kodefelt2 form{display:grid;grid-template-columns:1fr auto;gap:.7rem;align-items:end}
@media (max-width:520px){.kodefelt2 form{grid-template-columns:1fr}}
.kodefelt2 .felt{margin:0}
.kodefelt2 .hovedknap{width:auto;margin:0;padding:.7rem 1.4rem}
.kodefelt2 .tomtekst{margin:.6rem 0 0}
.midterkort.farezone{border-color:var(--rubin)}
.midterkort.farezone h2{color:var(--rubin)}
.hovedknap.fare{background:var(--rubin);border-color:var(--rubin)}
.hovedknap.fare:hover:not(:disabled){background:#8E2F2F;border-color:#8E2F2F}

/* ---- admin og support ---- */
.knap.admin{border-color:var(--rubin);color:var(--rubin)}
.knap.admin:hover{background:var(--rubin);color:#fff}
.faner{display:flex;gap:.4rem;margin-bottom:1.4rem;border-bottom:1.5px solid var(--streg);padding-bottom:.6rem;flex-wrap:wrap}
.faner button{font-family:var(--mono);font-size:.66rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  border:1.5px solid transparent;background:none;color:var(--blaek-lys);border-radius:2px;padding:.5rem .9rem;cursor:pointer}
.faner button:hover{color:var(--blaek);background:var(--streg-lys)}
.faner button.aktiv{background:var(--blaek);color:#fff}
.kodeind{display:flex;gap:.5rem}
.kodeind input{flex:1}
.kodeind .knap{white-space:nowrap}
.tabel{border:1.5px solid var(--streg);border-radius:2px;overflow-x:auto;background:#fff}
.tabel table{width:100%;border-collapse:collapse;font-size:.88rem}
.tabel th{background:var(--blaek);color:#fff;font-family:var(--mono);font-size:.58rem;letter-spacing:.12em;
  text-transform:uppercase;font-weight:600;text-align:left;padding:.5rem .7rem;white-space:nowrap}
.tabel td{padding:.5rem .7rem;border-top:1px solid var(--streg-lys);vertical-align:middle}
.tabel td.tal{font-family:var(--mono);text-align:right;white-space:nowrap}
.tabel td.mono{font-family:var(--mono);font-size:.8rem;font-weight:600}
.tabel td.lille{font-size:.8rem;color:var(--blaek-lys)}
.tabel tr.opbrugt{opacity:.45}
.minik{font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;border:1.5px solid var(--streg);
  background:#fff;color:var(--blaek-lys);border-radius:2px;padding:.25rem .55rem;cursor:pointer;white-space:nowrap}
.minik:hover{border-color:var(--rubin);color:var(--rubin)}
.taldisplay{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.7rem}
.taldisplay > div{border:1.5px solid var(--streg);border-radius:2px;padding:1rem;background:#fff;text-align:center}
.taldisplay .v{display:block;font-family:var(--mono);font-size:2rem;font-weight:600;color:var(--irgroen);line-height:1}
.taldisplay .n{display:block;font-family:var(--mono);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--blaek-lys);margin-top:.4rem}
.sagliste{display:grid;gap:.5rem}
.sag{border:1.5px solid var(--streg);border-radius:2px;overflow:hidden;background:#fff}
.sag.aaben{border-color:var(--irgroen)}
.saghoved{width:100%;display:grid;grid-template-columns:1fr auto auto;gap:.8rem;align-items:center;
  background:none;border:none;padding:.7rem .9rem;cursor:pointer;text-align:left}
.saghoved:hover{background:var(--irgroen-lys)}
.saghoved .se{font-family:var(--display);font-size:1rem;font-weight:600;color:var(--blaek);min-width:0}
.saghoved .se em{display:block;font-family:var(--mono);font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--blaek-lys);font-style:normal;font-weight:400;margin-top:.15rem}
.saghoved .ss{font-family:var(--mono);font-size:.56rem;letter-spacing:.1em;text-transform:uppercase;
  padding:.2rem .5rem;border-radius:100px;background:var(--messing-lys);color:var(--messing);white-space:nowrap}
.saghoved .ss.svaret{background:var(--irgroen-lys);color:var(--irgroen)}
.saghoved .ss.lukket{background:var(--streg-lys);color:var(--blaek-lys)}
.saghoved .st{font-family:var(--mono);font-size:.58rem;color:var(--blaek-lys);white-space:nowrap}
.sagkrop{padding:.8rem .9rem;border-top:1px solid var(--streg-lys)}
.sagtraad{display:grid;gap:.6rem;margin-bottom:.9rem}
.sagsvar{border-left:3px solid var(--streg);padding:.5rem .8rem;background:#F7F8FB}
.sagsvar.fraadmin{border-left-color:var(--irgroen);background:var(--irgroen-lys)}
.sagsvar .sn{display:block;font-family:var(--mono);font-size:.56rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--blaek-lys);margin-bottom:.2rem}
.sagsvar p{margin:0;font-size:.9rem;line-height:1.55;white-space:pre-wrap}
.svarform textarea{width:100%}
.svarknapper{display:flex;gap:.5rem;align-items:center;margin-top:.5rem}
.svarknapper .hovedknap{width:auto;margin:0;padding:.6rem 1.2rem}
.sagliste.lukkede{opacity:.62}
.sagliste.lukkede .sag:hover{opacity:1}
.sag.erlukket .saghoved{background:#FAFBFD}
button.dmfil{width:100%;text-align:left;font-family:var(--brod);cursor:pointer}
button.dmfil:disabled{opacity:.6;cursor:wait}
.sagknap{font-family:var(--mono);font-size:.66rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  border:1.5px solid var(--streg);background:#fff;color:var(--blaek-lys);border-radius:2px;
  padding:.6rem 1.1rem;cursor:pointer;white-space:nowrap}
.sagknap:hover{border-color:var(--irgroen);color:var(--irgroen);background:var(--irgroen-lys)}
.raad{border-left:3px solid var(--messing);padding-left:.9rem;color:var(--blaek-lys)}
.vejkort{border:1.5px solid var(--streg);border-radius:2px;padding:.9rem 1.1rem;margin-bottom:.7rem}
.vejhoved{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;
  border-bottom:1px solid var(--streg-lys);padding-bottom:.5rem;margin-bottom:.6rem}
.vejhoved h4{font-family:var(--display);font-size:1.15rem;font-weight:700;margin:0}
.vejkrav{font-family:var(--mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--messing);white-space:nowrap}
.vejhvad{font-family:var(--display);font-style:italic;font-size:1rem;line-height:1.55;color:var(--blaek-lys);margin:0 0 .3rem}

/* ---- duelklubbens tavle ---- */
.tavleregel{font-size:.86rem;line-height:1.55;color:var(--blaek-lys);border-left:3px solid var(--messing);
  padding-left:.8rem;margin:0 0 1rem}
.tavle{display:grid;gap:.3rem;margin-bottom:.5rem}
.trk{border:1.5px solid var(--streg);border-radius:2px;overflow:hidden;background:#fff}
.trk.kan{border-color:var(--irgroen)}
.trk.mig{border-color:var(--messing);border-width:2px;background:var(--messing-lys)}
.trkhoved{width:100%;display:grid;grid-template-columns:3rem 1fr auto auto;align-items:center;gap:.7rem;
  background:none;border:none;padding:.5rem .7rem;text-align:left;cursor:pointer;font-family:var(--brod)}
.trkhoved:disabled{cursor:default}
.trkhoved:not(:disabled):hover{background:var(--irgroen-lys)}
.trk .tp{font-family:var(--mono);font-size:1.05rem;font-weight:600;color:var(--messing);text-align:right}
.trk .tn{font-family:var(--display);font-size:.98rem;font-weight:600;color:var(--blaek)}
.trk .tn em{font-family:var(--mono);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;font-style:normal;color:var(--messing)}
.trk .th{font-family:var(--mono);font-size:.58rem;letter-spacing:.06em;text-transform:uppercase;color:var(--blaek-lys);white-space:nowrap}
.trk .tk{font-family:var(--mono);font-size:.54rem;letter-spacing:.08em;text-transform:uppercase;color:var(--irgroen);white-space:nowrap}
.trkkrop{padding:.6rem .8rem .8rem;border-top:1px solid var(--streg-lys)}
.bstat{font-family:var(--mono);font-size:.76rem;margin:0 0 .5rem;color:var(--blaek)}
.bstat b{color:var(--blaek-lys);font-weight:600}
.bhd{font-size:.87rem;line-height:1.55;margin:0 0 .35rem}
.btak{font-size:.85rem;line-height:1.55;color:var(--blaek-lys);font-style:italic;margin:.5rem 0 0;
  border-top:1px solid var(--streg-lys);padding-top:.5rem}
.huspoint{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.6rem}
.huskort{border:1.5px solid var(--streg);border-radius:2px;padding:.8rem;text-align:center;background:#fff}
.huskort .hn{display:block;font-family:var(--display);font-size:1rem;font-weight:700}
.huskort .hp{display:block;font-family:var(--mono);font-size:2rem;font-weight:600;color:var(--messing);line-height:1.1;margin:.2rem 0 .4rem}
.huskort .hk{display:flex;gap:.25rem;justify-content:center}
.huskort .hk button{flex:1;font-family:var(--mono);font-size:.6rem;font-weight:600;border:1.5px solid var(--streg);
  background:#fff;color:var(--blaek-lys);border-radius:2px;padding:.3rem;cursor:pointer}
.huskort .hk button:hover{border-color:var(--messing);color:var(--messing)}
.huskort .hbog{display:block;font-family:var(--mono);font-size:.55rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--irgroen);margin-top:.45rem}
.trk .tnote{display:block;font-family:var(--brod);font-size:.76rem;font-style:italic;color:var(--blaek-lys);
  font-weight:400;margin-top:.1rem;line-height:1.3}
.trkkrop .felt{margin-bottom:.5rem}
.trkkrop textarea{width:100%}
.navnknap{background:none;border:none;padding:0;font-family:var(--brod);font-size:.88rem;color:var(--blaek);
  cursor:pointer;text-align:left;border-bottom:1px dotted var(--messing)}
.navnknap:hover{color:var(--messing)}
.tabel tr.valgt td{background:var(--irgroen-lys)}
.tabel tr.blokraekke td{padding:0;border-top:none}
.dmblok{padding:.7rem 1rem 1rem;background:var(--irgroen-lys)}
.dmblok .bstat{font-family:var(--mono);font-size:.78rem;margin:0 0 .5rem}
.dmblok .bhd{font-size:.86rem;line-height:1.55;margin:0 0 .35rem}
.dmblok .btak{font-size:.85rem;line-height:1.55;color:var(--blaek-lys);font-style:italic;margin:.5rem 0 0;
  border-top:1px solid rgba(62,139,122,.3);padding-top:.5rem}

/* ---- foldeafsnit i spillederens panel ---- */
.foldknap{width:100%;display:flex;align-items:center;gap:.6rem;background:none;border:none;
  border-bottom:1.5px solid var(--streg);padding:.9rem 0 .5rem;margin:2.2rem 0 0;cursor:pointer;text-align:left;
  font-family:var(--mono);font-size:.66rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--blaek-lys)}
.foldknap:first-of-type{margin-top:0}
.foldknap:hover{color:var(--blaek);border-bottom-color:var(--blaek-lys)}
.foldknap.aaben{color:var(--blaek);border-bottom-color:var(--blaek)}
.foldknap .fpil{display:inline-block;transition:transform .15s ease;font-size:.8rem;color:var(--messing)}
.foldknap.aaben .fpil{transform:rotate(90deg)}
.foldknap .ft{flex:1}
.foldkrop{padding-top:1rem}
@media (prefers-reduced-motion:reduce){.foldknap .fpil{transition:none}}
.tabel tr.spillerraekke td{background:var(--messing-lys)}
.tabel tr.spillerraekke td.mono{color:var(--messing)}
.dpraekke .dptal{color:var(--messing)}
.typeliste{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.5rem;margin-top:.8rem}
.typekort{border:1.5px dashed var(--streg);border-radius:2px;padding:.7rem .85rem}
.typekort .tn{display:block;font-family:var(--display);font-size:1rem;font-weight:600}
.typekort .tb{display:block;font-size:.84rem;line-height:1.5;color:var(--blaek-lys);margin-top:.2rem}
.typefilter{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:.9rem}
.typefilter button{font-family:var(--mono);font-size:.62rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  border:1.5px solid var(--streg);background:#fff;color:var(--blaek-lys);border-radius:2px;padding:.4rem .8rem;cursor:pointer}
.typefilter button:hover{border-color:var(--irgroen);color:var(--irgroen)}
.typefilter button.aktiv{background:var(--blaek);border-color:var(--blaek);color:#fff}
.missionliste{display:grid;gap:.6rem}
.missionkort{display:block;border:1.5px solid var(--streg);border-radius:2px;padding:.85rem 1rem;
  text-decoration:none;background:#fff;color:var(--blaek)}
.missionkort:hover{border-color:var(--irgroen);background:var(--irgroen-lys)}
.missionkort .mm{display:flex;gap:.3rem;flex-wrap:wrap;margin-bottom:.25rem}
.missionkort .mm em{font-family:var(--mono);font-size:.54rem;letter-spacing:.1em;text-transform:uppercase;
  font-style:normal;color:var(--messing);border:1px solid var(--messing);border-radius:100px;padding:.1rem .45rem}
.missionkort .mn{display:block;font-family:var(--display);font-size:1.1rem;font-weight:700}
.missionkort .mb{display:block;font-size:.88rem;line-height:1.5;color:var(--blaek-lys);margin-top:.2rem}
.missionkort .ml{display:block;font-family:var(--mono);font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--blaek-lys);margin-top:.45rem}
.naeveliste{display:grid;gap:.25rem;margin-bottom:.6rem}
.naeve{display:grid;grid-template-columns:1fr auto auto;align-items:baseline;gap:.7rem;
  border:1px solid var(--streg-lys);border-radius:2px;padding:.35rem .6rem;background:#fff}
.naeve .nn{font-size:.88rem;color:var(--blaek)}
.naeve .na{font-family:var(--mono);font-size:.92rem;font-weight:600;color:var(--messing);min-width:2.6rem;text-align:right}
.naeve .ns{font-family:var(--mono);font-size:.66rem;letter-spacing:.04em;color:var(--blaek-lys);
  min-width:6.4rem;text-align:right;white-space:nowrap}
.naevetip{font-size:.82rem;line-height:1.5;color:var(--blaek-lys);margin:0;
  border-left:3px solid var(--messing);padding-left:.7rem}
.baerermrk{font-family:var(--mono);font-size:.54rem;letter-spacing:.1em;text-transform:uppercase;
  font-style:normal;color:#fff;background:var(--irgroen);border-radius:100px;padding:.08rem .4rem;margin-left:.3rem}
.baerelinje{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin:0 0 .6rem;
  border:1.5px solid var(--messing);background:var(--messing-lys);border-radius:2px;padding:.5rem .7rem}
.baereknap{font-family:var(--mono);font-size:.62rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  border:1.5px solid var(--messing);background:#fff;color:var(--messing);border-radius:2px;padding:.4rem .8rem;cursor:pointer}
.baereknap.paa{background:var(--irgroen);border-color:var(--irgroen);color:#fff}
.baereknap:hover{filter:brightness(.94)}
.baeretal{flex:1;font-family:var(--mono);font-size:.74rem;font-weight:600;color:var(--messing)}
.baereantal{font-family:var(--mono);font-size:.6rem;color:var(--blaek-lys)}
