/* =========================================================================
   oevelseside.css — øvelsessiden #/oevelse/<id> (Hevy-runden, Task 1.3, 12-11-2026). Ejes af oevelseside.js.
   Buddys regler: hvide flader uden kanter på isblå bund, kobolt er handling, marine er tekst. Farve kun til status:
   opvarmning = solgul plet (som i loggen), drop og til fejl dæmpet, sidste prik på grafen kobolt. Rækker skilles af luft og
   tone, aldrig af streger. color-scheme sættes aldrig på :root.
   ========================================================================= */

.oev-historik { margin-top: 10px; }

/* ---------------------------------------------------------------- toppen */
.os-top { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 14px; align-items: center; margin-bottom: 18px; }
.os-fig { width: 76px; height: 76px; border-radius: var(--r-m); background: var(--hvid); box-shadow: var(--skygge); overflow: hidden; display: grid; place-items: center; }
.os-fig .figur { display: block; height: 100%; }
.os-fig .figur svg { height: 100%; width: auto; margin: 0 auto; }
.os-fig.mk { padding: 6px 0; }
.os-fig .muskelkort { height: 100%; width: auto; }
.os-navn h1 { font-size: clamp(24px, 6.4vw, 32px); overflow-wrap: anywhere; }
.os-meta { margin-top: 4px; font-size: 14px; color: var(--marine-2); }
.os-meta + .os-meta { margin-top: 1px; }

/* ---------------------------------------------------------------- faner */
.os-faner {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; padding: 4px; border-radius: 999px;
    background: var(--hvid); box-shadow: var(--skygge);
}
.os-faner button { min-height: 42px; border-radius: 999px; font-weight: 650; font-size: 15px; color: var(--marine-2); transition: background .15s, color .15s; }
.os-faner button.valgt { background: var(--blaa); color: var(--hvid); }
@media (hover: hover) { .os-faner button:not(.valgt):hover { background: var(--himmel); color: var(--marine); } }
.os-krop { margin-top: 16px; min-height: 120px; }
.os-krop.henter { opacity: .6; transition: opacity .15s; }
.os-krop > .loader { min-height: 30dvh; }

/* ---------------------------------------------------------------- grafen */
.os-graf-kort { padding: 16px 16px 14px; }
.os-graf-kort .os-maal { margin: 0 -16px; padding: 2px 16px 8px; }
.os-aflaes { display: flex; align-items: baseline; gap: 10px; margin: 6px 0 2px; min-height: 34px; }
.os-aflaes b { font: 700 26px/1.1 var(--display); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.os-aflaes span { font-size: 14px; color: var(--marine-2); }
.os-graf-boks { margin: 0 -6px; }
/* Højst 240 px høj: på en bred skærm ville SVG'en ellers skalere teksten med op (viewBox 320 × 180). */
.os-graf { display: block; width: 100%; height: auto; max-height: 240px; overflow: visible; touch-action: manipulation; }
.os-graf .os-gitter { stroke: var(--dis); stroke-width: 1; stroke-dasharray: 3 4; }
.os-graf .os-akse { fill: var(--marine-2); font: 600 11px/1 var(--tekst); }
.os-graf .os-flade { fill: var(--blaa); opacity: .08; }
.os-graf .os-linje { fill: none; stroke: var(--blaa); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.os-graf .os-prik { fill: var(--hvid); stroke: var(--blaa); stroke-width: 2; }
.os-graf .os-sidste { fill: var(--blaa); }
.os-graf .os-valgt { fill: var(--blaa); stroke: var(--blaa-dyb); stroke-width: 3; }
.os-graf .os-tryk { fill: transparent; cursor: pointer; }
.os-graf-tom { display: grid; place-items: center; min-height: 140px; padding: 20px; border-radius: var(--r-m); background: var(--himmel); color: var(--marine-2); text-align: center; font-size: 15px; }

.os-periode { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 10px; }
.os-periode button {
    min-height: 40px; border-radius: 999px; background: var(--himmel); color: var(--marine-2); font-weight: 650; font-size: 14.5px;
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
}
.os-periode button.valgt { background: var(--blaa); color: var(--hvid); }
.os-laas { display: inline-grid; color: var(--marine-3); }
.os-laas svg { width: 14px; height: 14px; }

/* ---------------------------------------------------------------- rekorder */
.os-rekorder { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.os-rekord-kort { background: var(--hvid); border-radius: var(--r-m); padding: 14px 16px; box-shadow: var(--skygge); display: grid; gap: 3px; align-content: start; min-width: 0; }
.os-rekord-kort small { font-size: 13px; font-weight: 600; color: var(--marine-2); }
.os-rekord-kort b { font: 700 22px/1.15 var(--display); letter-spacing: -.02em; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.os-rekord-kort span { font-size: 13px; color: var(--marine-2); }
.os-tomtekst { padding: 18px 16px; border-radius: var(--r-m); background: var(--hvid); box-shadow: var(--skygge); color: var(--marine-2); }

/* ---------------------------------------------------------------- historik */
.os-pas { padding: 14px 16px; }
.os-pas + .os-pas { margin-top: 10px; }
.os-pas header { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.os-pas header b { font: 700 17px/1.2 var(--display); letter-spacing: -.01em; }
.os-pas header small { font-size: 13px; color: var(--marine-2); font-variant-numeric: tabular-nums; }
.os-saet { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.os-saet li { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 12px; align-items: center; padding: 6px 8px; border-radius: var(--r-s); background: var(--himmel); }
.os-nr {
    width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font: 700 14px/1 var(--display);
    background: var(--hvid); color: var(--marine);
}
.os-saet .t-v .os-nr { background: var(--sol); color: var(--marine); }
.os-saet .t-d .os-nr, .os-saet .t-f .os-nr { background: var(--dis); color: var(--marine-2); }
.os-tal { font-weight: 600; font-variant-numeric: tabular-nums; }

/* ---------------------------------------------------------------- sådan */
.os-saadan { display: grid; gap: 0; }
.os-saadan .figur.stor { margin-bottom: 4px; }
.os-krop .oev-muskelrad { margin-top: 0; }

