<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://www.motionsplan.dk/feed.xml" rel="self" type="application/atom+xml" /><link href="https://www.motionsplan.dk/" rel="alternate" type="text/html" /><updated>2026-08-20T18:28:56+00:00</updated><id>https://www.motionsplan.dk/feed.xml</id><title type="html">Motionsplan</title><subtitle>Alt om test og træning til styrketræning, konditionstræning, cardio, yoga, løb og træning - med de videnskabelige briller. Samt et væld af træningsøvelser og træningsprogrammer.</subtitle><author><name>Motionsplan</name></author><entry><title type="html">7 minute workout: Den videnskabelige guide &amp;amp; øvelser</title><link href="https://www.motionsplan.dk/7-minute-workout/" rel="alternate" type="text/html" title="7 minute workout: Den videnskabelige guide &amp;amp; øvelser" /><published>2026-08-20T00:00:00+00:00</published><updated>2026-08-20T10:00:00+00:00</updated><id>https://www.motionsplan.dk/7-minute-workout</id><content type="html" xml:base="https://www.motionsplan.dk/7-minute-workout/"><![CDATA[<p><strong>7 minute workout</strong> blev et verdensomspændende fænomen, da forskerne Brett Klika og Chris Jordan fra Human Performance Institute i 2013 udgav artiklen <em>“HIGH-INTENSITY CIRCUIT TRAINING USING BODY WEIGHT”</em> i <em>ACSM’s Health &amp; Fitness Journal</em>.</p>

<p>Målet var enkelt: At skabe et ultrakort, maksimalt effektivt træningspas for travle mennesker, der ønsker at forbedre både kondition, iltoptagelse og muskelstyrke uden adgang til et træningscenter.</p>

<hr />

<h2 id="7-minute-workout-protokollen">⏱️ 7 minute workout-protokollen</h2>

<p>Protokollen bygger på princippet om <strong>High-Intensity Circuit Training (HICT)</strong>. Du træner mod modstanden fra din egen kropsvægt i et højt tempo.</p>

<ul>
  <li><strong>12 øvelser</strong> udført i en fastlagt rækkefølge.</li>
  <li><strong>30 sekunders arbejde</strong> pr. øvelse med maksimal/høj intensitet (RPE 8-9 på Borg-skalaen).</li>
  <li><strong>10 sekunders pause</strong> mellem hver øvelse til at skifte position.</li>
  <li><strong>Samlet tid:</strong> Præcis 7 minutter.</li>
</ul>

<blockquote>
  <p>💡 <em>Træner du på et højere niveau? Klika og Jordan fremhævede oprindeligt, at cirklen kan gentages 2–3 gange for en fuld 14- eller 21-minutters workout.</em></p>
</blockquote>

<hr />

<h2 id="-de-12-øvelser-i-rækkefølge">📋 De 12 øvelser i rækkefølge</h2>

<p>Rækkefølgen er opbygget fysiologisk således, at der veksles bevidst mellem store muskelgrupper i overkroppen, underkroppen og kernen (core). Det tillader én muskelgruppe at restituere en smule, mens en anden belastes.</p>

<ol>
  <li><strong>Jumping jacks</strong> <em>(Kondition &amp; helkropsopvarmning)</em></li>
  <li><strong>Wall sit</strong> <em>(Underkrop – statisk)</em></li>
  <li><strong>Push-ups</strong> <em>(Overkrop – pres)</em></li>
  <li><strong>Abdominal crunches</strong> <em>(Kerne – mave)</em></li>
  <li><strong>Step-up onto chair</strong> <em>(Underkrop – dynamisk)</em></li>
  <li><strong>Squats</strong> <em>(Underkrop – dynamisk)</em></li>
  <li><strong>Triceps dips on chair</strong> <em>(Overkrop – pres)</em></li>
  <li><strong>Plank</strong> <em>(Kerne – statisk)</em></li>
  <li><strong>High knees / running in place</strong> <em>(Kondition &amp; puls)</em></li>
  <li><strong>Lunges</strong> <em>(Underkrop – enbenet)</em></li>
  <li><strong>Push-up and rotation</strong> <em>(Overkrop &amp; kerne)</em></li>
  <li><strong>Side plank</strong> <em>(Kerne – skrå mavemuskler)</em></li>
</ol>

<hr />

<h2 id="-videnskaben-bag-hvorfor-virker-det">🧬 Videnskaben bag: Hvorfor virker det?</h2>

<p>Den fysiologiske præmis for HICT-konceptet er at kombinere <strong>aerob og anaerob træningsrespons</strong> på kort tid ved at holde pulsen tæt på maksimal kapacitet gennem hele passet:</p>

<ul>
  <li><strong>Maksimal iltoptagelse ($VO_2max$):</strong> Den korte pause på kun 10 sekunder forhindrer pulsen og iltoptagelsen i at falde markant. Det tvinger kroppen til at arbejde i det anaerobe grænseområde, hvilket stimulerer kredsløbet på linje med klassisk intervaltræning.</li>
  <li><strong>Mitokondriel biogenese:</strong> Højintensiv træning aktiverer enzymet AMPK, som stimulerer dannelsen af nye mitokondrier (cellernes kraftværker) i musklerne – en tilpasning, man tidligere troede kun opstod ved langvarig udholdenhedstræning.</li>
  <li><strong>Efterforbrænding (EPOC):</strong> Den høje intensitet skaber en markant iltgæld, der resulterer i forhøjet hvilestofskifte (EPOC – <em>excess post-exercise oxygen consumption</em>) i timerne efter træningen.</li>
  <li><strong>Forbedret insulinfølsomhed:</strong> De intense sammentrækninger tømmer hurtigt musklernes glukogendepoter, hvilket stimulerer GLUT-4 glukosetransportørerne og øger insulinfølsomheden i op til 24-48 timer.</li>
</ul>

<hr />

<h2 id="-kritikken-af-videnskaben-hvad-glemte-overskrifterne">🧐 Kritikken af videnskaben: Hvad glemte overskrifterne?</h2>

<p>Da <em>New York Times</em> og globale medier samlede artiklen op under overskriften <em>“Scientific 7-Minute Workout”</em>, opstod der hurtigt en række misforståelser. Idrætsfysiologer og trænere har med rette fremført en række kritiske pointer:</p>

<h3 id="1-det-var-en-oversigtsartikel--ikke-et-klinisk-studie">1. Det var en oversigtsartikel – ikke et klinisk studie</h3>
<p>Klika og Jordans udgivelse i 2013 var <strong>ikke et kontrolleret forsøg</strong>, der direkte testede netop disse 12 øvelser i 7 minutter. Det var en <em>review-artikel</em>, som ekstrapolerede data fra eksisterende HIIT-forskning (f.eks. Martin Gibala eller Izumi Tabatas studier) og overførte principperne til kropsvægtsøvelser.</p>

<h3 id="2-tabata-og-gibala-brugte-helt-andre-intensiteter">2. Tabata og Gibala brugte helt andre intensiteter</h3>
<p>Forskningen, som 7-minute-konceptet læner sig op ad, benyttede <strong>ekstremt høje belastninger</strong> – som all-out sprints på en ergometercykel ved $170\%\text{ af }VO_2max$. 
Det er fysiologisk umuligt at opnå samme mekaniske eller metaboliske belastning ved at lave mavebøjninger eller jumping jacks i 30 sekunder.</p>

<h3 id="3-de-7-minutter-var-tænkt-som-1-runde-ud-af-3">3. De 7 minutter var tænkt som 1 runde ud af 3</h3>
<p>Den oprindelige artikel anbefalede eksplicit, at kredsløbet blev gentaget <strong>2-3 gange</strong> for at opnå en samlet træningstid på 14–21 minutter. Medierne og markedsføringen kogte det hurtigt ned til, at “7 minutter om dagen er alt, du behøver” – hvilket er en kraftig oversimplificering.</p>

<h3 id="4-progressivt-overload-mangler">4. Progressivt overload mangler</h3>
<p>Kropsvægtstræning har en naturlig begrænsning for erfarne atleter. Når du kan tage 20 squats på 30 sekunder, skaber øvelsen ikke længere nok muskulær spænding (hypertrofi-stimulus) eller styrkefremgang, medmindre du tilføjer ydre belastning eller øger øvelseskompleksiteten.</p>

<table>
  <thead>
    <tr>
      <th style="text-align: left">Hvad påstår populærmedierne?</th>
      <th style="text-align: left">Hvad siger idrætsfysiologien?</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: left"><strong>“7 minutter er nok til at erstatte en hel times træning.”</strong></td>
      <td style="text-align: left">7 minutter er et fantastisk <em>minimum</em> til at bryde stillesiddende tid, men erstatter ikke struktureret cardio og tung styrketræning.</td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>“Du forbrænder enormt mange kalorier.”</strong></td>
      <td style="text-align: left">Det faktiske kalorieforbrug <em>under</em> 7 minutters kropsvægtstræning er beskedent (ca. 50–90 kcal afhængigt af kropsvægt).</td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>“Alle kan gøre det overalt.”</strong></td>
      <td style="text-align: left">Øvelser som dips og push-ups kræver betydelig relativ overkropsstyrke og god ledstabilitet, hvis skader skal undgås ved høj kadence.</td>
    </tr>
  </tbody>
</table>

<hr />

<h2 id="-3-gode-råd-til-at-få-mest-muligt-ud-af-protokollen">💡 3 gode råd til at få mest muligt ud af protokollen</h2>

<ul>
  <li><strong>Pres intensiteten helt op:</strong> Virkningen af HICT står og falder med din indsats. De 30 sekunders arbejde skal føles som en 8-9-er på en 10-skala. Hvis du kan føre en samtale undervejs, er intensiteten for lav.</li>
  <li><strong>Byg progression på:</strong> Er du øvet, så kør 2 eller 3 runder (14–21 minutter) med 1–2 minutters pause mellem hver runde, eller gør øvelserne sværere (f.eks. afsæt i squats eller elevated push-ups).</li>
  <li><strong>Prioritér teknik frem for tempo:</strong> Udfør øvelserne kontrolleret. Især ved øvelser som lunge og push-up-rotation kan højt tempo med dårlig kontrol belaste knæ, lænd og skuldre uhensigtsmæssigt.</li>
</ul>

<hr />

<details class="references">
  <summary><h2 id="references">Kilder og referencer</h2></summary>

  <ul>
    <li><strong>Klika, B., &amp; Jordan, C. (2013).</strong> <em>HIGH-INTENSITY CIRCUIT TRAINING USING BODY WEIGHT: Maximum Results With Minimal Investment.</em> ACSM’s Health &amp; Fitness Journal, 17(3), 8–13.</li>
    <li><strong>Gibala, M. J., et al. (2006).</strong> <em>Short-term sprint interval training increases human skeletal muscle oxidative capacity and endurance performance.</em> The Journal of Physiology, 575(3), 901–911.</li>
    <li><strong>Tabata, I., et al. (1996).</strong> <em>Effects of moderate-intensity endurance and high-intensity intermittent training on anaerobic capacity and VO2max.</em> Medicine and Science in Sports and Exercise, 28(10), 1327–1330.</li>
    <li><strong>Gillen, J. B., &amp; Gibala, M. J. (2014).</strong> <em>Is high-intensity interval training a time-efficient exercise strategy to improve cardiometabolic health?</em> Applied Physiology, Nutrition, and Metabolism, 39(3), 409–412.</li>
  </ul>
</details>]]></content><author><name>Lars Olesen</name></author><category term="Træning" /><category term="Hjemmetræning" /><category term="Workouts" /><category term="7-minute-workout" /><category term="hjemmetraening" /><category term="cirkeltraening" /><category term="hiit" /><category term="kropsvaegt" /><category term="workout" /><summary type="html"><![CDATA[Komplet guide til 7 minute workout. Lær den videnskabelige HICT-protokol med 12 øvelser uden udstyr, se fysiologien, fæld kritiske blikke på forskningen og træn med.]]></summary></entry><entry><title type="html">FIFA 11+: Den komplette guide til det evidensbaserede opvarmningsprogram</title><link href="https://www.motionsplan.dk/fifa-11-plus/" rel="alternate" type="text/html" title="FIFA 11+: Den komplette guide til det evidensbaserede opvarmningsprogram" /><published>2026-08-18T00:00:00+00:00</published><updated>2026-08-18T00:00:00+00:00</updated><id>https://www.motionsplan.dk/fifa-11-plus</id><content type="html" xml:base="https://www.motionsplan.dk/fifa-11-plus/"><![CDATA[<p>Når det gælder skadesforebyggelse og neuromuskulær opvarmning i holdsport, findes der intet program med stærkere videnskabelig rygdækning end <strong>FIFA 11+</strong> (også kendt som <em>The 11+</em>).</p>

<p>Programmet blev udviklet af FIFAs medicinske forskningscenter (F-MARC) i samarbejde med internationale eksperter fra Oslo Sports Trauma Research Center. Formålet var at skabe en enkel, udstyrsfri opvarmningsrutine, der kunne implementeres direkte på banen af bredde- og elitetrænere.</p>

<p>Store systematiske reviews slår fast, at hold, der udfører FIFA 11+ mindst to gange om ugen, reducerer deres samlede skadesrisiko med <strong>30–50 %</strong> — med særlig markant reduktion i alvorlige knæ- og lyskeskader (Bahr et al., 2015; Thorborg et al., 2017).</p>

<p><em>(Søger du den overordnede fysiologiske forklaring på kropstemperatur, ledsmering og PAPE? Læs vores <a href="/opvarmning/">dybdegående fagartikel om fysiologien bag opvarmning</a>.)</em></p>

<hr />

<h2 id="hvorfor-virker-fifa-11-fysiologisk">Hvorfor virker FIFA 11+ fysiologisk?</h2>

<p>Nøglen til FIFA 11+ er, at det ikke blot er en kredsløbsopvarmning, men et <strong>neuromuskulært træningsprogram</strong>. Programmet adskiller sig fra almindelig opvarmning ved fokus på fire fysiologiske parametre:</p>

<ol>
  <li><strong>Neuromuskulær kontrol &amp; Knæ-valgus:</strong> Programmet indøver en dynamisk “knæ-over-tå” kontrol under hop, landinger og opbremsninger. Det reducerer risikoen for, at knæet falder indad (valgusbelastning), hvilket er den primære skadesmekanisme ved akutte korsbåndsskader (Soligard et al., 2008).</li>
  <li><strong>Excentrisk baglårsstyrke:</strong> Gennem øvelsen <em>Nordic Hamstrings</em> styrkes baglårsmuskulaturen excentrisk, hvilket direkte modvirker strækskader under maximale sprint (Thorborg et al., 2017).</li>
  <li><strong>Core- og bækkenstabilitet:</strong> Stærke maveregioner og dybe rygstabilisatorer sikrer, at bækkenet holdes stabilt under hurtige retningsskift, hvilket forebygger lyskeproblematikker.</li>
  <li><strong>Proprioception:</strong> Ét-bens balanceøvelser stimulerer leddenes mekanoreceptorer, hvilket giver hurtigere korrektioner i ankler og knæ ved uventede stød på banen.</li>
</ol>

<hr />

<h2 id="opbygning-de-3-dele-af-fifa-11">Opbygning: De 3 dele af FIFA 11+</h2>

<p>FIFA 11+ bestå af 15 øvelser opdelt i tre påhinanden følgende dele. Programmet udføres på en bane med en række af kegler med ca. 5-6 meters afstand.</p>

<ul>
  <li><strong>Del 1</strong>: Løbeøvelser &amp; dynamisk mobilitet (6 min)</li>
  <li><strong>Del 2</strong>: Styrke, balance &amp; plyometri (10 min) — indeholder 3 progressionsniveauer</li>
  <li><strong>Del 3</strong>: Løbeøvelser med høj intensitet &amp; retningsskift (2-4 min)</li>
</ul>

<div id="wp-card-fifa11plus" class="wp-card">
  
  <!-- MODAL OVERLAY: FULL PROGRAM LIST -->
  <div id="wp-modal-fifa11plus" class="wp-modal-overlay">
    <div class="wp-modal-header">
      <div>
        <div class="wp-modal-title">📋 ⚽ FIFA 11+ Opvarmning</div>
        <p class="wp-modal-subtitle">Klik på en øvelse for at hoppe direkte dertil</p>
      </div>
      <button onclick="WorkoutPlayer_fifa11plus.toggleModal(false)" class="wp-close-btn" aria-label="Luk oversigt">✖</button>
    </div>
    <div id="wp-modal-list-fifa11plus" class="wp-modal-list"></div>
  </div>

  <!-- PLAYER HEADER -->
  <div class="wp-header">
    <div class="wp-header-info">
      <div class="wp-title">⚽ FIFA 11+ Opvarmning</div>
    </div>
    <div class="wp-header-actions">
      <button id="wp-mute-btn-fifa11plus" onclick="WorkoutPlayer_fifa11plus.toggleMute()" class="wp-btn-icon" title="Lyd til/fra">🔊</button>
    </div>
  </div>

  <!-- MAIN DISPLAY -->
  <div id="wp-display-box-fifa11plus" class="wp-display">
    
    <!-- VIEW 0: START SCREEN (SECTIONS OVERVIEW) -->
    <div id="wp-view-start-fifa11plus" class="wp-view">
      <div class="wp-top-meta">
        <span class="wp-category-tag" style="color: #38bdf8;">PROGRAMOVERSIGT</span>
        <span class="wp-counter">Startskærm</span>
      </div>
      <div class="wp-start-content">
        <div class="wp-start-subtitle">Vælg en sektion eller tryk "Kom i gang":</div>
        <div id="wp-sections-list-fifa11plus" class="wp-sections-list"></div>
      </div>
    </div>

    <!-- VIEW 1: SECTION INTRO CARD -->
    <div id="wp-view-section-fifa11plus" class="wp-view" style="display: none;">
      <div class="wp-top-meta">
        <span id="wp-sec-tag-fifa11plus" class="wp-category-tag">SEKTION</span>
        <span id="wp-sec-counter-fifa11plus" class="wp-counter">0 øvelser</span>
      </div>
      <div class="wp-center-content">
        <div class="wp-section-card-title" id="wp-sec-title-fifa11plus">Sektionsnavn</div>
        <div class="wp-status-msg">Gør dig klar til denne del af opvarmningen!</div>
      </div>
      <div class="wp-next-preview">
        Første øvelse: <span id="wp-sec-first-ex-fifa11plus" class="wp-next-name">-</span>
      </div>
    </div>

    <!-- VIEW 2: ACTIVE EXERCISE (CLEAN SINGLE-LINE LAYOUT) -->
    <div id="wp-view-active-fifa11plus" class="wp-view" style="display: none;">
      <div class="wp-top-meta">
        <span id="wp-active-cat-fifa11plus" class="wp-category-tag">Kategori</span>
        <span id="wp-active-counter-fifa11plus" class="wp-counter">Øvelse 1 af 1</span>
      </div>
      <div class="wp-exercise-wrap">
        <div id="wp-exercise-name-fifa11plus" class="wp-exercise-name">Øvelsesnavn</div>
      </div>
      <div class="wp-status-wrap">
        <div id="wp-status-msg-fifa11plus" class="wp-status-msg">&nbsp;</div>
      </div>
      <div class="wp-timer-box">
        <div id="wp-time-display-fifa11plus" class="wp-time-display">00:30</div>
      </div>
      <div class="wp-next-preview">
        Næste: <span id="wp-next-name-fifa11plus" class="wp-next-name">-</span>
      </div>
    </div>

    <!-- VIEW 3: FINISH SCREEN -->
    <div id="wp-view-finish-fifa11plus" class="wp-view" style="display: none;">
      <div class="wp-top-meta">
        <span class="wp-category-tag" style="color: #4ade80;">GENNEMFØRT</span>
        <span class="wp-counter">Slut</span>
      </div>
      <div class="wp-center-content">
        <div style="font-size: 2.2em; margin-bottom: 6px;">🎉</div>
        <div class="wp-exercise-name" style="color: #4ade80;">Programmet gennemført!</div>
        <div class="wp-status-msg" style="color: #cbd5e1; margin-top: 8px;">Godt gået! Du gennemførte hele programmet.</div>
      </div>
      <div class="wp-next-preview">Klar til træning eller kamp!</div>
    </div>

    <!-- TIMER SLIDER BAR -->
    <div class="wp-progress-bar-bg">
      <div id="wp-progress-fill-fifa11plus" class="wp-progress-fill"></div>
    </div>
  </div>

  <!-- PLAYER CONTROLS IN BOTTOM -->
  <div class="wp-controls">
    <button id="wp-play-btn-fifa11plus" onclick="WorkoutPlayer_fifa11plus.togglePlay()" class="wp-btn-ctrl wp-btn-main">
      <span id="wp-btn-icon-fifa11plus">🚀</span> <span id="wp-btn-text-fifa11plus">Kom i gang</span>
    </button>

    <button onclick="WorkoutPlayer_fifa11plus.next()" class="wp-btn-ctrl" title="Næste øvelse">⏭️ Næste</button>
    <button onclick="WorkoutPlayer_fifa11plus.resetCurrent()" class="wp-btn-ctrl" title="Genstart">🔄 Nulstil</button>
    <button onclick="WorkoutPlayer_fifa11plus.toggleModal(true)" class="wp-btn-ctrl wp-btn-program" title="Se hele programmet">📋 Program</button>
  </div>

</div>

<!-- CSS STYLES -->
<style>
.wp-card {
  position: relative;
  background: #ffffff;
  border: 3px solid #0284c7;
  border-radius: 14px;
  padding: 20px;
  margin: 25px 0;
  box-shadow: 0 10px 25px rgba(0,0,0,0.08);
  font-family: inherit;
  box-sizing: border-box;
  transition: border-color 0.4s ease;
}

.wp-modal-overlay {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #ffffff;
  border-radius: 12px;
  z-index: 100;
  padding: 18px;
  box-sizing: border-box;
  flex-direction: column;
}

.wp-modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 2px solid #e2e8f0;
  padding-bottom: 10px;
  margin-bottom: 10px;
}

.wp-modal-title {
  margin: 0;
  color: #0f172a;
  font-size: 1.1em;
  font-weight: 800;
}

.wp-modal-subtitle {
  margin: 2px 0 0 0;
  font-size: 0.8em;
  color: #64748b;
}

.wp-close-btn {
  background: #f1f5f9;
  border: 1px solid #cbd5e1;
  font-size: 1.1em;
  font-weight: bold;
  cursor: pointer;
  border-radius: 50%;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #0f172a;
  transition: all 0.2s;
}

.wp-close-btn:hover { background: #e2e8f0; }

.wp-modal-list {
  flex: 1;
  overflow-y: auto;
  padding-right: 4px;
}

.wp-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

.wp-title {
  font-size: 1.2em;
  font-weight: 800;
  color: #0f172a;
}

.wp-header-actions {
  display: flex;
  gap: 8px;
}

.wp-btn-icon {
  background: #f1f5f9;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  padding: 6px 12px;
  font-size: 0.9em;
  font-weight: 700;
  cursor: pointer;
  color: #334155;
  transition: all 0.2s;
}

.wp-btn-icon:hover { background: #e2e8f0; }

/* MAIN DISPLAY BOX */
.wp-display {
  background: #0f172a;
  color: #ffffff;
  border-radius: 12px;
  padding: 20px 18px 16px 18px;
  text-align: center;
  margin-bottom: 16px;
  position: relative;
  overflow: hidden;
  transition: background-color 0.4s ease;
  min-height: 400px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.wp-view {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.wp-top-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 24px;
}

.wp-category-tag {
  font-size: 0.8em;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  transition: color 0.3s ease;
}

.wp-counter {
  font-size: 0.78em;
  font-weight: 700;
  color: #94a3b8;
  background: rgba(255,255,255,0.1);
  padding: 2px 8px;
  border-radius: 12px;
}

/* START SCREEN SECTIONS LIST */
.wp-start-content {
  margin: 10px 0;
}

.wp-start-subtitle {
  font-size: 0.85em;
  color: #94a3b8;
  margin-bottom: 8px;
}

.wp-sections-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.wp-start-section-item {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 8px;
  padding: 8px 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.88em;
  color: #f1f5f9;
  cursor: pointer;
  transition: all 0.2s ease;
}

.wp-start-section-item:hover {
  background: rgba(255,255,255,0.15);
  border-color: rgba(255,255,255,0.25);
  transform: translateX(2px);
}

/* SECTION INTRO CARD */
.wp-center-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1;
  padding: 10px 0;
}

.wp-section-card-title {
  font-size: 1.5em;
  font-weight: 800;
  color: #f8fafc;
  margin-bottom: 6px;
}

/* EXERCISE NAME & SINGLE-LINE STATUS */
.wp-exercise-wrap {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 2px 0;
}

.wp-exercise-name {
  font-size: 1.6em;
  font-weight: 800;
  line-height: 1.2;
  color: #f8fafc;
}

.wp-status-wrap {
  min-height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 4px;
}

.wp-status-msg {
  font-size: 0.95em;
  font-weight: 700;
  color: #facc15;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.wp-timer-box {
  margin: 2px 0 6px 0;
}

.wp-time-display {
  font-size: 3.5em;
  font-weight: 900;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  letter-spacing: -1px;
  transition: color 0.3s ease;
}

.wp-next-preview {
  font-size: 0.82em;
  color: #94a3b8;
  border-top: 1px solid rgba(255,255,255,0.12);
  padding-top: 8px;
  margin-top: 6px;
  min-height: 22px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.wp-next-name {
  color: #cbd5e1;
  font-weight: 600;
}

/* PROGRESS BAR */
.wp-progress-bar-bg {
  width: 100%;
  background: rgba(255,255,255,0.15);
  height: 6px;
  border-radius: 3px;
  margin-top: 10px;
  overflow: hidden;
}

.wp-progress-fill {
  width: 0%;
  height: 100%;
  transition: width 1s linear, background-color 0.3s ease;
}

/* CONTROLS IN BOTTOM */
.wp-controls {
  display: flex;
  gap: 8px;
  justify-content: center;
  flex-wrap: wrap;
}

.wp-btn-ctrl {
  background: #f1f5f9;
  color: #334155;
  border: 1px solid #cbd5e1;
  padding: 10px 16px;
  border-radius: 8px;
  font-weight: 700;
  font-size: 0.9em;
  cursor: pointer;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.wp-btn-ctrl:hover {
  background: #e2e8f0;
}

.wp-btn-main {
  color: #ffffff;
  border: none;
  background-color: #16a34a;
}

.wp-btn-program {
  background: #e0f2fe;
  color: #0369a1;
  border-color: #bae6fd;
}

.wp-btn-program:hover {
  background: #bae6fd;
}

@media (max-width: 520px) {
  .wp-exercise-name { font-size: 1.3em; }
  .wp-time-display { font-size: 2.8em; }
  .wp-controls { gap: 6px; }
  .wp-btn-ctrl { padding: 9px 12px; font-size: 0.85em; }
}
</style>

<!-- CONTROLLER SCRIPT -->
<script>
const WorkoutPlayer_fifa11plus = (function() {
  const program = [{"cat":"1. Løb & Mobilitet","name":"Almindeligt løb frem & tilbage","type":"time","dur":30,"prep":5,"switchHalf":false},{"cat":"1. Løb & Mobilitet","name":"Hofte udad (Aktivering)","type":"time","dur":30,"prep":5,"switchHalf":true},{"cat":"1. Løb & Mobilitet","name":"Hofte indad (Aktivering)","type":"time","dur":30,"prep":5,"switchHalf":true},{"cat":"1. Løb & Mobilitet","name":"Cirkelløb om partner","type":"time","dur":30,"prep":5,"switchHalf":true},{"cat":"1. Løb & Mobilitet","name":"Skulderkontakt i luften","type":"time","dur":30,"prep":5,"switchHalf":true},{"cat":"1. Løb & Mobilitet","name":"Frem og tilbage (Sprint/Stop)","type":"time","dur":30,"prep":5,"switchHalf":false},{"cat":"2. Styrke & Balance","name":"Planken (Niveau 1-3)","type":"time","dur":30,"prep":10,"switchHalf":false},{"cat":"2. Styrke & Balance","name":"Sideplanke - Venstre side","type":"time","dur":30,"prep":5,"switchHalf":false},{"cat":"2. Styrke & Balance","name":"Sideplanke - Højre side","type":"time","dur":30,"prep":5,"switchHalf":false},{"cat":"2. Styrke & Balance","name":"Nordic Hamstrings","type":"reps","repsText":"3 - 12 kontrol-reps","prep":10},{"cat":"2. Styrke & Balance","name":"Ét-bens balance m. boldkast","type":"time","dur":60,"prep":5,"switchHalf":true},{"cat":"2. Styrke & Balance","name":"Squats m. tåløft / Lunges","type":"time","dur":30,"prep":5,"switchHalf":false},{"cat":"2. Styrke & Balance","name":"Vertikale hop / Bænkhop","type":"time","dur":30,"prep":5,"switchHalf":false},{"cat":"3. Høj Intensitet","name":"Stigningsløb (Strides)","type":"time","dur":30,"prep":10,"switchHalf":false},{"cat":"3. Høj Intensitet","name":"Hoppeløb (Bounding)","type":"time","dur":30,"prep":5,"switchHalf":false},{"cat":"3. Høj Intensitet","name":"Retningsskift (Plant & Cut)","type":"time","dur":30,"prep":5,"switchHalf":false}];
  const programKey = "fifa11plus";

  let playerState = 0;

  const sectionPalette = [
    { main: "#0284c7", accent: "#38bdf8", bgDark: "#0f172a" }, // Blå
    { main: "#d97706", accent: "#fbbf24", bgDark: "#1e1b18" }, // Amber/Orange
    { main: "#16a34a", accent: "#4ade80", bgDark: "#0f1f15" }, // Grøn
    { main: "#4f46e5", accent: "#a5b4fc", bgDark: "#13122b" }  // Indigo/Lilla
  ];

  const uniqueCategories = [];
  const categoryThemeMap = {};
  program.forEach(item => {
    if (item.cat && !uniqueCategories.includes(item.cat)) {
      uniqueCategories.push(item.cat);
      categoryThemeMap[item.cat] = sectionPalette[(uniqueCategories.length - 1) % sectionPalette.length];
    }
  });

  let currentIndex = 0;
  let isPaused = true;
  let isPrep = false;
  let timeRemaining = program[0] ? (program[0].dur || 30) : 30;
  let prepRemaining = 0;
  let elapsedRepsTime = 0;
  let isMuted = false;
  let timerInterval = null;
  let halfwayBeepPlayed = false;
  let audioCtx = null;

  function initAudio() {
    if (!audioCtx) {
      const AudioContext = window.AudioContext || window.webkitAudioContext;
      if (AudioContext) audioCtx = new AudioContext();
    }
    if (audioCtx && audioCtx.state === 'suspended') {
      audioCtx.resume();
    }
  }

  function playSound(freq, type = 'sine', duration = 0.15, volume = 0.3) {
    if (isMuted) return;
    initAudio();
    if (!audioCtx) return;

    try {
      const osc = audioCtx.createOscillator();
      const gain = audioCtx.createGain();
      osc.type = type;
      osc.frequency.setValueAtTime(freq, audioCtx.currentTime);
      gain.gain.setValueAtTime(volume, audioCtx.currentTime);
      gain.gain.exponentialRampToValueAtTime(0.00001, audioCtx.currentTime + duration);

      osc.connect(gain);
      gain.connect(audioCtx.destination);

      osc.start();
      osc.stop(audioCtx.currentTime + duration);
    } catch (e) {
      console.warn("Audio error:", e);
    }
  }

  function playBeepStart() { playSound(880, 'sine', 0.25, 0.4); }
  function playBeepCount() { playSound(440, 'sine', 0.08, 0.2); }
  function playBeepHalf() { 
    playSound(600, 'sine', 0.12, 0.3);
    setTimeout(() => playSound(800, 'sine', 0.18, 0.3), 140);
  }
  function playSectionChime() {
    playSound(523, 'sine', 0.15, 0.3);
    setTimeout(() => playSound(659, 'sine', 0.15, 0.3), 150);
    setTimeout(() => playSound(783, 'sine', 0.25, 0.3), 300);
  }

  function formatTime(seconds) {
    const m = Math.floor(seconds / 60);
    const s = seconds % 60;
    return `${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;
  }

  function getCategoryStats(index) {
    const currentCat = program[index] ? program[index].cat : "";
    const inCategory = program.filter(item => item.cat === currentCat);
    let catIndex = 0;
    let count = 0;
    for (let i = 0; i < program.length; i++) {
      if (program[i].cat === currentCat) {
        count++;
        if (i === index) catIndex = count;
      }
    }
    return { catIndex, catTotal: inCategory.length };
  }

  function showView(viewId) {
    document.getElementById(`wp-view-start-${programKey}`).style.display = viewId === 0 ? 'flex' : 'none';
    document.getElementById(`wp-view-section-${programKey}`).style.display = viewId === 1 ? 'flex' : 'none';
    document.getElementById(`wp-view-active-${programKey}`).style.display = viewId === 2 ? 'flex' : 'none';
    document.getElementById(`wp-view-finish-${programKey}`).style.display = viewId === 3 ? 'flex' : 'none';
  }

  function updateUI() {
    const cardEl = document.getElementById(`wp-card-${programKey}`);
    const displayBox = document.getElementById(`wp-display-box-${programKey}`);
    const playIcon = document.getElementById(`wp-btn-icon-${programKey}`);
    const playText = document.getElementById(`wp-btn-text-${programKey}`);
    const playBtn = document.getElementById(`wp-play-btn-${programKey}`);
    const progressFill = document.getElementById(`wp-progress-fill-${programKey}`);

    showView(playerState);

    // STATE 0: STARTSKÆRM
    if (playerState === 0) {
      const defaultTheme = sectionPalette[0];
      cardEl.style.borderColor = defaultTheme.main;
      displayBox.style.backgroundColor = defaultTheme.bgDark;

      const listContainer = document.getElementById(`wp-sections-list-${programKey}`);
      let summaryHtml = '';
      uniqueCategories.forEach((cat, idx) => {
        const catItems = program.filter(item => item.cat === cat);
        summaryHtml += `
          <div class="wp-start-section-item" onclick="WorkoutPlayer_${programKey}.startAtCategory('${cat}')">
            <span><strong>${cat}</strong></span>
            <span style="opacity: 0.8; font-size: 0.85em;">${catItems.length} øvelser ➔</span>
          </div>`;
      });
      listContainer.innerHTML = summaryHtml;

      playIcon.innerText = "🚀";
      playText.innerText = "Kom i gang";
      playBtn.style.backgroundColor = "#16a34a";
      progressFill.style.width = "0%";
      renderModalList();
      return;
    }

    // STATE 3: SLUTSKÆRM
    if (playerState === 3) {
      const finishTheme = sectionPalette[2];
      cardEl.style.borderColor = finishTheme.main;
      displayBox.style.backgroundColor = finishTheme.bgDark;

      playIcon.innerText = "🔄";
      playText.innerText = "Start forfra";
      playBtn.style.backgroundColor = "#16a34a";
      progressFill.style.width = "100%";
      progressFill.style.backgroundColor = "#4ade80";
      renderModalList();
      return;
    }

    const ex = program[currentIndex];
    const nextEx = program[currentIndex + 1];
    if (!ex) return;

    const theme = categoryThemeMap[ex.cat] || sectionPalette[0];
    cardEl.style.borderColor = theme.main;
    displayBox.style.backgroundColor = theme.bgDark;
    progressFill.style.backgroundColor = theme.accent;

    const { catIndex, catTotal } = getCategoryStats(currentIndex);

    // STATE 1: SEKTIONSKORT
    if (playerState === 1) {
      const secTag = document.getElementById(`wp-sec-tag-${programKey}`);
      secTag.style.color = theme.accent;
      secTag.innerText = `SEKTION ${uniqueCategories.indexOf(ex.cat) + 1} AF ${uniqueCategories.length}`;
      
      document.getElementById(`wp-sec-counter-${programKey}`).innerText = `${catTotal} øvelser`;
      document.getElementById(`wp-sec-title-${programKey}`).innerText = ex.cat;
      document.getElementById(`wp-sec-first-ex-${programKey}`).innerText = `${ex.name}`;

      playIcon.innerText = "▶";
      playText.innerText = "Start";
      playBtn.style.backgroundColor = theme.main;
      progressFill.style.width = "0%";
      renderModalList();
      return;
    }

    // STATE 2: AKTIV ØVELSE (CLEAN SINGLE-LINE STATUS)
    const activeCatTag = document.getElementById(`wp-active-cat-${programKey}`);
    activeCatTag.innerText = ex.cat;
    activeCatTag.style.color = theme.accent;

    document.getElementById(`wp-active-counter-${programKey}`).innerText = `Øvelse ${catIndex} af ${catTotal}`;
    document.getElementById(`wp-exercise-name-${programKey}`).innerText = ex.name;

    const statusEl = document.getElementById(`wp-status-msg-${programKey}`);
    const timeDisplay = document.getElementById(`wp-time-display-${programKey}`);
    timeDisplay.style.color = theme.accent;

    if (isPrep) {
      timeDisplay.innerText = formatTime(prepRemaining);
      statusEl.innerHTML = "⏳ Gør dig klar til start!";
      
      const totalPrep = ex.prep || 5;
      const pct = (prepRemaining / totalPrep) * 100;
      progressFill.style.width = `${pct}%`;
      progressFill.style.backgroundColor = "#d97706";
    } else {
      if (ex.type === 'reps') {
        timeDisplay.innerText = formatTime(elapsedRepsTime);
        statusEl.innerHTML = `💪 ${ex.repsText || 'Udfør gentagelserne'} — Tryk Næste når færdig`;
        progressFill.style.width = "100%";
      } else {
        timeDisplay.innerText = formatTime(timeRemaining);
        const totalDur = ex.dur || 30;
        const halfTime = Math.floor(totalDur / 2);
        
        if (ex.switchHalf && timeRemaining <= halfTime) {
          statusEl.innerHTML = "↔️ Skift side / retning nu!";
        } else if (ex.switchHalf) {
          statusEl.innerHTML = `(Skiftes ved ${halfTime} sek)`;
        } else {
          statusEl.innerHTML = "&nbsp;";
        }

        const pct = Math.max(0, Math.min(100, (timeRemaining / totalDur) * 100));
        progressFill.style.width = `${pct}%`;
      }
    }

    if (isPaused) {
      playIcon.innerText = "▶";
      playText.innerText = "Fortsæt";
      playBtn.style.backgroundColor = "#16a34a";
    } else {
      playIcon.innerText = "⏸";
      playText.innerText = "Pause";
      playBtn.style.backgroundColor = "#dc2626";
    }

    document.getElementById(`wp-next-name-${programKey}`).innerText = nextEx ? `${nextEx.name}` : "Slut på opvarmningen!";
    renderModalList();
  }

  function tick() {
    if (isPaused || playerState !== 2) return;

    const ex = program[currentIndex];

    if (isPrep) {
      prepRemaining--;
      playBeepCount();
      if (prepRemaining <= 0) {
        isPrep = false;
        playBeepStart();
      }
      updateUI();
      return;
    }

    if (ex.type === 'reps') {
      elapsedRepsTime++;
      updateUI();
    } else {
      timeRemaining--;

      const halfTime = Math.floor((ex.dur || 30) / 2);
      if (ex.switchHalf && timeRemaining === halfTime && !halfwayBeepPlayed) {
        playBeepHalf();
        halfwayBeepPlayed = true;
      }

      if (timeRemaining <= 3 && timeRemaining > 0) {
        playBeepCount();
      }

      if (timeRemaining <= 0) {
        playBeepStart();
        nextExercise();
      } else {
        updateUI();
      }
    }
  }

  function startTimer() {
    if (timerInterval) clearInterval(timerInterval);
    timerInterval = setInterval(tick, 1000);
  }

  function togglePlay() {
    initAudio();

    if (playerState === 0) {
      playerState = 1;
      currentIndex = 0;
      updateUI();
      return;
    }

    if (playerState === 1) {
      playerState = 2;
      setupExercise(currentIndex);
      isPaused = false;
      startTimer();
      updateUI();
      return;
    }

    if (playerState === 3) {
      playerState = 0;
      currentIndex = 0;
      updateUI();
      return;
    }

    isPaused = !isPaused;
    if (!isPaused) {
      startTimer();
    } else {
      clearInterval(timerInterval);
    }
    updateUI();
  }

  function startAtCategory(catName) {
    initAudio();
    const foundIdx = program.findIndex(item => item.cat === catName);
    if (foundIdx !== -1) {
      currentIndex = foundIdx;
      playerState = 1;
      updateUI();
    }
  }

  function setupExercise(index) {
    const ex = program[index];
    halfwayBeepPlayed = false;
    elapsedRepsTime = 0;
    timeRemaining = ex.dur || 30;

    if (ex.prep && ex.prep > 0) {
      isPrep = true;
      prepRemaining = ex.prep;
    } else {
      isPrep = false;
    }
  }

  function nextExercise() {
    if (currentIndex < program.length - 1) {
      const currentCat = program[currentIndex].cat;
      const nextEx = program[currentIndex + 1];

      currentIndex++;
      setupExercise(currentIndex);

      if (currentCat !== nextEx.cat) {
        playerState = 1;
        isPaused = true;
        clearInterval(timerInterval);
        playSectionChime();
      }

      updateUI();
    } else {
      isPaused = true;
      playerState = 3;
      clearInterval(timerInterval);
      playSectionChime();
      updateUI();
    }
  }

  function prevExercise() {
    if (currentIndex > 0) {
      currentIndex--;
      playerState = 2;
      setupExercise(currentIndex);
      updateUI();
    } else {
      playerState = 0;
      updateUI();
    }
  }

  function resetCurrent() {
    if (playerState === 0) return;
    setupExercise(currentIndex);
    updateUI();
  }

  function jumpToExercise(index) {
    if (index >= 0 && index < program.length) {
      currentIndex = index;
      playerState = 2;
      setupExercise(currentIndex);
      toggleModal(false);
      updateUI();
    }
  }

  function toggleMute() {
    isMuted = !isMuted;
    document.getElementById(`wp-mute-btn-${programKey}`).innerText = isMuted ? "🔇" : "🔊";
  }

  function toggleModal(show) {
    document.getElementById(`wp-modal-${programKey}`).style.display = show ? "flex" : "none";
    if (show) renderModalList();
  }

  function renderModalList() {
    const container = document.getElementById(`wp-modal-list-${programKey}`);
    if (!container) return;

    let html = "";
    let lastCat = "";

    program.forEach((item, idx) => {
      const theme = categoryThemeMap[item.cat] || sectionPalette[0];

      if (item.cat !== lastCat) {
        lastCat = item.cat;
        html += `<div style="font-weight: 800; color: ${theme.main}; margin-top: 12px; margin-bottom: 6px; font-size: 0.85em; text-transform: uppercase; letter-spacing:0.5px;">${item.cat}</div>`;
      }

      const isActive = idx === currentIndex && playerState === 2;
      const bg = isActive ? theme.main : "#ffffff";
      const textColor = isActive ? "#ffffff" : "#334155";
      const border = isActive ? `2px solid ${theme.main}` : "1px solid #cbd5e1";

      html += `
        <div onclick="WorkoutPlayer_${programKey}.jump(${idx})" class="wp-modal-item" style="background:${bg}; color:${textColor}; border:${border}; border-radius: 8px; padding: 10px 12px; margin-bottom: 6px; display: flex; justify-content: space-between; align-items: center; cursor: pointer; font-size: 0.9em; transition: all 0.15s;">
          <div>
            <strong>${idx + 1}. ${item.name}</strong>
            ${item.type === 'reps' ? `<span style="font-size: 0.82em; opacity: 0.85; margin-left: 6px;">(${item.repsText || 'Reps'})</span>` : ''}
            ${item.switchHalf ? `<span style="font-size: 0.82em; opacity: 0.85; margin-left: 6px;">(Skift v. halvvejs)</span>` : ''}
          </div>
          <div style="font-size: 0.82em; font-weight: bold; opacity: 0.9;">
            ${isActive ? '👉 AKTIV' : (item.type === 'reps' ? 'Reps' : (item.dur || 30) + 's')}
          </div>
        </div>
      `;
    });

    container.innerHTML = html;
  }

  document.addEventListener("DOMContentLoaded", function() {
    playerState = 0;
    updateUI();
  });

  return {
    togglePlay,
    next: nextExercise,
    prev: prevExercise,
    resetCurrent,
    jump: jumpToExercise,
    startAtCategory,
    toggleMute,
    toggleModal
  };
})();
</script>

<hr />

<h3 id="del-1-løbeøvelser-i-roligt-tempo-6-minutter">Del 1: Løbeøvelser i roligt tempo (6 minutter)</h3>

<p>Udføres i par langs keglerækken. 2 ture af hver øvelse:</p>

<ol>
  <li><strong>Løb lige frem:</strong> Roligt jog ud og hjem. Fart: ca. 50 % af max.</li>
  <li><strong>Hofte udad (Aktivering):</strong> Løb frem, stop ved keglen, løft knæet op og roter hoften udad. Skift ben ved næste kegle.</li>
  <li><strong>Hofte indad (Aktivering):</strong> Løb frem, stop ved keglen, løft knæet op fra siden og roter hoften indad.</li>
  <li><strong>Cirkelløb om partner:</strong> Løb frem parvis, skrid sidelæns i en cirkel rundt om hinanden ved keglen og løb videre.</li>
  <li><strong>Skulderkontakt:</strong> Løb frem parvis, hop sidelæns op i luften ved keglen og stød skuldrene let sammen i luften. Land med bløde, bøjede knæ.</li>
  <li><strong>Frem og tilbage (Sprint/Stop):</strong> Løb hurtigt frem til næste kegle, brems ned og løb baglæns tilbage til den forrige.</li>
</ol>

<hr />

<h3 id="del-2-styrke-plyometri-og-stabilitet-10-minutter">Del 2: Styrke, Plyometri og Stabilitet (10 minutter)</h3>

<p>Dette er programmets kerne. Hver øvelse har <strong>3 progressionsniveauer (Niveau 1, 2 og 3)</strong>. Holdet starter på Niveau 1 og avancerer først til næste niveau efter 3-4 uger, når øvelserne udføres med perfekt teknik.</p>

<p><strong>7. Planken (Core-stabilitet)</strong></p>
<ul>
  <li><strong>Niveau 1:</strong> Statisk planke på underarme (3 sæt á 20–30 sek).</li>
  <li><strong>Niveau 2:</strong> Planke med skiftevise benløft (3 sæt á 20–30 sek).</li>
  <li><strong>Niveau 3:</strong> Planke med benløft og hold i 2 sekunder (3 sæt á 20–30 sek).</li>
</ul>

<p><strong>8. Sideplanke (Skrå mavemuskler &amp; bækken)</strong></p>
<ul>
  <li><strong>Niveau 1:</strong> Statisk sideplanke på underarm og nederste knæ (3 sæt á 20–30 sek pr. side).</li>
  <li><strong>Niveau 2:</strong> Sideplanke på underarm og strakte ben (3 sæt á 20–30 sek pr. side).</li>
  <li><strong>Niveau 3:</strong> Sideplanke m. strakte ben og kontrollerede sænk/løft af hoften (3 sæt á 20–30 sek pr. side).</li>
</ul>

<p><strong>9. Nordic Hamstrings (Excentrisk baglårsstyrke)</strong>
<em>Partneren holder løfterens ankler mod jorden. Løfteren sænker overkroppen langsomt fremad med strakte hofter og modstår tyngdekraften så længe som muligt med baglårene.</em></p>
<ul>
  <li><strong>Niveau 1:</strong> 1 sæt á 3–5 rep.</li>
  <li><strong>Niveau 2:</strong> 1 sæt á 7–10 rep.</li>
  <li><strong>Niveau 3:</strong> 1 sæt á 12–15 rep.</li>
</ul>

<p><strong>10. Ét-bens balance (Proprioception)</strong></p>
<ul>
  <li><strong>Niveau 1:</strong> Stå på ét ben og kaste bold med en partner (2 sæt á 30 sek pr. ben).</li>
  <li><strong>Niveau 2:</strong> Stå på ét ben og lade partneren skubbe let til skuldrene (2 sæt á 30 sek pr. ben).</li>
  <li><strong>Niveau 3:</strong> Stå på ét ben med lukkede øjne eller udføre små squat-bevægelser (2 sæt á 30 sek pr. ben).</li>
</ul>

<p><strong>11. Squat m. tåløft (Underkropsstyrke)</strong></p>
<ul>
  <li><strong>Niveau 1:</strong> Kontrollerede squats m. tåløft i toppen (2 sæt á 30 sek).</li>
  <li><strong>Niveau 2:</strong> Walking lunges frem over banen (2 sæt á 30 sek).</li>
  <li><strong>Niveau 3:</strong> Ét-bens squats / Pistol squat forberedelse (2 sæt á 30 sek pr. ben).</li>
</ul>

<p><strong>12. Vertikale hop (Plyometri &amp; Landingsmekanik)</strong>
<em>Fokus er altid på <strong>bløde landinger</strong> med bøjede hofter og knæ samt knæ-over-tå linje.</em></p>
<ul>
  <li><strong>Niveau 1:</strong> Lette bænk- eller linjehop frem/tilbage (2 sæt á 30 sek).</li>
  <li><strong>Niveau 2:</strong> Tuck jumps (hop m. knæ mod bryst) (2 sæt á 30 sek).</li>
  <li><strong>Niveau 3:</strong> Ét-bens hop frem og tilbage over en linje (2 sæt á 30 sek pr. ben).</li>
</ul>

<hr />

<h3 id="del-3-løbeøvelser-med-høj-intensitet-24-minutter">Del 3: Løbeøvelser med høj intensitet (2–4 minutter)</h3>

<p>Udføres til sidst for at sikre den afgørende <em>Potentiation</em> (PAPE) af nervesystemet før træning eller kamp:</p>

<ol>
  <li><strong>Stigningsløb:</strong> 2 ture á 40 meter med gradvis acceleration op til 75–80 % af max.</li>
  <li><strong>Hoppeløb (Bounding):</strong> 2 ture m. høje, eksplosive afsæt frem over banen med fokus på bløde landinger.</li>
  <li><strong>Retningsskift (Plant &amp; Cut):</strong> 2 ture med hurtig acceleration frem til en kegle, hård opbremsning, retningsskift i 45 graders vinkel og sprint videre.</li>
</ol>

<hr />

<h2 id="retningslinjer-for-træneren-fejl-du-skal-korrigere">Retningslinjer for træneren: Fejl du skal korrigere</h2>

<p>Det er ikke nok blot at “gennemføre” øvelserne. Den skadesforebyggende effekt afhænger direkte af <strong>bevægelseskvaliteten</strong> (Steffen et al., 2013).</p>

<p>Som træner eller fysioterapeut skal du holde øje med tre klassiske fejl:</p>
<ul>
  <li>❌ <strong>Valgus-knæ:</strong> Knæene falder ind mod hinanden ved landinger eller squats. <em>Korrektion: Råb “Knæ over tæer!”.</em></li>
  <li>❌ <strong>Stive landinger:</strong> Spilleren lander på strakte ben med høje dunk i jorden. <em>Korrektion: “Land lydløst som en kat!”.</em></li>
  <li>❌ <strong>Bækkenfald:</strong> Hoften dykker til siden under sideplanke eller ét-bens balance. <em>Korrektion: “Hold hoften stiv som et bræt!”.</em></li>
</ul>

<hr />

<h2 id="ofte-stillede-spørgsmål-om-fifa-11">Ofte stillede spørgsmål om FIFA 11+</h2>

<details class="faq">
<summary><h3>Hvor ofte skal FIFA 11+ udføres for at have effekt?</h3></summary>
<p>Programmet bør udføres mindst 2–3 gange om ugen som erstatning for holdets normale opvarmning. Studier viser, at kontinuitet gennem hele sæsonen er afgørende for den skadesforebyggende effekt (Soligard et al., 2008).</p>

</details>

<details class="faq">
<summary><h3>Hvor lang tid tager FIFA 11+ at gennemføre?</h3></summary>
<p>Programmet tager ca. 20 minutter i sin helhed. Inden kampe kan Del 2 (styrke og balance) udelades eller afkortet, så opvarmningen tager ca. 10–12 minutter.</p>

</details>

<details class="faq">
<summary><h3>Kan FIFA 11+ bruges i andre idrætter end fodbold?</h3></summary>
<p>Ja. Selvom programmet er udviklet af FIFAs medicinske forskningscenter (F-MARC), har studier vist markant skadesreduktion i både håndbold, basket og andre holdsportsgrene med hurtige retningsskift og hop (Barengo et al., 2014).</p>

</details>

<script type="application/ld+json">
    {
        "@context":"https://schema.org",
        "@type":"FAQPage",
        "mainEntity":
            [{"@type":"Question","name":"Hvor ofte skal FIFA 11+ udføres for at have effekt?","acceptedAnswer":{"@type":"Answer","text":"Programmet bør udføres mindst 2–3 gange om ugen som erstatning for holdets normale opvarmning. Studier viser, at kontinuitet gennem hele sæsonen er afgørende for den skadesforebyggende effekt (Soligard et al., 2008).\n"}},{"@type":"Question","name":"Hvor lang tid tager FIFA 11+ at gennemføre?","acceptedAnswer":{"@type":"Answer","text":"Programmet tager ca. 20 minutter i sin helhed. Inden kampe kan Del 2 (styrke og balance) udelades eller afkortet, så opvarmningen tager ca. 10–12 minutter.\n"}},{"@type":"Question","name":"Kan FIFA 11+ bruges i andre idrætter end fodbold?","acceptedAnswer":{"@type":"Answer","text":"Ja. Selvom programmet er udviklet af FIFAs medicinske forskningscenter (F-MARC), har studier vist markant skadesreduktion i både håndbold, basket og andre holdsportsgrene med hurtige retningsskift og hop (Barengo et al., 2014).\n"}}]
    }
</script>

<hr />

<details class="references">
  <summary><h2 id="references">Referencer og videnskabeligt grundlag</h2></summary>

  <ul>
    <li>Bahr, R., Clarsen, B., &amp; Ekstrand, J. (2015). <em>Why we should focus on injury prevention in sports</em>. British Journal of Sports Medicine, 49(14), 929-930.</li>
    <li>Barengo, N. C., et al. (2014). <em>The impact of the FIFA 11+ training program on injury prevention in football players: a systematic review</em>. International Journal of Environmental Research and Public Health, 11(11), 11986-12000.</li>
    <li>Soligard, T., et al. (2008). <em>Comprehensive warm-up programme to prevent injuries in young female footballers: cluster randomised controlled trial</em>. BMJ, 337, a2469.</li>
    <li>Steffen, K., et al. (2013). <em>High adherence to a comprehensive warm-up programme reduces injury risk in youth football: a cluster randomised trial</em>. British Journal of Sports Medicine, 47(12), 794-802.</li>
    <li>Thorborg, K., et al. (2017). <em>Clinical Orthopaedic Rehabilitation: A Team Approach</em>. Elsevier.</li>
  </ul>
</details>]]></content><author><name>Lars Olesen</name></author><category term="Træning" /><category term="opvarmning" /><category term="skadesforebyggelse" /><category term="fodbold" /><category term="fysiologi" /><summary type="html"><![CDATA[Den komplette guide til FIFA 11+. Se alle øvelser, progressionsniveauer og den videnskabelige evidens for 30-50% skadesreduktion i holdsport.]]></summary></entry><entry><title type="html">Online Intervaltimer – Gratis træningsur og online stopur</title><link href="https://www.motionsplan.dk/intervaltimer/" rel="alternate" type="text/html" title="Online Intervaltimer – Gratis træningsur og online stopur" /><published>2026-08-18T00:00:00+00:00</published><updated>2026-08-18T23:15:00+00:00</updated><id>https://www.motionsplan.dk/intervaltimer</id><content type="html" xml:base="https://www.motionsplan.dk/intervaltimer/"><![CDATA[<p>Velkommen til vores <strong>online intervaltimer</strong>. Dette træningsur er udviklet til at give dig fuld visuel kontrol over dine intervalpas – direkte i browseren på din telefon, iPad eller computer.</p>

<p>Nedenfor kan du starte timeren med det samme, skifte mellem videnskabeligt dokumenterede trænings-presets eller opbygge dine egne tilpassede <a href="/intervaltraening/">intervaltræningspas</a>.</p>

<hr />

<h2 id="timer">Online Intervaltimer</h2>

<div id="interval-timer-container" class="timer-state-prep">
  <!-- Integrated Top Control Bar -->
  <div class="timer-top-bar">
    <button id="btn-settings-toggle" class="btn-top-icon" title="Indstillinger" aria-label="Indstillinger">
      <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="3" /><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z" /></svg>
    </button>

    <div id="timer-preset-badge" class="timer-preset-badge" title="Klik for at skifte skabelon">
      <span id="preset-badge-text">Ægte Tabata</span>
      <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg>
    </div>

    <button id="btn-fullscreen" class="btn-top-icon" title="Fuld skærm" aria-label="Fuld skærm">
      <svg id="icon-fs-enter" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3" /></svg>
      <svg id="icon-fs-exit" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" style="display:none;"><path d="M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3" /></svg>
    </button>
  </div>

  <!-- Phase Header -->
  <div class="timer-header">
    <div id="timer-phase-title">KLARGØRING</div>
    <div id="timer-phase-note">Gør dig klar...</div>
  </div>

  <!-- Main Time Display -->
  <div class="timer-display">
    <span id="timer-time">00:10</span>
  </div>

  <!-- Harmonious Visualizer Bar / Graph -->
  <div id="timer-visualizer" class="timer-visualizer" title="Træningsforløb"></div>

  <!-- Smooth Interval Progress Bar -->
  <div class="timer-progress-container">
    <div id="timer-progress-bar" class="timer-progress-bar"></div>
  </div>

  <!-- Bottom Status Bar -->
  <div class="timer-stats">
    <div class="stat-box">
      <span class="stat-label">GÅET TID</span>
      <span id="stat-elapsed" class="stat-value">00:00</span>
    </div>
    <div class="stat-box">
      <span class="stat-label">INTERVAL</span>
      <span id="stat-interval" class="stat-value">1 / 8</span>
    </div>
    <div class="stat-box">
      <span class="stat-label">SERIE</span>
      <span id="stat-series" class="stat-value">1 / 1</span>
    </div>
    <div class="stat-box">
      <span class="stat-label">TILBAGE</span>
      <span id="stat-remaining" class="stat-value">04:10</span>
    </div>
  </div>

  <!-- Main Control Bar -->
  <div class="timer-controls">
    <button id="btn-reset" title="Nulstil" aria-label="Nulstil">
      <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8" /><path d="M3 3v5h5" /></svg>
    </button>
    <button id="btn-play" class="btn-primary" title="Start / Pause">START</button>
    <button id="btn-sound" title="Lyd til/fra" class="sound-active">
      <svg id="icon-sound-on" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5" /><path d="M19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.07" /></svg>
    </button>
  </div>

  <!-- Settings Drawer / Modal -->
  <div id="timer-settings-panel" class="settings-hidden">
    <h3>Indstil Intervaltimer</h3>
    
    <div class="form-group">
      <label for="preset-select">Vælg skabelon:</label>
      <select id="preset-select">
        <option value="tabata" selected="">Ægte Tabata (20s / 10s x 8)</option>
        <option value="10-20-30">10-20-30 Løbeintervaller (5 min runder)</option>
        <option value="billat">Billat 30/30 (30s vVO2max / 30s jog x 15)</option>
        <option value="15-15">15/15 Intervaller (15s / 15s x 10)</option>
        <option value="30-30">30/30 Intervaller (30s / 30s x 10)</option>
        <option value="4x4">4x4 Norsk Tærskel (4m / 3m x 4)</option>
        <option value="sprint8">Sprint 8 SIT (30s / 90s x 8)</option>
        <option value="custom">Anderledes / Brugerdefineret</option>
      </select>
    </div>

    <!-- 10-20-30 Info & Special Settings Box -->
    <div id="box-10-20-30-info" class="preset-info-box" style="display:none;">
      <div class="info-title">10-20-30 Rytme (Pr. interval):</div>
      <div class="info-steps">
        <span class="step-pill low">30s Roligt</span> → 
        <span class="step-pill med">20s Moderat</span> → 
        <span class="step-pill high">10s SPURT!</span>
      </div>
      <div class="form-row" style="margin-top: 12px;">
        <div class="form-group">
          <label for="cfg-102030-reps">Intervaller pr. serie:</label>
          <input type="number" id="cfg-102030-reps" value="5" min="1" />
        </div>
        <div class="form-group">
          <label for="cfg-102030-series">Antal serier:</label>
          <input type="number" id="cfg-102030-series" value="3" min="1" />
        </div>
      </div>
      <div class="form-group">
        <label for="cfg-102030-series-rest">Seriepause (sek):</label>
        <input type="number" id="cfg-102030-series-rest" value="120" min="0" />
      </div>
    </div>

    <!-- Standard Custom Fields -->
    <div id="custom-fields">
      <div class="form-row">
        <div class="form-group">
          <label for="cfg-prep">Klargøring (sek):</label>
          <input type="number" id="cfg-prep" value="10" min="0" />
        </div>
        <div class="form-group">
          <label for="cfg-work">Arbejdstid (sek):</label>
          <input type="number" id="cfg-work" value="20" min="1" />
        </div>
      </div>

      <div class="form-row">
        <div class="form-group">
          <label for="cfg-rest">Intervalpause (sek):</label>
          <input type="number" id="cfg-rest" value="10" min="0" />
        </div>
        <div class="form-group">
          <label for="cfg-reps">Intervaller pr. serie:</label>
          <input type="number" id="cfg-reps" value="8" min="1" />
        </div>
      </div>

      <div class="form-row">
        <div class="form-group">
          <label for="cfg-series">Antal serier (sæt):</label>
          <input type="number" id="cfg-series" value="1" min="1" />
        </div>
        <div class="form-group">
          <label for="cfg-series-rest">Seriepause (sek):</label>
          <input type="number" id="cfg-series-rest" value="120" min="0" />
        </div>
      </div>

      <div class="form-group">
        <label for="cfg-note-work">Instruks til Arbejde:</label>
        <input type="text" id="cfg-note-work" value="ALL-OUT MAP! Fuld fart." />
      </div>
      <div class="form-group">
        <label for="cfg-note-rest">Instruks til Pause:</label>
        <input type="text" id="cfg-note-rest" value="Pust ud og gør klar." />
      </div>
    </div>

    <button id="btn-save-settings" class="btn-save">Gem &amp; Nulstil Timer</button>
  </div>
</div>

<style>
  #interval-timer-container {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    width: 100%;
    max-width: 650px;
    margin: 20px auto;
    border-radius: 16px;
    padding: 20px 24px 24px 24px;
    box-sizing: border-box;
    color: #ffffff;
    box-shadow: 0 10px 25px rgba(0,0,0,0.25);
    transition: background-color 0.4s ease;
    user-select: none;
    position: relative;
    overflow: hidden;
  }

  /* Top Control Bar */
  .timer-top-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
  }

  .btn-top-icon {
    background: rgba(255, 255, 255, 0.2);
    border: none;
    color: white;
    padding: 8px;
    border-radius: 8px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
    z-index: 5;
  }

  .btn-top-icon:hover {
    background: rgba(255, 255, 255, 0.35);
    transform: scale(1.05);
  }

  .timer-preset-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(0, 0, 0, 0.25);
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.5px;
    cursor: pointer;
    backdrop-filter: blur(4px);
    transition: all 0.2s ease;
    border: 1px solid rgba(255, 255, 255, 0.2);
  }

  .timer-preset-badge:hover {
    background: rgba(0, 0, 0, 0.4);
    transform: translateY(-1px);
  }

  /* Color Themes per State */
  .timer-state-prep { background-color: #d97706; } /* Amber */
  .timer-state-work { background-color: #16a34a; } /* Green */
  .timer-state-work-med { background-color: #0284c7; } /* Sky Blue for 10-20-30 */
  .timer-state-work-low { background-color: #4b5563; } /* Slate for 10-20-30 */
  .timer-state-rest { background-color: #dc2626; } /* Red */
  .timer-state-series-rest { background-color: #2563eb; } /* Royal Blue */
  .timer-state-done { background-color: #0f172a; } /* Dark Slate */

  .timer-header {
    text-align: center;
    margin-bottom: 8px;
  }

  #timer-phase-title {
    font-size: 1.8rem;
    font-weight: 900;
    letter-spacing: 2px;
    text-transform: uppercase;
    text-shadow: 0 2px 4px rgba(0,0,0,0.2);
  }

  #timer-phase-note {
    font-size: 1.1rem;
    opacity: 0.9;
    margin-top: 4px;
    font-weight: 500;
    min-height: 1.4em;
  }

  .timer-display {
    text-align: center;
    margin: 5px 0;
  }

  #timer-time {
    font-size: 6.5rem;
    font-weight: 800;
    font-family: "SF Mono", "Courier New", Courier, monospace;
    line-height: 1;
    letter-spacing: -2px;
    text-shadow: 0 4px 12px rgba(0,0,0,0.3);
  }

  /* Visualizer Strip */
  .timer-visualizer {
    display: flex;
    align-items: flex-end;
    gap: 4px;
    height: 44px;
    background: rgba(0, 0, 0, 0.2);
    border-radius: 10px 10px 0 0;
    padding: 8px 10px 4px 10px;
    margin: 15px 0 0 0;
    backdrop-filter: blur(5px);
    overflow-x: auto;
    box-sizing: border-box;
  }

  .viz-bar {
    flex: 1;
    min-width: 4px;
    border-radius: 3px 3px 1px 1px;
    opacity: 0.6;
    transition: all 0.25s ease;
    background: rgba(255, 255, 255, 0.4);
  }

  .viz-timer-state-work { height: 100%; background: rgba(255, 255, 255, 0.95); }
  .viz-timer-state-work-med { height: 70%; background: rgba(255, 255, 255, 0.75); }
  .viz-timer-state-work-low { height: 45%; background: rgba(255, 255, 255, 0.55); }
  .viz-timer-state-rest { height: 30%; background: rgba(255, 255, 255, 0.35); }
  .viz-timer-state-series-rest { height: 18%; background: rgba(255, 255, 255, 0.22); }
  .viz-timer-state-prep { height: 18%; background: rgba(255, 255, 255, 0.22); }

  .viz-bar.completed { opacity: 0.2; }

  .viz-bar.active {
    opacity: 1;
    background: #ffffff !important;
    transform: scaleY(1.12);
    box-shadow: 0 0 10px rgba(255, 255, 255, 0.9);
    outline: 2px solid rgba(255, 255, 255, 0.9);
    z-index: 3;
  }

  .timer-progress-container {
    width: 100%;
    height: 6px;
    background: rgba(0, 0, 0, 0.35);
    border-radius: 0 0 10px 10px;
    margin-bottom: 20px;
    overflow: hidden;
  }

  .timer-progress-bar {
    height: 100%;
    width: 0%;
    background: #ffffff;
    box-shadow: 0 0 8px rgba(255, 255, 255, 0.8);
    transition: width 1s linear;
  }

  .timer-stats {
    display: flex;
    justify-content: space-between;
    background: rgba(0, 0, 0, 0.2);
    border-radius: 12px;
    padding: 12px 16px;
    margin-bottom: 20px;
    backdrop-filter: blur(5px);
  }

  .stat-box { text-align: center; }

  .stat-label {
    display: block;
    font-size: 0.7rem;
    font-weight: 700;
    opacity: 0.8;
    letter-spacing: 1px;
    margin-bottom: 2px;
  }

  .stat-value {
    font-size: 1.3rem;
    font-weight: 800;
    font-family: "SF Mono", monospace;
  }

  .timer-controls {
    display: flex;
    gap: 12px;
    align-items: center;
  }

  .timer-controls button {
    background: rgba(255, 255, 255, 0.2);
    border: none;
    color: white;
    padding: 14px;
    border-radius: 10px;
    cursor: pointer;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
  }

  .timer-controls button:hover {
    background: rgba(255, 255, 255, 0.35);
    transform: translateY(-1px);
  }

  .timer-controls .btn-primary {
    flex: 2;
    background: #ffffff;
    color: #0f172a;
    font-size: 1.3rem;
    letter-spacing: 1px;
    padding: 16px;
  }

  .timer-controls .btn-primary:hover { background: #f8fafc; }

  /* Settings Panel & 10-20-30 Info Box */
  #timer-settings-panel {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #1e293b;
    color: #f8fafc;
    padding: 24px;
    box-sizing: border-box;
    overflow-y: auto;
    border-radius: 16px;
    transition: transform 0.3s ease-in-out;
    z-index: 10;
  }

  #timer-settings-panel.settings-hidden { transform: translateY(100%); }
  #timer-settings-panel h3 { margin-top: 0; font-size: 1.4rem; border-bottom: 1px solid #334155; padding-bottom: 8px; }
  
  .preset-info-box {
    background: #0f172a;
    border: 1px solid #334155;
    border-radius: 8px;
    padding: 14px;
    margin-bottom: 12px;
  }

  .info-title {
    font-size: 0.85rem;
    color: #94a3b8;
    margin-bottom: 8px;
    font-weight: 600;
  }

  .info-steps {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.8rem;
    font-weight: 700;
    flex-wrap: wrap;
  }

  .step-pill {
    padding: 4px 8px;
    border-radius: 4px;
    color: #ffffff;
  }
  .step-pill.low { background: #4b5563; }
  .step-pill.med { background: #0284c7; }
  .step-pill.high { background: #16a34a; }

  .form-group { margin-bottom: 12px; }
  .form-row { display: flex; gap: 12px; }
  .form-row .form-group { flex: 1; }
  .form-group label { display: block; font-size: 0.85rem; margin-bottom: 4px; color: #94a3b8; }
  .form-group input, .form-group select {
    width: 100%; padding: 10px; border-radius: 6px; border: 1px solid #475569; background: #0f172a; color: white; font-size: 1rem; box-sizing: border-box;
  }
  
  .btn-save {
    width: 100%; background: #22c55e; color: white; border: none; padding: 14px; border-radius: 8px; font-size: 1.1rem; font-weight: 700; cursor: pointer; margin-top: 10px;
  }
  .btn-save:hover { background: #16a34a; }

  /* FULLSCREEN RESPONSIVE SCALING */
  #interval-timer-container:fullscreen,
  #interval-timer-container:-webkit-full-screen,
  #interval-timer-container.timer-fullscreen-fallback {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    max-width: none !important;
    margin: 0 !important;
    border-radius: 0 !important;
    padding: clamp(20px, 4vh, 60px) clamp(20px, 5vw, 80px) !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    z-index: 999999 !important;
  }

  #interval-timer-container:fullscreen #timer-phase-title,
  #interval-timer-container:-webkit-full-screen #timer-phase-title,
  #interval-timer-container.timer-fullscreen-fallback #timer-phase-title {
    font-size: clamp(2.2rem, 5vh, 4.5rem);
  }

  #interval-timer-container:fullscreen #timer-phase-note,
  #interval-timer-container:-webkit-full-screen #timer-phase-note,
  #interval-timer-container.timer-fullscreen-fallback #timer-phase-note {
    font-size: clamp(1.2rem, 2.8vh, 2.2rem);
  }

  #interval-timer-container:fullscreen .timer-display,
  #interval-timer-container:-webkit-full-screen .timer-display,
  #interval-timer-container.timer-fullscreen-fallback .timer-display {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
  }

  #interval-timer-container:fullscreen #timer-time,
  #interval-timer-container:-webkit-full-screen #timer-time,
  #interval-timer-container.timer-fullscreen-fallback #timer-time {
    font-size: clamp(7rem, 24vh, 20rem);
  }

  #interval-timer-container:fullscreen .timer-visualizer,
  #interval-timer-container:-webkit-full-screen .timer-visualizer,
  #interval-timer-container.timer-fullscreen-fallback .timer-visualizer {
    height: clamp(60px, 12vh, 120px);
    margin: 1.5vh 0 0 0;
    border-radius: 14px 14px 0 0;
  }

  #interval-timer-container:fullscreen .timer-progress-container,
  #interval-timer-container:-webkit-full-screen .timer-progress-container,
  #interval-timer-container.timer-fullscreen-fallback .timer-progress-container {
    height: clamp(8px, 1.5vh, 16px);
    margin-bottom: 2vh;
  }

  #interval-timer-container:fullscreen .timer-stats,
  #interval-timer-container:-webkit-full-screen .timer-stats,
  #interval-timer-container.timer-fullscreen-fallback .timer-stats {
    padding: clamp(14px, 2vh, 28px) clamp(16px, 3vw, 40px);
    margin-bottom: 2vh;
    border-radius: 16px;
  }

  #interval-timer-container:fullscreen .stat-label,
  #interval-timer-container:-webkit-full-screen .stat-label,
  #interval-timer-container.timer-fullscreen-fallback .stat-label {
    font-size: clamp(0.75rem, 1.6vh, 1.2rem);
  }

  #interval-timer-container:fullscreen .stat-value,
  #interval-timer-container:-webkit-full-screen .stat-value,
  #interval-timer-container.timer-fullscreen-fallback .stat-value {
    font-size: clamp(1.4rem, 3.8vh, 3rem);
  }

  #interval-timer-container:fullscreen .timer-controls,
  #interval-timer-container:-webkit-full-screen .timer-controls,
  #interval-timer-container.timer-fullscreen-fallback .timer-controls {
    gap: 16px;
  }

  #interval-timer-container:fullscreen .timer-controls button,
  #interval-timer-container:-webkit-full-screen .timer-controls button,
  #interval-timer-container.timer-fullscreen-fallback .timer-controls button {
    padding: clamp(14px, 2.2vh, 28px);
    border-radius: 14px;
  }

  #interval-timer-container:fullscreen .timer-controls .btn-primary,
  #interval-timer-container:-webkit-full-screen .timer-controls .btn-primary,
  #interval-timer-container.timer-fullscreen-fallback .timer-controls .btn-primary {
    font-size: clamp(1.3rem, 3vh, 2.5rem);
  }

  @media (max-width: 480px) {
    #timer-time { font-size: 4.8rem; }
    .stat-value { font-size: 1rem; }
    .stat-label { font-size: 0.6rem; }
  }
</style>

<script>
(function() {
  // Web Audio API Beep Generator
  let audioCtx = null;
  let soundEnabled = true;

  function playBeep(freq = 880, duration = 0.15, type = 'sine') {
    if (!soundEnabled) return;
    try {
      if (!audioCtx) {
        audioCtx = new (window.AudioContext || window.webkitAudioContext)();
      }
      if (audioCtx.state === 'suspended') {
        audioCtx.resume();
      }
      const osc = audioCtx.createOscillator();
      const gain = audioCtx.createGain();
      osc.type = type;
      osc.frequency.setValueAtTime(freq, audioCtx.currentTime);
      gain.gain.setValueAtTime(0.15, audioCtx.currentTime);
      gain.gain.exponentialRampToValueAtTime(0.00001, audioCtx.currentTime + duration);
      osc.connect(gain);
      gain.connect(audioCtx.destination);
      osc.start();
      osc.stop(audioCtx.currentTime + duration);
    } catch(e) { console.log(e); }
  }

  // Timer Engine State
  let queue = [];
  let currentIndex = 0;
  let timeRemainingInStep = 0;
  let totalDuration = 0;
  let totalElapsed = 0;
  let timerInterval = null;
  let isRunning = false;

  // DOM Elements
  const container = document.getElementById('interval-timer-container');
  const elTime = document.getElementById('timer-time');
  const elPhaseTitle = document.getElementById('timer-phase-title');
  const elPhaseNote = document.getElementById('timer-phase-note');
  const elElapsed = document.getElementById('stat-elapsed');
  const elInterval = document.getElementById('stat-interval');
  const elSeries = document.getElementById('stat-series');
  const elRemaining = document.getElementById('stat-remaining');
  const elVisualizer = document.getElementById('timer-visualizer');
  const elProgressBar = document.getElementById('timer-progress-bar');
  const btnPlay = document.getElementById('btn-play');
  const btnReset = document.getElementById('btn-reset');
  const btnSound = document.getElementById('btn-sound');
  const btnFullscreen = document.getElementById('btn-fullscreen');
  const iconFsEnter = document.getElementById('icon-fs-enter');
  const iconFsExit = document.getElementById('icon-fs-exit');
  const btnSettingsToggle = document.getElementById('btn-settings-toggle');
  const presetBadge = document.getElementById('timer-preset-badge');
  const presetBadgeText = document.getElementById('preset-badge-text');
  const settingsPanel = document.getElementById('timer-settings-panel');
  const btnSaveSettings = document.getElementById('btn-save-settings');
  const presetSelect = document.getElementById('preset-select');
  const customFields = document.getElementById('custom-fields');
  const box102030Info = document.getElementById('box-10-20-30-info');

  // Format Helpers
  function formatTime(seconds) {
    const mins = Math.floor(seconds / 60);
    const secs = seconds % 60;
    return `${mins < 10 ? '0' : ''}${mins}:${secs < 10 ? '0' : ''}${secs}`;
  }

  // Fullscreen Logic
  function isFullscreen() {
    return !!(document.fullscreenElement || document.webkitFullscreenElement || container.classList.contains('timer-fullscreen-fallback'));
  }

  function toggleFullscreen() {
    if (!isFullscreen()) {
      if (container.requestFullscreen) {
        container.requestFullscreen().catch(() => container.classList.add('timer-fullscreen-fallback'));
      } else if (container.webkitRequestFullscreen) {
        container.webkitRequestFullscreen();
      } else {
        container.classList.add('timer-fullscreen-fallback');
      }
    } else {
      if (document.exitFullscreen) {
        document.exitFullscreen().catch(() => {});
      } else if (document.webkitExitFullscreen) {
        document.webkitExitFullscreen();
      }
      container.classList.remove('timer-fullscreen-fallback');
    }
  }

  // Render Visual Bar Graph
  function renderVisualizer() {
    elVisualizer.innerHTML = '';
    queue.forEach((step) => {
      const bar = document.createElement('div');
      bar.className = `viz-bar viz-${step.stateClass}`;
      bar.title = `${step.title}: ${step.duration}s`;
      elVisualizer.appendChild(bar);
    });
  }

  // Map Preset Value to Display Name
  function updatePresetBadgeName(val) {
    const names = {
      'tabata': 'Ægte Tabata',
      '10-20-30': '10-20-30 Løb',
      'billat': 'Billat 30/30',
      '15-15': '15/15 Intervaller',
      '30-30': '30/30 Intervaller',
      '4x4': '4x4 Norsk Tærskel',
      'sprint8': 'Sprint 8 SIT',
      'custom': 'Brugerdefineret'
    };
    presetBadgeText.innerText = names[val] || 'Intervaltimer';
  }

  // Preset Configurations Generator
  function buildQueueFromSettings() {
    const preset = presetSelect.value;
    updatePresetBadgeName(preset);
    queue = [];

    if (preset === '10-20-30') {
      const prep = 10;
      const repsPerSeries = parseInt(document.getElementById('cfg-102030-reps').value) || 5;
      const seriesCount = parseInt(document.getElementById('cfg-102030-series').value) || 3;
      const seriesRest = parseInt(document.getElementById('cfg-102030-series-rest').value) || 120;

      if (prep > 0) {
        queue.push({ title: 'KLARGØRING', note: 'Gør dig klar til løb...', duration: prep, stateClass: 'timer-state-prep', rep: 0, totalReps: repsPerSeries, series: 1, totalSeries: seriesCount });
      }

      for (let s = 1; s <= seriesCount; s++) {
        for (let r = 1; r <= repsPerSeries; r++) {
          queue.push({ title: '10-20-30: ROLIGT', note: 'Gå eller let jog (30 sek)', duration: 30, stateClass: 'timer-state-work-low', rep: r, totalReps: repsPerSeries, series: s, totalSeries: seriesCount });
          queue.push({ title: '10-20-30: MODERAT', note: 'Almindeligt løbetempo (20 sek)', duration: 20, stateClass: 'timer-state-work-med', rep: r, totalReps: repsPerSeries, series: s, totalSeries: seriesCount });
          queue.push({ title: '10-20-30: SPURT!', note: 'SPURT 100% ALL-OUT! (10 sek)', duration: 10, stateClass: 'timer-state-work', rep: r, totalReps: repsPerSeries, series: s, totalSeries: seriesCount });
        }
        if (s < seriesCount && seriesRest > 0) {
          queue.push({ title: 'SERIEPAUSE', note: 'Gå roligt og få pulsen ned', duration: seriesRest, stateClass: 'timer-state-series-rest', rep: repsPerSeries, totalReps: repsPerSeries, series: s, totalSeries: seriesCount });
        }
      }
    } else {
      let prep = parseInt(document.getElementById('cfg-prep').value) || 0;
      let work = parseInt(document.getElementById('cfg-work').value) || 20;
      let rest = parseInt(document.getElementById('cfg-rest').value) || 10;
      let reps = parseInt(document.getElementById('cfg-reps').value) || 8;
      let series = parseInt(document.getElementById('cfg-series').value) || 1;
      let seriesRest = parseInt(document.getElementById('cfg-series-rest').value) || 120;
      let noteWork = document.getElementById('cfg-note-work').value;
      let noteRest = document.getElementById('cfg-note-rest').value;

      if (prep > 0) {
        queue.push({ title: 'KLARGØRING', note: 'Gør dig klar...', duration: prep, stateClass: 'timer-state-prep', rep: 0, totalReps: reps, series: 1, totalSeries: series });
      }

      for (let s = 1; s <= series; s++) {
        for (let r = 1; r <= reps; r++) {
          queue.push({ title: 'ARBEJDE', note: noteWork, duration: work, stateClass: 'timer-state-work', rep: r, totalReps: reps, series: s, totalSeries: series });
          if (r < reps && rest > 0) {
            queue.push({ title: 'INTERVALPAUSE', note: noteRest, duration: rest, stateClass: 'timer-state-rest', rep: r, totalReps: reps, series: s, totalSeries: series });
          }
        }
        if (s < series && seriesRest > 0) {
          queue.push({ title: 'SERIEPAUSE', note: 'Pause mellem sæt/serier', duration: seriesRest, stateClass: 'timer-state-series-rest', rep: reps, totalReps: reps, series: s, totalSeries: series });
        }
      }
    }

    totalDuration = queue.reduce((acc, step) => acc + step.duration, 0);
    renderVisualizer();
    resetTimerState();
  }

  function resetTimerState() {
    clearInterval(timerInterval);
    isRunning = false;
    currentIndex = 0;
    totalElapsed = 0;
    btnPlay.innerText = 'START';
    if (queue.length > 0) {
      timeRemainingInStep = queue[0].duration;
      updateUI();
    }
  }

  function updateUI() {
    const bars = elVisualizer.querySelectorAll('.viz-bar');

    if (queue.length === 0 || currentIndex >= queue.length) {
      container.className = 'timer-state-done';
      elPhaseTitle.innerText = 'TRÆNING FÆRDIG!';
      elPhaseNote.innerText = 'Stærkt arbejdet!';
      elTime.innerText = '00:00';
      elRemaining.innerText = '00:00';
      elElapsed.innerText = formatTime(totalDuration);
      elProgressBar.style.width = '100%';
      
      bars.forEach(b => {
        b.classList.remove('active');
        b.classList.add('completed');
      });
      return;
    }

    const currentStep = queue[currentIndex];
    container.className = currentStep.stateClass;
    elPhaseTitle.innerText = currentStep.title;
    elPhaseNote.innerText = currentStep.note;
    elTime.innerText = formatTime(timeRemainingInStep);
    
    elElapsed.innerText = formatTime(totalElapsed);
    elInterval.innerText = `${currentStep.rep} / ${currentStep.totalReps}`;
    elSeries.innerText = `${currentStep.series} / ${currentStep.totalSeries}`;
    
    const remainingTotal = totalDuration - totalElapsed;
    elRemaining.innerText = formatTime(remainingTotal > 0 ? remainingTotal : 0);

    const stepProgress = ((currentStep.duration - timeRemainingInStep) / currentStep.duration) * 100;
    elProgressBar.style.width = `${stepProgress}%`;

    bars.forEach((bar, idx) => {
      bar.classList.remove('active', 'completed');
      if (idx < currentIndex) {
        bar.classList.add('completed');
      } else if (idx === currentIndex) {
        bar.classList.add('active');
        const scrollPos = bar.offsetLeft - (elVisualizer.clientWidth / 2) + (bar.clientWidth / 2);
        elVisualizer.scrollTo({ left: scrollPos, behavior: 'smooth' });
      }
    });
  }

  function tick() {
    timeRemainingInStep--;
    totalElapsed++;

    if (timeRemainingInStep <= 0) {
      currentIndex++;
      if (currentIndex < queue.length) {
        timeRemainingInStep = queue[currentIndex].duration;
        playBeep(1200, 0.3);
      } else {
        clearInterval(timerInterval);
        isRunning = false;
        btnPlay.innerText = 'START';
      }
    } else if (timeRemainingInStep <= 3) {
      playBeep(600, 0.1);
    }

    updateUI();
  }

  // Event Listeners
  btnPlay.addEventListener('click', () => {
    if (currentIndex >= queue.length) {
      resetTimerState();
    }

    if (!isRunning) {
      isRunning = true;
      btnPlay.innerText = 'PAUSE';
      timerInterval = setInterval(tick, 1000);
      playBeep(880, 0.15);
    } else {
      isRunning = false;
      btnPlay.innerText = 'START';
      clearInterval(timerInterval);
    }
  });

  btnReset.addEventListener('click', resetTimerState);

  btnSound.addEventListener('click', () => {
    soundEnabled = !soundEnabled;
    btnSound.style.opacity = soundEnabled ? '1' : '0.4';
  });

  btnFullscreen.addEventListener('click', toggleFullscreen);

  ['fullscreenchange', 'webkitfullscreenchange'].forEach(evt => {
    document.addEventListener(evt, () => {
      const fs = isFullscreen();
      iconFsEnter.style.display = fs ? 'none' : 'block';
      iconFsExit.style.display = fs ? 'block' : 'none';
      if (!fs) container.classList.remove('timer-fullscreen-fallback');
    });
  });

  // Open Settings via gear OR top preset badge
  btnSettingsToggle.addEventListener('click', () => {
    settingsPanel.classList.toggle('settings-hidden');
  });

  presetBadge.addEventListener('click', () => {
    settingsPanel.classList.toggle('settings-hidden');
  });

  presetSelect.addEventListener('change', (e) => {
    const val = e.target.value;
    
    if (val === '10-20-30') {
      customFields.style.display = 'none';
      box102030Info.style.display = 'block';
    } else {
      box102030Info.style.display = 'none';
      customFields.style.display = 'block';

      if (val === 'tabata') {
        document.getElementById('cfg-prep').value = 10;
        document.getElementById('cfg-work').value = 20;
        document.getElementById('cfg-rest').value = 10;
        document.getElementById('cfg-reps').value = 8;
        document.getElementById('cfg-series').value = 1;
        document.getElementById('cfg-series-rest').value = 120;
        document.getElementById('cfg-note-work').value = 'ALL-OUT MAP! Fuld fart.';
        document.getElementById('cfg-note-rest').value = 'Pust ud og gør klar.';
      } else if (val === 'billat') {
        document.getElementById('cfg-prep').value = 10;
        document.getElementById('cfg-work').value = 30;
        document.getElementById('cfg-rest').value = 30;
        document.getElementById('cfg-reps').value = 15;
        document.getElementById('cfg-series').value = 1;
        document.getElementById('cfg-series-rest').value = 120;
        document.getElementById('cfg-note-work').value = 'vVO2max tempo (100%)';
        document.getElementById('cfg-note-rest').value = 'Aktiv jog (50% vVO2max)';
      } else if (val === '15-15') {
        document.getElementById('cfg-prep').value = 10;
        document.getElementById('cfg-work').value = 15;
        document.getElementById('cfg-rest').value = 15;
        document.getElementById('cfg-reps').value = 10;
        document.getElementById('cfg-series').value = 2;
        document.getElementById('cfg-series-rest').value = 120;
        document.getElementById('cfg-note-work').value = 'Høj intensitet';
        document.getElementById('cfg-note-rest').value = 'Aktiv pause';
      } else if (val === '30-30') {
        document.getElementById('cfg-prep').value = 10;
        document.getElementById('cfg-work').value = 30;
        document.getElementById('cfg-rest').value = 30;
        document.getElementById('cfg-reps').value = 10;
        document.getElementById('cfg-series').value = 1;
        document.getElementById('cfg-note-work').value = 'Kontrolleret højt tempo';
        document.getElementById('cfg-note-rest').value = 'Gå / jog roligt';
      } else if (val === '4x4') {
        document.getElementById('cfg-prep').value = 15;
        document.getElementById('cfg-work').value = 240;
        document.getElementById('cfg-rest').value = 180;
        document.getElementById('cfg-reps').value = 4;
        document.getElementById('cfg-series').value = 1;
        document.getElementById('cfg-note-work').value = '85-95% af makspuls (Tung vejrtrækning)';
        document.getElementById('cfg-note-rest').value = 'Aktiv jog (~70% makspuls)';
      } else if (val === 'sprint8') {
        document.getElementById('cfg-prep').value = 15;
        document.getElementById('cfg-work').value = 30;
        document.getElementById('cfg-rest').value = 90;
        document.getElementById('cfg-reps').value = 8;
        document.getElementById('cfg-series').value = 1;
        document.getElementById('cfg-note-work').value = '100% Supramaksimal Sprint!';
        document.getElementById('cfg-note-rest').value = 'Rolig gang / let pedaltræden';
      }
    }

    buildQueueFromSettings();
  });

  btnSaveSettings.addEventListener('click', () => {
    buildQueueFromSettings();
    settingsPanel.classList.add('settings-hidden');
  });

  // Skift automatisk til 'custom' hvis brugeren retter i de manuelle inputfelter
  ['cfg-prep', 'cfg-work', 'cfg-rest', 'cfg-reps', 'cfg-series', 'cfg-series-rest', 'cfg-note-work', 'cfg-note-rest'].forEach(id => {
    const el = document.getElementById(id);
    if (el) {
      el.addEventListener('input', () => {
        presetSelect.value = 'custom';
      });
    }
  });

  presetSelect.dispatchEvent(new Event('change'));
})();
</script>

<hr />

<h2 id="vælg-det-rette-preset-til-din-træning">Vælg det rette preset til din træning</h2>

<p>Timeren indeholder en række færdige indstillinger (presets), som matcher de mest populære og veldokumenterede træningsmetoder inden for kondition og udholdenhed:</p>

<h3 id="1-ægte-tabata-20s--10s-x-8">1. Ægte Tabata (20s / 10s x 8)</h3>
<ul>
  <li><strong>Struktur:</strong> 8 runder af 20 sekunders supramaksimalt All-Out arbejde efterfulgt af 10 sekunders pause.</li>
  <li><strong>Formål:</strong> Ekstrem stigning i både den <a href="/maksimale-iltoptagelse-vo2max/">maksimale iltoptagelse (VO2max)</a> og den <a href="/anaerob-traening/">anaerobe kapacitet</a>.</li>
  <li><strong>Optimalt til:</strong> Kondicykel, roergometer eller bakkesprints. Læs mere i vores dybdegående artikel om <a href="/artikel/tabata-traening-intervaller/">Tabata-træning</a>.</li>
</ul>

<h3 id="2-10-20-30-løbeintervaller">2. 10-20-30 Løbeintervaller</h3>
<ul>
  <li><strong>Struktur:</strong> 5-minutters arbejdsblokke bestående af kontinuerlige runder af 30 sekunder roligt løb, 20 sekunder moderat løb og 10 sekunders maksimal sprint.</li>
  <li><strong>Formål:</strong> Lynhurtig forbedring af løbeøkonomi, fart og <a href="/kondital/">kondital</a> på kort tid.</li>
  <li><strong>Optimalt til:</strong> Løbere på alle niveauer. Se den komplette guiden til <a href="/10-20-30-intervaltraening/">10-20-30 intervaltræning</a>.</li>
</ul>

<h3 id="3-4x4-norsk-tærskel-norwegian-protocol">3. 4x4 Norsk Tærskel (Norwegian Protocol)</h3>
<ul>
  <li><strong>Struktur:</strong> 4 arbejdsintervaller af 4 minutters varighed ved 85-95 % af makspuls, adskilt af 3 minutters aktiv pause (ca. 70 % af makspuls).</li>
  <li><strong>Formål:</strong> Maksimal stimulering af hjertets slagvolumen og central hjertekapacitet.</li>
  <li><strong>Optimalt til:</strong> Løb, cykling og roning. Læs den videnskabelige gennemgang af <a href="/4x4-intervaltraening/">4x4 intervaltræning</a>.</li>
</ul>

<h3 id="4-sprint-8-sit---sprint-interval-training">4. Sprint 8 (SIT - Sprint Interval Training)</h3>
<ul>
  <li><strong>Struktur:</strong> 8 runder af 30 sekunders eksplosiv sprint (100 % kraftudfoldelse) efterfulgt af 90 sekunders aktiv restitution.</li>
  <li><strong>Formål:</strong> Anabolfremmende væksthormon-stimulering, Type IIx muskelrekruttering og fedtmobilisering.</li>
  <li><strong>Optimalt til:</strong> Wattbike, romaskine og atletikbane. Læs guiden til <a href="/artikel/sprint-8-intervaltraening-der-virker/">Sprint 8 træning</a>.</li>
</ul>

<h3 id="5-1515-og-3030-intervaller">5. 15/15 og 30/30 Intervaller</h3>
<ul>
  <li><strong>Struktur:</strong> Klassiske kort-intervaller med lige dele arbejdstid og hviletid.</li>
  <li><strong>Formål:</strong> Opbygning af høj gennemsnitlig iltoptagelse med lav muskulær udtrætning sammenlignet med lange intervaller.</li>
  <li><strong>Optimalt til:</strong> Genoptræning, sæsonopstart og let tilgængelig konditionstræning.</li>
</ul>

<hr />

<h2 id="fysiologien-bag-effektiv-intervaltræning">Fysiologien bag effektiv intervaltræning</h2>

<p>Hvorfor er det bedre at bruge en struktureret intervaltimer frem for at løbe i et jævnt tempo?</p>

<p>Når du træner i et konstant, moderat tempo (Zone 2), stimuleres dine mitokondrier og din perifere kapillærtæthed. Men for at tvinge hjertemusklen til at vokse og øge sit <strong>slagvolumen</strong> (mængden af blod pumpet pr. hjerteslag), kræves der perioder med høj kardiologisk belastning.</p>

<p>Ved at skifte mellem arbejds- og hvilefaser opnår du følgende fysiologiske fordele:</p>

<ol>
  <li><strong>Højere akkumuleret tid i VO2max-zonen:</strong> Du kan opholde dig i minutter tæt på din maksimale iltoptagelse, hvilket ville være imposibelt ved kontinuerligt arbejde.</li>
  <li><strong>Hurtigere affaldsstoffjernelse:</strong> I pauserne opretholdes et højt blodflow, som skyller laktat og brintioner ud af muskelfibrene.</li>
  <li><strong>Bedre neural rekruttering:</strong> Korte sprint-intervaller aktiverer de hurtige muskulære fibertyper (Type IIa og IIx), som ellers “sover” under roligt løb.</li>
</ol>

<p>Læs mere om balancen mellem hård og rolig træning i vores artikel om polariseret træning (80/20-reglen) og den populære <a href="/norsk-taerskeltraening/">norske tærskelmodel</a>.</p>

<hr />

<h2 id="sådan-indstiller-du-din-egen-brugerdefinerede-timer">Sådan indstiller du din egen brugerdefinerede timer</h2>

<p>Hvis du ikke ønsker at bruge de faste presets, kan du tilpasse alle parametre manuelt ved at trykke på tandhjuls-ikonet i nedre højre hjørne af timeren:</p>

<ul>
  <li><strong>Klargøring (Prep):</strong> Nedtælling før første interval starter (giver dig tid til at sætte dig til rette på cyklen eller løbebåndet).</li>
  <li><strong>Arbejde (Work):</strong> Varigheden af selve arbejdsfasen i sekunder.</li>
  <li><strong>Intervalpause (Rest):</strong> Pausen mellem enkelte intervaller inde i et sæt.</li>
  <li><strong>Intervaller pr. serie (Reps):</strong> Antallet af arbejds-intervaller i én blok.</li>
  <li><strong>Antal serier (Series):</strong> Hvor mange samlede blokke/sæt, du vil gennemføre.</li>
  <li><strong>Seriepause (Series Rest):</strong> Den længere pause mellem to blokke (fx 2 minutters pause mellem to 5-minutters 10-20-30 serier).</li>
  <li><strong>Instruktioner:</strong> Indtast din egen tekst, som vises på skærmen under faserne (fx <em>“Hold 90 % puls!”</em> eller <em>“Gå roligt”</em>).</li>
</ul>

<hr />

<h2 id="ofte-stillede-spørgsmål">Ofte stillede spørgsmål</h2>

<details class="faq">
<summary><h3>Virker intervaltimeren på både iPhone, iPad og Android?</h3></summary>
<p>Ja, timeren er fuldt responsiv og fungerer direkte i din mobilbrowser uden installation. Du kan slå fuld skærm til på både telefoner, iPads og PC-skærme via ikonet i øverste højre hjørne.</p>

</details>

<details class="faq">
<summary><h3>Skal jeg have skærmen tændt, mens timeren kører?</h3></summary>
<p>Da timeren kører direkte i din browser, anbefales det at holde browserfanen åben. Timeren afspiller et akustisk lydsignal (3-2-1 nedtælling og faseskift-tone), så du kan høre skiftene uden at kigge på skærmen.</p>

</details>

<details class="faq">
<summary><h3>Hvilket interval-preset skal jeg vælge?</h3></summary>
<p>Vælg Tabata for ultrakorte 4-minutters spidsbelastninger, 10-20-30 for varieret løbetræning, 4x4 for klassisk højintensiv konditionstræning eller Sprint 8 for ren eksplosivitet. Du kan også tilpasse alle tider manuelt under indstillinger.</p>

</details>

<script type="application/ld+json">
    {
        "@context":"https://schema.org",
        "@type":"FAQPage",
        "mainEntity":
            [{"@type":"Question","name":"Virker intervaltimeren på både iPhone, iPad og Android?","acceptedAnswer":{"@type":"Answer","text":"Ja, timeren er fuldt responsiv og fungerer direkte i din mobilbrowser uden installation. Du kan slå fuld skærm til på både telefoner, iPads og PC-skærme via ikonet i øverste højre hjørne.\n"}},{"@type":"Question","name":"Skal jeg have skærmen tændt, mens timeren kører?","acceptedAnswer":{"@type":"Answer","text":"Da timeren kører direkte i din browser, anbefales det at holde browserfanen åben. Timeren afspiller et akustisk lydsignal (3-2-1 nedtælling og faseskift-tone), så du kan høre skiftene uden at kigge på skærmen.\n"}},{"@type":"Question","name":"Hvilket interval-preset skal jeg vælge?","acceptedAnswer":{"@type":"Answer","text":"Vælg Tabata for ultrakorte 4-minutters spidsbelastninger, 10-20-30 for varieret løbetræning, 4x4 for klassisk højintensiv konditionstræning eller Sprint 8 for ren eksplosivitet. Du kan også tilpasse alle tider manuelt under indstillinger.\n"}}]
    }
</script>

<details class="references">
  <summary><h2 id="references">Kilder og videnskabelig litteratur</h2></summary>

  <ol>
    <li><strong>Helgerud, J., et al. (2007).</strong> “Aerobic high-intensity intervals improve VO2max more than moderate training.” <em>Medicine &amp; Science in Sports &amp; Exercise</em>, 39(4), 665-671.</li>
    <li><strong>Tabata, I., et al. (1996).</strong> “Effects of moderate-intensity endurance and high-intensity intermittent training on anaerobic capacity and VO2max.” <em>Medicine and Science in Sports and Exercise</em>, 28(10), 1327–1330.</li>
    <li><strong>Gunnarsson, T. P., &amp; Bangsbo, J. (2012).</strong> “The 10-20-30 training concept improves performance and health profile in moderately trained runners.” <em>Journal of Applied Physiology</em>, 113(1), 16-24.</li>
  </ol>
</details>]]></content><author><name>Lars Olesen</name></author><category term="Kondition" /><category term="Værktøjer" /><category term="intervaltræning" /><category term="timer" /><category term="tabata" /><category term="hiit" /><category term="kondition" /><category term="værktøj" /><summary type="html"><![CDATA[Gratis online intervaltimer til din træning. Indbyggede presets til Tabata, 10-20-30, 4x4 og Sprint 8 med farvekodede faser, lyd og fuld skærm.]]></summary></entry><entry><title type="html">McGill Big 3: Den ultimative guide til en stærk og smertefri ryg</title><link href="https://www.motionsplan.dk/mcgill-big-3/" rel="alternate" type="text/html" title="McGill Big 3: Den ultimative guide til en stærk og smertefri ryg" /><published>2026-08-18T00:00:00+00:00</published><updated>2026-08-18T12:00:00+00:00</updated><id>https://www.motionsplan.dk/mcgill-big-3</id><content type="html" xml:base="https://www.motionsplan.dk/mcgill-big-3/"><![CDATA[<p>Døjer du med lændesmerter, eller mangler du stabilitet, når du løber eller løfter tungt i centret? Svaret på en stærk og smertefri ryg findes sjældent i tusindvis af klassiske mavebøjninger.</p>

<p>Manden bag den moderne forståelse af rygbiomekanik, den canadiske professor emeritus <strong>Dr. Stuart M. McGill</strong>, har gennem mere end 30 års laboratorieforskning bevist, at rygsøjlens primære opgave ikke er at <em>skabe</em> bevægelse — men at <strong>forhindre uønsket bevægelse</strong> under belastning.</p>

<p>For at opbygge denne modstandskraft mod skader har han udviklet tre specifikke, skånsomme øvelser kendt som <strong>McGill Big 3</strong>.</p>

<hr />

<h2 id="hvorfor-almindelige-maveøvelser-ødelægger-din-ryg">Hvorfor almindelige maveøvelser ødelægger din ryg</h2>

<p>Når du udfører klassiske <em>crunches</em> eller <em>sit-ups</em>, tvinger du lænderyggen ud i gentagne fleksioner (bøjninger) under spænding. Dr. McGills forskning viser entydigt, at denne specifikke bevægelse presseklemmer diskusskiverne i lænden og udløser mikroskopiske vævsskader over tid.</p>

<p>Målet med kernetræning bør i stedet være at skabe <strong>Abdominal Bracing</strong> — en fysiologisk tilstand, hvor alle muskler i kropsstammen (rectus abdominis, obliques, transversus abdominis og erector spinae) spændes samtidigt for at skabe et stivt, beskyttende korset omkring rygsøjlen.</p>

<blockquote>
  <p><em>“Musklerne i kropsstammen fungerer som bardunerne på en skibsmast. De skal ikke gøre masten bøjelig; de skal holde den urokkeligt fast.”</em><br />
— <strong>Dr. Stuart McGill</strong></p>
</blockquote>

<hr />

<h2 id="de-3-øvelser-i-mcgill-big-3">De 3 øvelser i McGill Big 3</h2>

<p>Øvelserne er designet til at stimulere alle vinkler af kropsstammen uden at påføre skærende kræfter eller tryk på lændediskusskiverne.</p>

<div class="responsive-video-container">

  <div class="youtube-container">
    <div class="youtube-player" data-id="2_e4I-brfqs">
      <a href="https://www.youtube.com/watch?v=2_e4I-brfqs" rel="nofollow noopener">
        <img class="youtube-thumb" src="https://i.ytimg.com/vi/2_e4I-brfqs/hqdefault.jpg" loading="lazy" alt="Video: McGill Big 3: Den ultimative guide til en stærk og smertefri ryg" />
        <span class="play-button"></span>
      </a>
    </div>
  </div>


</div>

<h3 id="1-the-modified-curl-up-aktivering-af-forsiden">1. The Modified Curl-Up (Aktivering af forsiden)</h3>

<p>Modsat en almindelig mavebøjning sker der <em>nul</em> bevægelse i lænderyggen under denne øvelse.</p>

<ul>
  <li><strong>Sådan gør du:</strong>
    <ol>
      <li>Lig på ryggen. Bøj det ene ben og placer foden fladt på gulvet. Det andet ben holdes strakt. (Dette låser bækkenet i en neutral position).</li>
      <li>Placer begge hænder med håndfladerne nedad under lænden for at sikre, at du bevarer lændens naturlige svaj under hele øvelsen.</li>
      <li>Løft skuldrene og hovedet et par centimeter fra gulvet som én samlet blok. Bøj ikke i nakken.</li>
      <li>Hold spændingen i <strong>8-10 sekunder</strong>, mens du trækker vejret roligt, og sænk langsomt igen.</li>
    </ol>
  </li>
</ul>

<hr />

<h3 id="2-the-side-plank-aktivering-af-de-skrå-mavemuskler">2. The Side Plank (Aktivering af de skrå mavemuskler)</h3>

<p>Sideplanken styrker <em>obliques</em> og den vigtige <em>quadratus lumborum</em>-muskel i lænden, som er afgørende for sideværts stabilitet.</p>

<ul>
  <li><strong>Sådan gør du:</strong>
    <ol>
      <li>Lig på siden støttet på din underarm med albuen direkte under skulderen.</li>
      <li>For begyndere: Bøj i knæene 90 grader og løft hoften, så der dannes en lige linje fra knæ til skulder.</li>
      <li>For øvede: Stræk benene helt ud og placer den øverste fod lige foran den nederste på gulvet.</li>
      <li>Spænd balder og mave, og hold hoften løftet i <strong>8-10 sekunder</strong>.</li>
      <li>Gentag til den modsatte side.</li>
    </ol>
  </li>
</ul>

<hr />

<h3 id="3-the-bird-dog-aktivering-af-bagsiden-og-kryds-koordination">3. The Bird-Dog (Aktivering af bagsiden og kryds-koordination)</h3>

<p>Bird-Dog styrker rygstrækkerne, balderne og skaber diagonal stabilitet på tværs af kropsstammen.</p>

<ul>
  <li><strong>Sådan gør du:</strong>
    <ol>
      <li>Stå på alle fire (hænder under skuldre, knæ under hofter) med en helt neutral ryg.</li>
      <li>Klem maven sammen (bracing) uden at suge navlen ind.</li>
      <li>Stræk højre arm helt frem og venstre ben helt tilbage i en kontrolleret bevægelse, indtil de er parallelle med gulvet.</li>
      <li><strong>Vigtigt:</strong> Undgå at rotere i hoften eller svaje i lænden. Forestil dig, at du balancerer et glas vand på din lænd.</li>
      <li>Hold spændingen i <strong>8-10 sekunder</strong>, kør langsomt tilbage til startpositionen og skift side.</li>
    </ol>
  </li>
</ul>

<hr />

<!-- 1. DYNAMISK DATA-OPBYGNING FRA SITE.EXERCISES -->
<script type="application/json" id="data-workout-">
[
  
    
    
    

    
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
          
          
    

    

    
    

    

    
    
    
    
    

    

    

    {
      "name": "Maveøvelse, Stuart McGill curlup",
      "images": ["/assets/images/exercises/maveoevelse-stuart-mcgill-curlup-0-320.jpg","/assets/images/exercises/maveoevelse-stuart-mcgill-curlup-1-320.jpg","/assets/images/exercises/maveoevelse-stuart-mcgill-curlup-2-320.jpg"],
      "type": "reps",
      "value": 6
    },
  
    
    
    

    
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
          
          
    

    

    
    

    

    
    
    
    
    

    

    

    {
      "name": "Side bridge",
      "images": ["/assets/images/exercises/side-bridge-0-320.jpg"],
      "type": "reps",
      "value": 6
    },
  
    
    
    

    
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
      
        
        
        
        
        

        
          
          
    

    

    
    

    

    
    
    
    
    

    

    

    {
      "name": "Bird dog",
      "images": ["/assets/images/exercises/birddog-0-320.jpg","/assets/images/exercises/birddog-1-320.jpg","/assets/images/exercises/birddog-2-320.jpg"],
      "type": "reps",
      "value": 6
    }
  
]
</script>

<div class="workout-app" id="workout-">
  <!-- 2. STATISK HTML TIL SETUP/OVERSIGT (UDEN SCROLL) -->
  <div class="workout-setup-card">
    <div class="workout-header">
      <h3>⏱️ McGill Big 3</h3>
      
        <p>Udfør øvelserne kontrolleret. Du skal ikke være helt udmattet efterfølgende. Det handler om at lære at kontrollere bevægelserne.</p>
      
    </div>

    <!-- ØVELSESLISTE (VISES NORMALT UDEN SCROLLBAR) -->
    <div class="workout-list">
      
        
        
        

        
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
              
              
        

        
        
        
        

        <div class="workout-ex-item">
          <div class="ex-img-thumb">
            <img src="/assets/images/exercises/maveoevelse-stuart-mcgill-curlup-0-320.jpg" alt="Maveøvelse, Stuart McGill curlup" loading="lazy" onerror="this.onerror=null;this.src='data:image/svg+xml;utf8,&lt;svg xmlns=\'http://www.w3.org/2000/svg\' width=\'64\' height=\'64\' viewBox=\'0 0 24 24\' fill=\'none\' stroke=\'%2394a3b8\' stroke-width=\'2\'&gt;&lt;rect x=\'3\' y=\'3\' width=\'18\' height=\'18\' rx=\'2\'/&gt;&lt;path d=\'M9 12l2 2 4-4\'/&gt;&lt;/svg&gt;';" />
          </div>
          <div class="ex-info">
            <h4>Maveøvelse, Stuart McGill curlup</h4>
            
              <div class="ex-instructions" style="font-size: 0.7em;">Lig på ryggen. Bøj det ene ben. En hånd under ryggen for at sikre, at der er en naturlig kurve i ryggen. Kig opad. Løft brystkassen lige op mod loftet.</div>
            
          </div>
          <div class="ex-badge-top-right">
            <span class="ex-badge">
              🔢 x6
            </span>
          </div>
        </div>
      
        
        
        

        
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
              
              
        

        
        
        
        

        <div class="workout-ex-item">
          <div class="ex-img-thumb">
            <img src="/assets/images/exercises/side-bridge-0-320.jpg" alt="Side bridge" loading="lazy" onerror="this.onerror=null;this.src='data:image/svg+xml;utf8,&lt;svg xmlns=\'http://www.w3.org/2000/svg\' width=\'64\' height=\'64\' viewBox=\'0 0 24 24\' fill=\'none\' stroke=\'%2394a3b8\' stroke-width=\'2\'&gt;&lt;rect x=\'3\' y=\'3\' width=\'18\' height=\'18\' rx=\'2\'/&gt;&lt;path d=\'M9 12l2 2 4-4\'/&gt;&lt;/svg&gt;';" />
          </div>
          <div class="ex-info">
            <h4>Side bridge</h4>
            
              <div class="ex-instructions" style="font-size: 0.7em;">Lig på siden. Skub dig op ved at hvile på underarmen og overamen ud til siden. Hold kroppen helt ret. Kig fremad. Hold positionen i 10-20 sekunder. Gentag. Kan også laves på strakt arm.</div>
            
          </div>
          <div class="ex-badge-top-right">
            <span class="ex-badge">
              🔢 x6
            </span>
          </div>
        </div>
      
        
        
        

        
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
          
            
            
            
            
            

            
              
              
        

        
        
        
        

        <div class="workout-ex-item">
          <div class="ex-img-thumb">
            <img src="/assets/images/exercises/birddog-0-320.jpg" alt="Bird dog" loading="lazy" onerror="this.onerror=null;this.src='data:image/svg+xml;utf8,&lt;svg xmlns=\'http://www.w3.org/2000/svg\' width=\'64\' height=\'64\' viewBox=\'0 0 24 24\' fill=\'none\' stroke=\'%2394a3b8\' stroke-width=\'2\'&gt;&lt;rect x=\'3\' y=\'3\' width=\'18\' height=\'18\' rx=\'2\'/&gt;&lt;path d=\'M9 12l2 2 4-4\'/&gt;&lt;/svg&gt;';" />
          </div>
          <div class="ex-info">
            <h4>Bird dog</h4>
            
              <div class="ex-instructions" style="font-size: 0.7em;">Start med at hvile på knæ og arme. Løft den ene arm og modsatte fod indtil begge er parallelle med gulvet. Lav bevægelsen uden at vride i hoften. Sænk igen. Gentag med modsatte arm og ben.</div>
            
          </div>
          <div class="ex-badge-top-right">
            <span class="ex-badge">
              🔢 x6
            </span>
          </div>
        </div>
      
    </div>

    <!-- INDSTILLINGER MED DYNAMISK DEFAULT UDEFRA -->
    <div class="workout-settings">
      <div class="setting-box">
        <label>Runder</label>
        <select class="input-rounds">
          
            <option value="1">1 runde</option>
          
            <option value="2">2 runder</option>
          
            <option value="3" selected="">3 runder</option>
          
            <option value="4">4 runder</option>
          
            <option value="5">5 runder</option>
          
        </select>
      </div>
      <div class="setting-box">
        <label>Pauselængde</label>
        <select class="input-rest">
          
          
            
            <option value="10">10 sek</option>
          
            
            <option value="15" selected="">15 sek</option>
          
            
            <option value="20">20 sek</option>
          
            
            <option value="30">30 sek</option>
          
            
            <option value="45">45 sek</option>
          
            
            <option value="60">60 sek</option>
          
        </select>
      </div>
    </div>

    <button class="btn-start-workout">▶ Start Træning</button>
  </div>

  <!-- 3. FULLSKÆRMS PLAYER OVERLAY -->
  <div class="workout-player-overlay" style="display: none;">
    <div class="player-top-bar">
      <span class="player-progress-text">Runde 1/3 • Øvelse 1/5</span>
      <button class="btn-close-player" title="Luk og afslut træning" aria-label="Luk træning">✕</button>
    </div>

    <!-- AKTIV ØVELSE SKÆRM -->
    <div class="player-body active-exercise-view">
      <div class="player-left-media">
        <img class="player-media-img" src="" alt="Øvelse billede" onerror="this.onerror=null;this.src='data:image/svg+xml;utf8,&lt;svg xmlns=\'http://www.w3.org/2000/svg\' width=\'120\' height=\'120\' viewBox=\'0 0 24 24\' fill=\'none\' stroke=\'%2394a3b8\' stroke-width=\'2\'&gt;&lt;rect x=\'3\' y=\'3\' width=\'18\' height=\'18\' rx=\'2\'/&gt;&lt;path d=\'M9 12l2 2 4-4\'/&gt;&lt;/svg&gt;';" />
      </div>
      <div class="player-right-controls">
        <h2 class="player-ex-title">Øvelsesnavn</h2>
        
        <div class="timer-display" style="display: none;">
          <div class="big-timer">00:30</div>
          <button class="btn-toggle-pause">⏸</button>
        </div>

        <div class="reps-display" style="display: none;">
          <div class="big-reps">x12</div>
          <button class="btn-complete-reps">✓</button>
        </div>
      </div>
    </div>

    <!-- HVIL / PAUSE SKÆRM (DARK MODE) -->
    <div class="player-body rest-view" style="display: none;">
      <div class="player-left-rest">
        <span class="rest-label">HVIL</span>
        <div class="rest-timer">00:20</div>
        <div class="rest-buttons">
          <button class="btn-add-rest">+20s</button>
          <button class="btn-skip-rest">SPRING OVER</button>
        </div>
      </div>
      <div class="player-right-next">
        <span class="next-label">NÆSTE ØVELSE</span>
        <h3 class="next-ex-title">...</h3>
        <div class="next-media-container">
          <img class="next-media-img" src="" alt="Næste øvelse" onerror="this.onerror=null;this.src='data:image/svg+xml;utf8,&lt;svg xmlns=\'http://www.w3.org/2000/svg\' width=\'120\' height=\'120\' viewBox=\'0 0 24 24\' fill=\'none\' stroke=\'%2394a3b8\' stroke-width=\'2\'&gt;&lt;rect x=\'3\' y=\'3\' width=\'18\' height=\'18\' rx=\'2\'/&gt;&lt;path d=\'M9 12l2 2 4-4\'/&gt;&lt;/svg&gt;';" />
        </div>
      </div>
    </div>
  </div>
</div>

<style>
/* SETUP CARD & INGNE SCROLL */
.workout-app { margin: 2rem 0; font-family: system-ui, -apple-system, sans-serif; }
.workout-setup-card { background: #fff; border: 1px solid #e2e8f0; border-radius: 16px; padding: 24px; box-shadow: 0 4px 12px rgba(0,0,0,0.05); }
.workout-header h3 { margin-top: 0; margin-bottom: 6px; }
.workout-header p { margin: 0 0 16px 0; color: #64748b; font-size: 0.95rem; }

/* INGEN SCROLLBAR - VIS ALLE ØVELSER DIRECTE */
.workout-list { display: flex; flex-direction: column; gap: 12px; margin: 20px 0; max-height: none; overflow: visible; }

/* ØVELSESBOKS MED POSITION RELATIVE FOR TOP-RIGHT BADGE */
.workout-ex-item { 
  position: relative; 
  display: flex; 
  align-items: flex-start; 
  gap: 16px; 
  padding: 14px; 
  background: #f8fafc; 
  border-radius: 12px; 
  border: 1px solid #f1f5f9; 
}
.ex-img-thumb img { width: 64px; height: 64px; object-fit: cover; border-radius: 8px; background: #e2e8f0; flex-shrink: 0; }

.ex-info { flex: 1; padding-right: 70px; } /* Plads til knap i øverste højre hjørne */
.ex-info h4 { margin: 0 0 6px 0; font-size: 1.05rem; font-weight: 700; color: #0f172a; }

/* INSTRUKTIONER UNDER OVERSKRIFTEN */
.ex-instructions { font-size: 0.88rem; color: #475569; line-height: 1.4; margin-top: 4px; }

/* BADGE I ØVERSTE HØJRE HJØRNE */
.ex-badge-top-right { position: absolute; top: 12px; right: 12px; }
.ex-badge { font-size: 0.85rem; font-weight: 600; background: #e2e8f0; color: #334155; padding: 4px 10px; border-radius: 8px; display: inline-block; }

.workout-settings { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 20px; }
.setting-box label { display: block; font-size: 0.85rem; font-weight: 600; margin-bottom: 6px; color: #64748b; }
.setting-box select { width: 100%; padding: 10px; border-radius: 8px; border: 1px solid #cbd5e1; background: #fff; font-size: 1rem; }

.btn-start-workout { width: 100%; padding: 16px; background: #ef4444; color: #fff; border: none; border-radius: 12px; font-size: 1.2rem; font-weight: 700; cursor: pointer; transition: background 0.2s, transform 0.1s; }
.btn-start-workout:hover { background: #dc2626; transform: translateY(-2px); }

/* FULLSKÆRMS OVERLAY */
.workout-player-overlay { 
  position: fixed; 
  top: 0; 
  left: 0; 
  width: 100vw; 
  height: 100vh; 
  z-index: 999999; 
  background: #ffffff; 
  display: flex; 
  flex-direction: column; 
  color: #0f172a; 
}

.player-top-bar { 
  display: flex; 
  justify-content: space-between; 
  align-items: center; 
  padding: 16px 24px; 
  background: rgba(255,255,255,0.95); 
  border-bottom: 1px solid #e2e8f0; 
}
.player-progress-text { font-weight: 700; color: #64748b; font-size: 1.1rem; }

.btn-close-player { 
  background: #f1f5f9; 
  border: none; 
  width: 44px; 
  height: 44px; 
  border-radius: 50%; 
  font-size: 1.5rem; 
  font-weight: 700; 
  line-height: 1; 
  display: flex; 
  align-items: center; 
  justify-content: center; 
  cursor: pointer; 
  color: #334155; 
  transition: background 0.2s, color 0.2s, transform 0.1s; 
}
.btn-close-player:hover { 
  background: #fee2e2; 
  color: #ef4444; 
  transform: scale(1.05); 
}

.player-body { flex: 1; display: grid; grid-template-columns: 1fr 1fr; height: calc(100vh - 75px); }
@media (max-width: 768px) { .player-body { grid-template-columns: 1fr; grid-template-rows: 1fr 1fr; } }

.player-left-media { display: flex; align-items: center; justify-content: center; background: #f8fafc; padding: 20px; }
.player-media-img { max-width: 90%; max-height: 80vh; object-fit: contain; border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.1); transition: opacity 0.2s; }

.player-right-controls { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 40px; text-align: center; }
.player-ex-title { font-size: 2.2rem; margin-bottom: 2rem; }
.big-timer, .big-reps { font-size: 5.5rem; font-weight: 800; margin-bottom: 2rem; letter-spacing: -2px; }

.btn-toggle-pause, .btn-complete-reps { width: 100px; height: 100px; border-radius: 50%; background: #ef4444; color: #fff; border: none; font-size: 2.5rem; cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 25px rgba(239, 68, 68, 0.4); }

/* REST VIEW (DARK MODE) */
.rest-view { background: #1e1e24; color: #fff; }
.player-left-rest { display: flex; flex-direction: column; align-items: center; justify-content: center; background: #2b2b36; border-right: 1px solid #3f3f4e; }
.rest-label { font-size: 1.5rem; font-weight: 800; color: #9ca3af; letter-spacing: 2px; }

.rest-timer { 
  font-size: 5.5rem; 
  font-weight: 900; 
  margin: 10px 0 30px 0; 
  transition: transform 0.2s ease, color 0.2s ease; 
}

.rest-buttons { display: flex; gap: 12px; }
.rest-buttons button { padding: 12px 24px; border-radius: 30px; border: none; font-weight: 700; cursor: pointer; transition: transform 0.1s; }
.rest-buttons button:active { transform: scale(0.95); }
.btn-add-rest { background: #374151; color: #fff; }
.btn-add-rest:hover { background: #4b5563; }
.btn-skip-rest { background: #fff; color: #000; }
.btn-skip-rest:hover { background: #e5e7eb; }

.player-right-next { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 30px; background: #ffffff; color: #000; border-radius: 24px 0 0 24px; margin: 20px 0 20px 20px; }
.next-label { font-size: 0.9rem; font-weight: 700; color: #6b7280; }
.next-ex-title { font-size: 1.5rem; margin: 8px 0 20px 0; }
.next-media-img { max-height: 300px; object-fit: contain; border-radius: 12px; }
</style>

<script>
(function() {
  const container = document.getElementById('workout-');
  const rawData = JSON.parse(document.getElementById('data-workout-').textContent);
  
  const playerOverlay = container.querySelector('.workout-player-overlay');
  const activeView = container.querySelector('.active-exercise-view');
  const restView = container.querySelector('.rest-view');
  
  const btnStart = container.querySelector('.btn-start-workout');
  const btnClose = container.querySelector('.btn-close-player');
  const progressText = container.querySelector('.player-progress-text');
  
  const exTitle = container.querySelector('.player-ex-title');
  const exMedia = container.querySelector('.player-media-img');
  const timerDisplay = container.querySelector('.timer-display');
  const repsDisplay = container.querySelector('.reps-display');
  const bigTimer = container.querySelector('.big-timer');
  const bigReps = container.querySelector('.big-reps');
  const btnPause = container.querySelector('.btn-toggle-pause');
  const btnCompleteReps = container.querySelector('.btn-complete-reps');

  const restTimerDisplay = container.querySelector('.rest-timer');
  const btnAddRest = container.querySelector('.btn-add-rest');
  const btnSkipRest = container.querySelector('.btn-skip-rest');
  const nextExTitle = container.querySelector('.next-ex-title');
  const nextExMedia = container.querySelector('.next-media-img');

  let totalRounds = 3, restDuration = 20, currentRound = 1, currentExIndex = 0;
  let isPaused = false, timerInterval = null, slideInterval = null, timeRemaining = 0, isResting = false;
  let wakeLock = null;

  async function requestWakeLock() {
    try { if ('wakeLock' in navigator) wakeLock = await navigator.wakeLock.request('screen'); } catch (err) {}
  }
  function releaseWakeLock() {
    if (wakeLock) { wakeLock.release(); wakeLock = null; }
  }

  function playBeep(freq = 440, duration = 0.15) {
    try {
      const audioCtx = new (window.AudioContext || window.webkitAudioContext)();
      const osc = audioCtx.createOscillator();
      const gain = audioCtx.createGain();
      osc.connect(gain);
      gain.connect(audioCtx.destination);
      osc.frequency.value = freq;
      osc.start();
      osc.stop(audioCtx.currentTime + duration);
    } catch(e){}
  }

  function startImageSlideshow(images, imgElement) {
    clearInterval(slideInterval);
    if (!images || images.length === 0) return;
    
    let imgIdx = 0;
    imgElement.src = images[0];

    if (images.length > 1) {
      slideInterval = setInterval(() => {
        if (!isPaused) {
          imgIdx = (imgIdx + 1) % images.length;
          imgElement.src = images[imgIdx];
        }
      }, 1500);
    }
  }

  btnStart.addEventListener('click', () => {
    if(!rawData || rawData.length === 0) return alert("Ingen øvelser fundet.");
    totalRounds = parseInt(container.querySelector('.input-rounds').value);
    restDuration = parseInt(container.querySelector('.input-rest').value);
    currentRound = 1; currentExIndex = 0;
    
    playerOverlay.style.display = 'flex';
    
    if (playerOverlay.requestFullscreen) {
      playerOverlay.requestFullscreen().catch(() => {});
    } else if (playerOverlay.webkitRequestFullscreen) {
      playerOverlay.webkitRequestFullscreen().catch(() => {});
    }

    requestWakeLock();
    loadStep();
  });

  btnClose.addEventListener('click', () => {
    clearInterval(timerInterval);
    clearInterval(slideInterval);
    releaseWakeLock();
    if (document.fullscreenElement) {
      document.exitFullscreen().catch(() => {});
    } else if (document.webkitFullscreenElement) {
      document.webkitExitFullscreen().catch(() => {});
    }
    playerOverlay.style.display = 'none';
  });

  function loadStep() {
    clearInterval(timerInterval);
    clearInterval(slideInterval);
    isPaused = false;
    btnPause.innerText = '⏸';

    if (currentExIndex >= rawData.length) {
      currentExIndex = 0;
      currentRound++;
      if (currentRound > totalRounds) {
        alert('🎉 Stærkt gået! Du har gennemført træningsprogrammet!');
        btnClose.click();
        return;
      }
    }

    const ex = rawData[currentExIndex];
    progressText.innerText = `Runde ${currentRound}/${totalRounds} • Øvelse ${currentExIndex + 1}/${rawData.length}`;

    if (isResting) {
      activeView.style.display = 'none';
      restView.style.display = 'grid';
      nextExTitle.innerText = ex.name;
      
      startImageSlideshow(ex.images, nextExMedia);

      timeRemaining = restDuration;
      updateRestTimerDisplay();

      timerInterval = setInterval(() => {
        if (!isPaused) {
          timeRemaining--;
          updateRestTimerDisplay();
          if (timeRemaining <= 3 && timeRemaining > 0) playBeep(600, 0.1);
          if (timeRemaining <= 0) {
            playBeep(900, 0.3);
            isResting = false;
            loadStep();
          }
        }
      }, 1000);

    } else {
      restView.style.display = 'none';
      activeView.style.display = 'grid';
      exTitle.innerText = ex.name;
      
      startImageSlideshow(ex.images, exMedia);

      if (ex.type === 'time') {
        repsDisplay.style.display = 'none';
        timerDisplay.style.display = 'block';
        timeRemaining = parseInt(ex.value);
        updateTimerDisplay();

        timerInterval = setInterval(() => {
          if (!isPaused) {
            timeRemaining--;
            updateTimerDisplay();
            if (timeRemaining <= 3 && timeRemaining > 0) playBeep(600, 0.1);
            if (timeRemaining <= 0) {
              playBeep(900, 0.3);
              finishExercise();
            }
          }
        }, 1000);
      } else {
        timerDisplay.style.display = 'none';
        repsDisplay.style.display = 'block';
        bigReps.innerText = `x${ex.value}`;
      }
    }
  }

  function finishExercise() {
    currentExIndex++;
    if (currentExIndex < rawData.length || currentRound < totalRounds) isResting = true;
    loadStep();
  }

  function updateTimerDisplay() {
    const mins = String(Math.floor(timeRemaining / 60)).padStart(2, '0');
    const secs = String(timeRemaining % 60).padStart(2, '0');
    bigTimer.innerText = `${mins}:${secs}`;
  }

  function updateRestTimerDisplay() {
    const mins = String(Math.floor(timeRemaining / 60)).padStart(2, '0');
    const secs = String(timeRemaining % 60).padStart(2, '0');
    restTimerDisplay.innerText = `${mins}:${secs}`;
  }

  btnPause.addEventListener('click', () => { isPaused = !isPaused; btnPause.innerText = isPaused ? '▶' : '⏸'; });
  btnCompleteReps.addEventListener('click', () => { playBeep(800, 0.2); finishExercise(); });

  btnAddRest.addEventListener('click', () => { 
    timeRemaining += 20; 
    updateRestTimerDisplay(); 
    
    restTimerDisplay.style.transform = "scale(1.2)";
    restTimerDisplay.style.color = "#4ade80";
    setTimeout(() => {
      restTimerDisplay.style.transform = "scale(1)";
      restTimerDisplay.style.color = "#ffffff";
    }, 250);
  });

  btnSkipRest.addEventListener('click', () => { isResting = false; loadStep(); });
})();
</script>

<hr />

<h2 id="doseringsmodellen-den-nedadgående-pyramide">Doseringsmodellen: Den nedadgående pyramide</h2>

<p>Dr. McGill anbefaler, at øvelserne ikke udføres til udmattelse, da træt muskulatur fører til tab af teknik og øget skadesrisiko. I stedet benyttes et <strong>nedadgående pyramide-mønster</strong> med isometriske hold af 8-10 sekunders varighed:</p>

<ul>
  <li><strong>Sæt 1:</strong> 6 repetitioner (hold i 8-10 sek. pr. rep)</li>
  <li><em>20 sekunders pause</em></li>
  <li><strong>Sæt 2:</strong> 4 repetitioner (hold i 8-10 sek. pr. rep)</li>
  <li><em>20 sekunders pause</em></li>
  <li><strong>Sæt 3:</strong> 2 repetitioner (hold i 8-10 sek. pr. rep)</li>
</ul>

<p><em>(Mønsteret hedder <strong>6-4-2</strong>. Efterhånden som du bliver stærkere, kan du øge til f.eks. <strong>8-6-4</strong>).</em></p>

<hr />

<h2 id="hvornår-skal-du-bruge-mcgill-big-3">Hvornår skal du bruge McGill Big 3?</h2>

<ol>
  <li><strong>Som opvarmning før tunge løft:</strong> Udfør 1-2 runder af Big 3 lige inden tunge øvelser som squat og dødløft. Det aktiverer kernen og skaber “neural stivhed”, som gør dig i stand til at overføre mere kraft gennem kropsstammen uden at miste ryggens position.</li>
  <li><strong>Som genoptræning ved lændesmerter:</strong> Udfør serien dagligt (f.eks. om morgenen) for at genopbygge udholdenhed i kernemuskulaturen.</li>
  <li><strong>Som supplement til muskelopbygning:</strong> En stabil rygsøjle er forudsætningen for, at du kan kaste tunge vægte rundt og opnå maksimal <a href="/muskelmasse-beregner/">muskelmasse og hypertrofi</a>.</li>
</ol>

<hr />

<h2 id="ofte-stillede-spørgsmål-om-mcgill-big-3">Ofte stillede spørgsmål om McGill Big 3</h2>

<details class="faq">
<summary><h3>Hvorfor skal man ikke lave klassiske mavebøjninger (crunches) ifølge Dr. McGill?</h3></summary>
<p>Klassiske mavebøjninger tvinger lænderyggen ud i gentagne fleksioner under belastning. Dette skaber store skæringskræfter på diskusskiverne i lænden, hvilket over tid kan føre til diskusproplaps eller kroniske lændesmerter.</p>

</details>

<details class="faq">
<summary><h3>Hvad er fænomenet 'Abdominal Bracing'?</h3></summary>
<p>Abdominal bracing er en teknik, hvor du spænder hele kropsstammen (mave, ryg, skrå mavemuskler) samtidigt – som om du skal modtage et stød i maven – i stedet for at suge navlen ind.</p>

</details>

<details class="faq">
<summary><h3>Hvordan udføres den nedadgående pyramide-struktur i McGill Big 3?</h3></summary>
<p>Du udfører isometriske hold af 8-10 sekunders varighed og trapper ned i repetitioner. F.eks. 6 repetitioner til hver side, 20 sekunders pause, 4 repetitioner, pause, og til sidst 2 repetitioner (6-4-2 mønsteret).</p>

</details>

<details class="faq">
<summary><h3>Kan jeg bruge McGill Big 3 som opvarmning til tunge løft?</h3></summary>
<p>Ja, det er et af de absolut bedste værktøjer som opvarmning før tunge øvelser som squat og dødløft. Det aktiverer kernemuskulaturen og opbygger ‘skabt stivhed’ i ryggen før tunge løft.</p>

</details>

<script type="application/ld+json">
    {
        "@context":"https://schema.org",
        "@type":"FAQPage",
        "mainEntity":
            [{"@type":"Question","name":"Hvorfor skal man ikke lave klassiske mavebøjninger (crunches) ifølge Dr. McGill?","acceptedAnswer":{"@type":"Answer","text":"Klassiske mavebøjninger tvinger lænderyggen ud i gentagne fleksioner under belastning. Dette skaber store skæringskræfter på diskusskiverne i lænden, hvilket over tid kan føre til diskusproplaps eller kroniske lændesmerter.\n"}},{"@type":"Question","name":"Hvad er fænomenet 'Abdominal Bracing'?","acceptedAnswer":{"@type":"Answer","text":"Abdominal bracing er en teknik, hvor du spænder hele kropsstammen (mave, ryg, skrå mavemuskler) samtidigt – som om du skal modtage et stød i maven – i stedet for at suge navlen ind.\n"}},{"@type":"Question","name":"Hvordan udføres den nedadgående pyramide-struktur i McGill Big 3?","acceptedAnswer":{"@type":"Answer","text":"Du udfører isometriske hold af 8-10 sekunders varighed og trapper ned i repetitioner. F.eks. 6 repetitioner til hver side, 20 sekunders pause, 4 repetitioner, pause, og til sidst 2 repetitioner (6-4-2 mønsteret).\n"}},{"@type":"Question","name":"Kan jeg bruge McGill Big 3 som opvarmning til tunge løft?","acceptedAnswer":{"@type":"Answer","text":"Ja, det er et af de absolut bedste værktøjer som opvarmning før tunge øvelser som squat og dødløft. Det aktiverer kernemuskulaturen og opbygger ‘skabt stivhed’ i ryggen før tunge løft.\n"}}]
    }
</script>

<hr />

<details class="references">
  <summary><h2 id="references">Referencer</h2></summary>

  <ul>
    <li>McGill, S. M. (1998). <em>Low back exercises: Evidence for improving exercise regimens</em>. Physical Therapy, 78(7), 754-765.</li>
    <li>McGill, S. M. (2015). <em>Back Mechanic: The secrets to a healthy spine your doctor isn’t telling you</em>. Backfitpro Inc.</li>
    <li>Axler, C. T., &amp; McGill, S. M. (1997). <em>Low back loads over a variety of abdominal exercises: searching for the safest strain-free exercise</em>. Medicine &amp; Science in Sports &amp; Exercise, 29(6), 804-811.</li>
  </ul>

</details>]]></content><author><name>Lars Olesen</name></author><category term="Styrketræning" /><category term="Skadesforebyggelse" /><category term="mcgill" /><category term="core" /><category term="maveøvelser" /><category term="lænd" /><category term="opvarmning" /><summary type="html"><![CDATA[Lær Dr. Stuart McGills verdenskendte Big 3 øvelser (Modified Curl-Up, Side Plank og Bird-Dog). Få maksimal kernestabilitet og beskyt lænden mod skader.]]></summary></entry><entry><title type="html">Norsk tærskeltræning – Fysiologien bag verdens bedste udholdenhedsatleter</title><link href="https://www.motionsplan.dk/norsk-taerskeltraening/" rel="alternate" type="text/html" title="Norsk tærskeltræning – Fysiologien bag verdens bedste udholdenhedsatleter" /><published>2026-08-18T00:00:00+00:00</published><updated>2026-08-18T21:15:00+00:00</updated><id>https://www.motionsplan.dk/norwegian-threshold</id><content type="html" xml:base="https://www.motionsplan.dk/norsk-taerskeltraening/"><![CDATA[<p>Norge har i de senere år overtaget den globale udholdenhedsverden. Fra mellemdistanceløberen Jakob Ingebrigtsen og hans brødre til triatleterne Kristian Blummenfelt og Gustav Iden; nordmændene vinder OL-guld og smadrer verdensrekorder på stribe.</p>

<p>Bag de utrolige resultater ligger ikke en hemmelig superdrik, men en uhyre disciplineret og fysiologisk velfunderet træningsfilosofi kendt som <strong>The Norwegian Model</strong> eller <em>norsk tærskeltræning</em>.</p>

<p>Men hvad er det præcis, nordmændene gør, som adskiller sig fra resten af verden? Og endnu vigtigere: Kan du som almindelig motionist låne af principperne uden at brænde ud?</p>

<hr />

<h2 id="opgøret-med-no-pain-no-gain">Opgøret med “No Pain, No Gain”</h2>

<p>For at forstå den norske model skal vi forstå, hvad den <em>ikke</em> er. I årtier har <a href="/intervaltraening/">intervaltræning</a> været synonymt med at grave dybt, smage blod og presse hjertet til det yderste.</p>

<p>Metoder som den norske <a href="/4x4-intervaltraening/">4x4 intervaltræning</a> (fra Helgerud og Hoff) eller sprint-protokollen <a href="/10-20-30-intervaltraening/">10-20-30</a> fokuserer benhårdt på at hæve den <a href="/maksimale-iltoptagelse-vo2max/">maksimale iltoptagelse (VO2max)</a> ved at ligge tæt på 90-100 % af maksimal ydeevne.</p>

<p>Den norske tærskelmodel – pioneret af den tidligere stjerneløber Marius Bakken i starten af 00’erne – går den stik modsatte vej. Her gælder én ufravigelig regel: <strong>Du må aldrig løbe hurtigere end din tærskel.</strong></p>

<h3 id="laktat-kontrol-som-fartbegrænser">Laktat-kontrol som fartbegrænser</h3>
<p>Når du løber, producerer musklerne mælkesyre (laktat). Ved roligt løb kan kroppen nemt rense blodet for laktat. Sætter du farten op til en sprint, overstiger produktionen kroppens evne til at rydde op, og du “syrer til”.</p>

<p>Balancen mellem produktion og fjernelse af laktat kaldes <em><a href="/anaerobe-taerskel/">den anaerobe tærskel</a></em>.</p>

<p>I den norske model løbes størstedelen af al kvalitetstræning lige <em>under</em> eller <em>præcis på</em> denne tærskel (typisk omkring 2,5 til 4,0 mmol/L laktat i blodet). Filosofien er simpel:
Ved at holde intensiteten strengt nede kan atleterne opholde sig i træningszonen i ekstremt lang tid uden at akkumulere muskulær skade og overbelaste centralnervesystemet (CNS).</p>

<hr />

<h2 id="det-unikke-våben-dobbelt-tærskel-double-threshold-days">Det unikke våben: Dobbelt Tærskel (Double Threshold Days)</h2>

<p>Det mest berømte element i Ingebrigtsen-familiens og Bakkens træning er indførelsen af <strong>Double Threshold Days</strong>.</p>

<p>I stedet for at løbe ét afsindigt hårdt intervalpas på en dag (hvilket kræver flere dages restitution), deler de volumen op:</p>

<ul>
  <li><strong>Morgenpas:</strong> Længere tærskel-intervaller med lidt lavere intensitet (fx 5 x 6 minutter ved laktatniveau ~2,5 mmol/L).</li>
  <li><strong>Aftenpas:</strong> Kortere, lidt mere intense tærskel-intervaller (fx 10 x 3 minutter ved laktatniveau ~3,5 mmol/L).</li>
</ul>

<p><strong>Fysiologien bag:</strong> At bygge en massiv aerob motor (et højt <a href="/kondital/">kondital</a>) handler om at udsætte mitokondrierne for langvarig stress. Men ved ét langt træningspas mister løberen sin mekaniske effektivitet (løbeøkonomien falder), og skadesrisikoen stiger. Ved at dele passet op kan musklerne nå at rense laktaten ud og genopfylde lidt glykogen, så aftenpasset løbes med friske ben og perfekt mekanik.</p>

<p>Denne metode tillader elite-nordmændene at samle op mod 30-40 kilometer om ugen alene i tærskelzonen. Det er en mængde, som klassiske løbeprogrammer slet ikke kommer i nærheden af.</p>

<hr />

<h2 id="hvordan-the-norwegian-model-passer-ind-i-polariseret-træning">Hvordan The Norwegian Model passer ind i Polariseret Træning</h2>

<p>Den norske model forveksles ofte med at bryde reglerne i polariseret træning (80/20-reglen), hvor 80 % skal være helt roligt (Zone 1) og 20 % skal være meget hårdt (Zone 4/5).</p>

<p>Nordmændene træner i højere grad <strong>Pyramide-træning</strong>. De løber ekstremt meget langsomt mængdetræning (ofte 150-180 km om ugen for eliten), en massiv mængde i midten (tærskel / Zone 3) og næsten intet oppe i den rene anaerobe røde zone (VO2max sprints).</p>

<blockquote>
  <p>“Tærskeltræning er som at bygge fundamentet til et hus. Jo bredere og stærkere fundamentet er, desto højere kan du bygge taget (VO2max). Nordmændene bygger historiens bredeste fundament.”</p>
</blockquote>

<hr />

<h2 id="sådan-bruger-du-metoden-i-din-egen-træning-uden-blødende-fingre">Sådan bruger du metoden i din egen træning (Uden blødende fingre)</h2>

<p>Jakob Ingebrigtsen og Kristian Blummenfelt stikker sig selv i fingeren med en laktatmåler mellem hvert interval for at sikre, at laktattallet ikke kryber over 4,0 mmol/L. Det behøver (og bør) du som motionist ikke at gøre.</p>

<p>Du kan høste de fysiologiske fordele af den norske model ved at ændre din tilgang til intervaltræning via disse tre principper:</p>

<h3 id="1-sænk-farten-på-dine-intervaller">1. Sænk farten på dine intervaller</h3>
<p>Næste gang du løber intervaller, skal du ikke løbe for at slå rekord. Løb ud fra følelsen “komfortabelt hårdt”. Hvis du løber med pulsur, skal du ligge omkring <strong>82-88 % af din maksimale hjertefrekvens</strong>. Du bør føle, at du kunne have løbet et eller to intervaller mere, når træningen er færdig.</p>

<h3 id="2-øg-den-samlede-tid-i-zonen-volumen-frem-for-intensitet">2. Øg den samlede tid i zonen (Volumen frem for intensitet)</h3>
<p>Fordi du nu løber langsommere i dine intervaller, kan du holde til mere.</p>
<ul>
  <li>Frem for at løbe 4 x 4 minutter (i alt 16 minutters arbejde), kan du løbe <strong>6 x 6 minutter</strong> eller <strong>8 x 4 minutter</strong> ved tærskeltempo med kun 1 minuts stående pause.</li>
  <li>De korte pauser er en anden hemmelighed i metoden: Laktaten når ikke at forsvinde helt i pausen, men hjertefrekvensen falder lige præcis nok til, at du kan holde mekanikken i orden.</li>
</ul>

<h3 id="3-lad-være-med-at-kopiere-double-threshold-ukritisk">3. Lad være med at kopiere “Double Threshold” ukritisk</h3>
<p>Du bør <strong>ikke</strong> begynde at træne tærskel to gange om dagen som motionist. Det kræver en enorm generel grundform (opbygget over mange år) at tolerere den muskulære belastning. 
Integrer i stedet ét til to ugentlige tærskel-pas på 20-30 minutters samlet effektiv arbejdstid. Det er et kvantespring i udholdenhed for den gennemsnitlige løber.</p>

<hr />

<h2 id="opsamling-et-værktøj--ikke-hele-sandheden">Opsamling: Et værktøj – Ikke hele sandheden</h2>

<p>Er den norske tærskelmodel den ultimative sandhed inden for træningsfysiologi og <a href="/anaerob-traening/">anaerob træning</a>? Den er uden tvivl den mest succesfulde udholdenhedsstrategi i moderne tid for professionelle atleter.</p>

<p>Men metoden kræver enorm disciplin for <em>ikke</em> at løbe for stærkt. For mange motionister, der kun har tid til at løbe 3 gange om ugen, kan traditionel højintensiv træning som <a href="/4x4-intervaltraening/">4x4 intervaller</a> eller <a href="/10-20-30-intervaltraening/">10-20-30 sprints</a> stadig give mere “bang for the buck” på den korte bane.</p>

<p>Vil du derimod optimere dig mod maraton, halve jernmænd eller blot opbygge en knusende stærk fysiologisk “motor” skadefrit over en hel vinter, er den norske tærskelfilosofi den stærkeste videnskabelige vej frem.</p>

<hr />

<h2 id="ofte-stillede-spørgsmål">Ofte stillede spørgsmål</h2>

<details class="faq">
<summary><h3>Hvad er norsk tærskeltræning (The Norwegian Model)?</h3></summary>
<p>Den norske tærskelmodel er en træningsfilosofi kendetegnet ved massiv volumen af intervaltræning udført strengt på eller lige under den anaerobe tærskel (laktattærsklen), oftest overvåget via hyppige blod-laktatmålinger undervejs i træningspasset.</p>

</details>

<details class="faq">
<summary><h3>Hvad er 'Double Threshold Days' (dobbelt-tærskel)?</h3></summary>
<p>Et unikt element i den norske model er to tærskel-pas på samme dag (fx formiddag og aften). Dette tillader atleten at opnå en enorm mængde tærskeltræning (op til 30-40 minutter pr. pas) uden at udtrætte centralnervesystemet, som det ville ske ved ét massivt pas.</p>

</details>

<details class="faq">
<summary><h3>Kræver metoden, at jeg køber en laktatmåler?</h3></summary>
<p>Nej. For eliten er laktatmålere afgørende for ikke at løbe for stærkt. Som motionist kan du opnå samme effekt ved at løbe intervaller ud fra puls (typisk 82-88 % af makspuls) eller ud fra følelsen af ‘komfortabelt hårdt’ tempo (hvor du akkurat kan sige korte sætninger).</p>

</details>

<script type="application/ld+json">
    {
        "@context":"https://schema.org",
        "@type":"FAQPage",
        "mainEntity":
            [{"@type":"Question","name":"Hvad er norsk tærskeltræning (The Norwegian Model)?","acceptedAnswer":{"@type":"Answer","text":"Den norske tærskelmodel er en træningsfilosofi kendetegnet ved massiv volumen af intervaltræning udført strengt på eller lige under den anaerobe tærskel (laktattærsklen), oftest overvåget via hyppige blod-laktatmålinger undervejs i træningspasset.\n"}},{"@type":"Question","name":"Hvad er 'Double Threshold Days' (dobbelt-tærskel)?","acceptedAnswer":{"@type":"Answer","text":"Et unikt element i den norske model er to tærskel-pas på samme dag (fx formiddag og aften). Dette tillader atleten at opnå en enorm mængde tærskeltræning (op til 30-40 minutter pr. pas) uden at udtrætte centralnervesystemet, som det ville ske ved ét massivt pas.\n"}},{"@type":"Question","name":"Kræver metoden, at jeg køber en laktatmåler?","acceptedAnswer":{"@type":"Answer","text":"Nej. For eliten er laktatmålere afgørende for ikke at løbe for stærkt. Som motionist kan du opnå samme effekt ved at løbe intervaller ud fra puls (typisk 82-88 % af makspuls) eller ud fra følelsen af ‘komfortabelt hårdt’ tempo (hvor du akkurat kan sige korte sætninger).\n"}}]
    }
</script>

<details class="references">
  <summary><h2 id="references">Kilder og videnskabelig litteratur</h2></summary>

  <ol>
    <li><strong>Bakken, M. (2022).</strong> <em>The Norwegian Model of Lactate Threshold Training and Lactate Controlled Approach to Training.</em> (Marius Bakkens publicerede træningsmanifest).</li>
    <li><strong>Casado, A., Hanley, B., Santos-Concejero, J., &amp; Ruiz-Pérez, L. M. (2019).</strong> “World-Class Long-Distance Running Performances Are Best Predicted by Volume of Easy Runs and Proportion of Short-Interval and Tempo Runs.” <em>Journal of Strength and Conditioning Research</em>, 35(9), 2525-2531.</li>
    <li><strong>Tjelta, L. I. (2016).</strong> “The training of international level distance runners.” <em>International Journal of Sports Science &amp; Coaching</em>, 11(1), 122-134.</li>
  </ol>
</details>]]></content><author><name>Lars Olesen</name></author><category term="Kondition" /><category term="Løb" /><category term="kondition" /><category term="løb" /><category term="intervaltræning" /><category term="fysiologi" /><category term="laktat" /><summary type="html"><![CDATA[Hvad er hemmeligheden bag Jakob Ingebrigtsens succes? Lær fysiologien bag den norske tærskelmodel, dobbelt-tærskeldage og streng laktatkontrol.]]></summary></entry><entry><title type="html">PEP-programmet: Forebyg korsbåndsskader med målrettet træning</title><link href="https://www.motionsplan.dk/pep-program/" rel="alternate" type="text/html" title="PEP-programmet: Forebyg korsbåndsskader med målrettet træning" /><published>2026-08-18T00:00:00+00:00</published><updated>2026-08-18T00:00:00+00:00</updated><id>https://www.motionsplan.dk/pep-opvarmning</id><content type="html" xml:base="https://www.motionsplan.dk/pep-program/"><![CDATA[<p>En overrevet korsbåndsskade (ACL-skade) er en af de mest alvorlige og langvarige skader, en atlet inden for håndbold, fodbold eller basketball kan pådrage sig.</p>

<p>Genoptræningen tager typisk 9–12 måneder, og mange atleter opnår aldrig helt samme niveau som før skaden.</p>

<p>Udfordringen er, at over 70 % af alle korsbåndsskader sker som <strong>non-kontakt skader</strong> — altså i situationer uden modspiller, hvor atleten lander skævt efter et hop, bremser hårdt op eller foretager et hurtigt retningsskift (Mandelbaum et al., 2005).</p>

<p>Det er præcis denne mekanisme, <strong>PEP-programmet (<em>Prevent Injury and Enhance Performance</em>)</strong> tager hånd om. Studier viser, at hold der benytter PEP-programmet fast, reducerer risikoen for korsbåndsskader med helt op til <strong>74–88 %</strong> (Mandelbaum et al., 2005; Gilchrist et al., 2008).</p>

<p><em>(Vil du læse om den overordnede fysiologi bag opvarmning? Se vores <a href="/opvarmning/">faglige hovedartikel om opvarmning</a> eller vores guide til det brede <a href="/fifa-11-plus/">FIFA 11+ program</a>.)</em></p>

<hr />

<h2 id="biomekanikken-hvorfor-opstår-non-kontakt-acl-skader">Biomekanikken: Hvorfor opstår non-kontakt ACL-skader?</h2>

<p>Korsbåndet i knæet belastes maksimalt, når tre uheldige biomekaniske faktorer opstår samtidig under en landing eller opbremsning:</p>

<ol>
  <li><strong>Knæ-valgus (Dynamic Valgus):</strong> Knæet falder indad mod midterlinjen, mens foden står fast på underlaget.</li>
  <li><strong>Minimal knæbøjning (Stiv landing):</strong> Landingen sker på næsten strakte ben (under 30 graders knæbøjning), hvilket forhindrer lårmuskler og baglår i at absorbere stødenergien.</li>
  <li><strong>Mangel på co-kontraktion:</strong> Baglårsmuskulaturen (<em>hamstrings</em>) aktiveres for sent i forhold til forlåret (<em>quadriceps</em>), hvilket lader skinnebenet glide fremad i forhold til lårbenet.</li>
</ol>

<p>PEP-programmet genoptræner nervesystemet til automatisk at vælge en <strong>sikker landingsmekanik</strong>: Dybe knæbøjninger, stærke baglår og perfekt “knæ-over-tå” linje.</p>

<hr />

<h2 id="de-5-sektioner-i-pep-programmet">De 5 Sektioner i PEP-programmet</h2>

<p>PEP-programmet erstatter den traditionelle opvarmning og udføres 3 gange om ugen. Det består af 5 specifikke sektioner og tager i alt ca. 15 minutter.</p>

<ol>
  <li>Opvarmning &amp; Linjeløb (2 min)</li>
  <li>Styrketræning (3 min)</li>
  <li>Plyometri &amp; Landingsmekanik (5 min)</li>
  <li>Agility &amp; Retningsskift (3 min)</li>
  <li>Udstrækning &amp; Mobilitet (2 min)</li>
</ol>

<div id="wp-card-pep" class="wp-card">
  
  <!-- MODAL OVERLAY: FULL PROGRAM LIST -->
  <div id="wp-modal-pep" class="wp-modal-overlay">
    <div class="wp-modal-header">
      <div>
        <div class="wp-modal-title">📋 🛡️ PEP Opvarmning</div>
        <p class="wp-modal-subtitle">Klik på en øvelse for at hoppe direkte dertil</p>
      </div>
      <button onclick="WorkoutPlayer_pep.toggleModal(false)" class="wp-close-btn" aria-label="Luk oversigt">✖</button>
    </div>
    <div id="wp-modal-list-pep" class="wp-modal-list"></div>
  </div>

  <!-- PLAYER HEADER -->
  <div class="wp-header">
    <div class="wp-header-info">
      <div class="wp-title">🛡️ PEP Opvarmning</div>
    </div>
    <div class="wp-header-actions">
      <button id="wp-mute-btn-pep" onclick="WorkoutPlayer_pep.toggleMute()" class="wp-btn-icon" title="Lyd til/fra">🔊</button>
    </div>
  </div>

  <!-- MAIN DISPLAY -->
  <div id="wp-display-box-pep" class="wp-display">
    
    <!-- VIEW 0: START SCREEN (SECTIONS OVERVIEW) -->
    <div id="wp-view-start-pep" class="wp-view">
      <div class="wp-top-meta">
        <span class="wp-category-tag" style="color: #38bdf8;">PROGRAMOVERSIGT</span>
        <span class="wp-counter">Startskærm</span>
      </div>
      <div class="wp-start-content">
        <div class="wp-start-subtitle">Vælg en sektion eller tryk "Kom i gang":</div>
        <div id="wp-sections-list-pep" class="wp-sections-list"></div>
      </div>
    </div>

    <!-- VIEW 1: SECTION INTRO CARD -->
    <div id="wp-view-section-pep" class="wp-view" style="display: none;">
      <div class="wp-top-meta">
        <span id="wp-sec-tag-pep" class="wp-category-tag">SEKTION</span>
        <span id="wp-sec-counter-pep" class="wp-counter">0 øvelser</span>
      </div>
      <div class="wp-center-content">
        <div class="wp-section-card-title" id="wp-sec-title-pep">Sektionsnavn</div>
        <div class="wp-status-msg">Gør dig klar til denne del af opvarmningen!</div>
      </div>
      <div class="wp-next-preview">
        Første øvelse: <span id="wp-sec-first-ex-pep" class="wp-next-name">-</span>
      </div>
    </div>

    <!-- VIEW 2: ACTIVE EXERCISE (CLEAN SINGLE-LINE LAYOUT) -->
    <div id="wp-view-active-pep" class="wp-view" style="display: none;">
      <div class="wp-top-meta">
        <span id="wp-active-cat-pep" class="wp-category-tag">Kategori</span>
        <span id="wp-active-counter-pep" class="wp-counter">Øvelse 1 af 1</span>
      </div>
      <div class="wp-exercise-wrap">
        <div id="wp-exercise-name-pep" class="wp-exercise-name">Øvelsesnavn</div>
      </div>
      <div class="wp-status-wrap">
        <div id="wp-status-msg-pep" class="wp-status-msg">&nbsp;</div>
      </div>
      <div class="wp-timer-box">
        <div id="wp-time-display-pep" class="wp-time-display">00:30</div>
      </div>
      <div class="wp-next-preview">
        Næste: <span id="wp-next-name-pep" class="wp-next-name">-</span>
      </div>
    </div>

    <!-- VIEW 3: FINISH SCREEN -->
    <div id="wp-view-finish-pep" class="wp-view" style="display: none;">
      <div class="wp-top-meta">
        <span class="wp-category-tag" style="color: #4ade80;">GENNEMFØRT</span>
        <span class="wp-counter">Slut</span>
      </div>
      <div class="wp-center-content">
        <div style="font-size: 2.2em; margin-bottom: 6px;">🎉</div>
        <div class="wp-exercise-name" style="color: #4ade80;">Programmet gennemført!</div>
        <div class="wp-status-msg" style="color: #cbd5e1; margin-top: 8px;">Godt gået! Du gennemførte hele programmet.</div>
      </div>
      <div class="wp-next-preview">Klar til træning eller kamp!</div>
    </div>

    <!-- TIMER SLIDER BAR -->
    <div class="wp-progress-bar-bg">
      <div id="wp-progress-fill-pep" class="wp-progress-fill"></div>
    </div>
  </div>

  <!-- PLAYER CONTROLS IN BOTTOM -->
  <div class="wp-controls">
    <button id="wp-play-btn-pep" onclick="WorkoutPlayer_pep.togglePlay()" class="wp-btn-ctrl wp-btn-main">
      <span id="wp-btn-icon-pep">🚀</span> <span id="wp-btn-text-pep">Kom i gang</span>
    </button>

    <button onclick="WorkoutPlayer_pep.next()" class="wp-btn-ctrl" title="Næste øvelse">⏭️ Næste</button>
    <button onclick="WorkoutPlayer_pep.resetCurrent()" class="wp-btn-ctrl" title="Genstart">🔄 Nulstil</button>
    <button onclick="WorkoutPlayer_pep.toggleModal(true)" class="wp-btn-ctrl wp-btn-program" title="Se hele programmet">📋 Program</button>
  </div>

</div>

<!-- CSS STYLES -->
<style>
.wp-card {
  position: relative;
  background: #ffffff;
  border: 3px solid #0284c7;
  border-radius: 14px;
  padding: 20px;
  margin: 25px 0;
  box-shadow: 0 10px 25px rgba(0,0,0,0.08);
  font-family: inherit;
  box-sizing: border-box;
  transition: border-color 0.4s ease;
}

.wp-modal-overlay {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #ffffff;
  border-radius: 12px;
  z-index: 100;
  padding: 18px;
  box-sizing: border-box;
  flex-direction: column;
}

.wp-modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 2px solid #e2e8f0;
  padding-bottom: 10px;
  margin-bottom: 10px;
}

.wp-modal-title {
  margin: 0;
  color: #0f172a;
  font-size: 1.1em;
  font-weight: 800;
}

.wp-modal-subtitle {
  margin: 2px 0 0 0;
  font-size: 0.8em;
  color: #64748b;
}

.wp-close-btn {
  background: #f1f5f9;
  border: 1px solid #cbd5e1;
  font-size: 1.1em;
  font-weight: bold;
  cursor: pointer;
  border-radius: 50%;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #0f172a;
  transition: all 0.2s;
}

.wp-close-btn:hover { background: #e2e8f0; }

.wp-modal-list {
  flex: 1;
  overflow-y: auto;
  padding-right: 4px;
}

.wp-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

.wp-title {
  font-size: 1.2em;
  font-weight: 800;
  color: #0f172a;
}

.wp-header-actions {
  display: flex;
  gap: 8px;
}

.wp-btn-icon {
  background: #f1f5f9;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  padding: 6px 12px;
  font-size: 0.9em;
  font-weight: 700;
  cursor: pointer;
  color: #334155;
  transition: all 0.2s;
}

.wp-btn-icon:hover { background: #e2e8f0; }

/* MAIN DISPLAY BOX */
.wp-display {
  background: #0f172a;
  color: #ffffff;
  border-radius: 12px;
  padding: 20px 18px 16px 18px;
  text-align: center;
  margin-bottom: 16px;
  position: relative;
  overflow: hidden;
  transition: background-color 0.4s ease;
  min-height: 400px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.wp-view {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.wp-top-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 24px;
}

.wp-category-tag {
  font-size: 0.8em;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  transition: color 0.3s ease;
}

.wp-counter {
  font-size: 0.78em;
  font-weight: 700;
  color: #94a3b8;
  background: rgba(255,255,255,0.1);
  padding: 2px 8px;
  border-radius: 12px;
}

/* START SCREEN SECTIONS LIST */
.wp-start-content {
  margin: 10px 0;
}

.wp-start-subtitle {
  font-size: 0.85em;
  color: #94a3b8;
  margin-bottom: 8px;
}

.wp-sections-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.wp-start-section-item {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 8px;
  padding: 8px 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.88em;
  color: #f1f5f9;
  cursor: pointer;
  transition: all 0.2s ease;
}

.wp-start-section-item:hover {
  background: rgba(255,255,255,0.15);
  border-color: rgba(255,255,255,0.25);
  transform: translateX(2px);
}

/* SECTION INTRO CARD */
.wp-center-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1;
  padding: 10px 0;
}

.wp-section-card-title {
  font-size: 1.5em;
  font-weight: 800;
  color: #f8fafc;
  margin-bottom: 6px;
}

/* EXERCISE NAME & SINGLE-LINE STATUS */
.wp-exercise-wrap {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 2px 0;
}

.wp-exercise-name {
  font-size: 1.6em;
  font-weight: 800;
  line-height: 1.2;
  color: #f8fafc;
}

.wp-status-wrap {
  min-height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 4px;
}

.wp-status-msg {
  font-size: 0.95em;
  font-weight: 700;
  color: #facc15;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.wp-timer-box {
  margin: 2px 0 6px 0;
}

.wp-time-display {
  font-size: 3.5em;
  font-weight: 900;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  letter-spacing: -1px;
  transition: color 0.3s ease;
}

.wp-next-preview {
  font-size: 0.82em;
  color: #94a3b8;
  border-top: 1px solid rgba(255,255,255,0.12);
  padding-top: 8px;
  margin-top: 6px;
  min-height: 22px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.wp-next-name {
  color: #cbd5e1;
  font-weight: 600;
}

/* PROGRESS BAR */
.wp-progress-bar-bg {
  width: 100%;
  background: rgba(255,255,255,0.15);
  height: 6px;
  border-radius: 3px;
  margin-top: 10px;
  overflow: hidden;
}

.wp-progress-fill {
  width: 0%;
  height: 100%;
  transition: width 1s linear, background-color 0.3s ease;
}

/* CONTROLS IN BOTTOM */
.wp-controls {
  display: flex;
  gap: 8px;
  justify-content: center;
  flex-wrap: wrap;
}

.wp-btn-ctrl {
  background: #f1f5f9;
  color: #334155;
  border: 1px solid #cbd5e1;
  padding: 10px 16px;
  border-radius: 8px;
  font-weight: 700;
  font-size: 0.9em;
  cursor: pointer;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.wp-btn-ctrl:hover {
  background: #e2e8f0;
}

.wp-btn-main {
  color: #ffffff;
  border: none;
  background-color: #16a34a;
}

.wp-btn-program {
  background: #e0f2fe;
  color: #0369a1;
  border-color: #bae6fd;
}

.wp-btn-program:hover {
  background: #bae6fd;
}

@media (max-width: 520px) {
  .wp-exercise-name { font-size: 1.3em; }
  .wp-time-display { font-size: 2.8em; }
  .wp-controls { gap: 6px; }
  .wp-btn-ctrl { padding: 9px 12px; font-size: 0.85em; }
}
</style>

<!-- CONTROLLER SCRIPT -->
<script>
const WorkoutPlayer_pep = (function() {
  const program = [{"cat":"1. Opvarmning","name":"Sidelinje til sidelinje jog","type":"time","dur":30,"prep":5,"switchHalf":false},{"cat":"1. Opvarmning","name":"Sidelæns galop","type":"time","dur":30,"prep":5,"switchHalf":true},{"cat":"1. Opvarmning","name":"Baglæns løb på forfoden","type":"time","dur":30,"prep":5,"switchHalf":false},{"cat":"2. Styrke","name":"Walking Lunges","type":"reps","repsText":"10 reps pr. ben (bløde knæ)","prep":10},{"cat":"2. Styrke","name":"Russian Hamstrings","type":"reps","repsText":"10 kontrollerede reps","prep":10},{"cat":"2. Styrke","name":"Ét-bens lægløft","type":"reps","repsText":"20 reps pr. ben","prep":5},{"cat":"3. Plyometri (Landingsfokus)","name":"Sidelæns hop over linje","type":"reps","repsText":"20 dæmpede landinger","prep":10},{"cat":"3. Plyometri (Landingsfokus)","name":"Hop frem og tilbage over linje","type":"reps","repsText":"20 dæmpede landinger","prep":5},{"cat":"3. Plyometri (Landingsfokus)","name":"Ét-bens hop over linje","type":"reps","repsText":"20 reps pr. ben","prep":5},{"cat":"3. Plyometri (Landingsfokus)","name":"Saksehop (Scissors Jumps)","type":"reps","repsText":"20 reps i alt","prep":5},{"cat":"3. Plyometri (Landingsfokus)","name":"Vertikale hop m. boldgrib","type":"reps","repsText":"20 dybe landinger","prep":5},{"cat":"4. Agility & Retningsskift","name":"Shuttle Runs (Pendulløb)","type":"time","dur":45,"prep":10,"switchHalf":false},{"cat":"4. Agility & Retningsskift","name":"Diagonalløb (45° opbremsning)","type":"time","dur":45,"prep":5,"switchHalf":false},{"cat":"4. Agility & Retningsskift","name":"Hoppeløb (Bounding)","type":"time","dur":30,"prep":5,"switchHalf":false}];
  const programKey = "pep";

  let playerState = 0;

  const sectionPalette = [
    { main: "#0284c7", accent: "#38bdf8", bgDark: "#0f172a" }, // Blå
    { main: "#d97706", accent: "#fbbf24", bgDark: "#1e1b18" }, // Amber/Orange
    { main: "#16a34a", accent: "#4ade80", bgDark: "#0f1f15" }, // Grøn
    { main: "#4f46e5", accent: "#a5b4fc", bgDark: "#13122b" }  // Indigo/Lilla
  ];

  const uniqueCategories = [];
  const categoryThemeMap = {};
  program.forEach(item => {
    if (item.cat && !uniqueCategories.includes(item.cat)) {
      uniqueCategories.push(item.cat);
      categoryThemeMap[item.cat] = sectionPalette[(uniqueCategories.length - 1) % sectionPalette.length];
    }
  });

  let currentIndex = 0;
  let isPaused = true;
  let isPrep = false;
  let timeRemaining = program[0] ? (program[0].dur || 30) : 30;
  let prepRemaining = 0;
  let elapsedRepsTime = 0;
  let isMuted = false;
  let timerInterval = null;
  let halfwayBeepPlayed = false;
  let audioCtx = null;

  function initAudio() {
    if (!audioCtx) {
      const AudioContext = window.AudioContext || window.webkitAudioContext;
      if (AudioContext) audioCtx = new AudioContext();
    }
    if (audioCtx && audioCtx.state === 'suspended') {
      audioCtx.resume();
    }
  }

  function playSound(freq, type = 'sine', duration = 0.15, volume = 0.3) {
    if (isMuted) return;
    initAudio();
    if (!audioCtx) return;

    try {
      const osc = audioCtx.createOscillator();
      const gain = audioCtx.createGain();
      osc.type = type;
      osc.frequency.setValueAtTime(freq, audioCtx.currentTime);
      gain.gain.setValueAtTime(volume, audioCtx.currentTime);
      gain.gain.exponentialRampToValueAtTime(0.00001, audioCtx.currentTime + duration);

      osc.connect(gain);
      gain.connect(audioCtx.destination);

      osc.start();
      osc.stop(audioCtx.currentTime + duration);
    } catch (e) {
      console.warn("Audio error:", e);
    }
  }

  function playBeepStart() { playSound(880, 'sine', 0.25, 0.4); }
  function playBeepCount() { playSound(440, 'sine', 0.08, 0.2); }
  function playBeepHalf() { 
    playSound(600, 'sine', 0.12, 0.3);
    setTimeout(() => playSound(800, 'sine', 0.18, 0.3), 140);
  }
  function playSectionChime() {
    playSound(523, 'sine', 0.15, 0.3);
    setTimeout(() => playSound(659, 'sine', 0.15, 0.3), 150);
    setTimeout(() => playSound(783, 'sine', 0.25, 0.3), 300);
  }

  function formatTime(seconds) {
    const m = Math.floor(seconds / 60);
    const s = seconds % 60;
    return `${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;
  }

  function getCategoryStats(index) {
    const currentCat = program[index] ? program[index].cat : "";
    const inCategory = program.filter(item => item.cat === currentCat);
    let catIndex = 0;
    let count = 0;
    for (let i = 0; i < program.length; i++) {
      if (program[i].cat === currentCat) {
        count++;
        if (i === index) catIndex = count;
      }
    }
    return { catIndex, catTotal: inCategory.length };
  }

  function showView(viewId) {
    document.getElementById(`wp-view-start-${programKey}`).style.display = viewId === 0 ? 'flex' : 'none';
    document.getElementById(`wp-view-section-${programKey}`).style.display = viewId === 1 ? 'flex' : 'none';
    document.getElementById(`wp-view-active-${programKey}`).style.display = viewId === 2 ? 'flex' : 'none';
    document.getElementById(`wp-view-finish-${programKey}`).style.display = viewId === 3 ? 'flex' : 'none';
  }

  function updateUI() {
    const cardEl = document.getElementById(`wp-card-${programKey}`);
    const displayBox = document.getElementById(`wp-display-box-${programKey}`);
    const playIcon = document.getElementById(`wp-btn-icon-${programKey}`);
    const playText = document.getElementById(`wp-btn-text-${programKey}`);
    const playBtn = document.getElementById(`wp-play-btn-${programKey}`);
    const progressFill = document.getElementById(`wp-progress-fill-${programKey}`);

    showView(playerState);

    // STATE 0: STARTSKÆRM
    if (playerState === 0) {
      const defaultTheme = sectionPalette[0];
      cardEl.style.borderColor = defaultTheme.main;
      displayBox.style.backgroundColor = defaultTheme.bgDark;

      const listContainer = document.getElementById(`wp-sections-list-${programKey}`);
      let summaryHtml = '';
      uniqueCategories.forEach((cat, idx) => {
        const catItems = program.filter(item => item.cat === cat);
        summaryHtml += `
          <div class="wp-start-section-item" onclick="WorkoutPlayer_${programKey}.startAtCategory('${cat}')">
            <span><strong>${cat}</strong></span>
            <span style="opacity: 0.8; font-size: 0.85em;">${catItems.length} øvelser ➔</span>
          </div>`;
      });
      listContainer.innerHTML = summaryHtml;

      playIcon.innerText = "🚀";
      playText.innerText = "Kom i gang";
      playBtn.style.backgroundColor = "#16a34a";
      progressFill.style.width = "0%";
      renderModalList();
      return;
    }

    // STATE 3: SLUTSKÆRM
    if (playerState === 3) {
      const finishTheme = sectionPalette[2];
      cardEl.style.borderColor = finishTheme.main;
      displayBox.style.backgroundColor = finishTheme.bgDark;

      playIcon.innerText = "🔄";
      playText.innerText = "Start forfra";
      playBtn.style.backgroundColor = "#16a34a";
      progressFill.style.width = "100%";
      progressFill.style.backgroundColor = "#4ade80";
      renderModalList();
      return;
    }

    const ex = program[currentIndex];
    const nextEx = program[currentIndex + 1];
    if (!ex) return;

    const theme = categoryThemeMap[ex.cat] || sectionPalette[0];
    cardEl.style.borderColor = theme.main;
    displayBox.style.backgroundColor = theme.bgDark;
    progressFill.style.backgroundColor = theme.accent;

    const { catIndex, catTotal } = getCategoryStats(currentIndex);

    // STATE 1: SEKTIONSKORT
    if (playerState === 1) {
      const secTag = document.getElementById(`wp-sec-tag-${programKey}`);
      secTag.style.color = theme.accent;
      secTag.innerText = `SEKTION ${uniqueCategories.indexOf(ex.cat) + 1} AF ${uniqueCategories.length}`;
      
      document.getElementById(`wp-sec-counter-${programKey}`).innerText = `${catTotal} øvelser`;
      document.getElementById(`wp-sec-title-${programKey}`).innerText = ex.cat;
      document.getElementById(`wp-sec-first-ex-${programKey}`).innerText = `${ex.name}`;

      playIcon.innerText = "▶";
      playText.innerText = "Start";
      playBtn.style.backgroundColor = theme.main;
      progressFill.style.width = "0%";
      renderModalList();
      return;
    }

    // STATE 2: AKTIV ØVELSE (CLEAN SINGLE-LINE STATUS)
    const activeCatTag = document.getElementById(`wp-active-cat-${programKey}`);
    activeCatTag.innerText = ex.cat;
    activeCatTag.style.color = theme.accent;

    document.getElementById(`wp-active-counter-${programKey}`).innerText = `Øvelse ${catIndex} af ${catTotal}`;
    document.getElementById(`wp-exercise-name-${programKey}`).innerText = ex.name;

    const statusEl = document.getElementById(`wp-status-msg-${programKey}`);
    const timeDisplay = document.getElementById(`wp-time-display-${programKey}`);
    timeDisplay.style.color = theme.accent;

    if (isPrep) {
      timeDisplay.innerText = formatTime(prepRemaining);
      statusEl.innerHTML = "⏳ Gør dig klar til start!";
      
      const totalPrep = ex.prep || 5;
      const pct = (prepRemaining / totalPrep) * 100;
      progressFill.style.width = `${pct}%`;
      progressFill.style.backgroundColor = "#d97706";
    } else {
      if (ex.type === 'reps') {
        timeDisplay.innerText = formatTime(elapsedRepsTime);
        statusEl.innerHTML = `💪 ${ex.repsText || 'Udfør gentagelserne'} — Tryk Næste når færdig`;
        progressFill.style.width = "100%";
      } else {
        timeDisplay.innerText = formatTime(timeRemaining);
        const totalDur = ex.dur || 30;
        const halfTime = Math.floor(totalDur / 2);
        
        if (ex.switchHalf && timeRemaining <= halfTime) {
          statusEl.innerHTML = "↔️ Skift side / retning nu!";
        } else if (ex.switchHalf) {
          statusEl.innerHTML = `(Skiftes ved ${halfTime} sek)`;
        } else {
          statusEl.innerHTML = "&nbsp;";
        }

        const pct = Math.max(0, Math.min(100, (timeRemaining / totalDur) * 100));
        progressFill.style.width = `${pct}%`;
      }
    }

    if (isPaused) {
      playIcon.innerText = "▶";
      playText.innerText = "Fortsæt";
      playBtn.style.backgroundColor = "#16a34a";
    } else {
      playIcon.innerText = "⏸";
      playText.innerText = "Pause";
      playBtn.style.backgroundColor = "#dc2626";
    }

    document.getElementById(`wp-next-name-${programKey}`).innerText = nextEx ? `${nextEx.name}` : "Slut på opvarmningen!";
    renderModalList();
  }

  function tick() {
    if (isPaused || playerState !== 2) return;

    const ex = program[currentIndex];

    if (isPrep) {
      prepRemaining--;
      playBeepCount();
      if (prepRemaining <= 0) {
        isPrep = false;
        playBeepStart();
      }
      updateUI();
      return;
    }

    if (ex.type === 'reps') {
      elapsedRepsTime++;
      updateUI();
    } else {
      timeRemaining--;

      const halfTime = Math.floor((ex.dur || 30) / 2);
      if (ex.switchHalf && timeRemaining === halfTime && !halfwayBeepPlayed) {
        playBeepHalf();
        halfwayBeepPlayed = true;
      }

      if (timeRemaining <= 3 && timeRemaining > 0) {
        playBeepCount();
      }

      if (timeRemaining <= 0) {
        playBeepStart();
        nextExercise();
      } else {
        updateUI();
      }
    }
  }

  function startTimer() {
    if (timerInterval) clearInterval(timerInterval);
    timerInterval = setInterval(tick, 1000);
  }

  function togglePlay() {
    initAudio();

    if (playerState === 0) {
      playerState = 1;
      currentIndex = 0;
      updateUI();
      return;
    }

    if (playerState === 1) {
      playerState = 2;
      setupExercise(currentIndex);
      isPaused = false;
      startTimer();
      updateUI();
      return;
    }

    if (playerState === 3) {
      playerState = 0;
      currentIndex = 0;
      updateUI();
      return;
    }

    isPaused = !isPaused;
    if (!isPaused) {
      startTimer();
    } else {
      clearInterval(timerInterval);
    }
    updateUI();
  }

  function startAtCategory(catName) {
    initAudio();
    const foundIdx = program.findIndex(item => item.cat === catName);
    if (foundIdx !== -1) {
      currentIndex = foundIdx;
      playerState = 1;
      updateUI();
    }
  }

  function setupExercise(index) {
    const ex = program[index];
    halfwayBeepPlayed = false;
    elapsedRepsTime = 0;
    timeRemaining = ex.dur || 30;

    if (ex.prep && ex.prep > 0) {
      isPrep = true;
      prepRemaining = ex.prep;
    } else {
      isPrep = false;
    }
  }

  function nextExercise() {
    if (currentIndex < program.length - 1) {
      const currentCat = program[currentIndex].cat;
      const nextEx = program[currentIndex + 1];

      currentIndex++;
      setupExercise(currentIndex);

      if (currentCat !== nextEx.cat) {
        playerState = 1;
        isPaused = true;
        clearInterval(timerInterval);
        playSectionChime();
      }

      updateUI();
    } else {
      isPaused = true;
      playerState = 3;
      clearInterval(timerInterval);
      playSectionChime();
      updateUI();
    }
  }

  function prevExercise() {
    if (currentIndex > 0) {
      currentIndex--;
      playerState = 2;
      setupExercise(currentIndex);
      updateUI();
    } else {
      playerState = 0;
      updateUI();
    }
  }

  function resetCurrent() {
    if (playerState === 0) return;
    setupExercise(currentIndex);
    updateUI();
  }

  function jumpToExercise(index) {
    if (index >= 0 && index < program.length) {
      currentIndex = index;
      playerState = 2;
      setupExercise(currentIndex);
      toggleModal(false);
      updateUI();
    }
  }

  function toggleMute() {
    isMuted = !isMuted;
    document.getElementById(`wp-mute-btn-${programKey}`).innerText = isMuted ? "🔇" : "🔊";
  }

  function toggleModal(show) {
    document.getElementById(`wp-modal-${programKey}`).style.display = show ? "flex" : "none";
    if (show) renderModalList();
  }

  function renderModalList() {
    const container = document.getElementById(`wp-modal-list-${programKey}`);
    if (!container) return;

    let html = "";
    let lastCat = "";

    program.forEach((item, idx) => {
      const theme = categoryThemeMap[item.cat] || sectionPalette[0];

      if (item.cat !== lastCat) {
        lastCat = item.cat;
        html += `<div style="font-weight: 800; color: ${theme.main}; margin-top: 12px; margin-bottom: 6px; font-size: 0.85em; text-transform: uppercase; letter-spacing:0.5px;">${item.cat}</div>`;
      }

      const isActive = idx === currentIndex && playerState === 2;
      const bg = isActive ? theme.main : "#ffffff";
      const textColor = isActive ? "#ffffff" : "#334155";
      const border = isActive ? `2px solid ${theme.main}` : "1px solid #cbd5e1";

      html += `
        <div onclick="WorkoutPlayer_${programKey}.jump(${idx})" class="wp-modal-item" style="background:${bg}; color:${textColor}; border:${border}; border-radius: 8px; padding: 10px 12px; margin-bottom: 6px; display: flex; justify-content: space-between; align-items: center; cursor: pointer; font-size: 0.9em; transition: all 0.15s;">
          <div>
            <strong>${idx + 1}. ${item.name}</strong>
            ${item.type === 'reps' ? `<span style="font-size: 0.82em; opacity: 0.85; margin-left: 6px;">(${item.repsText || 'Reps'})</span>` : ''}
            ${item.switchHalf ? `<span style="font-size: 0.82em; opacity: 0.85; margin-left: 6px;">(Skift v. halvvejs)</span>` : ''}
          </div>
          <div style="font-size: 0.82em; font-weight: bold; opacity: 0.9;">
            ${isActive ? '👉 AKTIV' : (item.type === 'reps' ? 'Reps' : (item.dur || 30) + 's')}
          </div>
        </div>
      `;
    });

    container.innerHTML = html;
  }

  document.addEventListener("DOMContentLoaded", function() {
    playerState = 0;
    updateUI();
  });

  return {
    togglePlay,
    next: nextExercise,
    prev: prevExercise,
    resetCurrent,
    jump: jumpToExercise,
    startAtCategory,
    toggleMute,
    toggleModal
  };
})();
</script>

<hr />

<h3 id="sektion-1-opvarmning-og-linjeløb-2-min">Sektion 1: Opvarmning og linjeløb (2 min)</h3>
<p>Målet er at hæve kropstemperaturen og løsne leddene (<em>Raise</em>):</p>
<ul>
  <li><strong>Løb fra sidelinje til sidelinje:</strong> Jog frem og tilbage (2 ture).</li>
  <li><strong>Sidelæns galop:</strong> Løb sidelæns med lave tyngdepunkter og bløde knæ (2 ture).</li>
  <li><strong>Baglæns løb:</strong> Løb baglæns på forfoden med fokus på hofte- og knæstabilitet (2 ture).</li>
</ul>

<hr />

<h3 id="sektion-2-styrketræning-3-min">Sektion 2: Styrketræning (3 min)</h3>
<p>Fokuserer på baglår, balder og bækkenstabilitet for at sikre ligevægt mellem for- og bagside:</p>

<table>
  <thead>
    <tr>
      <th style="text-align: left">Øvelse</th>
      <th style="text-align: left">Dosering</th>
      <th style="text-align: left">Fokus og teknik</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: left"><strong>Walking Lunges</strong></td>
      <td style="text-align: left">3 sæt á 10 reps pr. ben</td>
      <td style="text-align: left">Bøj knæet til 90 grader. Hold det forreste knæ direkte over ankel/tæer. Undgå valgus!</td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>Russian Hamstrings</strong></td>
      <td style="text-align: left">3 sæt á 10 reps</td>
      <td style="text-align: left">Partnerholdt excentrisk baglårsfald (Nordic Hamstring). Hold hofterne helt strakte.</td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>Ét-bens lægløft</strong></td>
      <td style="text-align: left">2 sæt á 20 reps pr. ben</td>
      <td style="text-align: left">Stå på ét ben og løft dig kontrolleret op på tæerne. Styrker ankel- og underbensstabilitet.</td>
    </tr>
  </tbody>
</table>

<hr />

<h3 id="sektion-3-plyometri-og-landingsmekanik-5-min">Sektion 3: Plyometri og Landingsmekanik (5 min)</h3>

<p>Dette er den absolut <strong>vigtigste sektion</strong> i PEP-programmet. Målet er ikke at hoppe så højt som muligt, men at <strong>lande så blødt og kontrolleret som muligt</strong>.</p>

<p><em>Pædagogisk huskeregel til atleterne: “Land som en fjer — lydløst og med bøjede knæ!”</em></p>

<h4 id="1-sidelæns-hop-over-linjekegle">1. Sidelæns hop over linje/kegle</h4>
<p>Hop fra side til side over en linje eller lav kegle med samlede fødder. Land i en blød huksiddende position med bøjede knæ og hofter.</p>
<ul>
  <li><em>Dosering: 20 reps (2 sæt).</em></li>
</ul>

<h4 id="2-hop-frem-og-tilbage-over-linje">2. Hop frem og tilbage over linje</h4>
<p>Hop frem og bagud over en linje med samlede fødder. Fokus på hurtig afvikling, men altid med blød landing.</p>
<ul>
  <li><em>Dosering: 20 reps (2 sæt).</em></li>
</ul>

<h4 id="3-ét-bens-hop-over-linje">3. Ét-bens hop over linje</h4>
<p>Hop frem og tilbage på ét ben over linjen. Kræver maksimal ankel- og knækontrol.</p>
<ul>
  <li><em>Dosering: 20 reps pr. ben.</em></li>
</ul>

<h4 id="4-saksehop-scissors-jumps">4. Saksehop (Scissors Jumps)</h4>
<p>Lunge-position hvor du hopper eksplosivt op og skifter ben i luften. Land i en dæmpet lunge med knæet i 90 grader.</p>
<ul>
  <li><em>Dosering: 20 reps totalt.</em></li>
</ul>

<h4 id="5-vertikale-hop-m-boldgrib">5. Vertikale hop m. boldgrib</h4>
<p>Hop maksimalt op i luften efter en bold og land på begge fødder med dyb knæbøjning (min. 45 grader) uden at knæene søger mod hinanden.</p>
<ul>
  <li><em>Dosering: 20 reps.</em></li>
</ul>

<hr />

<h3 id="sektion-4-agility-og-retningsskift-3-min">Sektion 4: Agility og Retningsskift (3 min)</h3>

<p>Træner kroppen til at håndtere opbremsninger og skarpe vinkler under høj fart (<em>Potentiate</em>):</p>

<ul>
  <li><strong>Shuttle Runs (Pendulløb):</strong> Sprint 10 meter frem, brems kontrolleret ned med bøjede knæ, berør jorden og sprint baglæns tilbage (3 ture).</li>
  <li><strong>Diagonalløb (Diagonal Runs):</strong> Sprint fra venstre kegle mod højre kegle i 45 graders vinkel. Brems ned på ydersiden af foden med bøjet knæ og skift retning eksplosivt (3 ture).</li>
  <li><strong>Hoppeløb (Bounding):</strong> Løb fremad med høje, lange skridt. Fokus på at absorbere landingen på hvert ben uden at knæet falder indad (2 ture á 30 meter).</li>
</ul>

<hr />

<h3 id="sektion-5-udstrækning-og-mobilitet-2-min">Sektion 5: Udstrækning og Mobilitet (2 min)</h3>

<p>Efter opvarmningen eller som en del af afkølingen holdes lette dynamiske eller korte stræk (15–20 sekunder) for at genoprette længden i muskulaturen:</p>

<ul>
  <li>Stræk af lægmuskulatur (<em>gastrocnemius / soleus</em>)</li>
  <li>Stræk af forlår (<em>quadriceps</em>)</li>
  <li>Stræk af baglår (<em>hamstrings</em>)</li>
  <li>Stræk af lyske/adduktorer</li>
  <li>Stræk af hoftebøjere (<em>iliopsoas</em>)</li>
</ul>

<hr />

<h2 id="implementering-sådan-får-du-succes-med-pep">Implementering: Sådan får du succes med PEP</h2>

<p>Forskning viser, at den skadesforebyggende effekt af PEP-programmet er direkte afhængig af <strong>trænerens korrektioner</strong> (Gilchrist et al., 2008).</p>

<p>Hvis spillerne udfører plyometri-øvelserne med stive ben og knæ, der falder indad, opnås den modsatte effekt.</p>

<p><strong>Gode råd til træneren:</strong></p>
<ol>
  <li><strong>Prioriter kvalitet over kvantitet:</strong> Start med færre hop, indtil landingsmekanikken er 100 % på plads.</li>
  <li><strong>Filmer landingerne:</strong> Brug en smartphone til at optage afspillerne i snit forfra. Vis dem deres knæstilling under landingen — det er en øjenåbner for mange unge atleter.</li>
  <li><strong>Gør det fast 3 gange om ugen:</strong> Det tager ca. 4 uger med fast træning, før de nye neuromuskulære bevægemønstre bliver til automatiske refleksbevægelser under kamp.</li>
</ol>

<hr />

<h2 id="ofte-stillede-spørgsmål-om-pep-programmet">Ofte stillede spørgsmål om PEP-programmet</h2>

<details class="faq">
<summary><h3>Hvad står PEP for?</h3></summary>
<p>PEP står for “Prevent Injury and Enhance Performance”. Det blev udviklet af Santa Monica Orthopedic and Sports Medicine Research Foundation i USA specielt til at forebygge akutte knæ- og korsbåndsskader.</p>

</details>

<details class="faq">
<summary><h3>Hvorfor rammes kvindelige atleter hyppigere af korsbåndsskader?</h3></summary>
<p>Kvindelige atleter har fysiologisk og anatomisk 2–8 gange højere risiko for non-kontakt korsbåndsskader end mænd. Det skyldes bl.a. en bredere bækkenvinkel (Q-vinkel), mindre ledslaphed og et neuromuskulært mønster med mindre baglårsaktivering under landinger (Mandelbaum et al., 2005).</p>

</details>

<details class="faq">
<summary><h3>Hvor lang tid tager PEP-programmet?</h3></summary>
<p>Programmet tager ca. 15 minutter at udføre og indeholder ingen krav om dyrt udstyr — kun et par kegler og en bold.</p>

</details>

<script type="application/ld+json">
    {
        "@context":"https://schema.org",
        "@type":"FAQPage",
        "mainEntity":
            [{"@type":"Question","name":"Hvad står PEP for?","acceptedAnswer":{"@type":"Answer","text":"PEP står for “Prevent Injury and Enhance Performance”. Det blev udviklet af Santa Monica Orthopedic and Sports Medicine Research Foundation i USA specielt til at forebygge akutte knæ- og korsbåndsskader.\n"}},{"@type":"Question","name":"Hvorfor rammes kvindelige atleter hyppigere af korsbåndsskader?","acceptedAnswer":{"@type":"Answer","text":"Kvindelige atleter har fysiologisk og anatomisk 2–8 gange højere risiko for non-kontakt korsbåndsskader end mænd. Det skyldes bl.a. en bredere bækkenvinkel (Q-vinkel), mindre ledslaphed og et neuromuskulært mønster med mindre baglårsaktivering under landinger (Mandelbaum et al., 2005).\n"}},{"@type":"Question","name":"Hvor lang tid tager PEP-programmet?","acceptedAnswer":{"@type":"Answer","text":"Programmet tager ca. 15 minutter at udføre og indeholder ingen krav om dyrt udstyr — kun et par kegler og en bold.\n"}}]
    }
</script>

<hr />

<details class="references">
  <summary><h2 id="references">Referencer og videnskabeligt grundlag</h2></summary>

  <ul>
    <li>Gilchrist, J., et al. (2008). <em>A randomized controlled trial to prevent noncontact anterior cruciate ligament injury in female collegiate soccer players</em>. The American Journal of Sports Medicine, 36(8), 1476-1483.</li>
    <li>Mandelbaum, B. R., et al. (2005). <em>Effectiveness of a neuromuscular and proprioceptive training program in preventing anterior cruciate ligament injuries in female athletes: 2-year follow-up</em>. The American Journal of Sports Medicine, 33(7), 1003-1010.</li>
    <li>Myer, G. D., et al. (2005). <em>Neuromuscular training improves performance and lower-extremity biomechanics in female athletes</em>. Journal of Strength and Conditioning Research, 19(1), 51-60.</li>
    <li>Silvers-Granelli, H., et al. (2015). <em>Efficacy of the FIFA 11+ injury prevention program in male collegiate soccer players</em>. The American Journal of Sports Medicine, 43(11), 2628-2637.</li>
  </ul>
</details>]]></content><author><name>Lars Olesen</name></author><category term="Træning" /><category term="opvarmning" /><category term="skadesforebyggelse" /><category term="korsbånd" /><category term="fysiologi" /><summary type="html"><![CDATA[Lær hvordan PEP-programmet (Prevent Injury and Enhance Performance) reducerer risikoen for korsbåndsskader med op til 88%. Se hele øvelsesguiden her.]]></summary></entry><entry><title type="html">Træning under graviditet (Retningslinjer &amp;amp; Beregner)</title><link href="https://www.motionsplan.dk/traening-graviditet/" rel="alternate" type="text/html" title="Træning under graviditet (Retningslinjer &amp;amp; Beregner)" /><published>2026-08-17T00:00:00+00:00</published><updated>2026-08-17T20:00:00+00:00</updated><id>https://www.motionsplan.dk/graviditet-traening</id><content type="html" xml:base="https://www.motionsplan.dk/traening-graviditet/"><![CDATA[<p>Myten om, at gravide bør holde sig i ro og undgå fysisk belastning, er for længst aflivet af videnskaben. Tværtimod viser forskningen, at regelmæssig, tilpasset træning under graviditeten giver markante fordele for både mor og barn.</p>

<p>Nøglen til sikker træning under graviditeten handler om <strong>fysiologisk tilpasning</strong>. I takt med at kroppen ændrer sig gennem trimesterene, påvirkes ledstabilitet, tyngdepunkt, blodcirkulation og mavemuskulatur.</p>

<hr />

<h2 id="videnskabelige-fordele-ved-træning-under-graviditet">Videnskabelige fordele ved træning under graviditet</h2>

<p>Når du opretholder et aktivt liv under graviditeten, reducerer du risikoen for en række gængse graviditetskomplikationer betydeligt.</p>

<p>Både <em>Sundhedsstyrelsen</em> og <em>American College of Obstetricians and Gynecologists (ACOG)</em> anbefaler <strong>mindst 30 minutters moderat fysisk aktivitet om dagen</strong> for raske gravide.</p>

<table>
  <thead>
    <tr>
      <th style="text-align: left">Fysisk Parameter</th>
      <th style="text-align: left">Effekten af Regelmæssig Træning</th>
      <th style="text-align: left">Videnskabeligt Grundlag</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: left"><strong>Graviditetsdiabetes</strong></td>
      <td style="text-align: left">Op til 50 % reduktion i risiko</td>
      <td style="text-align: left">Forbedret insulinsensitivitet og glukoseregulering</td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>Svangerskabsforgiftning</strong></td>
      <td style="text-align: left">Reduceret forekomst af hypertension</td>
      <td style="text-align: left">Bedre vaskulær funktion og lavere hvileblodtryk</td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>Ryg- og Bækkensmerter</strong></td>
      <td style="text-align: left">Markant reduktion i smerteintensitet</td>
      <td style="text-align: left">Styrket kropsstamme og forbedret bækkengürtel-stabilitet</td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>Fødselsforløb &amp; Genoptræning</strong></td>
      <td style="text-align: left">Kortere pressefase og hurtigere restitution</td>
      <td style="text-align: left">Øget udholdenhed i bækkenbund og kropskerne</td>
    </tr>
  </tbody>
</table>

<hr />

<h2 id="4-fysiologiske-hensyn-du-skal-kende">4 Fysiologiske hensyn du skal kende</h2>

<p>Når du planlægger din træning som gravid, er der fire primære fysiologiske faktorer, der afgør, hvordan øvelserne bør modificeres:</p>

<h3 id="1-intensivitetsstyring-via-borg-rpe-talk-test">1. Intensivitetsstyring via Borg RPE (Talk Test)</h3>
<p>Glem faste pulszoner! Hormonet progesteron og en øget blodvolumen (op til 45 % stigning) gør, at hvile- og makspuls ændrer sig uforudsigeligt.</p>

<p>ACOG anbefaler i stedet at styre intensiteten ud fra <strong>Borgs RPE-skala (12–14)</strong> eller den klassiske <strong>Talk Test</strong>: Du skal kunne føre en ubesværet samtale, mens du træner.</p>

<h3 id="2-relaxin-hormonet-og-bækkenløsning">2. Relaxin-hormonet og Bækkenløsning</h3>
<p>Under graviditeten udskilles hormonet <em>Relaxin</em>, som blødgør ledbånd og symfyse for at gøre bækkenet mere fleksibelt til fødslen.</p>

<p>Hvis du oplever smerter omkring bækkenet eller skambenet (symfysen), bør asymmetriske et-bens øvelser (som lunges og step-ups) straks erstattes af <strong>symmetriske to-bens øvelser</strong> (fx squat til bænk med samlede eller parallelle ben).</p>

<h3 id="3-vena-cava-syndrome-aortokaval-kompression">3. Vena Cava Syndrome (Aortokaval Kompression)</h3>
<p>Fra midten af 2. trimester (omkring uge 16–20) vokser livmoderen sig så stor, at den i fladt rygliggende leje kan komprimere den store nedre hulvene (<em>Vena Cava</em>). Dette kan nedsætte det venøse tilbageløb til hjertet og medføre svimmelhed og faldende blodtryk.</p>

<blockquote>
  <p><strong>Retningslinje:</strong> Byt flad bænkpres og rygliggende maveøvelser ud med skråbænk (incline 15–30°), stående kabeløvelser eller sideliggende stillinger.</p>
</blockquote>

<h3 id="4-intra-abdominalt-tryk--diastase-coning">4. Intra-abdominalt Tryk &amp; Diastase (Coning)</h3>
<p>I takt med at mavemusklerne (<em>rectus abdominis</em>) deler sig for at gøre plads til barnet (delte mavemuskler / <em>rectus diastase</em>), skal du være opmærksom på trykreguleringen i bughulen.</p>

<p>Hvis du oplever <strong>coning</strong> (at maven buler op som en spids “toblerone” langs midtlinjen under tunge løft eller plankeøvelser), skal øvelsen modificeres. Undgå at holde vejret under tunge løft (Valsalva-manøvren), og fokuser i stedet på aktiv udånding under belastningsfasen.</p>

<hr />

<h2 id="interaktiv-graviditets--og-træningsberegner">Interaktiv Graviditets- og Træningsberegner</h2>

<p>Brug vores fysiologiske beregner herunder til at få tilpasset dine styrke- og konditionsøvelser. Vælg dit trimester, din bækkenstatus og din kernekontrol for at se din personlige træningsrecept:</p>

<div class="pregnancy-calc-wrapper">
  <style>
    .pregnancy-calc-wrapper {
      background: var(--background-color, #ffffff);
      border: 1px solid var(--border-color, #e2e8f0);
      border-radius: 12px;
      padding: 24px;
      margin: 2em 0;
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    }

    .summary-cards-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
      gap: 12px;
      margin-bottom: 20px;
      position: relative;
      z-index: 10;
    }

    .summary-card {
      background: #f8fafc;
      border: 1.5px solid #e2e8f0;
      border-radius: 10px;
      padding: 14px 16px;
      cursor: pointer;
      position: relative;
      transition: border-color 0.25s ease, background-color 0.25s ease, transform 0.25s ease;
      user-select: none;
      z-index: 1;
    }
    .summary-card:hover {
      border-color: #ec4899;
      background: #fdf2f8;
      transform: translateY(-2px);
      box-shadow: 0 4px 12px rgba(236, 72, 153, 0.08);
    }
    .summary-card.open {
      z-index: 100 !important;
      border-color: #ec4899;
      background: #ffffff;
      box-shadow: 0 6px 16px rgba(236, 72, 153, 0.12);
    }

    .summary-card-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      font-size: 0.78em;
      font-weight: 700;
      color: #64748b;
      text-transform: uppercase;
      letter-spacing: 0.5px;
      margin-bottom: 6px;
    }
    .gear-icon {
      font-size: 1.1em;
      opacity: 0.6;
      transition: transform 0.3s ease, opacity 0.3s ease;
    }
    .summary-card:hover .gear-icon,
    .summary-card.open .gear-icon {
      opacity: 1;
      transform: rotate(45deg);
      color: #ec4899;
    }

    .active-val-title {
      font-size: 0.98em;
      font-weight: 700;
      color: #0f172a;
      margin-bottom: 4px;
    }
    .active-val-desc {
      font-size: 0.80em;
      color: #475569;
      line-height: 1.35;
    }

    .option-picker-dropdown {
      display: none;
      position: absolute;
      top: calc(100% + 6px);
      left: 0;
      right: 0;
      background: #ffffff;
      border: 1.5px solid #ec4899;
      border-radius: 8px;
      box-shadow: 0 10px 25px rgba(0,0,0,0.15);
      z-index: 101;
      overflow: hidden;
    }
    .summary-card.open .option-picker-dropdown {
      display: block;
    }
    .picker-option {
      padding: 10px 12px;
      border-bottom: 1px solid #f1f5f9;
      transition: background 0.15s ease;
    }
    .picker-option:last-child {
      border-bottom: none;
    }
    .picker-option:hover {
      background: #fdf2f8;
    }
    .picker-option.selected {
      background: #fce7f3;
      font-weight: 600;
    }
    .picker-opt-title {
      font-size: 0.85em;
      color: #0f172a;
      display: block;
    }
    .picker-opt-desc {
      font-size: 0.75em;
      color: #64748b;
      display: block;
    }

    .chart-box {
      position: relative;
      background: #ffffff;
      border-radius: 10px;
      padding: 18px 16px;
      border: 1px solid #e2e8f0;
      box-shadow: 0 2px 6px rgba(0,0,0,0.02);
      margin-bottom: 20px;
    }
    .matrix-bar-group {
      margin-bottom: 14px;
    }
    .matrix-bar-group:last-child {
      margin-bottom: 0;
    }
    .matrix-label-row {
      display: flex;
      justify-content: space-between;
      font-size: 0.85em;
      font-weight: 700;
      color: #334155;
      margin-bottom: 6px;
    }
    .matrix-track {
      height: 10px;
      background: #f1f5f9;
      border-radius: 5px;
      overflow: hidden;
      position: relative;
    }
    .matrix-fill {
      height: 100%;
      width: 50%;
      border-radius: 5px;
      transition: width 0.4s ease, background-color 0.4s ease;
    }

    .metrics-stack {
      display: flex;
      flex-direction: column;
      gap: 12px;
      margin-bottom: 20px;
    }
    .metric-card {
      background: #f8fafc;
      padding: 16px 18px;
      border-radius: 8px;
      border: 1px solid #e2e8f0;
      border-left: 5px solid #ec4899;
      line-height: 1.5;
    }
    .metric-card h5 {
      margin: 0 0 6px 0;
      font-size: 1.02em;
      color: #0f172a;
    }
    .metric-card p {
      margin: 0;
      font-size: 0.90em;
      color: #334155;
    }
    .bullet-list {
      margin: 6px 0 0 16px;
      padding: 0;
      font-size: 0.88em;
      color: #475569;
    }
    .bullet-list li {
      margin-bottom: 4px;
    }

    /* ANSVARSFRASKRIVELSE & KILDER */
    .disclaimer-box {
      background: #f8fafc;
      border: 1px dashed #cbd5e1;
      border-radius: 8px;
      padding: 14px 16px;
      font-size: 0.80em;
      color: #64748b;
      line-height: 1.45;
    }
    .disclaimer-box strong {
      color: #475569;
    }
  </style>

  <!-- KORT GRID FOR INPUTS -->
  <div class="summary-cards-grid">
    
    <!-- KORT 1: TRIMESTER & UGE -->
    <div class="summary-card" id="cardTrimester">
      <div class="summary-card-header">
        <span>🤰 Gestationsalder</span>
        <span class="gear-icon">⚙️</span>
      </div>
      <div class="active-val-title" id="titleTrimester">2. Trimester (Uge 13-27)</div>
      <div class="active-val-desc" id="descTrimester">Øget energi. Voksende livmoder, forskudt tyngdepunkt.</div>

      <div class="option-picker-dropdown">
        <div class="picker-option" data-value="1">
          <span class="picker-opt-title">1. Trimester (Uge 1-12)</span>
          <span class="picker-opt-desc">Kvalme, træthed, hormonel omstilling.</span>
        </div>
        <div class="picker-option selected" data-value="2">
          <span class="picker-opt-title">2. Trimester (Uge 13-27)</span>
          <span class="picker-opt-desc">Øget energi, forskudt tyngdepunkt.</span>
        </div>
        <div class="picker-option" data-value="3">
          <span class="picker-opt-title">3. Trimester (Uge 28-40+)</span>
          <span class="picker-opt-desc">Høj belastning, Relaxin-top, fødselsforberedelse.</span>
        </div>
      </div>
    </div>

    <!-- KORT 2: BÆKKEN & LEDSYMPTOMER -->
    <div class="summary-card" id="cardPelvis">
      <div class="summary-card-header">
        <span>🦴 Bækken &amp; Ledstabilitet</span>
        <span class="gear-icon">⚙️</span>
      </div>
      <div class="active-val-title" id="titlePelvis">Symptomfri / Symmetrisk</div>
      <div class="active-val-desc" id="descPelvis">Ingen smerter ved gang, trapper eller vanlige løft.</div>

      <div class="option-picker-dropdown">
        <div class="picker-option selected" data-value="0">
          <span class="picker-opt-title">Symptomfri / Symmetrisk</span>
          <span class="picker-opt-desc">Ingen smerter ved vanlige bevægelser.</span>
        </div>
        <div class="picker-option" data-value="1">
          <span class="picker-opt-title">Mild ømhed / Træthed</span>
          <span class="picker-opt-desc">Lidt murren i symfysen eller lænden sidst på dagen.</span>
        </div>
        <div class="picker-option" data-value="2">
          <span class="picker-opt-title">Bækkenløsning / Asymmetri</span>
          <span class="picker-opt-desc">Skærende smerter ved et-bens øvelser eller vending i seng.</span>
        </div>
      </div>
    </div>

    <!-- KORT 3: KERNE & MAVETRYK (CONING) -->
    <div class="summary-card" id="cardCore">
      <div class="summary-card-header">
        <span>🧘‍♀️ Mavemuskler &amp; Kerne</span>
        <span class="gear-icon">⚙️</span>
      </div>
      <div class="active-val-title" id="titleCore">Normal kontrol</div>
      <div class="active-val-desc" id="descCore">Ingen synlig 'toblerone' / spids mave ved belastning.</div>

      <div class="option-picker-dropdown">
        <div class="picker-option selected" data-value="0">
          <span class="picker-opt-title">Normal kontrol</span>
          <span class="picker-opt-desc">Jævnt stram mave under løft og stabilitet.</span>
        </div>
        <div class="picker-option" data-value="1">
          <span class="picker-opt-title">Begyndende Coning / Diastase</span>
          <span class="picker-opt-desc">Maven buler ud på midten under planke eller mavebøjning.</span>
        </div>
      </div>
    </div>
  </div>

  <!-- FYSIOLOGISK BELASTNINGS-MATRICE -->
  <div class="chart-box">
    <div class="matrix-bar-group">
      <div class="matrix-label-row">
        <span>🔥 Anbefalet Intensitet (Borg RPE Skala)</span>
        <span id="lblRpe">RPE 12-14 (Moderat "Snakketempo")</span>
      </div>
      <div class="matrix-track">
        <div class="matrix-fill" id="barRpe" style="background:#0ea5e9; width:65%;"></div>
      </div>
    </div>

    <div class="matrix-bar-group">
      <div class="matrix-label-row">
        <span>⚡ Symmetrikrav &amp; Stabilitetsfokus</span>
        <span id="lblStab">80% Symmetriske øvelser</span>
      </div>
      <div class="matrix-track">
        <div class="matrix-fill" id="barStab" style="background:#ec4899; width:80%;"></div>
      </div>
    </div>

    <div class="matrix-bar-group">
      <div class="matrix-label-row">
        <span>🫀 Intra-abdominalt Tryk &amp; Vena Cava Sikkerhed</span>
        <span id="lblPressure">Lav risiko for kompression</span>
      </div>
      <div class="matrix-track">
        <div class="matrix-fill" id="barPressure" style="background:#10b981; width:30%;"></div>
      </div>
    </div>
  </div>

  <!-- ANBEFALINGER STACK -->
  <div class="metrics-stack">
    <div class="metric-card" style="border-left-color: #ec4899;">
      <h5>🏋️‍♀️ Styrketræning &amp; Øvelsesmodifikationer</h5>
      <p id="txtStrength">-</p>
      <ul class="bullet-list" id="listStrength"></ul>
    </div>

    <div class="metric-card" style="border-left-color: #0ea5e9;">
      <h5>🫁 Kondition, Puls &amp; Bækkenbundsbelastning</h5>
      <p id="txtCardio">-</p>
    </div>

    <div class="metric-card" style="border-left-color: #10b981;" id="cardSafety">
      <h5>🛡️ ACOG Sikkerhedstjek &amp; Stop-signaler</h5>
      <p id="txtSafety">-</p>
    </div>
  </div>

  <!-- FAGLIGT FUNDAMENT & LÆGEFAGLIG ANSVARSFRASKRIVELSE -->
  <div class="disclaimer-box">
    <p style="margin: 0 0 6px 0;"><strong>📚 Fagligt grundlag:</strong> Algoritmen bygger på de officielle kliniske anbefalinger fra <em>Sundhedsstyrelsen</em>, <em>Dansk Selskab for Obstetrik og Gynækologi (DSOG)</em> samt <em>American College of Obstetricians and Gynecologists (ACOG, Committee Opinion No. 804)</em>.</p>
    <p style="margin: 0;"><strong>⚕️ Lægefaglig ansvarsfraskrivelse:</strong> Dette værktøj er udelukkende beregnet til oplysning og vejledning for raske gravide. Det erstatter ikke individuel sundhedsfaglig vurdering fra din egen læge, jordemoder eller fysioterapeut. Ved tvivl, kramper, smerter eller kompliceret graviditet skal du altid konsultere dit fødested før træning.</p>
  </div>
</div>

<script>
  (function() {
    let state = {
      trimester: 2,
      pelvis: 0,
      core: 0
    };

    const barRpe = document.getElementById('barRpe');
    const barStab = document.getElementById('barStab');
    const barPressure = document.getElementById('barPressure');

    const lblRpe = document.getElementById('lblRpe');
    const lblStab = document.getElementById('lblStab');
    const lblPressure = document.getElementById('lblPressure');

    const txtStrength = document.getElementById('txtStrength');
    const listStrength = document.getElementById('listStrength');
    const txtCardio = document.getElementById('txtCardio');
    const txtSafety = document.getElementById('txtSafety');

    document.querySelectorAll('.summary-card').forEach(card => {
      card.addEventListener('click', function(e) {
        e.stopPropagation();
        const isOpen = this.classList.contains('open');
        document.querySelectorAll('.summary-card').forEach(c => c.classList.remove('open'));
        if (!isOpen) this.classList.add('open');
      });
    });

    document.addEventListener('click', function() {
      document.querySelectorAll('.summary-card').forEach(c => c.classList.remove('open'));
    });

    setupCardOptions('cardTrimester', 'titleTrimester', 'descTrimester', 'trimester');
    setupCardOptions('cardPelvis', 'titlePelvis', 'descPelvis', 'pelvis');
    setupCardOptions('cardCore', 'titleCore', 'descCore', 'core');

    function setupCardOptions(cardId, titleId, descId, stateKey) {
      const card = document.getElementById(cardId);
      card.querySelectorAll('.picker-option').forEach(opt => {
        opt.addEventListener('click', function(e) {
          e.stopPropagation();
          state[stateKey] = parseInt(this.getAttribute('data-value'));

          card.querySelectorAll('.picker-option').forEach(o => o.classList.remove('selected'));
          this.classList.add('selected');

          document.getElementById(titleId).textContent = this.querySelector('.picker-opt-title').textContent;
          document.getElementById(descId).textContent = this.querySelector('.picker-opt-desc').textContent;

          card.classList.remove('open');
          updatePregnancyModel();
        });
      });
    }

    function updatePregnancyModel() {
      const tri = state.trimester;
      const pel = state.pelvis;
      const cor = state.core;

      let rpeVal = tri === 1 ? 70 : tri === 2 ? 60 : 45;
      if (pel === 2) rpeVal -= 15;
      barRpe.style.width = `${rpeVal}%`;
      lblRpe.textContent = rpeVal > 60 ? "RPE 13-15 (Moderat til anstrengende)" : "RPE 11-13 (Nemt 'Snakketempo')";

      let stabVal = pel === 2 ? 95 : pel === 1 ? 80 : 50;
      barStab.style.width = `${stabVal}%`;
      lblStab.textContent = pel === 2 ? "100% Symmetriske, to-bens øvelser" : pel === 1 ? "80% Symmetriske øvelser" : "Normale et-bens bevægelser tilladt";

      let pressVal = tri === 3 ? 85 : tri === 2 ? 55 : 20;
      if (cor === 1) pressVal += 15;
      barPressure.style.width = `${pressVal}%`;
      barPressure.style.backgroundColor = pressVal > 70 ? "#ef4444" : pressVal > 45 ? "#f59e0b" : "#10b981";
      lblPressure.textContent = pressVal > 70 ? "Høj risiko (Undgå rygliggende & Valsalva)" : pressVal > 45 ? "Moderat tryk (Juster kerneøvelser)" : "Lav risiko for kompression";

      listStrength.innerHTML = "";
      if (pel === 2) {
        txtStrength.textContent = "Ved bækkenløsning/smerter i symfysen skal alle asymmetriske et-bens øvelser (lunges, step-ups, bulgarian split squats) straks tages ud af programmet. Fokuser på:";
        addBullet(listStrength, "Brede, symmetriske Squats til bænk/stol (hold benene samlet i hverdagen)");
        addBullet(listStrength, "Siddende overkropsøvelser (Roing, Shoulder Press, Lat Pulldown)");
        addBullet(listStrength, "Glute Bridges på måtte med samlede knæ og elastic band om lårene");
      } else if (tri === 3) {
        txtStrength.textContent = "3. Trimester kræver reduktion af den samlede vægtstang-belastning pga. hormonet Relaxin, der blødgør led og ligamenter. Prioriter:";
        addBullet(listStrength, "Kabel- og maskintræning for kontrolleret bevægebane");
        addBullet(listStrength, "Bænkpres modificeres til Incline Press (15-30 graders hældning) for at undgå Vena Cava Syndrome");
        addBullet(listStrength, "Bækkenbundsaktivering koordineret med udånding under løftets tunge fase");
      } else {
        txtStrength.textContent = "Du kan fortsætte din vante styrketræning med fuld bevægeudslag, men undgå at holde vejret (Valsalva-manøvren) ved tunge løft:";
        addBullet(listStrength, "Squats, Dødløft og Lunges med moderat belastning (RPE 12-14)");
        addBullet(listStrength, "Aktiv udånding på vej op fra løftet for at beskytte bækkenbunden");
      }

      if (cor === 1) {
        addBullet(listStrength, "⚠️ OBS: Ved synlig 'coning' (spids mave) fjernes traditionelle planker, push-ups og crunches. Erstat med Pallof Press, Side Planke på knæ og Farmer Carries.");
      }

      if (pel === 2 || tri === 3) {
        txtCardio.textContent = "High-impact aktiviteter (løb, hop, tunge crossfit-metcons) bør udskiftes for at skåne bækkenbunden. Anbefalede former: Cykling på stationær cykel, svømning (fantastisk aflastning i vand) eller incline walking på løbebånd.";
      } else {
        txtCardio.textContent = "Løb og konditionstræning kan sagtens fortsættes, så længe du ikke oplever tyngdefornemmelse i underlivet eller lækage. Hold intensiteten på et niveau, hvor du kan føre en samtale undervejs.";
      }

      txtSafety.textContent = "Afbryd straks træningen og kontakt læge/jordemoder ved: Vaginal blødning, svimmelhed/besvimelse, brystsmerter, fostervandsafgang, regelmæssige smertefulde plukkeveer eller pludselig hævelse i ansigt/hænder.";
    }

    function addBullet(ul, text) {
      const li = document.createElement('li');
      li.innerHTML = text;
      ul.appendChild(li);
    }

    updatePregnancyModel();
  })();
</script>

<hr />

<h2 id="acog-røde-flag-hvornår-skal-du-stoppe-træningen">ACOG Røde Flag: Hvornår skal du stoppe træningen?</h2>

<p>Selvom træning er sikkert for langt de fleste, skal du altid lytte til kroppen. Afbryd straks træningen og kontakt din læge eller jordemoder, hvis du oplever et eller flere af følgende symptomer:</p>

<ul>
  <li>Vaginal blødning eller pletblødning</li>
  <li>Fostervandsafgang eller mistanke om hindebristning</li>
  <li>Svimmelhed, nærbesvimelse eller hovedpine</li>
  <li>Brystsmerter eller åndenød før påbegyndt anstrengelse</li>
  <li>Regelmæssige, smertefulde plukkeveer eller sammentrækninger</li>
  <li>Muskelsvaghed, der påvirker balancen</li>
</ul>

<hr />

<h2 id="ofte-stillede-spørgsmål">Ofte stillede spørgsmål</h2>

<details class="faq">
<summary><h3>Må man styrketræne, når man er gravid?</h3></summary>
<p>Ja, for raske gravide er styrketræning både sikkert og stærkt anbefalet af ACOG og Sundhedsstyrelsen. Det forebygger ryg- og bækkensmerter, mindsker risikoen for graviditetsdiabetes og letter genoptræningen efter fødslen.</p>

</details>

<details class="faq">
<summary><h3>Hvor høj må pulsen blive under træning som gravid?</h3></summary>
<p>I dag anbefaler sundhedsmyndighederne ikke faste pulstærskler, da graviditetshormoner ændrer hvile- og makspulsen. Anvend i stedet Borgs RPE-skala (12–14) og ‘snakketempoet’, hvor du ubesværet kan føre en samtale undervejs.</p>

</details>

<details class="faq">
<summary><h3>Hvornår skal man stoppe med at ligge fladt på ryggen?</h3></summary>
<p>Fra omkring uge 16–20 (2. trimester) bør du undgå langvarige rygliggende øvelser som flad bænkpres, da livmoderens tyngde kan trykke på Vena Cava og nedsætte blodtilførslen. Vælg i stedet skråbænk (incline) eller stående øvelser.</p>

</details>

<script type="application/ld+json">
    {
        "@context":"https://schema.org",
        "@type":"FAQPage",
        "mainEntity":
            [{"@type":"Question","name":"Må man styrketræne, når man er gravid?","acceptedAnswer":{"@type":"Answer","text":"Ja, for raske gravide er styrketræning både sikkert og stærkt anbefalet af ACOG og Sundhedsstyrelsen. Det forebygger ryg- og bækkensmerter, mindsker risikoen for graviditetsdiabetes og letter genoptræningen efter fødslen.\n"}},{"@type":"Question","name":"Hvor høj må pulsen blive under træning som gravid?","acceptedAnswer":{"@type":"Answer","text":"I dag anbefaler sundhedsmyndighederne ikke faste pulstærskler, da graviditetshormoner ændrer hvile- og makspulsen. Anvend i stedet Borgs RPE-skala (12–14) og ‘snakketempoet’, hvor du ubesværet kan føre en samtale undervejs.\n"}},{"@type":"Question","name":"Hvornår skal man stoppe med at ligge fladt på ryggen?","acceptedAnswer":{"@type":"Answer","text":"Fra omkring uge 16–20 (2. trimester) bør du undgå langvarige rygliggende øvelser som flad bænkpres, da livmoderens tyngde kan trykke på Vena Cava og nedsætte blodtilførslen. Vælg i stedet skråbænk (incline) eller stående øvelser.\n"}}]
    }
</script>

<details class="references">
  <summary><h2 id="references">Kilder og videre læsning</h2></summary>

  <ol>
    <li><strong>ACOG (American College of Obstetricians and Gynecologists) (2020).</strong> “Physical Activity and Exercise During Pregnancy and the Postpartum Period.” <em>Committee Opinion No. 804.</em></li>
    <li><strong>Dansk Selskab for Obstetrik og Gynækologi (DSOG) (2021).</strong> <em>Klinisk Vejledning: Motion og Graviditet.</em></li>
    <li><strong>Sundhedsstyrelsen (2023).</strong> <em>Anbefalinger for fysisk aktivitet til gravide.</em></li>
    <li><strong>Mottola, M. F., et al. (2018).</strong> “2019 Canadian Guideline for Physical Activity Throughout Pregnancy.” <em>British Journal of Sports Medicine</em>, 52(21), 1339–1346.</li>
  </ol>
</details>]]></content><author><name>Lars Olesen</name></author><category term="Træning &amp; Sundhed" /><category term="graviditet" /><category term="styrketræning" /><category term="sundhed" /><category term="beregner" /><category term="faq" /><summary type="html"><![CDATA[Hvordan træner man sikkert under graviditeten? Få videnskabeligt funderede retningslinjer (ACOG & DSOG) og tilpas din træning med vores interaktive beregner.]]></summary></entry><entry><title type="html">Reaktiv Agility Test (Y-RAT): Test din evne til at reagere</title><link href="https://www.motionsplan.dk/reaktiv-agility-test/" rel="alternate" type="text/html" title="Reaktiv Agility Test (Y-RAT): Test din evne til at reagere" /><published>2026-08-17T00:00:00+00:00</published><updated>2026-08-17T09:00:00+00:00</updated><id>https://www.motionsplan.dk/reaktiv-agility-test</id><content type="html" xml:base="https://www.motionsplan.dk/reaktiv-agility-test/"><![CDATA[<p>Hvis du måler din <em>agility</em> ved hjælp af klassikere som T-testen, Illinois Agility Test eller Pro Agility (5-10-5), så måler du rent fysiologisk slet ikke agility. Du måler din evne til <strong>Change of Direction (COD)</strong> – altså lukkede, forudbestemte retningsskift.</p>

<p>Inden for moderne idrætsvidenskab (defineret skarpt af forskerne Sheppard og Young) skelner man mellem evnen til at løbe en fastlagt rute og evnen til at <em>reagere</em>. I fodbold, håndbold og basketball ved du sjældent, hvad der sker om ét sekund. Du skal opfatte en situation, tage en beslutning og skifte retning. Det er <strong>ægte agility</strong>.</p>

<p>For at teste dette bruger man en reaktiv test. Den mest anerkendte felt-test til formålet er <strong>Y-Shaped Reactive Agility Test (Y-RAT)</strong>.</p>

<hr />

<h2 id="hvordan-opsættes-y-rat">Hvordan opsættes Y-RAT?</h2>

<p>Opsætningen har form som et Y (deraf navnet). Du skal bruge 5-6 kegler, et målebånd og god plads.</p>

<ol>
  <li><strong>Startlinjen:</strong> Marker en startlinje med to kegler.</li>
  <li><strong>Reaktions-porten (Trigger-linjen):</strong> Placer to kegler 4-5 meter lige fremme. Det er her, beslutningen skal træffes.</li>
  <li><strong>Slut-portene (Mål):</strong> Fra reaktions-porten måler du 4-5 meter ud i en 45-graders vinkel til henholdsvis <em>venstre</em> og <em>højre</em>. Placer en port (to kegler) ved begge slut-destinationer.</li>
</ol>

<h3 id="udførelse-af-testen">Udførelse af testen</h3>

<ul>
  <li>Atleten starter bag startlinjen.</li>
  <li>Atleten sprinter frem mod reaktions-porten i midten.</li>
  <li>Lige før (eller i det sekund) atleten rammer reaktions-porten, udløses et <strong>uforudsigeligt signal</strong> (Venstre eller Højre).</li>
  <li>Atleten skal opfatte signalet, plante foden, lave et aggressivt <em>cut</em> og sprinte gennem den korrekte slut-port.</li>
</ul>

<p>For at testen har værdi, må atleten under ingen omstændigheder kunne gætte, hvilken vej signalet viser.</p>

<hr />

<h2 id="det-store-problem-udstyret">Det store problem: Udstyret</h2>

<p>I laboratorier og hos professionelle klubber bruger man dyrt udstyr som <em>FitLight</em>, <em>Microgate Witty</em> eller <em>BlazePod</em> til at skabe signalet og tage tiden via lasere. Fotocellerne sikrer, at alt er 100 % præcist, ned til mindste millisekund.</p>

<p>En træner med et almindeligt stopur, som samtidig skal råbe “højre!” på det rigtige tidspunkt, introducerer for meget menneskelig fejl (trænerens egen reaktionstid).</p>

<p>For at løse dette for idrætslærere, amatørtrænere og fitness-entusiaster har vi udviklet en gratis <strong>Reaktiv Agility Smart-Timer</strong> direkte her på Motionsplan.</p>

<hr />

<h2 id="reaktiv-agility-timer">Reaktiv Agility Smart-Timer</h2>

<p>Vores værktøj fungerer som din “virtuelle fotocelle”. Mobilen styrer tilfældigheden og signalet.</p>

<p><strong>Sådan gør I:</strong></p>
<ol>
  <li>Træneren står ved start/mål-området med mobilen. Atleten gør sig klar.</li>
  <li>Træneren trykker <strong>Gør klar</strong>. Nu venter systemet i 1 til 4 sekunder (helt tilfældigt), så atleten ikke kan forudsige starten.</li>
  <li>Mobilen afspiller et skarpt bip, og skærmen viser retningen med en stor pil samt grøn (Venstre) eller rød (Højre) farve. Samtidig starter stopuret internt med millisekund-præcision. Mørk tone betyder venstre, lys tone betyder højre.</li>
  <li>Atleten sprinter ud og skifter retning.</li>
  <li>I det sekund atleten krydser målstregen, trykker træneren <em>hvor som helst</em> på hele mobilskærmen for at stoppe tiden (kig på atleten, ikke på skærmen).</li>
</ol>

<p><em>Sørg for, at din telefons lyd ikke er på lydløs, da værktøjet bruger indbygget tale (Speech API) til at give retnings-signalet.</em></p>

<!-- _includes/calc/reactive-agility-timer.html -->
<style>
  .mp-ag-card { 
    position: relative !important; 
    font-family: system-ui, -apple-system, sans-serif; 
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 1.25rem;
    max-width: 600px;
    margin: 0 auto;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    overflow: hidden;
  }

  .mp-ag-header {
    border-bottom: 2px solid #e2e8f0;
    padding-bottom: 0.75rem;
    margin-bottom: 1rem;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
  }

  /* SCREENS */
  .mp-ag-screen { display: none; flex-direction: column; align-items: center; justify-content: center; width: 100%; min-height: 350px; border-radius: 12px; text-align: center; position: relative; }
  .mp-ag-screen.active { display: flex; }

  /* Screen: Setup */
  .mp-ag-setup { background: #f8fafc; border: 2px dashed #cbd5e1; padding: 1rem; }
  
  .mp-ag-mode-toggle {
    display: flex; flex-direction: column; gap: 8px; width: 100%; margin-bottom: 1.5rem;
  }
  .mp-ag-mode-btn {
    border: 2px solid #e2e8f0; padding: 12px; border-radius: 8px; font-size: 0.9rem; font-weight: 800;
    cursor: pointer; background: #ffffff; color: #64748b; transition: all 0.2s ease;
    text-align: left; display: flex; flex-direction: column;
  }
  .mp-ag-mode-btn span { font-size: 0.7rem; font-weight: 600; margin-top: 4px; color: #94a3b8; }
  .mp-ag-mode-btn.active { border-color: #2563eb; background: #eff6ff; color: #1e40af; }
  .mp-ag-mode-btn.active span { color: #3b82f6; }

  .mp-ag-btn-start {
    background: #2563eb; color: #fff; font-size: 1.25rem; font-weight: 900; text-transform: uppercase;
    padding: 1rem 2.5rem; border: none; border-radius: 8px; cursor: pointer; box-shadow: 0 4px 12px rgba(37,99,235,0.2);
    transition: transform 0.1s ease; width: 100%; max-width: 300px;
  }
  .mp-ag-btn-start:active { transform: scale(0.96); background: #1d4ed8; }

  /* Screen: Waiting (Stationary Mode) */
  .mp-ag-waiting { background: #facc15; cursor: wait; }
  .mp-ag-wait-text { font-size: 2.5rem; font-weight: 900; color: #854d0e; letter-spacing: 2px; animation: pulse 1s infinite alternate; }

  /* Screen: Trigger (Y-RAT Mode) */
  .mp-ag-trigger { background: #3b82f6; cursor: pointer; user-select: none; -webkit-tap-highlight-color: transparent; }
  .mp-ag-trigger-text { font-size: 2rem; font-weight: 900; color: #ffffff; line-height: 1.2; padding: 0 20px; }
  .mp-ag-trigger-sub { font-size: 1rem; font-weight: 600; color: #bfdbfe; margin-top: 1rem; }

  /* Screen: Running */
  .mp-ag-running { cursor: pointer; user-select: none; -webkit-tap-highlight-color: transparent; }
  .mp-ag-dir-text { font-size: 3.5rem; font-weight: 900; color: #ffffff; text-transform: uppercase; margin-bottom: 0.5rem; line-height: 1; }
  .mp-ag-dir-arrow { font-size: 6rem; line-height: 1; margin-bottom: 1rem; color: #ffffff; }
  .mp-ag-stop-hint { font-size: 1rem; font-weight: 700; color: rgba(255,255,255,0.8); background: rgba(0,0,0,0.2); padding: 8px 16px; border-radius: 20px; }

  /* Screen: Result */
  .mp-ag-result { background: #eff6ff; border: 2px solid #bfdbfe; }
  .mp-ag-res-time { font-size: 4.5rem; font-weight: 900; color: #1e3a8a; line-height: 1; font-variant-numeric: tabular-nums; }
  .mp-ag-res-unit { font-size: 1.5rem; font-weight: 700; color: #3b82f6; }
  .mp-ag-res-dir { font-size: 1.1rem; font-weight: 800; color: #64748b; margin-top: 0.5rem; text-transform: uppercase; }
  .mp-ag-res-mode { font-size: 0.75rem; font-weight: 700; color: #94a3b8; margin-top: 0.5rem; }
  .mp-ag-btn-reset { margin-top: 1.5rem; background: #2563eb; color: #fff; font-size: 1.1rem; font-weight: 800; padding: 0.85rem 2rem; border: none; border-radius: 8px; cursor: pointer; }

  /* History Table */
  .mp-ag-history { margin-top: 1.5rem; width: 100%; text-align: left; border-collapse: collapse; font-size: 0.85rem; }
  .mp-ag-history th { background: #f1f5f9; padding: 8px; border-bottom: 2px solid #cbd5e1; color: #475569; font-weight: 800; }
  .mp-ag-history td { padding: 8px; border-bottom: 1px solid #e2e8f0; color: #0f172a; font-weight: 600; }
  .mp-ag-history-clear { font-size: 0.75rem; color: #ef4444; background: none; border: none; cursor: pointer; font-weight: 700; float: right; padding: 4px; }
  .mp-ag-badge { font-size: 0.6rem; background: #e2e8f0; padding: 2px 4px; border-radius: 4px; margin-left: 4px; color: #64748b; }

  @keyframes pulse {
    0% { transform: scale(0.95); opacity: 0.8; }
    100% { transform: scale(1.05); opacity: 1; }
  }
</style>

<div class="mp-ag-card" data-tool="agility-timer">
  
  <div class="mp-ag-header">
    <div>
      <h3 style="margin: 0 0 2px 0; font-size: 1.1rem; font-weight: 900; color: #0f172a;">⚡ Reaktiv Agility Smart-Timer</h3>
      <p style="margin: 0; font-size: 0.75rem; color: #64748b; font-weight: 500;">
        Universelt testværktøj til Y-RAT og Generic Agility Tests.
      </p>
    </div>
  </div>

  <!-- SETUP SCREEN -->
  <div class="mp-ag-screen mp-ag-setup active" id="screen-setup">
    <div style="width: 100%; text-align: left; margin-bottom: 0.5rem; font-weight: 800; font-size: 0.85rem; color: #0f172a;">Vælg test-type:</div>
    
    <div class="mp-ag-mode-toggle">
      <!-- Mode 1: Y-RAT -->
      <button class="mp-ag-mode-btn active" data-mode="yrat">
        🏃 I fart (Y-RAT / Manuel udløser)
        <span>Træneren tapper skærmen i det sekund, atleten løber forbi porten. Signal og tid starter øjeblikkeligt.</span>
      </button>
      
      <!-- Mode 2: Stationær -->
      <button class="mp-ag-mode-btn" data-mode="stat">
        🧍 Stationær (Tilfældig ventetid)
        <span>Atleten står stille. Mobilen tæller usynligt ned (1-4 sek) og udløser selv signal og tid.</span>
      </button>
    </div>

    <button class="mp-ag-btn-start" id="btn-start">Gør klar</button>
  </div>

  <!-- WAITING SCREEN (For Stationary Mode) -->
  <div class="mp-ag-screen mp-ag-waiting" id="screen-wait">
    <div class="mp-ag-wait-text">VENT...</div>
    <div style="margin-top: 1rem; font-weight: 700; color: #a16207; font-size: 0.85rem;">Signalet kommer uforudsigeligt.</div>
  </div>

  <!-- TRIGGER SCREEN (For Y-RAT Mode) -->
  <div class="mp-ag-screen mp-ag-trigger" id="screen-trigger">
    <div class="mp-ag-trigger-text">TAP HER NÅR ATLETEN RAMMER PORTEN</div>
    <div class="mp-ag-trigger-sub">Udløser signal og starter stopuret</div>
  </div>

  <!-- RUNNING SCREEN -->
  <div class="mp-ag-screen mp-ag-running" id="screen-run">
    <div class="mp-ag-dir-arrow" id="run-arrow">←</div>
    <div class="mp-ag-dir-text" id="run-text">Venstre</div>
    <div class="mp-ag-stop-hint">Tap hvor som helst for at stoppe</div>
  </div>

  <!-- RESULT SCREEN -->
  <div class="mp-ag-screen mp-ag-result" id="screen-result">
    <div style="font-size: 0.85rem; font-weight: 800; color: #475569; text-transform: uppercase; margin-bottom: 0.5rem;">Reaktion &amp; Sprint</div>
    <div>
      <span class="mp-ag-res-time" id="res-time">0.00</span>
      <span class="mp-ag-res-unit">sek</span>
    </div>
    <div class="mp-ag-res-dir" id="res-dir">Retning: Højre</div>
    <div class="mp-ag-res-mode" id="res-mode">Mode: Y-RAT</div>
    <button class="mp-ag-btn-reset" id="btn-reset">Klar til næste løb</button>
  </div>

  <!-- HISTORY SECTION -->
  <div style="margin-top: 1.5rem;">
    <div style="display: flex; justify-content: space-between; align-items: flex-end; border-bottom: 2px solid #e2e8f0; padding-bottom: 4px;">
      <strong style="font-size: 0.85rem; color: #0f172a;">Seneste Resultater</strong>
      <button class="mp-ag-history-clear" id="btn-clear-history">Ryd liste</button>
    </div>
    <table class="mp-ag-history" id="history-table">
      <thead>
        <tr>
          <th style="width: 20%;">Løb</th>
          <th style="width: 45%;">Retning</th>
          <th style="width: 35%; text-align: right;">Tid (sek)</th>
        </tr>
      </thead>
      <tbody id="history-body">
        <!-- Rækker indsættes via JS -->
      </tbody>
    </table>
  </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
  const container = document.querySelector('[data-tool="agility-timer"]');
  if (!container) return;

  const STORAGE_KEY = 'mp_agility_history_v3';

  // State
  let timeoutId = null;
  let startTime = 0;
  let currentDirection = '';
  let activeMode = 'yrat'; // 'yrat' eller 'stat'
  
  // DOM Elements
  const screenSetup = container.querySelector('#screen-setup');
  const screenWait = container.querySelector('#screen-wait');
  const screenTrigger = container.querySelector('#screen-trigger');
  const screenRun = container.querySelector('#screen-run');
  const screenResult = container.querySelector('#screen-result');

  const modeBtns = container.querySelectorAll('.mp-ag-mode-btn');
  const btnStart = container.querySelector('#btn-start');
  const btnReset = container.querySelector('#btn-reset');
  const runArrow = container.querySelector('#run-arrow');
  const runText = container.querySelector('#run-text');
  const resTime = container.querySelector('#res-time');
  const resDir = container.querySelector('#res-dir');
  const resModeLabel = container.querySelector('#res-mode');
  const historyBody = container.querySelector('#history-body');

  // Mode Toggle
  modeBtns.forEach(btn => {
    btn.addEventListener('click', () => {
      modeBtns.forEach(b => b.classList.remove('active'));
      btn.classList.add('active');
      activeMode = btn.getAttribute('data-mode');
    });
  });

  // --- HISTORY LOGIC ---
  function getHistory() {
    try { return JSON.parse(localStorage.getItem(STORAGE_KEY)) || []; } catch (e) { return []; }
  }
  function saveToHistory(dir, time, mode) {
    const history = getHistory();
    history.unshift({ dir: dir, time: time.toFixed(2), mode: mode });
    if (history.length > 10) history.pop(); 
    localStorage.setItem(STORAGE_KEY, JSON.stringify(history));
    renderHistory();
  }
  function renderHistory() {
    const history = getHistory();
    if (history.length === 0) {
      historyBody.innerHTML = '<tr><td colspan="3" style="text-align:center; color:#94a3b8; font-weight: 500;">Ingen gemte løb endnu.</td></tr>';
      return;
    }
    historyBody.innerHTML = history.map((item, index) => {
      const color = item.dir === 'Venstre' ? '#16a34a' : '#dc2626';
      const modeText = item.mode === 'yrat' ? 'I fart' : 'Stat.';
      return `
        <tr>
          <td style="color:#64748b;">#${history.length - index}</td>
          <td style="color:${color}; font-weight:800;">
            ${item.dir} <span class="mp-ag-badge">${modeText}</span>
          </td>
          <td style="text-align: right; font-weight:800; font-variant-numeric: tabular-nums;">${item.time}</td>
        </tr>
      `;
    }).join('');
  }
  container.querySelector('#btn-clear-history').addEventListener('click', () => {
    localStorage.removeItem(STORAGE_KEY);
    renderHistory();
  });

  // --- SCREEN NAVIGATION ---
  function showScreen(id) {
    [screenSetup, screenWait, screenTrigger, screenRun, screenResult].forEach(s => s.classList.remove('active'));
    container.querySelector(id).classList.add('active');
  }

  // --- AUDIO API (BEEP ONLY) ---
  let audioCtx = null;
  function initAudio() {
    if (!audioCtx) { audioCtx = new (window.AudioContext || window.webkitAudioContext)(); }
    if (audioCtx.state === 'suspended') audioCtx.resume();
  }

  function playBeepAndStart(isLeft) {
    const osc = audioCtx.createOscillator();
    const gain = audioCtx.createGain();
    osc.connect(gain);
    gain.connect(audioCtx.destination);
    
    osc.type = 'sine';
    osc.frequency.value = isLeft ? 400 : 800; 
    
    gain.gain.setValueAtTime(0, audioCtx.currentTime);
    gain.gain.linearRampToValueAtTime(1, audioCtx.currentTime + 0.02);
    gain.gain.exponentialRampToValueAtTime(0.001, audioCtx.currentTime + 0.3);
    
    osc.start();
    osc.stop(audioCtx.currentTime + 0.3);

    executeStartVisuals(isLeft);
  }

  // --- CORE LOGIC ---
  function executeStartVisuals(isLeft) {
    currentDirection = isLeft ? 'Venstre' : 'Højre';
    
    if (isLeft) {
      screenRun.style.backgroundColor = '#16a34a'; // Grøn
      runArrow.textContent = '←';
    } else {
      screenRun.style.backgroundColor = '#dc2626'; // Rød
      runArrow.textContent = '→';
    }
    runText.textContent = currentDirection;

    showScreen('#screen-run');
    startTime = performance.now();
  }

  // 1. START KNAP KLIKKES
  btnStart.addEventListener('click', () => {
    initAudio(); 
    
    if (activeMode === 'stat') {
      // Stationær mode: Vis Venteskærm og udløs automatisk
      showScreen('#screen-wait');
      const delay = Math.random() * 2500 + 1500; // 1.5 - 4.0 sekunder
      timeoutId = setTimeout(() => {
        const isLeft = Math.random() > 0.5;
        playBeepAndStart(isLeft);
      }, delay);
    } else {
      // Y-RAT mode: Vis Trigger-skærm (venter på trænerens tap)
      showScreen('#screen-trigger');
    }
  });

  // Hvis træneren tyvstarter i stationær mode:
  screenWait.addEventListener('pointerdown', (e) => {
    e.preventDefault();
    clearTimeout(timeoutId);
    showScreen('#screen-setup');
    alert("Tyvstart! Atleten rørte sig, eller du afbrød ventetiden.");
  });

  // Manuel udløser i Y-RAT mode:
  screenTrigger.addEventListener('pointerdown', (e) => {
    e.preventDefault();
    const isLeft = Math.random() > 0.5;
    playBeepAndStart(isLeft);
  });

  // STOP KNAP (Krydser målstregen)
  screenRun.addEventListener('pointerdown', (e) => {
    e.preventDefault(); 
    const endTime = performance.now();
    const duration = (endTime - startTime) / 1000;
    
    resTime.textContent = duration.toFixed(2);
    resDir.textContent = `Retning: ${currentDirection}`;
    resModeLabel.textContent = `Mode: ${activeMode === 'yrat' ? 'I fart (Y-RAT)' : 'Stationær'}`;
    
    saveToHistory(currentDirection, duration, activeMode);
    showScreen('#screen-result');
  });

  // RESET
  btnReset.addEventListener('click', () => {
    showScreen('#screen-setup');
  });

  renderHistory();
});
</script>

<hr />

<h2 id="sådan-bruger-du-resultaterne">Sådan bruger du resultaterne</h2>

<p>Selvom tidtagningen afhænger af trænerens tommelfinger på skærmen (hvilket har en lille fejlmargin i forhold til rigtige fotoceller), har vi fuldstændig <strong>standardiseret startskuddet og stimulussen</strong>.</p>

<p>Det gør værktøjet genialt til træning og udvikling ude på banen.</p>

<p>Hvis du vil gå skridtet videre i din testning, kan du kombinere tiderne:</p>
<ol>
  <li>Gennemfør testen 3 gange som en lukket rute (hvor du <em>ved</em>, du skal til højre). Dette er din <strong>COD-tid</strong>.</li>
  <li>Gennemfør testen 3 gange reaktivt med Smart-Timeren. Dette er din <strong>Agility-tid</strong>.</li>
</ol>

<p>Forskellen mellem din COD-tid og din Agility-tid er din rene <strong>kognitive reaktionstid</strong>. Er afstanden mellem de to tider meget stor, er din mekanik (styrke, smidighed og teknik) formodentlig god, men din reaktionsevne og opfattelse skal trænes!</p>

<h2 id="faq-om-reaktiv-agility">FAQ om Reaktiv Agility</h2>

<details class="faq">
<summary><h3>Hvad er forskellen på Change of Direction (COD) og Agility?</h3></summary>
<p>Change of Direction (COD) er evnen til at skifte retning, når ruten er kendt på forhånd (fx i en T-test). Ægte agility indeholder et kognitivt element, hvor atleten skal reagere på en uforudsigelig stimulus (fx en modstander eller et signal) og derefter skifte retning.</p>

</details>

<details class="faq">
<summary><h3>Hvorfor er Y-RAT bedre til boldspillere end en 5-10-5 test?</h3></summary>
<p>I boldspil ved du sjældent, hvor modstanderen løber hen. Y-RAT simulerer kampsituationen ved at tvinge atleten til at læse et signal og reagere. Det gør testen langt mere sportsspecifik end lukkede løbebaner.</p>

</details>

<details class="faq">
<summary><h3>Kan jeg udføre testen alene?</h3></summary>
<p>Ja, men den er mest præcis, hvis en makker/træner styrer Smart-timeren, så du fuldt ud kan fokusere på signalet og dit retningsskift.</p>

</details>

<script type="application/ld+json">
    {
        "@context":"https://schema.org",
        "@type":"FAQPage",
        "mainEntity":
            [{"@type":"Question","name":"Hvad er forskellen på Change of Direction (COD) og Agility?","acceptedAnswer":{"@type":"Answer","text":"Change of Direction (COD) er evnen til at skifte retning, når ruten er kendt på forhånd (fx i en T-test). Ægte agility indeholder et kognitivt element, hvor atleten skal reagere på en uforudsigelig stimulus (fx en modstander eller et signal) og derefter skifte retning.\n"}},{"@type":"Question","name":"Hvorfor er Y-RAT bedre til boldspillere end en 5-10-5 test?","acceptedAnswer":{"@type":"Answer","text":"I boldspil ved du sjældent, hvor modstanderen løber hen. Y-RAT simulerer kampsituationen ved at tvinge atleten til at læse et signal og reagere. Det gør testen langt mere sportsspecifik end lukkede løbebaner.\n"}},{"@type":"Question","name":"Kan jeg udføre testen alene?","acceptedAnswer":{"@type":"Answer","text":"Ja, men den er mest præcis, hvis en makker/træner styrer Smart-timeren, så du fuldt ud kan fokusere på signalet og dit retningsskift.\n"}}]
    }
</script>

<details class="references">
  <summary><h2 id="references">Referencer</h2></summary>

  <ul>
    <li>Sheppard, J. M., &amp; Young, W. B. (2006). <em>Agility literature review: Classifications, training and testing</em>. Journal of Sports Sciences, 24(9), 919-932.</li>
    <li>Young, W., Dawson, B., &amp; Henry, G. (2015). <em>Specificity of a sport-specific reactive agility test</em>. International Journal of Sports Physiology and Performance.</li>
  </ul>
</details>]]></content><author><name>Lars Olesen</name></author><category term="Agility" /><category term="test" /><category term="agility" /><category term="fodbold" /><category term="håndbold" /><category term="reaktion" /><summary type="html"><![CDATA[Måler du din agility med en T-test? Så måler du reelt kun retningsskift. Få den sande måling af din reaktionsevne og agility med Y-RAT og vores interaktive timer.]]></summary></entry><entry><title type="html">Den ultimative størrelsesguide til sportssko: Find din præcise størrelse (Inkl. beregner)</title><link href="https://www.motionsplan.dk/skostorrelse-guide/" rel="alternate" type="text/html" title="Den ultimative størrelsesguide til sportssko: Find din præcise størrelse (Inkl. beregner)" /><published>2026-08-17T00:00:00+00:00</published><updated>2026-08-17T00:00:00+00:00</updated><id>https://www.motionsplan.dk/storrelsesguide-sportssko</id><content type="html" xml:base="https://www.motionsplan.dk/skostorrelse-guide/"><![CDATA[<p>Vi kender alle frustrationen. Du har fundet den perfekte sportssko på tilbud online, men du tøver ved købsknappen: <em>Skal jeg vælge str. 43 eller 44?</em></p>

<p>Fakta er, at en str. 43 i Nike sjældent er det samme som en str. 43 i Adidas eller Asics. Hvis du vil undgå vabler, blånagler og returneringer af pakker, skal du droppe de normale EU-størrelser og begynde at kigge på én bestemt ting: <strong>Dit CM-mål (også kaldet Mondopoint).</strong></p>

<p>Prøv vores størrelsesberegner til sportssko. Den tager højde for dit fodmål, dit foretrukne mærke og den specifikke sport, du dyrker.</p>

<p>Prøv den herunder, og læs bagefter vores store guide til, hvordan din sko egentlig bør sidde.</p>

<h2 id="prøv-skostørrelses-beregneren">Prøv skostørrelses-beregneren</h2>

<div class="mp-calc-container">
  <!-- Tabs -->
  <div class="mp-calc-tabs">
    <button class="mp-calc-tab active" data-tab="cm">
      <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 19V5a2 2 0 0 1 2-2h13.4a.6.6 0 0 1 .6.6v13.8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z" /><path d="M8 3v4" /><path d="M12 3v4" /><path d="M16 3v4" /></svg>
      MÅLT FODLÆNGDE (CM)
    </button>
    <button class="mp-calc-tab" data-tab="ref">
      <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 12A10.5 10.5 0 0 0 2 12v6.5a3.5 3.5 0 0 0 3.5 3.5h13a3.5 3.5 0 0 0 3.5-3.5V12z" /><path d="M6 12v6" /><path d="M18 12v6" /></svg>
      NUVÆRENDE SKO &amp; MÆRKE
    </button>
  </div>

  <div class="mp-calc-grid">
    <!-- Venstre kolonne: Indtastning -->
    <div class="mp-calc-inputs">
      
      <!-- IDRÆTSGREN -->
      <div class="mp-calc-group mp-highlight-group">
        <label>VÆLG DIN TRÆNINGSTYPE</label>
        <select id="mp-sport">
          <option value="running">Løb (Mængde &amp; Tempo)</option>
          <option value="crossfit">Crossfit &amp; Fitness</option>
          <option value="weightlifting">Vægtløftning (Squat sko)</option>
          <option value="cycling">Cykling (Race, Gravel, MTB)</option>
        </select>
      </div>

      <!-- Sektion: Målt i CM -->
      <div id="mp-section-cm" class="mp-calc-section active">
        <div class="mp-calc-group">
          <label>MÅLT FODLÆNGDE (CM)</label>
          <div class="mp-input-wrapper">
            <input type="number" id="mp-cm-input" step="0.1" placeholder="F.eks. 27.2" autocomplete="off" />
            <span class="mp-input-suffix">CM</span>
          </div>
          <small class="mp-help-text">Mål begge fødder fra hæl til længste tå. Brug det største mål.</small>
        </div>
      </div>

      <!-- Sektion: Reference Sko -->
      <div id="mp-section-ref" class="mp-calc-section" style="display:none;">
        <div class="mp-calc-row">
          <div class="mp-calc-group">
            <label>MÆRKE DU HAR NU</label>
            <select id="mp-ref-brand">
              <option value="Nike">Nike</option>
              <option value="Adidas">Adidas</option>
              <option value="Asics">Asics</option>
              <option value="New Balance">New Balance</option>
            </select>
          </div>
          <div class="mp-calc-group">
            <label>STØRRELSE (EU)</label>
            <input type="number" id="mp-ref-size" step="0.5" placeholder="F.eks. 43" autocomplete="off" />
          </div>
        </div>
        <small class="mp-help-text">Vælg en sko der sidder perfekt, så regner vi baglæns til din fodlængde.</small>
      </div>

      <!-- Pasform (Buffer) -->
      <div class="mp-calc-group" style="margin-top:15px;">
        <label>ØNSKET PASFORM (EKSTRA PLADS)</label>
        <div class="mp-buffer-grid">
          <button class="mp-buffer-btn" data-buffer="0">
            <strong>0 cm</strong>
            <span>PRÆCIS</span>
          </button>
          <button class="mp-buffer-btn" data-buffer="0.5">
            <strong>0,5 cm</strong>
            <span>SNÆVER</span>
          </button>
          <button class="mp-buffer-btn active" data-buffer="1.0">
            <strong>1,0 cm</strong>
            <span>STANDARD</span>
          </button>
          <button class="mp-buffer-btn" data-buffer="1.5">
            <strong>1,5 cm</strong>
            <span>KOMFORT</span>
          </button>
        </div>
        <small class="mp-help-text" id="mp-buffer-desc">Standard anbefaling. God komfort og plads (Anbefalet til løb).</small>
      </div>

      <div class="mp-calc-actions">
        <button id="mp-btn-reset" class="mp-btn-secondary">
           <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8" /><path d="M3 3v5h5" /></svg>
           Nulstil indtastning
        </button>
      </div>
    </div>

    <!-- Højre kolonne: Resultater -->
    <div class="mp-calc-results">
      <h3>DIN STØRRELSE OVERSIGT</h3>
      
      <!-- Tom tilstand -->
      <div id="mp-empty-state" class="mp-empty-state">
        Indtast dit fodmål eller din nuværende sko til venstre, for at se din præcise størrelse i relevante mærker.
      </div>

      <!-- Resultat tilstand (vises live) -->
      <div id="mp-result-state" style="display:none;">
        <p class="mp-result-sub" id="mp-result-sub"></p>
        <div id="mp-results-list" class="mp-brands-list">
          <!-- Bliver udfyldt af JavaScript live -->
        </div>
        <div class="mp-result-footer">
          Baseret på mærkernes Mondopoint-tabeller. Pasform varierer afhængig af skoens læst.
        </div>
      </div>
    </div>
  </div>
</div>

<style>
.mp-calc-container { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; max-width: 950px; margin: 40px auto; background: #f8f9fa; border-radius: 12px; box-shadow: 0 8px 30px rgba(0,0,0,0.06); overflow: hidden; color: #1a1a1a; border: 1px solid #e9ecef; }
.mp-calc-container * { box-sizing: border-box; }
.mp-calc-tabs { display: flex; background: #e9ecef; }
.mp-calc-tab { flex: 1; padding: 15px; border: none; background: transparent; font-weight: 700; font-size: 0.9rem; color: #6c757d; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px; transition: 0.2s; }
.mp-calc-tab:hover { background: #f1f3f5; color: #495057; }
.mp-calc-tab.active { background: #ffffff; color: #113285; border-top: 3px solid #113285; }
.mp-calc-grid { display: grid; grid-template-columns: 1fr 420px; background: #ffffff; }
@media (max-width: 800px) { .mp-calc-grid { grid-template-columns: 1fr; } }
.mp-calc-inputs { padding: 35px 30px; }
.mp-highlight-group { background: #f1f3f5; padding: 15px; border-radius: 8px; border-left: 4px solid #113285; margin-bottom: 25px !important; }
.mp-calc-row { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-bottom: 5px; }
.mp-calc-group { margin-bottom: 20px; display: flex; flex-direction: column; }
.mp-calc-group label { font-size: 0.75rem; font-weight: 800; color: #113285; margin-bottom: 8px; letter-spacing: 0.5px; }
.mp-calc-group input, .mp-calc-group select { width: 100%; padding: 14px 16px; border: 1px solid #ced4da; border-radius: 8px; font-size: 1.05rem; color: #212529; background: #fff; outline: none; transition: 0.2s; font-family: inherit; font-weight: 600; cursor: pointer;}
.mp-calc-group input { cursor: text; font-weight: 400; }
.mp-calc-group input:focus, .mp-calc-group select:focus { border-color: #113285; box-shadow: 0 0 0 3px rgba(17, 50, 133, 0.1); }
.mp-input-wrapper { position: relative; }
.mp-input-suffix { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); color: #6c757d; font-weight: 700; font-size: 0.9rem; pointer-events: none; }
.mp-help-text { font-size: 0.8rem; color: #6c757d; margin-top: 8px; line-height: 1.4; }
.mp-buffer-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.mp-buffer-btn { background: #ffffff; border: 1px solid #ced4da; border-radius: 8px; padding: 12px 2px; cursor: pointer; display: flex; flex-direction: column; align-items: center; transition: 0.2s; color: #495057; }
.mp-buffer-btn strong { font-size: 1.05rem; color: #212529; margin-bottom: 4px; font-weight: 800;}
.mp-buffer-btn span { font-size: 0.65rem; font-weight: 700; letter-spacing: 0.5px; opacity: 0.7; }
.mp-buffer-btn:hover { border-color: #113285; }
.mp-buffer-btn.active { background: #113285; border-color: #113285; color: #ffffff; box-shadow: 0 4px 10px rgba(17,50,133,0.2); }
.mp-buffer-btn.active strong, .mp-buffer-btn.active span { color: #ffffff; opacity: 1; }
.mp-calc-actions { margin-top: 15px; display: flex; justify-content: flex-start; }
.mp-btn-secondary { background: transparent; color: #6c757d; font-weight: 600; font-size: 0.85rem; border: none; cursor: pointer; display: flex; align-items: center; gap: 6px; padding: 5px 0; transition: 0.2s; }
.mp-btn-secondary:hover { color: #dc3545; }

/* Højre side - UI */
.mp-calc-results { background: #0b1f52; color: #ffffff; padding: 35px 30px; display: flex; flex-direction: column; }
.mp-calc-results h3 { margin: 0 0 15px 0; font-size: 1.25rem; font-weight: 800; color: #ffffff; line-height: 1.2; letter-spacing: 0.5px; }
.mp-empty-state { background: rgba(255,255,255,0.05); border: 1px dashed rgba(255,255,255,0.2); border-radius: 8px; padding: 30px 20px; text-align: center; font-size: 0.95rem; color: #a9bbed; line-height: 1.6; margin-top: 20px; }
.mp-result-sub { opacity: 0.8; font-size: 0.9rem; margin: 0 0 20px 0; line-height: 1.5; color: #d0d7ed; border-bottom: 1px solid rgba(255,255,255,0.1); padding-bottom: 15px; }
.mp-brands-list { display: flex; flex-direction: column; gap: 8px; max-height: 480px; overflow-y: auto; padding-right: 5px; }
.mp-brands-list::-webkit-scrollbar { width: 6px; }
.mp-brands-list::-webkit-scrollbar-track { background: rgba(255,255,255,0.05); border-radius: 4px; }
.mp-brands-list::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.2); border-radius: 4px; }
.mp-brand-card { display: flex; align-items: center; justify-content: space-between; background: rgba(255,255,255,0.08); border-radius: 8px; padding: 12px 16px; border: 1px solid rgba(255,255,255,0.05); transition: 0.2s; }
.mp-brand-card:hover { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.2); }
.mp-brand-info { display: flex; flex-direction: column; }
.mp-brand-name { font-size: 1.05rem; font-weight: 800; letter-spacing: 0.5px; margin-bottom: 3px; color: #ffffff; }
.mp-brand-sub { font-size: 0.75rem; color: #a9bbed; }
.mp-brand-size { background: #ffffff; color: #0b1f52; font-weight: 800; font-size: 1.15rem; padding: 6px 12px; border-radius: 6px; white-space: nowrap; box-shadow: 0 2px 5px rgba(0,0,0,0.2); }
.mp-result-footer { margin-top: 25px; padding-top: 15px; border-top: 1px solid rgba(255,255,255,0.1); font-size: 0.7rem; color: #8fa8e0; text-align: center; line-height: 1.5; }
</style>

<script>
document.addEventListener("DOMContentLoaded", function() {
  
  // -- MASSIV DATABASE: Skræddersyet til sportsgrenene (CM til EU) --
  const BRAND_SIZES = {
    // Løb & Generelt
    "Nike": { 23.5:37.5, 24:38, 24.5:38.5, 25:39, 25.5:40, 26:40.5, 26.5:41, 27:42, 27.5:42.5, 28:43, 28.5:44, 29:44.5, 29.5:45, 30:45.5, 30.5:46, 31:47 },
    "Adidas": { 23.5:"37 1/3", 24:38, 24.5:"38 2/3", 25:"39 1/3", 25.5:40, 26:"40 2/3", 26.5:"41 1/3", 27:42, 27.5:"42 2/3", 28:"43 1/3", 28.5:44, 29:"44 2/3", 29.5:"45 1/3", 30:46, 30.5:"46 2/3" },
    "Asics": { 23.5:37.5, 24:38, 24.5:39, 25:39.5, 25.5:40, 26:41.5, 26.5:42, 27:42.5, 27.5:43.5, 28:44, 28.5:44.5, 29:45, 29.5:46, 30:46.5, 30.5:47 },
    "New Balance": { 23.5:37.5, 24:38, 24.5:38.5, 25:39.5, 25.5:40, 26:40.5, 26.5:41.5, 27:42, 27.5:42.5, 28:43, 28.5:44, 29:44.5, 29.5:45, 30:45.5, 30.5:46.5 },
    "Hoka": { 23.5:38, 24:38.5, 24.5:39.5, 25:40, 25.5:40.5, 26:41.5, 26.5:42, 27:42.5, 27.5:43.5, 28:44, 28.5:44.5, 29:45.5, 29.5:46, 30:46.5, 30.5:47.5 },
    "Salomon": { 23.5:38, 24:"38 2/3", 24.5:"39 1/3", 25:40, 25.5:"40 2/3", 26:"41 1/3", 26.5:42, 27:"42 2/3", 27.5:"43 1/3", 28:44, 28.5:"44 2/3", 29:"45 1/3", 29.5:46, 30:"46 2/3" },
    "Brooks": { 23.5:37.5, 24:38, 24.5:38.5, 25:39, 25.5:40, 26:40.5, 26.5:41, 27:42, 27.5:42.5, 28:43, 28.5:44, 29:44.5, 29.5:45, 30:45.5, 30.5:46 },
    "Saucony": { 23.5:37.5, 24:38, 24.5:38.5, 25:39, 25.5:40, 26:40.5, 26.5:41, 27:42, 27.5:42.5, 28:43, 28.5:44, 29:44.5, 29.5:45, 30:45.5, 30.5:46 },
    "Mizuno": { 23.5:37, 24:38, 24.5:38.5, 25:39, 25.5:40, 26:40.5, 26.5:41, 27:42, 27.5:42.5, 28:43, 28.5:44, 29:44.5, 29.5:45, 30:46 },
    
    // Crossfit & Fitness (Ekstra)
    "Reebok": { 23.5:37, 24:37.5, 24.5:38, 25:39, 25.5:40, 26:40.5, 26.5:41, 27:42, 27.5:42.5, 28:43, 28.5:44, 29:44.5, 29.5:45, 30:45.5, 30.5:46 },
    "Inov-8": { 24:38, 24.5:38.5, 25:39.5, 25.5:40, 26:40.5, 26.5:41.5, 27:42, 27.5:42.5, 28:43, 28.5:44, 29:44.5, 29.5:45, 30:45.5, 30.5:46.5 },
    "Under Armour": { 24:38, 24.5:38.5, 25:39, 25.5:40, 26:40.5, 26.5:41, 27:42, 27.5:42.5, 28:43, 28.5:44, 29:44.5, 29.5:45, 30:45.5, 30.5:46 },
    
    // Cykelsko
    "Shimano": { 24.5:39, 25.2:40, 25.8:41, 26.5:42, 27.2:43, 27.8:44, 28.5:45, 29.2:46, 29.8:47 },
    "Specialized": { 24.5:39, 25:39.5, 25.5:40, 26:41, 26.5:41.5, 27:42, 27.5:43, 28:44, 28.5:44.5, 29:45, 29.5:46 },
    "Fizik": { 24.5:39, 25:39.5, 25.7:40, 26.3:41, 27:42, 27.7:43, 28.3:44, 29:45, 29.7:46 },
    "Sidi": { 24.5:39, 25:40, 25.5:41, 26:42, 26.5:43, 27:44, 27.5:45, 28:46, 28.5:47 } // Små i størrelsen
  };

  // Filtrering af mærker baseret på sport
  const SPORT_CATEGORIES = {
    running: ["Nike", "Adidas", "Asics", "New Balance", "Hoka", "Salomon", "Brooks", "Saucony", "Mizuno"],
    crossfit: ["Nike", "Reebok", "Adidas", "Asics", "Inov-8", "Under Armour"],
    weightlifting: ["Nike", "Adidas", "Reebok"],
    cycling: ["Shimano", "Specialized", "Fizik", "Sidi"]
  };

  // Buffer anbefalinger pr. sport
  const SPORT_BUFFERS = {
    running: "1.0",
    crossfit: "0.5",
    weightlifting: "0",
    cycling: "0.5"
  };

  // -- STATE VARIABLES --
  let inputMode = 'cm';
  let activeBuffer = 1.0;

  // -- DOM ELEMENTS --
  const tabs = document.querySelectorAll('.mp-calc-tab');
  const sectionCm = document.getElementById('mp-section-cm');
  const sectionRef = document.getElementById('mp-section-ref');
  const bufferBtns = document.querySelectorAll('.mp-buffer-btn');
  const bufferDesc = document.getElementById('mp-buffer-desc');
  const inputCm = document.getElementById('mp-cm-input');
  const inputRefSize = document.getElementById('mp-ref-size');
  const selectRefBrand = document.getElementById('mp-ref-brand');
  const selectSport = document.getElementById('mp-sport');
  const btnReset = document.getElementById('mp-btn-reset');
  
  const emptyState = document.getElementById('mp-empty-state');
  const resultState = document.getElementById('mp-result-state');
  const resultSub = document.getElementById('mp-result-sub');
  const resultsContainer = document.getElementById('mp-results-list');
  
  // -- INITIALIZE --
  const savedCm = localStorage.getItem('motionsplan_foot_cm');
  if (savedCm) { 
    inputCm.value = savedCm; 
    setTimeout(calculateAndRender, 100); 
  }

  // -- TAB SWITCHING --
  tabs.forEach(tab => {
    tab.addEventListener('click', () => {
      tabs.forEach(t => t.classList.remove('active'));
      tab.classList.add('active');
      inputMode = tab.getAttribute('data-tab');
      if(inputMode === 'cm') {
        sectionCm.style.display = 'block'; sectionRef.style.display = 'none';
      } else {
        sectionCm.style.display = 'none'; sectionRef.style.display = 'block';
      }
      calculateAndRender(); 
    });
  });

  // -- BUFFER SELECTION --
  const bufferTexts = {
    "0": "Performance. Stram pasform uden spildplads (Vægtløftning, Race).",
    "0.5": "Tæt pasform. Anbefales til Crossfit, styrketræning og cykling.",
    "1.0": "Standard anbefaling. God komfort og plads (Anbefalet til løb).",
    "1.5": "Ekstra rummelig. Til lange løbedistancer hvor fødderne hæver."
  };

  function setBuffer(val) {
    bufferBtns.forEach(b => {
      b.classList.remove('active');
      if(b.getAttribute('data-buffer') === val) b.classList.add('active');
    });
    activeBuffer = parseFloat(val);
    bufferDesc.innerText = bufferTexts[val];
    calculateAndRender();
  }

  bufferBtns.forEach(btn => {
    btn.addEventListener('click', () => setBuffer(btn.getAttribute('data-buffer')));
  });

  // -- SPORT SELECTION (AUTOMAGIC) --
  selectSport.addEventListener('change', (e) => {
    // Sæt automatisk den anbefalede buffer for sporten
    const recommendedBuffer = SPORT_BUFFERS[e.target.value];
    setBuffer(recommendedBuffer); 
    // calculateAndRender kaldes automatisk indeni setBuffer
  });

  // -- LIVE LISTENERS PÅ INPUTS --
  inputCm.addEventListener('input', calculateAndRender);
  inputRefSize.addEventListener('input', calculateAndRender);
  selectRefBrand.addEventListener('change', calculateAndRender);

  // -- HELPER: Find tætteste størrelse --
  function getClosestSizeInfo(brandKey, targetCm) {
    const table = BRAND_SIZES[brandKey];
    if (!table) return null;
    let closestCm = 0;
    let minDiff = 999;
    
    for (let cmStr in table) {
      let cmVal = parseFloat(cmStr);
      let diff = Math.abs(cmVal - targetCm);
      if (diff < minDiff || (diff === minDiff && cmVal > closestCm)) {
        minDiff = diff;
        closestCm = cmVal;
      }
    }
    return { euSize: table[closestCm], actualCm: closestCm };
  }

  // -- HELPER: Konverter fra reference til fod --
  function getFootCmFromRef(brandKey, euSize) {
    const table = BRAND_SIZES[brandKey];
    if (!table) return 27; 
    let targetCm = 27;
    for (let cmStr in table) {
      if (table[cmStr].toString() === euSize.toString() || parseFloat(table[cmStr]) === parseFloat(euSize)) {
        targetCm = parseFloat(cmStr); break;
      }
    }
    return targetCm - 1.0; // Standard buffer fratrækkes
  }

  // -- MAIN CALCULATION FUNCTION --
  function calculateAndRender() {
    let rawFootCm = 0;
    let isValid = false;

    if (inputMode === 'cm') {
      rawFootCm = parseFloat(inputCm.value);
      if (!isNaN(rawFootCm) && rawFootCm >= 15 && rawFootCm <= 40) {
        isValid = true;
        localStorage.setItem('motionsplan_foot_cm', rawFootCm);
      }
    } else {
      const refBrand = selectRefBrand.value;
      const refSize = parseFloat(inputRefSize.value);
      if (!isNaN(refSize) && refSize >= 30 && refSize <= 55) {
        isValid = true;
        rawFootCm = getFootCmFromRef(refBrand, refSize);
      }
    }

    if (!isValid) {
      emptyState.style.display = 'block';
      resultState.style.display = 'none';
      return;
    }

    emptyState.style.display = 'none';
    resultState.style.display = 'block';

    const finalCm = rawFootCm + activeBuffer;
    
    resultSub.innerHTML = `Fodmål beregnet til <b>${rawFootCm.toFixed(1)} cm</b> + buffer (<b>${activeBuffer} cm</b>). <br>Beregner størrelser tættest på <b>${finalCm.toFixed(1)} cm</b>.`;

    resultsContainer.innerHTML = '';
    
    // Hent de mærker der matcher den valgte sport
    const currentSport = selectSport.value;
    const brandsToShow = SPORT_CATEGORIES[currentSport];

    brandsToShow.forEach(brand => {
      let sizeInfo = getClosestSizeInfo(brand, finalCm);
      if(!sizeInfo) return;

      let card = document.createElement('div');
      card.className = 'mp-brand-card';
      card.innerHTML = `
        <div class="mp-brand-info">
          <div class="mp-brand-name">${brand}</div>
          <div class="mp-brand-sub">Skoens indermål: ~${sizeInfo.actualCm.toFixed(1)} cm</div>
        </div>
        <div class="mp-brand-size">EU ${sizeInfo.euSize}</div>
      `;
      resultsContainer.appendChild(card);
    });
  }

  // -- RESET BUTTON --
  btnReset.addEventListener('click', () => {
    inputCm.value = '';
    inputRefSize.value = '';
    localStorage.removeItem('motionsplan_foot_cm');
    calculateAndRender();
  });

});
</script>

<hr />

<h2 id="sådan-måler-du-din-fod-korrekt-skridt-for-skridt">Sådan måler du din fod korrekt (Skridt for skridt)</h2>

<p>For at få det mest præcise resultat ud af tabeller og beregnere, skal du kende din reelle fodlængde i centimeter. Det tager to minutter:</p>

<ol>
  <li><strong>Find papir og blyant:</strong> Læg et stykke A4-papir på gulvet med den korte ende helt op mod en lige væg.</li>
  <li><strong>Placer foden:</strong> Træd op på papiret med hælen helt ind mod væggen. Sørg for at have de strømper på, du normalt vil træne i (tykke løbestrømper fylder mere end tynde hverdagsstrømper).</li>
  <li><strong>Tegn en streg:</strong> Sæt en streg ved din absolut længste tå (husk, det er ikke altid storetåen!).</li>
  <li><strong>Mål i CM:</strong> Brug en lineal eller et målebånd til at måle afstanden fra kanten af papiret til din streg.</li>
  <li><strong>Mål <em>begge</em> fødder:</strong> Det er helt normalt, at den ene fod er lidt større end den anden. <strong>Brug altid målet fra den største fod.</strong></li>
</ol>

<p><em>Pro-tip: Mål dine fødder om eftermiddagen eller aftenen. Fødder har det med at hæve op i løbet af dagen – og det samme gør de, når du træner!</em></p>

<hr />

<h2 id="buffer-reglen-sådan-skal-skoen-sidde-til-din-sport">“Buffer-reglen”: Sådan skal skoen sidde til din sport</h2>

<p>Din fodlængde er kun den ene halvdel af ligningen. Den anden halvdel er <em>bufferen</em> (den ekstra plads foran tæerne). Hvor meget plads du har brug for, afhænger 100% af din sport:</p>

<h3 id="løbesko-08-til-12-cm">Løbesko (+0,8 til 1,2 cm)</h3>
<p>Når du løber, rutsjer din fod en anelse fremad ved hver landing. Samtidig svulmer fødderne op på lange distancer.</p>
<ul>
  <li><strong>Tommelfingerregel:</strong> Du skal altid have cirka en tommelfingerbreddes plads (ca. 1 cm) fra den længste tå til snuden af skoen. Derfor ender de fleste med at købe løbesko ½ til 1 helt nummer større end deres hverdagssko.</li>
</ul>

<h3 id="crossfit--og-fitnesssko-03-til-05-cm">Crossfit- og Fitnesssko (+0,3 til 0,5 cm)</h3>
<p>I crossfit og funktionel træning har du brug for stabilitet til tunge løft (squat, dødløft), men også komfort til hop og kropsvægtsøvelser.</p>
<ul>
  <li><strong>Tommelfingerregel:</strong> Skoen skal sidde tæt til hæl og midtfod, men tåboksen skal være bred nok til, at du kan “sprede tæerne” i gulvet. En buffer på ca. 0,5 cm er ideel. Modeller som <em>Reebok Nano</em> og <em>Nike Metcon</em> er bygget præcis til dette.</li>
</ul>

<h3 id="vægtløftningssko-0-til-02-cm">Vægtløftningssko (0 til +0,2 cm)</h3>
<p>Vægtløftningssko (squat-sko) er meget specifikke. Her handler alt om at overføre kraft direkte ned i gulvet uden tab af energi.</p>
<ul>
  <li><strong>Tommelfingerregel:</strong> Skoen skal sidde som støbt. Den må gerne føles decideret stram, og din hæl må absolut ikke kunne løfte sig inde i skoen (“heel slip”). Her skal du ofte gå efter din rene fodlængde uden ekstra buffer.</li>
</ul>

<h3 id="cykelsko-0-til-05-cm">Cykelsko (0 til +0,5 cm)</h3>
<p>Cykelsko klemmer ofte, fordi de er designet til at have en stiv sål og et tæt fit for at optimere trådet.</p>
<ul>
  <li><strong>Tommelfingerregel:</strong> Hvis du kører race, foretrækker mange en stram pasform (0-0,3 cm). Kører du lange gravel- eller MTB-ture, hvor fødderne kan hæve, eller hvor du bruger tykke uldsokker om vinteren, skal du sigte efter ca. 0,5 cm buffer. Bemærk at specielt italienske og japanske mærker (som Shimano og Sidi) ofte er notorisk små i størrelserne.</li>
</ul>

<hr />

<h2 id="kend-dit-mærke-er-de-store-eller-små-i-størrelsen">Kend dit mærke: Er de store eller små i størrelsen?</h2>

<p>Selvom du kender dine centimeter, bygger de forskellige brands deres sko over forskellige “læster” (skabelonen, skoen formes efter). Her er, hvad du generelt skal vide om de største mærker:</p>

<ul>
  <li><strong>Nike:</strong> Har ry for at være til den smalle side, specielt hen over midtfoden. Mange oplever, at de skal gå et halvt EU-nummer op i Nike løbesko sammenlignet med hverdags-sneakers.</li>
  <li><strong>Adidas:</strong> Er generelt meget “True to size”, men deres størrelsessystem bruger ofte tredjedele (f.eks. str. 42 2/3 eller 43 1/3).</li>
  <li><strong>Reebok:</strong> Kendt for at have en fantastisk, bred tåboks i deres Nano-serie. Perfekt til dig med en lidt bredere fod, der elsker fitness og crossfit.</li>
  <li><strong>Asics:</strong> Deres løbesko sidder fantastisk, men følger et meget stramt Mondopoint/CM-system. Gå altid efter CM-målet, når du køber Asics.</li>
  <li><strong>Hoka:</strong> Kendt for maksimal stødabsorbering. Nogle af deres hurtige modeller kan være lidt smalle, mens deres mængdetræningssko giver god plads. De findes ofte i en “Wide” udgave til brede fødder.</li>
</ul>

<hr />

<h2 id="faq-ofte-stillede-spørgsmål-om-skostørrelser">FAQ: Ofte stillede spørgsmål om skostørrelser</h2>

<details class="faq">
<summary><h3>Er EU-størrelser altid de samme?</h3></summary>
<p>Nej! En str. 44 i Nike svarer til en indersål på 28 cm. En str. 44 hos Shimano cykelsko svarer derimod nærmere til 27,8 cm. Du kan aldrig regne 100% med EU-nummeret. Brug altid CM.</p>

</details>

<details class="faq">
<summary><h3>Hvad gør jeg, hvis mine fødder har to forskellige størrelser?</h3></summary>
<p>Næsten alle mennesker har en fod, der er marginalt større end den anden. Køb <em>altid</em> sko ud fra din største fod. Den anden sko kan let justeres med snøringen eller en lidt tykkere strømpe.</p>

</details>

<details class="faq">
<summary><h3>Skal mine løbesko virkelig være et nummer større end mine hverdagssko?</h3></summary>
<p>I de fleste tilfælde: Ja. Hvis du løber i en sko, der sidder lige så stramt som dine pæne kontorsko, ender du med blå negle, fordi foden glider frem og slår imod snuden ved hvert skridt.</p>

</details>

<script type="application/ld+json">
    {
        "@context":"https://schema.org",
        "@type":"FAQPage",
        "mainEntity":
            [{"@type":"Question","name":"Er EU-størrelser altid de samme?","acceptedAnswer":{"@type":"Answer","text":"Nej! En str. 44 i Nike svarer til en indersål på 28 cm. En str. 44 hos Shimano cykelsko svarer derimod nærmere til 27,8 cm. Du kan aldrig regne 100% med EU-nummeret. Brug altid CM.\n"}},{"@type":"Question","name":"Hvad gør jeg, hvis mine fødder har to forskellige størrelser?","acceptedAnswer":{"@type":"Answer","text":"Næsten alle mennesker har en fod, der er marginalt større end den anden. Køb <em>altid</em> sko ud fra din største fod. Den anden sko kan let justeres med snøringen eller en lidt tykkere strømpe.\n"}},{"@type":"Question","name":"Skal mine løbesko virkelig være et nummer større end mine hverdagssko?","acceptedAnswer":{"@type":"Answer","text":"I de fleste tilfælde: Ja. Hvis du løber i en sko, der sidder lige så stramt som dine pæne kontorsko, ender du med blå negle, fordi foden glider frem og slår imod snuden ved hvert skridt.\n"}}]
    }
</script>

<hr />

<p><em>Har du fundet din størrelse? Tjek vores guide til de <a href="/sko-crossfit/">bedste sko til Crossfit</a> eller se vores anbefalinger til <a href="/sko-styrketraening-fitness/">styrketræningssko</a>, hvor du kan købe de helt rigtige modeller!</em></p>]]></content><author><name>Lars Olesen</name></author><category term="Udstyr" /><category term="sko" /><category term="løb" /><category term="crossfit" /><category term="fitness" /><category term="guide" /><summary type="html"><![CDATA[Træt af at gætte din skostørrelse? Brug vores interaktive størrelsesberegner til løb, crossfit og fitness, og lær hvordan du måler din fod korrekt i CM.]]></summary></entry><entry><title type="html">Træning og menstruationscyklus: Fysiologisk guide og cyklus-beregner</title><link href="https://www.motionsplan.dk/menstruationscyklus-og-traening/" rel="alternate" type="text/html" title="Træning og menstruationscyklus: Fysiologisk guide og cyklus-beregner" /><published>2026-08-16T00:00:00+00:00</published><updated>2026-08-16T16:00:00+00:00</updated><id>https://www.motionsplan.dk/menstruation-traening</id><content type="html" xml:base="https://www.motionsplan.dk/menstruationscyklus-og-traening/"><![CDATA[<p>Mange trænende kvinder oplever markante svingninger i præstationsevne, overskud og restitutionsbehov hen over en måned. Hvor de samme vægte den ene uge flyver op fra jorden, kan de 14 dage senere føles tunge og uoverkommelige.</p>

<p>Forklaringen skal ikke findes i manglende rygrad eller mangelfuld form, men i <strong>hypothalamus-hypofyse-gonade-aksen (HPG-aksen)</strong> og de cykliske svingninger i kønshormonerne <strong>østrogen</strong> og <strong>progesteron</strong>.</p>

<p>Denne guide gennemgår den underliggende endokrinologiske fysiologi, hvad nyere meta-analyser (bl.a. McNulty et al., 2020; Colenso-Semple et al., 2023) reelt viser om præstationsevne, samt hvordan du kan tilpasse din træning og ernæring i praksis.</p>

<hr />

<h2 id="interaktiv-cyklus--og-træningsberegner">Interaktiv cyklus- og træningsberegner</h2>

<p>Brug værktøjet herunder til at identificere din aktuelle cyklusfase, aflæse de forventede hormonniveauer på grafen og få fysiologisk funderede anbefalinger til dit næste træningspas:</p>

<div class="cycle-calc-wrapper">
  <style>
    .cycle-calc-wrapper {
      background: var(--background-color, #ffffff);
      border: 1px solid var(--border-color, #e1e4e8);
      border-radius: 12px;
      padding: 24px;
      margin: 2em 0;
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    }
    .cycle-calc-inputs {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
      gap: 16px;
      margin-bottom: 20px;
    }
    .calc-group {
      display: flex;
      flex-direction: column;
    }
    .calc-group label {
      font-weight: 600;
      font-size: 0.88em;
      margin-bottom: 6px;
      color: #333;
    }
    .calc-input {
      padding: 10px 12px;
      border: 1px solid #ccc;
      border-radius: 6px;
      font-size: 0.95em;
    }
    .chart-container {
      position: relative;
      width: 100%;
      background: #fafafa;
      border-radius: 10px;
      padding: 12px;
      border: 1px solid #e5e7eb;
    }
    .chart-container svg {
      cursor: pointer;
      display: block;
    }
    .hormone-legend {
      display: flex;
      justify-content: center;
      gap: 24px;
      font-size: 0.85em;
      font-weight: 500;
      margin-top: 14px;
      padding-top: 10px;
      border-top: 1px solid #f0f0f0;
    }
    .legend-item {
      display: flex;
      align-items: center;
      gap: 8px;
    }
    .legend-line {
      width: 22px;
      height: 3px;
      border-radius: 2px;
    }
    .legend-line.dashed {
      background: repeating-linear-gradient(90deg, #2a9d8f, #2a9d8f 4px, transparent 4px, transparent 7px);
      height: 3px;
    }
    .output-card {
      background: #ffffff;
      border-left: 5px solid #ff477e;
      padding: 18px;
      border-radius: 8px;
      margin-top: 20px;
      box-shadow: 0 2px 8px rgba(0,0,0,0.04);
      transition: border-color 0.3s ease;
    }
    .output-card h4 {
      margin: 0 0 10px 0;
      color: #1a1a1a;
      font-size: 1.15em;
    }
    .output-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
      gap: 12px;
      margin-top: 12px;
    }
    .output-box {
      background: #f8f9fa;
      padding: 12px 14px;
      border-radius: 6px;
      font-size: 0.9em;
      line-height: 1.45;
      border: 1px solid #edf2f7;
    }
    .output-box strong {
      display: block;
      color: #2d3748;
      margin-bottom: 4px;
      font-size: 0.95em;
    }
  </style>

  <div class="cycle-calc-inputs">
    <div class="calc-group">
      <label for="startDate">Første dag i seneste menstruation:</label>
      <input type="date" id="startDate" class="calc-input" />
    </div>
    <div class="calc-group">
      <label for="cycleLength">Gns. cykluslængde (dage):</label>
      <input type="number" id="cycleLength" class="calc-input" value="28" min="20" max="40" />
    </div>
  </div>

  <div class="chart-container" id="chartContainer" title="Klik på grafen for at udforske en specifik dag">
    <svg viewBox="0 0 500 205" width="100%" height="auto" id="cycleSvg">
      <!-- FASE TITLER ØVERST MED EGET LUFT-AREAL -->
      <text x="44" y="15" font-size="10" font-weight="700" fill="#a4133c" text-anchor="middle">Menstruation</text>
      <text x="160" y="15" font-size="10" font-weight="700" fill="#2d6a4f" text-anchor="middle">Follikulær fase</text>
      <text x="259" y="15" font-size="10" font-weight="700" fill="#b5828c" text-anchor="middle">Ægløsning</text>
      <text x="393" y="15" font-size="10" font-weight="700" fill="#6a4c93" text-anchor="middle">Lutealfase</text>

      <!-- FASER BAGGRUNDSSKATTERING (Start ved y=28) -->
      <rect x="0" y="28" width="89" height="132" fill="#ffe5ec" opacity="0.75" />
      <rect x="89" y="28" width="143" height="132" fill="#e8f5e9" opacity="0.75" />
      <rect x="232" y="28" width="54" height="132" fill="#fff9c4" opacity="0.75" />
      <rect x="286" y="28" width="214" height="132" fill="#f3e5f5" opacity="0.75" />

      <!-- Lodrette opdelingslinjer mellem faser -->
      <line x1="89" y1="28" x2="89" y2="160" stroke="#d0d0d0" stroke-width="1" stroke-dasharray="2,2" />
      <line x1="232" y1="28" x2="232" y2="160" stroke="#d0d0d0" stroke-width="1" stroke-dasharray="2,2" />
      <line x1="286" y1="28" x2="286" y2="160" stroke="#d0d0d0" stroke-width="1" stroke-dasharray="2,2" />

      <!-- Bundlinje / Akse -->
      <line x1="0" y1="160" x2="500" y2="160" stroke="#cccccc" stroke-width="1.5" />

      <!-- GLATTE FYSIOLOGISKE HORMONKURVER -->
      <!-- Østrogen (Pink solid kurve) -->
      <path d="M 0,152 C 60,149 130,125 205,48 C 225,25 245,100 265,110 C 310,125 350,85 410,100 C 460,113 480,144 500,152" fill="none" stroke="#ff477e" stroke-width="3" stroke-linecap="round" />

      <!-- Progesteron (Teal stiplede kurve) -->
      <path d="M 0,156 L 225,156 C 265,156 310,147 345,55 C 375,55 425,75 465,124 C 485,152 495,156 500,156" fill="none" stroke="#2a9d8f" stroke-width="3" stroke-dasharray="6,4" stroke-linecap="round" />

      <!-- DYNAMISK MARKØR (Dag i cyklus) -->
      <g id="markerGroup">
        <line id="dayMarker" x1="0" y1="28" x2="0" y2="160" stroke="#1a1a1a" stroke-width="2" />
        <rect id="badgeBg" x="-20" y="31" width="40" height="16" rx="4" fill="#1a1a1a" />
        <text id="badgeText" x="0" y="42" font-size="9" font-weight="bold" fill="#ffffff" text-anchor="middle">Dag 1</text>
        <circle id="dayDot" cx="0" cy="160" r="5" fill="#1a1a1a" stroke="#ffffff" stroke-width="1.5" />
      </g>

      <!-- X-AKSE LABELS (Bund) -->
      <text x="5" y="180" font-size="10" fill="#777777">Dag 1</text>
      <text x="259" y="180" font-size="10" fill="#777777" text-anchor="middle" id="svgLabelMid">Ægløsning (~Dag 14)</text>
      <text x="495" y="180" font-size="10" fill="#777777" text-anchor="end" id="svgLabelEnd">Dag 28</text>
    </svg>

    <!-- HORMON LEGEND KUN I BUNDEN -->
    <div class="hormone-legend">
      <div class="legend-item">
        <div class="legend-line" style="background:#ff477e;"></div>
        <span>Østrogen</span>
      </div>
      <div class="legend-item">
        <div class="legend-line dashed"></div>
        <span>Progesteron</span>
      </div>
    </div>
  </div>

  <div id="outputCard" class="output-card">
    <h4 id="phaseTitle">Indtast oplysninger for at beregne fase</h4>
    <div class="output-grid">
      <div class="output-box">
        <strong>🧪 Hormonel Profil</strong>
        <span id="hormoneInfo">Indtast dato i feltet ovenfor.</span>
      </div>
      <div class="output-box">
        <strong>🏋️‍♂️ Træningsfokus</strong>
        <span id="trainingInfo">-</span>
      </div>
      <div class="output-box">
        <strong>🥗 Ernæring &amp; Restitution</strong>
        <span id="nutritionInfo">-</span>
      </div>
    </div>
  </div>
</div>

<script>
  (function() {
    const startDateInput = document.getElementById('startDate');
    const cycleLengthInput = document.getElementById('cycleLength');
    const dayMarker = document.getElementById('dayMarker');
    const dayDot = document.getElementById('dayDot');
    const badgeBg = document.getElementById('badgeBg');
    const badgeText = document.getElementById('badgeText');
    const phaseTitle = document.getElementById('phaseTitle');
    const hormoneInfo = document.getElementById('hormoneInfo');
    const trainingInfo = document.getElementById('trainingInfo');
    const nutritionInfo = document.getElementById('nutritionInfo');
    const outputCard = document.getElementById('outputCard');
    const svgLabelEnd = document.getElementById('svgLabelEnd');
    const svgLabelMid = document.getElementById('svgLabelMid');
    const cycleSvg = document.getElementById('cycleSvg');

    // Standard dato: 9 dage siden
    const defaultDate = new Date();
    defaultDate.setDate(defaultDate.getDate() - 9);
    startDateInput.value = defaultDate.toISOString().split('T')[0];

    function updateCycle(overrideDay) {
      const startDate = new Date(startDateInput.value);
      const cycleLength = parseInt(cycleLengthInput.value) || 28;
      
      svgLabelEnd.textContent = `Dag ${cycleLength}`;
      svgLabelMid.textContent = `Ægløsning (~Dag ${Math.round(cycleLength / 2)})`;

      let currentDay;

      if (overrideDay !== undefined) {
        currentDay = overrideDay;
      } else {
        if (isNaN(startDate.getTime())) return;
        const today = new Date();
        today.setHours(0, 0, 0, 0);
        startDate.setHours(0, 0, 0, 0);

        const diffTime = today - startDate;
        let diffDays = Math.round(diffTime / (1000 * 60 * 60 * 24));
        currentDay = (diffDays % cycleLength) + 1;
        if (currentDay <= 0) currentDay += cycleLength;
      }

      // Beregn X-position i SVG (0 til 500)
      const xPos = Math.max(5, Math.min(495, ((currentDay - 1) / (cycleLength - 1)) * 500));
      
      dayMarker.setAttribute('x1', xPos);
      dayMarker.setAttribute('x2', xPos);
      dayDot.setAttribute('cx', xPos);
      badgeBg.setAttribute('x', xPos - 20);
      badgeText.setAttribute('x', xPos);
      badgeText.textContent = `Dag ${currentDay}`;

      const normDay = (currentDay / cycleLength) * 28;

      let phase = "";
      let color = "#ff477e";

      if (normDay <= 5) {
        phase = "Menstruationsfase";
        color = "#e63946";
        phaseTitle.textContent = `Dag ${currentDay} af ${cycleLength}: ${phase}`;
        hormoneInfo.textContent = "Lave niveauer af både østrogen og progesteron. Lav kernekropstemperatur.";
        trainingInfo.textContent = "Fokus på rolige bevægelser, let udholdenhedstræning eller mobilitet. Lyt til kroppen ved mavesmerter.";
        nutritionInfo.textContent = "Prioritér jernrig kost, antiinflammatoriske fedtsyrer og tilstrækkeligt væskeindtag.";
      } else if (normDay <= 13) {
        phase = "Follikulær fase (Sen)";
        color = "#2a9d8f";
        phaseTitle.textContent = `Dag ${currentDay} af ${cycleLength}: ${phase}`;
        hormoneInfo.textContent = "Stigende østrogen, lavt progesteron. Høj insulinfølsomhed og god kulhydratudnyttelse.";
        trainingInfo.textContent = "Optimelt tidspunkt for tung styrketræning (PR-forsøg), eksplosive løft og HIIT-intervaller.";
        nutritionInfo.textContent = "Kroppen er effektiv til at forbrænde kulhydrater. Fyld energidepoterne op før intensive pas.";
      } else if (normDay <= 16) {
        phase = "Ægløsningsfase (Ovulation)";
        color = "#e9c46a";
        phaseTitle.textContent = `Dag ${currentDay} af ${cycleLength}: ${phase}`;
        hormoneInfo.textContent = "Østrogen topper, svagt øget testosteron. Maksimal styrkekapacitet.";
        trainingInfo.textContent = "Høj ydeevne og maksimal muskelstyrke. Vær ekstra omhyggelig med opvarmning og løfteteknik.";
        nutritionInfo.textContent = "Hold proteinsyntesen høj med jævnt proteinindtag over dagen.";
      } else {
        phase = "Lutealfase";
        color = "#9c27b0";
        phaseTitle.textContent = `Dag ${currentDay} af ${cycleLength}: ${phase}`;
        hormoneInfo.textContent = "Højt progesteron og moderat østrogen. Forhøjet kernetemperatur og øget proteinnedbrydning.";
        trainingInfo.textContent = "Gunstigt for moderat udholdenhed (Zone 2) og styrketræning med højere rep-ranges. Indlæg deload sidst i fasen.";
        nutritionInfo.textContent = "Forbrændingen stiger let (100-300 kcal/dag). Øg proteinindtaget for at modvirke øget nedbrydning.";
      }

      outputCard.style.borderLeftColor = color;
    }

    cycleSvg.addEventListener('click', function(e) {
      const rect = cycleSvg.getBoundingClientRect();
      const clickX = e.clientX - rect.left;
      const pct = Math.max(0, Math.min(1, clickX / rect.width));
      const cycleLength = parseInt(cycleLengthInput.value) || 28;
      const clickedDay = Math.max(1, Math.min(cycleLength, Math.round(pct * (cycleLength - 1)) + 1));
      updateCycle(clickedDay);
    });

    startDateInput.addEventListener('change', () => updateCycle());
    cycleLengthInput.addEventListener('input', () => updateCycle());
    updateCycle();
  })();
</script>

<hr />

<h2 id="den-hormonelle-akse-østrogen-vs-progesteron">Den hormonelle akse: Østrogen vs. Progesteron</h2>

<p>Endokrinologisk reguleres den eumenorrhoiske (normale) menstruationscyklus af et samspil mellem gonadotropinfrigivende hormon (GnRH), luteiniserende hormon (LH), follikelstimulerende hormon (FSH) samt de perifere æggestokhormoner østrogen (primært $17\beta$-østradiol) og progesteron.</p>

<p>Reguleringsvejen i HPG-aksen:</p>
<ol class="notice--info">
  <li><strong>Hypothalamus</strong> udskiller GnRH (Gonadotropin-releasing hormone).</li>
  <li><strong>Hypofyseforlappen</strong> stimuleres til at frigive LH og FSH.</li>
  <li><strong>Ovarierne</strong> producerer herved de fysiologiske nøglehormoner:
    <ul>
      <li><strong>$17\beta$-Østradiol (Østrogen):</strong> Anabol virkning, neuromuskulær fremmer, øget insulinfølsomhed, glykogenskånende ved submaksimal udholdenhed.</li>
      <li><strong>Progesteron:</strong> Moderat katabol virkning, termogen, øget proteinnedbrydning, sænket insulinfølsomhed.</li>
    </ul>
  </li>
</ol>

<h3 id="1-17beta-østradiol-østrogen--det-anabole-neuromuskulære-hormon">1. $17\beta$-Østradiol (Østrogen) – Det anabole neuromuskulære hormon</h3>
<p>Østrogen har receptor-medierede virkninger på både skeletal muskulatur, sener, knogler og centralnervesystemet (via $\text{ER}\alpha$- og $\text{ER}\beta$-receptorer):</p>
<ul>
  <li><strong>Anabol virkning &amp; Myosin-binding:</strong> Østrogen forbedrer muskelkvaliteten ved at bevare myosin-hovedernes evne til at binde sig til aktin under tværbrocyklussen (Enns &amp; Tiidus, 2010).</li>
  <li><strong>Glukosemetolisme:</strong> Øger GLUT4-translokationen og insulinfølsomheden, hvilket gør muskelvævet ekstremt effektivt til at optage og udnytte glukose/glykogen.</li>
  <li><strong>Neuromuskulær drive:</strong> Øger centralnervesystemets evne til at rekruttere tærskelstærke Type II-muskelfibre under eksplosive løft.</li>
</ul>

<h3 id="2-progesteron--det-katabole-og-termogene-hormon">2. Progesteron – Det katabole og termogene hormon</h3>
<p>Progesteron stiger markant efter ægløsning og dominerer lutealfasen:</p>
<ul>
  <li><strong>Termoregulering:</strong> Påvirker det præoptiske område i hypothalamus og hæver kernekropstemperaturen med $\mathbf{0{,}3\text{–}0{,}5\,^\circ\text{C}$. Det øger svedtærsklen og medfører højere kardiovaskulær belastning ved givne intensiteter (Oosthuyse &amp; Bosch, 2010).</li>
  <li><strong>Proteinkatabolisme:</strong> Øger aminosyreoxidationen og proteinnedbrydningen i hvile og under træning, hvilket svækker den anabole respons på styrketræning.</li>
  <li><strong>Substratudnyttelse:</strong> Sænker insulinfølsomheden og hæmmer enzymet fosfofruktokinase (PFK), hvilket reducerer den anaerobe glykolysekapacitet.</li>
</ul>

<hr />

<h2 id="fysiologisk-gennemgang-af-cyklussens-4-faser">Fysiologisk gennemgang af cyklussens 4 faser</h2>

<p>En standardcyklus varer i gennemsnit 28 dage (med et normalområde på 21–35 dage) og inddeles i fire adskilte fysiologiske vinduer:</p>

<h3 id="1-tidlig-follikulær-fase--menstruation-dag-15">1. Tidlig Follikulær Fase / Menstruation (Dag 1–5)</h3>
<ul>
  <li><strong>Hormonsignal:</strong> Både østrogen og progesteron er på deres laveste niveau.</li>
  <li><strong>Fysiologi:</strong> Prostaglandiner udløser uterinkontraktioner (kramper). Blodtab kan medføre midlertidigt fald i hæmoglobin og jernstatus.</li>
  <li><strong>Træningsstrategi:</strong> Fokusér på rolige bevægelser, let <a href="/konditionstraening/">konditionstræning</a>, teknikøvelser eller mobilitet. Ved fravær af kramper kan der trænes normalt, men lyt til kroppens feedback.</li>
</ul>

<h3 id="2-sen-follikulær-fase-dag-613">2. Sen Follikulær Fase (Dag 6–13)</h3>
<ul>
  <li><strong>Hormonsignal:</strong> Kraftigt stigende østrogenniveau, lavt progesteron.</li>
  <li><strong>Fysiologi:</strong> Høj insulinfølsomhed, optimal muskulær restitueringsevne og høj neuromuskulær aktivering.</li>
  <li><strong>Træningsstrategi:</strong> <strong>Dette er dit primære præstationsvindue.</strong> Høj volumen og intensitet i tung styrketræning (PR-forsøg i vores <strong><a href="/rm-beregner/">1RM-beregner</a></strong>), eksplosive sprint og <strong><a href="/hiit/">HIIT-intervaller</a></strong>.</li>
</ul>

<h3 id="3-ovulationsfasen--ægløsning-dag-1416">3. Ovulationsfasen / Ægløsning (Dag 14–16)</h3>
<ul>
  <li><strong>Hormonsignal:</strong> Peak i østrogen, LH/FSH-surge samt en kortvarig transient stigning i androgener (testosteron).</li>
  <li><strong>Fysiologi:</strong> Maksimal muskelstyrke og kraftudvikling. <em>Bemærk:</em> Nogle studier (f.eks. Myklebust et al., 2005) peger på en teoretisk forøget slaphed i korsbånd (ACL) grundet østrogens påvirkning af kollagensyntesen i ledbånd, om end den reelle skadesrisiko fortsat diskuteres (Colenso-Semple et al., 2023).</li>
  <li><strong>Træningsstrategi:</strong> Fremragende til maksimal styrke. Sørg for grundig, <a href="/opvarmning-styrketraening/">specifik opvarmning</a> og stabil løfteteknik.</li>
</ul>

<h3 id="4-lutealfasen-dag-1728">4. Lutealfasen (Dag 17–28)</h3>
<ul>
  <li><strong>Hormonsignal:</strong> Højt progesteron kombineret med et sekundært, lavere østrogen-peak.</li>
  <li><strong>Fysiologi:</strong> Forhøjet kernekropstemperatur, højere hvilepuls, øget proteinnedbrydning og nedsat anaerob kapacitet. I den sene lutealfase (PMS-fasen) ses ofte væskeophobning (aldosteron-påvirkning) og humørsvingninger.</li>
  <li><strong>Træningsstrategi:</strong> Skift fokus til aerob udholdenhedstræning i Zone 2, submaksimale vægte med højere rep-ranges, samt autoregulering via <strong><a href="/rpe/">RPE-skalaen</a></strong>. Indlæg en <strong><a href="/restitution/">deload-uge</a></strong> i dagene op til menstruation.</li>
</ul>

<hr />

<h2 id="sådan-bruger-du-cyklus-beregneren-i-praksis">Sådan bruger du cyklus-beregneren i praksis</h2>

<p>Vores interaktive beregner forudsiger dine teoretiske hormonudsving, men kroppen følger ikke altid et fastegnet skema. Brug derfor beregneren med to forskellige formål:</p>

<ul>
  <li><strong>Som logbog (anbefalet):</strong> Noter dine faktiske symptomer, energi og humør over 2–3 cyklusser. Det afslører dine personlige mønstre frem for teoretiske gennemsnit.</li>
  <li><strong>Som planlægningsværktøj:</strong> Brug de forventede faser til at placere maxtests, tunge løft eller hårde konkurrencer i de uger, hvor hormonprofilen fysiologisk set bakker dig op.</li>
</ul>

<hr />

<h2 id="2-strategier-vælg-den-tilgang-der-passer-til-dig">2 strategier: Vælg den tilgang, der passer til dig</h2>

<p>Der findes ikke én rigtig måde at tilpasse træningen til menstruationscyklussen. Du kan vælge mellem to udgangspunkter:</p>

<h3 id="strategi-a-symptom--og-dagsformsstyret-anbefalet">Strategi A: Symptom- og dagsformsstyret (Anbefalet)</h3>
<p>Du beholder din faste ugentlige træningsstruktur (f.eks. tunge dage tirsdag/torsdag, lange ture søndag) uanset hvilken uge i måneden du er i. Du reagerer først, hvis du mærker fysiske symptomer som kramper, PMS eller markant træthed.</p>

<p>Når symptomerne rammer, bruger du denne <strong>3-trins justeringsmodel</strong>:</p>
<ol>
  <li><strong>Byt om på dagene:</strong> Flyt det hårde pas (f.eks. intervaller eller 1RM-test) 1–2 dage frem i ugen, og kør ugens lette restitusjonspas i dag i stedet. Ugens samlede udbytte er uændret.</li>
  <li><strong>Skru ned frem for at aflyse:</strong> Behold træningspasset, men reducer sæt eller belastning (f.eks. 3 sæt i stedet for 5, eller 10 % lavere vægt på stangen).</li>
  <li><strong>Genoptag normalen hurtigt:</strong> Markante symptomer varer sjældent mere end 1–2 dage. Så snart overskuddet vender tilbage, hopper du direkte tilbage på din normale plan.</li>
</ol>

<h3 id="strategi-b-fase-periodiseret-træning-cycle-syncing">Strategi B: Fase-periodiseret træning (Cycle Syncing)</h3>
<p>Hvis du oplever meget tydelige hormonelle svingninger, kan du tilrettelægge din træningsstruktur direkte efter cyklussens faser:</p>

<ul>
  <li><strong>Follikulær fasen (Dag 1–13):</strong> Læg hovedfokus på progression i tung styrketræning, eksplosivitet, HIIT og sæt nye PRs i vores <strong><a href="/rm-beregner/">1RM-beregner</a></strong>.</li>
  <li><strong>Ovulation (Dag 14–16):</strong> Udfør dine tungeste maxforsøg, men vær ekstra opmærksom på stabil løfteteknik og knækontrol under landinger.</li>
  <li><strong>Lutealfasen (Dag 17–28):</strong> Læg fokus på subweighthits, volumentræning, Zone 2 udholdenhed og <strong><a href="/rpe/">RPE-styring</a></strong>. Øg proteinindtaget, og indlæg en <strong><a href="/restitution/">deloaddag/uge</a></strong> ved PMS.</li>
</ul>

<hr />

<h2 id="-røde-flag-hvornår-cyklustræning-skal-stoppes">🚩 Røde flag: Hvornår cyklustræning skal stoppes</h2>

<p>Tilpasning af træning forudsætter en sund og regelmæssig cyklus (<em>eumenoré</em>).</p>

<p>Udebleven menstruation (<em>amenoré</em>) eller uregelmæssige blødninger må <strong>aldrig</strong> betragtes som en ufarlig bivirkning ved hård træning. Det er et alvorligt tegn på relativ energimangel i idræt (<strong>RED-S</strong>), hvor kroppen lukker ned for reproduktive funktioner for at spare energi.</p>

<p>Hvis din menstruation udebliver i mere end 3 måneder, bør du søge læge og øge dit energiindtag – uanset hvad din træningsplan siger.</p>

<blockquote class="notice--success">
  <p>📊 <strong>Er du i risiko for REM-S?</strong>
Hvis din energitilgængelighed falder til under <strong>30 kcal pr. kg fedtfri vægt</strong>, lukker kroppen ned for reproduktive hormoner. 
👉 <a href="/rem-s/">Test dit energiniveau og beregn din energitilgængelighed i vores REM-S Beregner</a></p>
</blockquote>

<hr />

<h2 id="hvad-siger-den-videnskabelige-litteratur-meta-analyser">Hvad siger den videnskabelige litteratur? (Meta-analyser)</h2>

<p>Der er stor forskel på kommercielle “Cycle Syncing”-koncepter og hvad den strengt kontrollerede videnskabelige litteratur konkluderer:</p>

<h3 id="meta-analysen-fra-mcnulty-et-al-2020">Meta-analysen fra McNulty et al. (2020)</h3>
<p>En omfattende meta-analyse af 51 studier (2.602 observationer) undersøgte motionspræstation hen over menstruationscyklussen:</p>
<ul>
  <li><strong>Konklusion:</strong> Der blev fundet en <em>meget lille (trivial)</em> reduktion i præstationsevnen under den tidlige follikulære fase (menstruationen) sammenlignant med de øvrige faser.</li>
  <li><strong>Varians:</strong> Forskellene <em>mellem</em> individuelle kvinder var betydeligt større end de fysiologiske forskelle <em>internt</em> i den enkelte kvindes cyklus.</li>
</ul>

<h3 id="periodiseringsstudiet-fra-wikström-frisén-et-al-2017">Periodiseringsstudiet fra Wikström-Frisén et al. (2017)</h3>
<p>Et svensk interventionsstudie undersøgte effekten af cyklus-periodiseret styrketræning over 4 måneder:</p>

<table>
  <thead>
    <tr>
      <th style="text-align: left">Træningsgruppe</th>
      <th style="text-align: left">Hypertrofifremgang &amp; Styrkeudvikling</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: left"><strong>Follikulær-fokuseret træning</strong></td>
      <td style="text-align: left"><strong>Signifikant højere</strong> muskelhypertrofi og 1RM-fremgang i squat</td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>Luteal-fokuseret træning</strong></td>
      <td style="text-align: left">Lavere samlet fremgang sammenlignet med follikulærgruppen</td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>Jævn træning (Kontrolgruppe)</strong></td>
      <td style="text-align: left">Moderat, stabil fremgang</td>
    </tr>
  </tbody>
</table>

<hr />

<h2 id="ernæring-og-restitution-i-lutealfasen">Ernæring og Restitution i Lutealfasen</h2>

<p>De hormonelle forskydninger i cyklussens anden halvdel stiller ændrede krav til din ernæring:</p>

<ol>
  <li><strong>Øget energibehov (+100–300 kcal/dag):</strong> På grund af den termogene effekt af progesteron stiger dit <a href="/hvilestofskiftet-formler/">hvilestofskifte (BMR)</a>. Justér dit kalorieindtag i vores <strong><a href="/ligevaegtsindtag-beregner/">ligevægtsindtag-beregner</a></strong>.</li>
  <li><strong>Forhøjet proteinbehov (1,8–2,2 g/kg/dag):</strong> Da progesteron fremmer den katabole aminosyreoxidation, er tilstrækkeligt protein essentielt for at genopbygge muskelvævet efter træning.</li>
  <li><strong>Ekstern kulhydrattilførsel under træning:</strong> Da progesteron dæmper glukosefrigivelsen fra lever- og muskelglykogen, vil supplering med hurtige kulhydrater under lange eller intensive træningspas være ekstra gavnligt i lutealfasen.</li>
</ol>

<hr />

<h2 id="konklusion--praktisk-anvendelse">Konklusion &amp; Praktisk Anvendelse</h2>

<p>Menstruationsbaseret træningsplanlægning bør ikke opfattes som et stift regelsæt, hvor du forbydes at løfte tungt i bestemte uger. Det er et pædagogisk og fysiologisk værktøj til <strong>autoregulering</strong>:</p>

<ol>
  <li>Brug din kalender eller vores interaktive beregner til at tracke din cyklus over 3–6 måneder.</li>
  <li>Planlæg dine tungeste <a href="/rm-beregner/">1RM-løft</a> og hårdeste <a href="/hiit/">intervaller</a> i den sen-follikulære fase, hvor du har fysiologisk medvind.</li>
  <li>Brug <a href="/rpe/">RPE og RIR-styring</a> i lutealfasen til at tilpasse vægtstangen efter din dagsform uden at føle nederlag over fysiologisk betingede pulsstigninger.</li>
</ol>

<blockquote class="notice--info">
  <p><strong>Støtte &amp; Brystømhed i den Luteale Fase</strong>:<br />
Brystømhed op til menstruation kan hæmme din træningslyst. Sørg for at tilpasse din bryststøtte til fasens øgede volumen.<br />
👉 <a href="/sports-bh-beregner/">Test dit støttebehov i vores Sports-BH Beregner</a></p>
</blockquote>

<hr />

<h2 id="ofte-stillede-spørgsmål">Ofte stillede spørgsmål</h2>

<details class="faq">
<summary><h3>Påvirker menstruationscyklussen muskelvækst og styrke?</h3></summary>
<p>Ja, østrogen har en anabol (opbyggende) effekt og øger insulinfølsomheden i den follikulære fase, hvilket gør kroppen mere modtagelig for tung styrketræning. Progesteron i lutealfasen virker moderat katabolt.</p>

</details>

<details class="faq">
<summary><h3>Hvad siger videnskaben om Cycle Syncing?</h3></summary>
<p>Meta-analyser (fx McNulty et al., 2020) viser en gennemsnitlig lille nedgang i præstationsevnen under den tidlige menstruationsfase, men understreger, at de individuelle forskelle mellem kvinder er langt større end de generelle fysiologiske udsving.</p>

</details>

<details class="faq">
<summary><h3>Hvorfor stiger pulsen og kropstemperaturen i lutealfasen?</h3></summary>
<p>Progesteronsøjlen efter ægløsning påvirker termoreguleringscentret i hjernen og hæver kernekropstemperaturen med 0,3–0,5 °C, hvilket øger den kardiovaskulære belastning ved intensiv træning.</p>

</details>

<script type="application/ld+json">
    {
        "@context":"https://schema.org",
        "@type":"FAQPage",
        "mainEntity":
            [{"@type":"Question","name":"Påvirker menstruationscyklussen muskelvækst og styrke?","acceptedAnswer":{"@type":"Answer","text":"Ja, østrogen har en anabol (opbyggende) effekt og øger insulinfølsomheden i den follikulære fase, hvilket gør kroppen mere modtagelig for tung styrketræning. Progesteron i lutealfasen virker moderat katabolt.\n"}},{"@type":"Question","name":"Hvad siger videnskaben om Cycle Syncing?","acceptedAnswer":{"@type":"Answer","text":"Meta-analyser (fx McNulty et al., 2020) viser en gennemsnitlig lille nedgang i præstationsevnen under den tidlige menstruationsfase, men understreger, at de individuelle forskelle mellem kvinder er langt større end de generelle fysiologiske udsving.\n"}},{"@type":"Question","name":"Hvorfor stiger pulsen og kropstemperaturen i lutealfasen?","acceptedAnswer":{"@type":"Answer","text":"Progesteronsøjlen efter ægløsning påvirker termoreguleringscentret i hjernen og hæver kernekropstemperaturen med 0,3–0,5 °C, hvilket øger den kardiovaskulære belastning ved intensiv træning.\n"}}]
    }
</script>

<details class="references">
  <summary><h2 id="references">Referencer &amp; Videnskabeligt Grundlag</h2></summary>

  <ul>
    <li><strong>Colenso-Semple, L. M., et al. (2023).</strong> “Current Evidence Does Not Support Whole-Body Cycle Syncing for Athletic Performance or Exercise Training Adaptation.” <em>Frontiers in Sports and Active Living</em>, 5, 1200041. <a href="https://doi.org/10.3389/fspor.2023.1200041">https://doi.org/10.3389/fspor.2023.1200041</a></li>
    <li><strong>Elliott-Sale, K. J., et al. (2020).</strong> “Methodological Considerations for Studies in Sport and Exercise Science with Female Participants.” <em>Sports Medicine</em>, 50(2), 273–285. <a href="https://doi.org/10.1007/s40279-019-01189-x">https://doi.org/10.1007/s40279-019-01189-x</a></li>
    <li><strong>Enns, D. L., &amp; Tiidus, P. M. (2010).</strong> “The Influence of Estrogen on Skeletal Muscle: Sex Matters.” <em>Sports Medicine</em>, 40(1), 41–58. <a href="https://doi.org/10.2165/11319760-000000000-00000">https://doi.org/10.2165/11319760-000000000-00000</a></li>
    <li><strong>McNulty, K. L., et al. (2020).</strong> “The Effects of Menstrual Cycle Phase on Exercise Performance in Eumenorrheic Women: A Systematic Review and Meta-Analysis.” <em>Sports Medicine</em>, 50(10), 1813–1827. <a href="https://doi.org/10.1007/s40279-020-01319-3">https://doi.org/10.1007/s40279-020-01319-3</a></li>
    <li><strong>Mountjoy, M., et al. (2018).</strong> “IOC Consensus Statement on Relative Energy Deficiency in Sport (RED-S): 2018 Update.” <em>British Journal of Sports Medicine</em>, 52(11), 687–697. <a href="https://doi.org/10.1136/bjsports-2018-099193">https://doi.org/10.1136/bjsports-2018-099193</a></li>
    <li><strong>Oosthuyse, T., &amp; Bosch, A. N. (2010).</strong> “The Effect of the Menstrual Cycle on Exercise Metabolism: Implications for Exercise Performance in Eumenorrheic Women.” <em>Sports Medicine</em>, 40(3), 207–227. <a href="https://doi.org/10.2165/11317090-000000000-00000">https://doi.org/10.2165/11317090-000000000-00000</a></li>
    <li><strong>Wikström-Frisén, L., et al. (2017).</strong> “Effects on Power, Strength and Lean Body Mass of Menstrual Cycle-Adapted Resistance Training.” <em>The Journal of Sports Medicine and Physical Fitness</em>, 57(1-2), 43–52. <a href="https://doi.org/10.23736/S0022-4707.16.06203-8">https://doi.org/10.23736/S0022-4707.16.06203-8</a></li>
    <li><strong>Brown, N., et al. (2014).</strong> “The Experience of Breast Pain (Mastalgia) in Female Runners of the 2012 London Marathon and Its Relationship to Sports Bra Use and Menstrual Cycle Phase.” <em>Journal of Sports Sciences</em>, 32(9), 801–809. <a href="https://doi.org/10.1080/02640414.2013.844364">https://doi.org/10.1080/02640414.2013.844364</a></li>
  </ul>
</details>]]></content><author><name>Lars Olesen</name></author><category term="Træning" /><category term="menstruationscyklus" /><category term="cycle syncing" /><category term="kvinder og træning" /><category term="fysiologi" /><category term="østrogen" /><category term="progesteron" /><summary type="html"><![CDATA[Gå bag om myterne om Cycle Syncing. Lær hvordan østrogen og progesteron påvirker styrke og restitution – inkl. interaktiv cyklus-beregner.]]></summary></entry></feed>