/* Sticker-notebook look: dotted paper, outlined cards with a hard shadow, one colour per weekday.
   Rounded system fonts stand in when the web fonts cannot load (e.g. iMessage preview offline). */
:root {
  --bg: #fff5fb; --dots: #f1d9ec; --paper: #ffffff; --ink: #2a1838; --muted: #735f83; --line: #eedcf0;
  --outline: #2a1838; --hero-a: #e2367f; --hero-b: #7b35ee; --hero-ink: #ffffff; --sticker: #ffd23f; --sticker-ink: #2a1838; --count-bg: #ffffff; --fritid: #0b6a84; --fritid-bg: #d8f1f8; --weekend: #e2367f; --weekend-bg: #ffe3f0;
  --button: #7428e8; --button-ink: #ffffff; --link: #6a1fd6; --row: #faf3fd;
  --mon: #23b597; --mon-bg: #e0f7f1; --tue: #2f8ff0; --tue-bg: #e3f0ff; --wed: #f0b000; --wed-bg: #fff4d2;
  --thu: #f26444; --thu-bg: #ffe9e2; --fri: #9b5cff; --fri-bg: #f0e6ff;
  --proeve: #c81e64; --proeve-bg: #ffe0ee; --lekse: #5a2fc4; --lekse-bg: #ebe4ff;
  --husk: #a24f00; --husk-bg: #ffecd2; --aktivitet: #0f7656; --aktivitet-bg: #d8f5ea;
  --info: #5f4f6e; --info-bg: #f0eaf5;
  --display: "Fredoka", ui-rounded, "SF Pro Rounded", "Arial Rounded MT Bold", system-ui, sans-serif;
  --body: "Nunito", ui-rounded, -apple-system, "Segoe UI", sans-serif;
}
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) {
  --bg: #1a0f25; --dots: #2b1b3b; --paper: #251634; --ink: #f7ecff; --muted: #bea8cf; --line: #3c2950;
  --outline: #c7b0e3; --hero-a: #b92a68; --hero-b: #5f27c4; --button: #8f5cf5; --link: #c9a6ff; --row: #2c1b3d;
  --mon: #4fdcbe; --mon-bg: #12382f; --tue: #6ab6ff; --tue-bg: #142e4c; --wed: #ffd166; --wed-bg: #3a2f10;
  --thu: #ff977d; --thu-bg: #401f17; --fri: #c29bff; --fri-bg: #2e1e4d;
  --proeve: #ff7fb3; --proeve-bg: #4a1531; --lekse: #c3a9ff; --lekse-bg: #2f2153;
  --husk: #ffbf66; --husk-bg: #432e0f; --aktivitet: #6fe0b7; --aktivitet-bg: #123a2c;
  --info: #d6c7e4; --info-bg: #352a44; --fritid: #7fd6ee; --fritid-bg: #12333d; --weekend: #ff7fb3; --weekend-bg: #45142f; color-scheme: dark;
} }
:root[data-theme="dark"] {
  --bg: #1a0f25; --dots: #2b1b3b; --paper: #251634; --ink: #f7ecff; --muted: #bea8cf; --line: #3c2950;
  --outline: #c7b0e3; --hero-a: #b92a68; --hero-b: #5f27c4; --button: #8f5cf5; --link: #c9a6ff; --row: #2c1b3d;
  --mon: #4fdcbe; --mon-bg: #12382f; --tue: #6ab6ff; --tue-bg: #142e4c; --wed: #ffd166; --wed-bg: #3a2f10;
  --thu: #ff977d; --thu-bg: #401f17; --fri: #c29bff; --fri-bg: #2e1e4d;
  --proeve: #ff7fb3; --proeve-bg: #4a1531; --lekse: #c3a9ff; --lekse-bg: #2f2153;
  --husk: #ffbf66; --husk-bg: #432e0f; --aktivitet: #6fe0b7; --aktivitet-bg: #123a2c;
  --info: #d6c7e4; --info-bg: #352a44; --fritid: #7fd6ee; --fritid-bg: #12333d; --weekend: #ff7fb3; --weekend-bg: #45142f; color-scheme: dark;
}
* { box-sizing: border-box; }
body {
  margin: 0; font: 16px/1.5 var(--body); color: var(--ink); background-color: var(--bg);
  background-image: radial-gradient(var(--dots) 1.5px, transparent 1.6px); background-size: 22px 22px;
}
.wrap { max-width: 1120px; margin: 0 auto; padding-inline: 16px; padding-block: 24px 48px; display: grid; gap: 32px; }

.hero {
  position: relative; overflow: hidden; color: var(--hero-ink);
  background: linear-gradient(120deg, var(--hero-a), var(--hero-b));
  border: 2.5px solid var(--outline); border-radius: 22px; box-shadow: 5px 5px 0 var(--outline);
  padding: 14px 22px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 18px;
}
.hero h1 { margin: 0; font: 700 clamp(1.45rem, 4.2vw, 2.2rem)/1.15 var(--display); letter-spacing: -0.01em; position: relative; }
.hero__week {
  display: inline-block; padding: 0 12px 1px; border-radius: 999px; white-space: nowrap; font: 700 clamp(1.25rem, 3.6vw, 1.8rem)/1.15 var(--display);
  background: var(--sticker); color: var(--sticker-ink); border: 2.5px solid var(--sticker-ink); transform: rotate(-3deg);
}
/* The week, the dates and the class on one line when they fit; a week over two months («30. november – 4. desember 2026») is wider
   than the card on a 390 px phone, so the line wraps rather than being cut off at the card's edge */
.hero__meta { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; font-weight: 800; font-size: clamp(0.85rem, 3.9vw, 1.05rem); position: relative; }
.hero__class { font: 600 0.9rem var(--display); flex: none; white-space: nowrap; padding: 0 10px; border-radius: 999px; background: rgb(255 255 255 / 0.22); border: 2px solid rgb(255 255 255 / 0.7); }
.hero__class--corner { position: absolute; top: 12px; right: 14px; }
.sparkle { position: absolute; bottom: -16px; right: 240px; font-size: 2.6rem; line-height: 1; color: rgb(255 255 255 / 0.22); pointer-events: none; }
.countdown {
  margin-left: auto; position: relative; display: flex; align-items: center; gap: 8px;
  background: var(--count-bg); color: var(--sticker-ink); border: 2.5px solid var(--sticker-ink); border-radius: 16px;
  padding: 4px 14px 4px 10px; transform: rotate(2deg); box-shadow: 3px 3px 0 rgb(0 0 0 / 0.25);
}
.countdown__emoji { font-size: 1.7rem; line-height: 1; animation: bob 2.4s ease-in-out infinite; }
.countdown__num { font: 700 2rem/1 var(--display); font-variant-numeric: tabular-nums; }
.countdown__label { font-weight: 800; font-size: 0.8rem; line-height: 1.15; }
.countdown__label span { display: block; }
@keyframes bob { 50% { transform: translateY(-3px) rotate(-8deg); } }
@media (prefers-reduced-motion: reduce) { .countdown__emoji { animation: none; } }
@media (max-width: 560px) {
  .sparkle { display: none; }
  .countdown { margin-left: 0; padding: 2px 12px 2px 8px; gap: 6px; transform: rotate(-1deg); }
  .countdown__emoji { font-size: 1.3rem; }
  .countdown__num { font-size: 1.35rem; }
  .countdown__label { font-size: 0.9rem; }
  .countdown__label span { display: inline; }
}

.important { background: var(--proeve-bg); border: 2.5px solid var(--proeve); border-radius: 20px; box-shadow: 4px 4px 0 var(--proeve); padding: 12px 18px 14px; }
.important h2 { margin: 0 0 8px; color: var(--proeve); font-size: 1.3rem; }
.important ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.important li { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; font-size: 1.05rem; }
.important__due { font: 600 0.9rem var(--display); background: var(--sticker); color: var(--sticker-ink); border: 2px solid var(--sticker-ink); border-radius: 999px; padding: 0 10px; }
.problem { background: var(--husk-bg); border: 2.5px solid var(--husk); border-radius: 20px; box-shadow: 4px 4px 0 var(--husk); padding: 12px 18px 14px; }
.problem h2 { margin: 0 0 8px; color: var(--husk); font-size: 1.3rem; }
.problem ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.problem code { display: block; margin-top: 6px; padding: 6px 10px; border-radius: 10px; background: var(--paper); font: 600 0.85rem ui-monospace, Menlo, monospace; overflow-wrap: anywhere; }
.missing { margin: 0; background: var(--husk-bg); color: var(--husk); border: 2px dashed currentColor; border-radius: 18px; padding: 12px 16px; font-weight: 800; }
h2 { margin: 0 0 14px; font: 700 1.35rem var(--display); display: flex; align-items: center; gap: 8px; }
.h2__emoji { font-size: 1.25rem; }

.day {
  --c: var(--mon); --c-bg: var(--mon-bg);
  background: var(--paper); border: 2.5px solid var(--outline); border-radius: 20px; box-shadow: 4px 4px 0 var(--c);
  min-width: 0; position: relative; transform: rotate(-0.6deg);
}
.day:nth-child(2) { --c: var(--tue); --c-bg: var(--tue-bg); transform: rotate(0.5deg); }
.day:nth-child(3) { --c: var(--wed); --c-bg: var(--wed-bg); transform: rotate(-0.3deg); }
.day:nth-child(4) { --c: var(--thu); --c-bg: var(--thu-bg); transform: rotate(0.6deg); }
.day:nth-child(5) { --c: var(--fri); --c-bg: var(--fri-bg); transform: rotate(-0.5deg); }
.day.day--weekend { --c: var(--weekend); --c-bg: var(--weekend-bg); transform: rotate(0.4deg); }
.day__head { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 10px 14px; background: var(--c-bg); border-bottom: 2.5px dashed var(--c); border-radius: 17.5px 17.5px 0 0; }
.day__weather > span:not(.day__weather-icon):not(.day__wear) { flex: 1 1 0; min-width: 0; }
.day__wear { flex-basis: 100%; display: flex; flex-wrap: wrap; gap: 6px; }
.day__wear span { font-size: 0.78rem; font-weight: 800; color: var(--lekse); background: var(--lekse-bg); border-radius: 999px; padding: 1px 9px; }
.day__weather { margin: 0; padding: 8px 14px 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; color: var(--muted); font-size: 0.9rem; font-weight: 700; }
.day__weather-icon { font-size: 1.7rem; line-height: 1; }
.day__weather strong { color: var(--ink); font: 600 1.1rem var(--display); margin-right: 4px; }
.day__head h3 { margin: 0; font: 700 1.25rem var(--display); }
.day__date { font: 600 0.9rem var(--display); font-variant-numeric: tabular-nums; background: var(--c); color: var(--sticker-ink); padding: 1px 10px; border-radius: 999px; }
.day__body { padding: 12px 14px 14px; }
.day.is-today { outline: 3px solid var(--c); outline-offset: 3px; }
.week > h2 { justify-content: center; font-size: 1.7rem; margin-bottom: 10px; }
.pdays .day.is-today::after {
  content: "I dag!"; position: absolute; right: 16px; top: -14px; z-index: 1; transform: rotate(-6deg);
  font: 700 0.8rem var(--display); background: var(--sticker); color: var(--sticker-ink); padding: 1px 8px; border-radius: 999px; border: 2px solid var(--sticker-ink);
}

.items, .plain, .notes { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.items li { display: grid; gap: 4px; align-content: start; }
.items li.item { display: flex; align-items: center; gap: 10px; }
.item__icon { flex: none; width: 2rem; height: 2rem; display: grid; place-items: center; border-radius: 10px; font-size: 1.1rem; background: var(--info-bg); }
.item--prøve .item__icon { background: var(--proeve-bg); }
.item--lekse .item__icon { background: var(--lekse-bg); }
.item--husk .item__icon { background: var(--husk-bg); }
.item--aktivitet .item__icon { background: var(--aktivitet-bg); }
.item__text { font-weight: 700; line-height: 1.3; min-width: 0; }
.item--prøve .item__text { color: var(--proeve); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.chip {
  justify-self: start; display: inline-flex; align-items: center; gap: 4px;
  font-size: 0.78rem; font-weight: 800; padding: 1px 9px 1px 6px; border-radius: 999px;
}
.chip--prøve { color: var(--proeve); background: var(--proeve-bg); }
.chip--trening, .chip--kamp, .chip--fritid { color: var(--fritid); background: var(--fritid-bg); }
.spond small { display: block; color: var(--muted); font-size: 0.85rem; }
.flag { display: inline-block; margin-top: 2px; font-style: normal; font-size: 0.75rem; font-weight: 800; padding: 0 8px; border-radius: 999px; }
.flag--off { background: var(--info-bg); color: var(--info); }
.flag--ask { background: var(--husk-bg); color: var(--husk); text-decoration: none; }
.flag--task { background: var(--aktivitet-bg); color: var(--aktivitet); }
.spond .flag { margin-right: 6px; }
.spond__title { color: inherit; font-weight: inherit; text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 3px; }

.plain li { background: var(--paper); border: 2px solid var(--line); border-radius: 16px; padding: 10px 14px; }
.notes li { display: grid; grid-template-columns: 3.5rem 1fr; gap: 12px; background: var(--paper); border: 2px solid var(--line); border-radius: 16px; padding: 12px 14px; }
.notes__date { color: var(--muted); font-weight: 700; font-variant-numeric: tabular-nums; }
.notes p { margin: 2px 0 0; }
.notes div { min-width: 0; }
.doubts .plain li { border-style: dashed; }

.tests { display: grid; gap: 16px; }
.test { background: var(--paper); border: 2.5px solid var(--outline); border-radius: 20px; box-shadow: 4px 4px 0 var(--proeve); min-width: 0; }
.test__head { list-style: none; cursor: pointer; padding: 14px 18px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 16px; }
.test__head::-webkit-details-marker { display: none; }
.test__head:focus-visible { outline: 3px solid var(--button); outline-offset: 2px; border-radius: 18px; }
/* A test whose day is over: as quiet as a day that has passed (the pensum can still be opened, practice is under Gamle prøver) */
.test.is-past { box-shadow: none; }
.test.is-past .test__head { opacity: 0.6; }
.test.is-past h3::after { content: " ✓"; }
.test__title { display: grid; gap: 4px; min-width: 0; }
.test__head h3 { margin: 0; font: 700 1.35rem var(--display); }
.test__when { color: var(--muted); font-weight: 700; }
.test__toggle {
  display: inline-flex; align-items: center; gap: 8px; white-space: nowrap;
  background: var(--button); color: var(--button-ink); font: 600 1rem var(--display); padding: 6px 16px; border-radius: 999px;
}
.test__toggle::after { content: ""; width: 7px; height: 7px; border-right: 2.5px solid currentColor; border-bottom: 2.5px solid currentColor; margin-top: -4px; transform: rotate(45deg); transition: transform 0.15s ease; }
.test[open] .test__toggle::after { margin-top: 4px; transform: rotate(225deg); }
.test .when-open, .test[open] .when-closed { display: none; }
.test[open] .when-open { display: inline; }
.test__body { padding: 0 18px 18px; display: grid; gap: 16px; }
.test__basis { margin: 6px 6px 0; color: var(--muted); font-size: 0.85rem; font-weight: 700; }
.test--varslet .test__head { cursor: default; }
@media (prefers-reduced-motion: reduce) { .test__toggle::after { transition: none; } }
.test h4 { margin: 0 0 6px; font: 700 1rem var(--display); color: var(--proeve); }
.bullets { margin: 0; padding-left: 1.2em; display: grid; gap: 2px; }
.table-scroll { overflow-x: auto; min-width: 0; }
.glossary { border-collapse: separate; border-spacing: 0; width: 100%; max-width: 640px; font-variant-numeric: tabular-nums; border: 2px solid var(--line); border-radius: 14px; overflow: hidden; }
.glossary th { text-align: left; font: 600 0.9rem var(--display); color: var(--muted); padding: 6px 12px; background: var(--row); }
.glossary td { padding: 7px 12px; vertical-align: top; border-top: 1px solid var(--line); }
.glossary tbody tr:nth-child(even) td { background: var(--row); }
.glossary td small { display: block; color: var(--husk); font-size: 0.8rem; font-weight: 700; }
.glossary td:last-child { color: var(--muted); width: 3.5rem; }

/* Phone layout (the iMessage copy): one column, one card per day, same sticker look */
.wrap.phone { max-width: 640px; gap: 26px; }
.pdays { display: grid; gap: 16px; }
.pday__none { flex: 1; color: var(--muted); font-weight: 700; font-size: 0.9rem; }
.pday .day__head:last-child, .pday .day__head:has(+ .day__body[hidden]:last-child) { border-bottom: none; border-radius: 17.5px; }
.pday--empty .day__weather { padding-bottom: 10px; }
.pday.is-past { opacity: 0.6; box-shadow: none; }
.pday.is-past > :not(.day__head), .pday.is-past .pday__none { display: none; }
.pday.is-past .day__head { border-bottom: none; border-radius: 17.5px; }
.pday.is-past h3::after { content: " ✓"; }
.pday .items + .pday__spond { margin-top: 12px; padding-top: 12px; border-top: 2.5px dashed var(--line); }
.pspond__meet { display: block; margin-top: 2px; font-weight: 800; }
.items li.pspond--off { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; color: var(--muted); }
.pspond--off .pspond__name { text-decoration-line: line-through; text-decoration-color: currentColor; }
.pbutton {
  display: flex; align-items: center; justify-content: center; min-height: 44px; margin-top: 8px; padding: 8px 14px; text-align: center;
  background: var(--husk-bg); color: var(--husk); border: 2px solid var(--husk); border-radius: 14px; box-shadow: 3px 3px 0 var(--husk);
  font: 600 1rem var(--display); text-decoration: none;
}
.pweekly { list-style: none; margin: 0; padding: 2px 16px; background: var(--paper); border: 2px solid var(--line); border-radius: 18px; }
.pweekly li { display: flex; gap: 10px; padding: 10px 0; line-height: 1.4; }
.pweekly li + li { border-top: 2px dashed var(--line); }
.pweekly__icon { flex: none; }
.ptopics { margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ptopics span { background: var(--paper); border: 2px solid var(--line); border-radius: 999px; padding: 3px 14px; font: 600 1rem var(--display); }
.ptopics b { color: var(--muted); font: 700 0.8rem var(--body); margin-right: 6px; }
.ptopics .ptopics__word { background: var(--sticker); color: var(--sticker-ink); border-color: var(--sticker-ink); transform: rotate(-2deg); }
.ptopics .ptopics__word b { color: inherit; opacity: 0.75; }
/* The team choice on a family page (page/lag.js): a gear button at the right of «Dag for dag» opens the box under it */
.week { position: relative; }
.lagvalg__head {
  position: absolute; top: -4px; right: 0; width: 44px; height: 44px; box-sizing: border-box; display: grid; place-items: center;
  list-style: none; cursor: pointer; border-radius: 50%; background: var(--button); border: 2.5px solid var(--outline);
  box-shadow: 2px 2px 0 var(--outline); font-size: 1.3rem; line-height: 1;
}
.lagvalg__head::-webkit-details-marker { display: none; }
.lagvalg__head:focus-visible { outline: 3px solid var(--button); outline-offset: 3px; }
.lagvalg[open] .lagvalg__head { background: var(--sticker); box-shadow: none; transform: translate(2px, 2px); }
.lagvalg__body { margin: 0 0 16px; padding: 12px 16px 14px; display: grid; gap: 4px; background: var(--paper); border: 2.5px solid var(--outline); border-radius: 18px; }
.lagvalg__title { margin: 0; font: 600 1.05rem var(--display); }
.lagvalg__lag { display: flex; align-items: center; gap: 10px; min-height: 44px; font-weight: 800; cursor: pointer; }
.lagvalg__lag input { flex: none; width: 22px; height: 22px; margin: 0; accent-color: var(--button); }
.lagvalg__note { margin: 4px 0 0; color: var(--muted); font-size: 0.85rem; font-weight: 700; }
[hidden] { display: none !important; }
.more { background: var(--paper); border: 2.5px solid var(--outline); border-radius: 20px; box-shadow: 4px 4px 0 var(--info); }
.more__head { list-style: none; cursor: pointer; padding: 14px 18px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 12px; }
.more__head::-webkit-details-marker { display: none; }
.more__head:focus-visible { outline: 3px solid var(--button); outline-offset: 2px; border-radius: 18px; }
.more__title { font: 700 1.3rem var(--display); }
.more__what { flex-basis: 100%; color: var(--muted); font-weight: 700; font-size: 0.9rem; }
.more[open] .test__toggle::after { margin-top: 4px; transform: rotate(225deg); }
.more .when-open, .more[open] .when-closed { display: none; }
.more[open] .when-open { display: inline; }
.more__body { padding: 0 14px 18px; display: grid; gap: 26px; }
.more__body h2 { font-size: 1.2rem; }
.phone .notes li { grid-template-columns: 1fr; gap: 0; }
/* Phone page is always dark, and each weekday card is a strong gradient from its own colour to a neighbouring hue,
   header, frame and body alike (the child's wish). Deep, saturated colours so the day names can be white. */
.phone .pday:nth-child(1) { --c: #00a87a; --c2: #0a7cff; }
.phone .pday:nth-child(2) { --c: #2f6bff; --c2: #8a3dff; }
.phone .pday:nth-child(3) { --c: #e08700; --c2: #e64a19; }
.phone .pday:nth-child(4) { --c: #f0522d; --c2: #e8177a; }
.phone .pday:nth-child(5) { --c: #8f3fff; --c2: #e0249a; }
.phone .pday.day--weekend { --c: #d6247f; --c2: #f26b00; }
.phone .pday {
  border-color: var(--c) var(--c2) var(--c2) var(--c); box-shadow: 4px 4px 0 var(--c2);
  background: linear-gradient(160deg, var(--c-bg), var(--paper));
}
@supports (color: color-mix(in srgb, red 50%, blue)) { .phone .pday { background: linear-gradient(160deg, color-mix(in srgb, var(--c) 34%, var(--bg)), color-mix(in srgb, var(--c2) 44%, var(--bg))); } }
.phone .pday.is-past { box-shadow: none; }
.phone .day__head { background: linear-gradient(105deg, var(--c), var(--c2)); border-bottom-color: rgb(255 255 255 / 0.5); }
.phone .day__head h3, .phone .pday__none { color: #fff; text-shadow: 0 1.5px 0 rgb(0 0 0 / 0.45), 0 0 8px rgb(0 0 0 / 0.3); }
.phone .day__date { background: rgb(0 0 0 / 0.3); color: #fff; border: 2px solid rgb(255 255 255 / 0.6); }
.phone .pday .items + .pday__spond { border-top-color: var(--c); }

footer { display: grid; gap: 10px; color: var(--muted); font-size: 0.9rem; }
a { color: var(--link); font-weight: 700; }
a:focus-visible { outline: 3px solid var(--button); outline-offset: 2px; }

/* «Mine treninger» (page/trening.js): a button inside the gear's box opens a panel, and the family's own trainings show in the day cards */
.treningvalg { margin-top: 8px; border-top: 2px dashed var(--line); padding-top: 10px; }
.treningvalg button { font: 700 0.95rem var(--display); min-height: 44px; padding: 0 14px; border-radius: 12px; border: 2px solid var(--outline); background: var(--row); color: var(--ink); cursor: pointer; }
.treningvalg__open { width: 100%; text-align: left; }
.treningvalg__body { margin-top: 10px; }
.treningliste { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 6px; }
.treningliste__rad { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; font-weight: 700; font-size: 0.95rem; }
.treningliste__rad span { flex: 1 1 100%; }
.treningform__title { margin: 12px 0 6px; font-weight: 800; }
.treningform__sports { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.treningvalg .treningform__sport { font-size: 1.6rem; min-height: 52px; padding: 0; line-height: 1; }
.treningform__dager { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.treningvalg .treningform__dag { padding: 0; font-size: 0.85rem; }
.treningform button[aria-pressed="true"] { background: var(--sticker); color: var(--sticker-ink); border-color: var(--sticker-ink); }
.treningform__felt { min-width: 0; display: grid; gap: 4px; font-weight: 700; margin-top: 10px; font-size: 0.9rem; }
.treningform__felt input { font: 600 1rem var(--display); min-height: 44px; padding: 0 10px; border-radius: 10px; border: 2px solid var(--outline); background: var(--paper); color: var(--ink); width: 100%; min-width: 0; box-sizing: border-box; }
.treningform__timer { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
.treningform__minutter { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin-top: 8px; }
.treningform__varighet { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.treningvalg .treningform__tid { padding: 0; font-size: 0.95rem; }
.treningform__ferie { display: flex; align-items: center; gap: 10px; margin-top: 12px; font-weight: 700; min-height: 44px; }
.treningform__ferie input { flex: none; width: 24px; height: 24px; accent-color: var(--button); }
.treningform__feil { min-height: 1.2em; margin: 8px 0 0; color: #c0264f; font-weight: 700; }
.treningform__knapper { display: flex; gap: 10px; margin-top: 8px; }
.treningvalg__note { margin: 12px 0 0; color: var(--muted); font-size: 0.85rem; font-weight: 700; }
.ptrening .chip { white-space: nowrap; }
