/* Design-tokens og visuelle regler – prototype v1.
   Godkendt komposition: Koncept 2 "Skumring" (27.09.2026) oven på Design Direction v2 (plum-blush).
   Visuel reference (engangs): design/concepts-s1-disposable/koncept-2-skumring.html. Spec: product/prototype-v1-plan.md §7.
   Plum-scene = appens rum, creme-ark = arbejdsflade. Værdier = PROTOTYPE-TOKENS/HYPOTESER (pt), der justeres efter
   test på rigtig iPhone. Kontrast, reflow, fokus, trykfelter og 0 animation ved reduceret bevægelse/lavstimuli er KRAV. */

/* ---------- Tokens: lys tilstand ---------- */
:root {
  color-scheme: light;
  --stage1: #4A1747;          /* scene, top (pt) */
  --stage2: #2C0D32;          /* scene, bund (Project Summary --ink) */
  --on-stage: #FFF7E5;        /* 13:1 på scenen */
  --on-stage-2: #EBD7DF;      /* dæmpet på scenen (pt), 10:1 */
  --cap: rgba(255, 247, 229, 0.12);  /* kapsel/note på scenen (pt) */
  --glow: rgba(242, 142, 162, 0.30); /* én rosa glød – kun Nu og 1.6 (pt) */

  --bg: #FFF7E5;              /* ark (Project Summary --paper) */
  --surface: #FFFDF5;         /* taster og kort (Project Summary --surface-2) */
  --surface-2: #F1E2D6;       /* spor (pt) */
  --edge: #EADBD2;            /* dekorativ kant (pt) */
  --lip: #A08590;             /* tasteløft = kontrolgrænse, 3,2:1 (pt) */
  --text: #2C0D32;            /* 16:1 */
  --text-muted: #6B5A63;      /* 6,0:1 (pt) */
  --accent: #6D285A;          /* primær tast på arket, 9,4:1 */
  --accent-lip: #3F1039;      /* (pt) */
  --on-accent: #FFF7E5;
  --accent-soft: #FBE3E6;     /* valgt-flade / ikonskive (pt) */
  --blush: #F28EA2;           /* primær tast på scenen, plum tekst 7,6:1 */
  --on-blush: #2C0D32;
  --blush-lip: #B8456F;       /* (pt) */
  --back: #F7D2DC;            /* bagkortet "Vis et andet" (pt) */
  --back-edge: transparent;   /* mørk: synlig kant, så bagkortet når 3:1 mod scenen (krav) */
  --border-strong: #8C7480;   /* tekstfelt/spor, 4,0:1 (pt) */
  --safety: #B42318;          /* KUN reelle faresignaler (pt) – bruges ikke i situation 1 */
  --focus: #6D285A;
  --focus-stage: #FFF7E5;
  /* Community (R1): hensigtspillens kant og monogramtoner (lys flade + mørkt bogstav, >10:1) (pt). Tonen bærer ingen betydning */
  --intent-edge: #E7B8C6;
  --t1-bg: #F7D6DE; --t1-fg: #5A1D48;
  --t2-bg: #E6D8EE; --t2-fg: #43205A;
  --t3-bg: #F1DFC6; --t3-fg: #5B3514;
  --t4-bg: #D8E6DA; --t4-fg: #1F4A2E;
  --t5-bg: #D9DDF0; --t5-fg: #283065;
  --av-ring: rgba(44, 13, 50, 0.10);
  --shadow-sheet: 0 -12px 32px rgba(20, 4, 18, 0.28);
  --shadow-card: 0 2px 0 rgba(10, 2, 10, 0.06), 0 22px 40px -12px rgba(10, 2, 10, 0.45);
  --shadow-key: 0 14px 26px rgba(63, 16, 57, 0.28);

  --font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --tap: min(3rem, 64px);     /* ≥ 48 px (krav); loft, så trykfladen ikke vokser 3× ved AX5 */
  --gutter: min(1.25rem, 24px); /* sidemargen for scene, ark og bundnavigation */
  --measure: 60ch;
  --dur: 160ms;
}

/* ---------- Tokens: mørk tilstand ---------- */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --stage1: #2A1428; --stage2: #140A13; --on-stage: #FFF7E5; --on-stage-2: #DCCBD2; --glow: rgba(229, 139, 174, 0.14);
    --bg: #211B10; --surface: #2A1A26; --surface-2: #3A2A33; --edge: #45313F; --lip: #86697A;
    --text: #FFF7E5; --text-muted: #CBBFB0; --accent: #E58BAE; --accent-lip: #9C4B70; --on-accent: #2C0D32;
    --accent-soft: #3A2433; --blush: #E58BAE; --on-blush: #2C0D32; --blush-lip: #9C4B70; --back: #3A2433;
    --border-strong: #A08C96; --safety: #F08A80; --focus: #E58BAE; --back-edge: #A08C96;
    --intent-edge: #6A4258; --av-ring: rgba(255, 247, 229, 0.18);
    --t1-bg: #6A2B50; --t2-bg: #523067; --t3-bg: #6B4A24; --t4-bg: #2F5A3E; --t5-bg: #36407A;
    --t1-fg: #FFF7E5; --t2-fg: #FFF7E5; --t3-fg: #FFF7E5; --t4-fg: #FFF7E5; --t5-fg: #FFF7E5;
    --shadow-sheet: 0 -12px 32px rgba(0, 0, 0, 0.45); --shadow-key: 0 10px 20px rgba(0, 0, 0, 0.35);
  }
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --stage1: #2A1428; --stage2: #140A13; --on-stage: #FFF7E5; --on-stage-2: #DCCBD2; --glow: rgba(229, 139, 174, 0.14);
  --bg: #211B10; --surface: #2A1A26; --surface-2: #3A2A33; --edge: #45313F; --lip: #86697A;
  --text: #FFF7E5; --text-muted: #CBBFB0; --accent: #E58BAE; --accent-lip: #9C4B70; --on-accent: #2C0D32;
  --accent-soft: #3A2433; --blush: #E58BAE; --on-blush: #2C0D32; --blush-lip: #9C4B70; --back: #3A2433;
  --border-strong: #A08C96; --safety: #F08A80; --focus: #E58BAE; --back-edge: #A08C96;
  --intent-edge: #6A4258; --av-ring: rgba(255, 247, 229, 0.18);
  --t1-bg: #6A2B50; --t2-bg: #523067; --t3-bg: #6B4A24; --t4-bg: #2F5A3E; --t5-bg: #36407A;
  --t1-fg: #FFF7E5; --t2-fg: #FFF7E5; --t3-fg: #FFF7E5; --t4-fg: #FFF7E5; --t5-fg: #FFF7E5;
  --shadow-sheet: 0 -12px 32px rgba(0, 0, 0, 0.45); --shadow-key: 0 10px 20px rgba(0, 0, 0, 0.35);
}

/* ---------- Lavstimuli: flad scene uden mærke, glød, skygger, tasteløft, ikoner og bevægelse ---------- */
html.lowstim { --glow: transparent; }
html.lowstim .icon,
html.lowstim .brand,
html.lowstim .launch-logo,
html.lowstim .disc { display: none; }
html.lowstim .screen,
html.lowstim .launch { background: var(--stage2); }
html.lowstim .stage { background: none !important; }
html.lowstim .sheet,
html.lowstim .card,
html.lowstim .back-card,
html.lowstim .btn,
html.lowstim .option,
html.lowstim .chip label { box-shadow: none !important; }
html.lowstim .option,
html.lowstim .chip label { border-color: var(--lip); }
html.lowstim .tab[aria-current="page"] .tab-pill { background: none; }
html.lowstim .tab[aria-current="page"] span:last-child { text-decoration: underline; text-underline-offset: 0.25em; }

/* ---------- Reduceret bevægelse (system eller testleder) og lavstimuli: 0 animation ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
html.reduce-motion *, html.reduce-motion *::before, html.reduce-motion *::after,
html.lowstim *, html.lowstim *::before, html.lowstim *::after {
  animation: none !important; transition: none !important; scroll-behavior: auto !important;
}
html.reduce-motion .btn:active, html.reduce-motion .option:active,
html.lowstim .btn:active, html.lowstim .option:active { transform: none; }

/* ---------- Typografi og tekststørrelse ---------- */
html {
  font-size: 106.25%;              /* 17 px brødtekst */
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
@media (hover: none) and (pointer: coarse) {
  @supports (font: -apple-system-body) {
    html:not(.text-150):not(.text-200) { font: -apple-system-body; }
  }
}
html.text-150 { font-size: 159.375%; }
html.text-200 { font-size: 212.5%; }

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--stage2);
  color: var(--text);
  font-family: var(--font);
  line-height: 1.5;
}

/* Overskrifter = brødtekst + fast tillæg: samme størrelse ved 17 px, men vokser ikke 3× ved AX5 */
h1, h2 { line-height: 1.2; text-wrap: balance; }
h1 { font-size: calc(1rem + 10.2px); font-weight: 700; margin: 0.25rem 0 0.75rem; letter-spacing: -0.01em; }
h1:focus { outline: none; }
h2 { font-size: calc(1rem + 1.7px); margin: 1.75rem 0 0.5rem; }
p { margin: 0 0 0.75rem; max-width: var(--measure); }

.lead { color: var(--text-muted); }
.muted { color: var(--text-muted); }
.small { font-size: 0.9rem; }
.eyebrow { margin: 0 0 0.35rem; font-size: 0.9rem; font-weight: 600; color: var(--text-muted); }

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.stage :focus-visible { outline-color: var(--focus-stage); }
.stage .card :focus-visible { outline-color: var(--focus); }

/* Ikke-tekstlig geometri: min(X rem, Y px) med Y ≥ X·17 – uændret ved normal tekst, loft ved store størrelser */
.icon { width: min(1.5rem, 32px); height: min(1.5rem, 32px); flex: none; }

/* ---------- Ramme ---------- */
.device {
  position: relative;
  max-width: 430px;
  margin: 0 auto;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  background: var(--stage2);
}
#app { flex: 1; display: flex; flex-direction: column; }

@media (min-width: 600px) and (min-height: 700px) {
  body { background: #E9E4DF; }
  .device {
    margin: 24px auto;
    height: min(844px, calc(100vh - 48px));
    min-height: 0;
    border-radius: 28px;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15), 0 18px 40px rgba(0, 0, 0, 0.18);
    overflow: hidden;
  }
  #app { overflow-y: auto; }
}

/* ---------- Skærm = plum-scene + creme-ark ---------- */
.screen {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
  background: linear-gradient(180deg, var(--stage1), var(--stage2));
  color: var(--on-stage);
  animation: fade var(--dur) ease-out;
}
@keyframes fade { from { opacity: 0; } to { opacity: 1; } }

.stage { position: relative; padding: 0 var(--gutter) min(3rem, 64px); }
.stage.grow { flex: 1 0 auto; display: flex; flex-direction: column; }
.screen.is-full .stage { padding-bottom: 0; }
.stage h1 { font-size: calc(1rem + 12.75px); line-height: 1.15; margin: 1rem 0 0.4rem; }
.stage .lead { color: var(--on-stage-2); margin: 0; }
.stage .eyebrow { color: var(--on-stage-2); margin: 1rem 0 0.25rem; font-size: 1rem; }
.stage .eyebrow + h1 { margin-top: 0; }

.sheet {
  position: relative;
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
  margin-top: max(-2rem, -40px);
  padding: min(1.5rem, 32px) var(--gutter) 0;
  border-radius: min(1.9rem, 40px) min(1.9rem, 40px) 0 0;
  background: var(--bg);
  color: var(--text);
  box-shadow: var(--shadow-sheet);
}
.stage.grow + .sheet { flex: 0 0 auto; }   /* scenen giver luften, arket holdes kompakt ved tommelfingeren */

.proto-tag {
  margin: 0 auto;
  max-width: none;
  padding: calc(env(safe-area-inset-top) + 0.5rem) 0 0.25rem;
  font-size: 0.8rem;
  color: var(--on-stage-2);
  text-align: center;
}

.g1-hotspot {
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 180px;
  height: calc(env(safe-area-inset-top) + 2rem);
  padding: 0; border: 0; background: transparent; opacity: 0;
  z-index: 5;
}

/* ---------- Opstartsidentitet: vises kun indtil appen er klar – ingen minimumsvisning ---------- */
.launch {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle at 50% 46%, var(--glow), transparent 56%), linear-gradient(180deg, var(--stage1), var(--stage2));
}
.launch-logo { width: min(62vw, 240px); height: auto; filter: drop-shadow(0 10px 18px rgba(10, 0, 10, 0.35)); }

/* ---------- 1.1 Nu: scenen er identitetens sted (én glød) ---------- */
.screen-nu .stage { text-align: center; background: radial-gradient(circle at 50% 46%, var(--glow), transparent 56%); }
.nu-hero { margin: auto 0; display: flex; flex-direction: column; align-items: center; padding: 1rem 0; }
.nu-hero .lead { font-size: calc(1rem + 2.04px); line-height: 1.45; max-width: 18em; margin-top: 0.5rem; }
.brand {
  display: block;
  width: min(8rem, 160px);   /* loft: logoet må ikke blive bredere end skærmen ved AX5 */
  height: auto;
  filter: drop-shadow(0 10px 18px rgba(10, 0, 10, 0.35));
  animation: brand-in 250ms ease-out both;   /* (pt) – én indgang, 0 ved reduceret bevægelse/lavstimuli */
}
@keyframes brand-in { from { opacity: 0; transform: scale(0.96); } to { opacity: 1; transform: none; } }
.stage h1.nu-title { font-size: calc(1rem + 27.2px); line-height: 1.1; margin: 0.75rem 0 0; }

/* ---------- Topbjælke på scenen: kapsler med tekst ---------- */
.topbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: min(0.5rem, 10px); padding-top: 0.25rem; }
.nav-btn {
  display: inline-flex;
  align-items: center;
  gap: min(0.35rem, 8px);
  min-height: var(--tap);
  padding: 0.25rem min(1.05rem, 22px) 0.25rem min(0.7rem, 16px);
  border: 0;
  border-radius: 999px;
  background: var(--cap);
  color: var(--on-stage);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}
.nav-btn.nav-end { padding: 0.25rem min(0.7rem, 16px) 0.25rem min(1.05rem, 22px); }

/* ---------- Indhold og handlinger ---------- */
.content { padding: 0 0 0.5rem; }
.actions {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: min(1rem, 20px);
  padding: min(1rem, 20px) 0 calc(min(1.25rem, 24px) + env(safe-area-inset-bottom));
}
.screen.has-tabbar .actions { padding-bottom: min(1rem, 20px); }
.stage .actions { gap: min(0.6rem, 12px); padding-top: min(1.5rem, 32px); }

/* ---------- Knapper: taster med løft. Plum på arket, rosa på scenen ---------- */
.btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: min(0.6rem, 12px);
  width: 100%;
  min-height: min(3.3rem, 64px);
  padding: min(0.7rem, 16px) min(1.4rem, 28px);
  border: 1.5px solid transparent;
  border-radius: min(1.2rem, 24px);
  font: inherit;
  font-weight: 650;
  line-height: 1.25;
  cursor: pointer;
  transition: transform 80ms, box-shadow 80ms, background-color var(--dur);
}
.btn-primary {
  min-height: min(4.5rem, 88px);
  margin-bottom: 5px;         /* plads til tasteløftet */
  border-radius: min(1.4rem, 28px);
  font-size: calc(1rem + 5.1px);
  font-weight: 700;
  background: var(--accent);
  color: var(--on-accent);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.16), 0 5px 0 var(--accent-lip), var(--shadow-key);
}
.btn-primary:active { transform: translateY(4px); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.16), 0 1px 0 var(--accent-lip); }
.stage .btn-primary {
  background: var(--blush);
  color: var(--on-blush);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 5px 0 var(--blush-lip), 0 14px 26px rgba(10, 2, 10, 0.3);
}
.stage .btn-primary:active { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 1px 0 var(--blush-lip); }
.btn-split { justify-content: space-between; flex-wrap: wrap; text-align: left; }
.btn .tag { font-size: 1rem; font-weight: 700; padding: 0.2rem 0.75rem; border-radius: 999px; background: rgba(44, 13, 50, 0.12); }

.btn-secondary { background: transparent; color: var(--text); border-color: var(--accent); }
.btn-secondary .icon { color: var(--accent); }
.btn-secondary:active { background: var(--accent-soft); }
.stage .btn-secondary { color: var(--on-stage); border-color: var(--on-stage-2); }
.stage .btn-secondary:active { background: var(--cap); }

.btn-tertiary {
  width: auto;
  min-height: var(--tap);
  align-self: center;
  padding: 0.25rem 1rem;
  background: transparent;
  color: inherit;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.28em;
}
.btn:disabled { opacity: 0.45; cursor: not-allowed; transform: none; }

/* ---------- Valg som taster: 2-kolonne-fliser med ikon (1.2), ellers rækker ---------- */
.options { list-style: none; margin: 0; padding: 0; display: grid; gap: min(0.85rem, 18px) min(0.75rem, 16px); grid-template-columns: minmax(0, 1fr); }
.options.tiles { grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr)); }
.option {
  display: flex;
  align-items: center;
  gap: min(0.85rem, 18px);
  width: 100%;
  height: 100%;
  min-height: min(3.75rem, 72px);
  margin: 0;
  padding: min(0.8rem, 16px) min(1rem, 20px);
  border: 1px solid var(--edge);
  border-radius: min(1.3rem, 26px);
  background: var(--surface);
  box-shadow: 0 4px 0 var(--lip);
  color: var(--text);
  font: inherit;
  font-weight: 650;
  line-height: 1.25;
  text-align: left;
  cursor: pointer;
  transition: transform 80ms, box-shadow 80ms, background-color var(--dur);
}
.option:active { transform: translateY(3px); box-shadow: 0 1px 0 var(--lip); }
.options li { padding-bottom: 4px; }
.tiles .option { padding-left: min(0.85rem, 18px); padding-right: min(0.85rem, 18px); flex-direction: column; align-items: flex-start; justify-content: space-between; min-height: min(6.8rem, 132px); }
.tiles li:last-child:nth-child(odd) { grid-column: 1 / -1; }
.tiles li:last-child:nth-child(odd) .option { flex-direction: row; align-items: center; justify-content: flex-start; min-height: min(3.75rem, 72px); }
.disc { display: grid; place-items: center; flex: none; width: min(2.6rem, 52px); height: min(2.6rem, 52px); border-radius: 50%; background: var(--accent-soft); color: var(--accent); }
.option.is-selected { border: 2px solid var(--accent); background: var(--accent-soft); font-weight: 800; }
.option.is-selected .disc { background: var(--surface); }

/* ---------- Chips (radioknapper) som små taster ---------- */
.chips { border: 0; margin: 0 0 1.25rem; padding: 0; min-width: 0; }
.chips legend { padding: 0; margin-bottom: 0.6rem; font-weight: 700; }
.chip-row { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.chip { position: relative; padding-bottom: 3px; }
.chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.chip label {
  display: inline-flex;
  align-items: center;
  min-height: var(--tap);
  padding: min(0.5rem, 10px) min(1.15rem, 24px);
  border: 1px solid var(--edge);
  border-radius: min(1rem, 20px);
  background: var(--surface);
  box-shadow: 0 3px 0 var(--lip);
  font-weight: 600;
  cursor: pointer;
}
.chip input:checked + label {
  border: 2px solid var(--accent);
  background: var(--accent-soft);
  font-weight: 800;          /* valgt vises også uden farve: fed tekst + tykkere kant */
}
.chip input:focus-visible + label { outline: 3px solid var(--focus); outline-offset: 3px; }

/* ---------- Kortbunken (1.6) og handlingskortet (1.7) på scenen ---------- */
.screen-16 .stage { background: radial-gradient(circle at 50% 38%, var(--glow), transparent 58%); }
.stack { margin: auto 0; padding: min(1rem, 20px) 0; }
.card {
  position: relative;
  z-index: 2;
  padding: min(1.4rem, 28px) min(1.4rem, 28px) min(0.6rem, 12px);
  border-radius: min(1.65rem, 36px);
  background: var(--surface);
  color: var(--text);
  box-shadow: var(--shadow-card);
}
.card h1.suggestion { font-size: calc(1rem + 22.95px); font-weight: 700; line-height: 1.1; letter-spacing: -0.01em; margin: 0; }
.card h1.suggestion.is-long { font-size: calc(1rem + 10.2px); line-height: 1.2; }
.back-card {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: calc(100% - min(1.75rem, 36px));
  min-height: min(4.75rem, 92px);
  margin: calc(-1 * min(1.65rem, 36px)) auto 0;   /* følger kortets hjørne, så bunken passer sammen */
  padding: min(2.1rem, 44px) min(1rem, 20px) min(0.8rem, 16px);
  border: 1.5px solid var(--back-edge);
  border-radius: min(1.4rem, 28px);
  background: var(--back);
  color: var(--text);
  font: inherit;
  font-weight: 700;
  box-shadow: 0 10px 24px rgba(10, 2, 10, 0.25);
  cursor: pointer;
}
.back-card .icon { color: var(--accent); }
.back-card:active { background: var(--accent-soft); }

.task-list { margin-top: 1rem; }
.task-list ol { margin: 0.25rem 0 0; padding-left: 1.4rem; }
.card .chips { margin: 1rem 0 0.5rem; }

.note {
  margin: 1rem 0 0;
  padding: 0.8rem 1rem;
  border-left: 4px solid var(--accent);
  border-radius: 0.75rem;
  background: var(--surface);
  color: var(--text);
}
.stage .note { background: var(--cap); color: var(--on-stage); border-left-color: var(--blush); }
.screen-nu .sheet .note { margin: 0 0 0.25rem; }

.field {
  display: block;
  width: 100%;
  min-height: 6rem;
  margin-top: 1rem;
  padding: 0.75rem;
  border: 1px solid var(--border-strong);
  border-radius: 0.9rem;
  background: var(--bg);
  color: var(--text);
  font: inherit;
  resize: vertical;
}
.field::placeholder { color: var(--text-muted); opacity: 1; }

details.why { margin-top: 1.4rem; border-top: 1px solid var(--edge); }
details.why summary {
  list-style: none;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-height: var(--tap);
  font-weight: 600;
  cursor: pointer;
}
details.why summary::-webkit-details-marker { display: none; }
details.why summary .icon { width: min(1.35rem, 28px); height: min(1.35rem, 28px); color: var(--accent); }
details.why p { margin: 0 0 0.75rem; color: var(--text-muted); }

/* ---------- Tidsbjælke (1.7) ---------- */
.timebar {
  height: 0.875rem;
  margin: 1.25rem 0 0.25rem;
  border: 1px solid var(--border-strong);
  border-radius: 999px;
  background: var(--surface-2);
  overflow: hidden;
}
.timebar-fill { width: 0; height: 100%; background: var(--accent); border-radius: 999px; }
.time-left { color: var(--text-muted); margin: 0.5rem 0 0; }

.check-row { display: flex; align-items: center; gap: 0.6rem; min-height: var(--tap); }
.check-row input { width: 1.35rem; height: 1.35rem; margin: 0; accent-color: var(--accent); }
.card .check-row { margin: 0.5rem 0 0.25rem; }

/* ---------- 1.8 Afslutning ---------- */
.screen-end .stage h1 { font-size: calc(1rem + 17px); margin-top: 1.5rem; }

/* ---------- Bundnavigation i arket ---------- */
.tabbar {
  position: sticky;
  bottom: 0;
  display: flex;
  flex-wrap: wrap;            /* ved store tekster: flere rækker med hele ord i stedet for ord delt over mange linjer */
  gap: 0.25rem;
  margin: 0 calc(-1 * var(--gutter));
  padding: 0.5rem 0.5rem calc(0.4rem + env(safe-area-inset-bottom));
  border-top: 1px solid var(--edge);
  background: var(--bg);
}
.tab {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  min-height: min(3.25rem, 64px);
  padding: 0.25rem;
  border: 0;
  background: transparent;
  color: var(--text-muted);
  font: inherit;
  font-size: 0.8rem;
  font-weight: 500;
  cursor: pointer;
}
.tab-pill { display: grid; place-items: center; width: min(3.3rem, 64px); height: min(1.9rem, 40px); border-radius: 1rem; }
.tab[aria-current="page"] { color: var(--text); font-weight: 700; }   /* aktiv vises også uden farve: fed tekst + flade */
.tab[aria-current="page"] .tab-pill { background: var(--accent-soft); color: var(--accent); }
/* Ved store tekststørrelser (skærmen er under 18 × brødteksten bred) klæber fanerne ikke længere til bunden,
   så de ikke dækker en stor del af skærmen. Ved normal tekst er de uændret sticky. */
.screen { container: screen / inline-size; }
@container screen (max-width: 18em) {
  .tabbar { position: static; }
}

/* ---------- Situation 2: Community (2.1 feed, 2.2 opslag, 2.9 informationsside) ---------- */
/* Kort scene + creme-ark som læseflade. Informationskortet er en flad, rolig flade med venstrekant og kildelinje;
   opslagene er tråde med tasteløft. Forskellen bæres af form + tekst (ikoner skjules i lavstimuli). Aldrig rødt. */
.feed, .replies { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: min(1rem, 20px); }
.feed { padding-bottom: min(1rem, 20px); }
.feed > li { padding-bottom: 4px; }   /* plads til tasteløftet */
.post-card, .info-card { position: relative; padding: min(0.9rem, 18px) min(1.1rem, 22px); }
.post-card {
  border: 1px solid var(--edge);
  border-radius: min(1.3rem, 26px);
  background: var(--surface);
  box-shadow: 0 4px 0 var(--lip);
  transition: transform 80ms, box-shadow 80ms;
}
.post-card:has(.card-link:active) { transform: translateY(3px); box-shadow: 0 1px 0 var(--lip); }
.info-card {
  border-left: min(0.3rem, 6px) solid var(--lip);
  border-radius: min(0.5rem, 10px);
  background: var(--surface-2);
}
.card-title { margin: min(0.4rem, 8px) 0 0; font-size: calc(1rem + 1.7px); }
.card-link {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: var(--tap);
  padding: 0;
  border: 0;
  background: none;
  color: var(--text);
  font: inherit;
  font-weight: 700;
  line-height: 1.25;
  text-align: left;
  cursor: pointer;
}
.card-link::after { content: ''; position: absolute; inset: 0; border-radius: min(1.3rem, 26px); }   /* hele kortet er trykfladen */
.card-link:focus-visible { outline: none; }
.card-link:focus-visible::after { outline: 3px solid var(--focus); outline-offset: 3px; }

/* Hensigtsmærket: tekst i en kapsel (ikke kun farve) */
.intent {
  display: inline-block;
  max-width: 100%;
  padding: min(0.2rem, 4px) min(0.75rem, 14px);
  border: 1px solid var(--accent);
  border-radius: min(1rem, 20px);
  background: var(--accent-soft);
  color: var(--text);
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.3;
}
.stage .intent { margin-top: 1rem; border-color: var(--on-stage-2); background: var(--cap); color: var(--on-stage); font-size: 1rem; }
.stage .intent + h1 { margin-top: min(0.6rem, 12px); }

.kind { display: inline-flex; align-items: center; gap: min(0.4rem, 8px); color: var(--text); font-weight: 650; }
.kind .icon { width: min(1.25rem, 26px); height: min(1.25rem, 26px); color: var(--accent); }
.card-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.1rem min(0.75rem, 14px); font-size: 0.9rem; color: var(--text-muted); }
.post-card .card-meta { margin-top: min(0.2rem, 4px); }
.source-line { margin: min(0.2rem, 4px) 0 0; font-size: 0.9rem; color: var(--text-muted); }
.empty { padding: 0.25rem 0 1rem; }
.empty p { margin-bottom: 1rem; font-weight: 600; }

/* 2.2 Opslag */
.kind-block { margin-bottom: 1rem; }
.kind-sub { margin: min(0.15rem, 3px) 0 0; font-size: 0.9rem; color: var(--text-muted); }
.reply-head { display: flex; flex-wrap: wrap; align-items: center; gap: min(0.15rem, 3px) min(0.5rem, 9px); }
.alias { font-weight: 650; }
.more-btn {
  display: inline-grid;
  place-items: center;
  min-width: var(--tap);
  min-height: var(--tap);
  padding: 0 min(0.5rem, 10px);
  border: 1px solid var(--lip);
  border-radius: 999px;
  background: transparent;
  color: var(--text);
  font: inherit;
  font-size: calc(1rem + 5px);
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}
.more-btn:active { background: var(--accent-soft); }
.post-body { margin: 0.75rem 0 0; }
.replies-title { margin: 1.5rem 0 0.75rem; }
.reply-text { margin: min(0.25rem, 5px) 0 0; }

/* 2.9 Informationsside */
.kind-stage { margin: 1rem 0 0.25rem; }
.stage .kind { color: var(--on-stage-2); }
.stage .kind .icon { color: inherit; }
.kind-stage + h1 { margin-top: 0; }
.source-block { margin: 1.25rem 0 1rem; padding: min(0.8rem, 16px) min(1rem, 20px); border-left: min(0.3rem, 6px) solid var(--lip); border-radius: min(0.5rem, 10px); background: var(--surface-2); }
.source-block p { margin: 0; font-size: 0.9rem; }

/* 2.2 → 2.3: hensigten som knap (tekst + spørgsmålsikon; ikonet skjules i lavstimuli, kanten og teksten bliver) */
.intent-btn {
  display: inline-flex;
  align-items: center;
  gap: min(0.45rem, 9px);
  min-height: var(--tap);
  font-family: inherit;
  line-height: 1.3;
  text-align: left;
  cursor: pointer;
}
.intent-btn span { min-width: 0; max-width: 100%; }
.intent-btn .icon { width: min(1.2rem, 24px); height: min(1.2rem, 24px); }
.stage .intent-btn:active { background: rgba(255, 247, 229, 0.22); }

/* 2.3: nederste ark (native modal dialog). Ingen animation; loft på højden og intern rulning ved store tekster */
.sheet-dialog {
  position: fixed;
  inset: auto 0 0 0;
  width: 100%;
  max-width: 430px;
  max-height: 85vh;
  max-height: 85dvh;
  margin: 0 auto;
  padding: min(1.5rem, 32px) var(--gutter) calc(min(1.25rem, 24px) + env(safe-area-inset-bottom));
  overflow-y: auto;
  border: 0;
  border-radius: min(1.9rem, 40px) min(1.9rem, 40px) 0 0;
  background: var(--bg);
  color: var(--text);
  box-shadow: var(--shadow-sheet);
}
.sheet-dialog::backdrop { background: rgba(20, 4, 18, 0.55); }
.sheet-dialog h2 { margin: 0 0 0.75rem; min-width: 0; overflow-wrap: break-word; hyphens: manual; }
.sheet-dialog h2:focus { outline: none; }
.sheet-text { margin: 0.75rem 0 0; }
.sheet-actions { margin-top: min(1.25rem, 24px); }

/* 2.4 Svarfelt */
.screen-reply .field { min-height: 8rem; margin-top: 0; }

/* Store tekststørrelser og lavstimuli for situation 2 */
.intent, .kind span, .card-title, .card-link, .alias { min-width: 0; overflow-wrap: break-word; hyphens: manual; }
.kind, .card-link span { min-width: 0; max-width: 100%; }   /* flex-elementer må ikke blive bredere end linjen, så et langt ord kan deles */
html.lowstim .post-card { box-shadow: none; border-color: var(--lip); }
html.lowstim .sheet-dialog { box-shadow: none; }
html.reduce-motion .post-card:has(.card-link:active),
html.lowstim .post-card:has(.card-link:active) { transform: none; }

/* ---------- R1: Balance-feed 2.1 (spec §4, D5–D11) ----------
   Flade rækker med hårlinjer: monogram | person → hensigt → titel → "Personlig erfaring · svar". Viden-båndet er en tonet flade
   med venstrekant og uden person (B2). Rum-linjen åbner Rum-panelet (native modal dialog fra venstre). */
.screen-feed { --av: min(2.25rem, 44px); }
.screen-feed .feed { gap: 0; padding-bottom: min(0.5rem, 10px); }
.screen-feed .feed > li { padding-bottom: 0; }
.screen-feed .post-card {
  display: grid;
  grid-template-columns: var(--av) minmax(0, 1fr);
  column-gap: min(0.75rem, 14px);
  padding: min(0.8rem, 15px) 0;
  border: 0;
  border-bottom: 1px solid var(--edge);
  border-radius: 0;
  background: none;
  box-shadow: none;
  transition: background-color 80ms;
}
.screen-feed .feed > li:last-child .post-card { border-bottom: 0; }
.screen-feed .post-card:has(.card-link:active) { transform: none; box-shadow: none; background: var(--accent-soft); }
.screen-feed .card-link::after { border-radius: 0; }
.post-main { min-width: 0; }
.avatar {
  display: grid;
  place-items: center;
  width: var(--av);
  height: var(--av);
  border-radius: 50%;
  background: var(--tb);
  color: var(--tf);
  box-shadow: inset 0 0 0 1px var(--av-ring);
  font-size: calc(var(--av) * 0.44);
  font-weight: 750;
  line-height: 1;
}
.tone-1 { --tb: var(--t1-bg); --tf: var(--t1-fg); }
.tone-2 { --tb: var(--t2-bg); --tf: var(--t2-fg); }
.tone-3 { --tb: var(--t3-bg); --tf: var(--t3-fg); }
.tone-4 { --tb: var(--t4-bg); --tf: var(--t4-fg); }
.tone-5 { --tb: var(--t5-bg); --tf: var(--t5-fg); }
.person { display: flex; flex-wrap: wrap; align-items: center; gap: min(0.2rem, 4px) min(0.5rem, 9px); margin: 0; min-height: calc(var(--av) * 0.6); line-height: 1.3; }
.person .alias { font-size: 0.9rem; font-weight: 700; }
.screen-feed .person .intent { padding: 1px min(0.55rem, 10px); border-color: var(--intent-edge); font-size: 0.8rem; font-weight: 650; }
.screen-feed .post-card .card-title { margin: min(0.15rem, 3px) 0 0; text-wrap: pretty; }
.screen-feed .sheet { padding-top: min(0.75rem, 14px); }
.screen-feed .post-card .card-meta { margin-top: 0; gap: 0 min(0.4rem, 7px); font-size: 0.8rem; }
.screen-feed .post-card .kind { font-weight: 500; color: var(--text-muted); gap: min(0.3rem, 6px); }
.screen-feed .post-card .kind .icon { width: min(0.95rem, 20px); height: min(0.95rem, 20px); }

/* Viden-båndet: kompakt, men tydeligt en anden indholdstype; kildelinjen diskret i båndet (D7) */
.screen-feed .info-card { margin: min(0.6rem, 12px) 0 min(0.25rem, 5px); padding: 0; border: 0; background: none; }
.info-link {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: min(0.5rem, 10px);
  width: 100%;
  min-height: var(--tap);
  padding: min(0.45rem, 9px) min(0.75rem, 14px);
  border-left: min(0.3rem, 6px) solid var(--lip);
  border-radius: min(0.55rem, 10px);
  background: var(--surface-2);
  font-weight: 650;
}
.info-link::after { display: none; }
.info-link:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.info-link:active { background: var(--accent-soft); }
.info-top { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 0 min(0.35rem, 6px); font-size: 0.75rem; font-weight: 700; color: var(--text-muted); line-height: 1.35; }
.info-top .icon { width: min(1rem, 20px); height: min(1rem, 20px); color: var(--accent); }
.info-link .source-line { margin: 0 0 0 auto; font-size: inherit; font-weight: 500; }
.info-title { grid-column: 1; grid-row: 2; font-size: 0.95rem; line-height: 1.3; }
.info-link > .icon { grid-column: 2; grid-row: 2; width: min(1.2rem, 24px); height: min(1.2rem, 24px); color: var(--text-muted); }

/* Rum-linjen: diskret på arket (indholdsniveau), under overskriften */
.room-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 min(0.5rem, 9px);
  width: 100%;
  min-height: var(--tap);
  margin: 0 0 min(0.1rem, 2px);
  padding: 0 2px;
  border: 0;
  border-bottom: 1px solid var(--edge);
  background: none;
  color: var(--text);
  font: inherit;
  font-size: 0.9rem;
  text-align: left;
  cursor: pointer;
}
.room-line b { font-weight: 750; }
.room-now { min-width: 0; overflow-wrap: break-word; }
.room-change { display: inline-flex; align-items: center; gap: 2px; margin-left: auto; font-size: 0.85rem; color: var(--text-muted); }
.room-change .icon { width: min(1.1rem, 22px); height: min(1.1rem, 22px); }
.room-line:active { background: var(--accent-soft); }

/* Rum-ikoner (ikonstil B): streg i plum/rosa og få bløde Skumring-flader. Skjules i lavstimuli som alle ikoner */
.room-icon { width: min(1.35rem, 26px); height: min(1.35rem, 26px); stroke: var(--accent); --ik-soft: var(--accent-soft); --ik-acc: var(--blush); --ik-alt: var(--surface-2); }
.room-icon .f-soft { fill: var(--ik-soft); }
.room-icon .f-acc { fill: var(--ik-acc); }
.room-icon .f-alt { fill: var(--ik-alt); }
.room-icon .s-acc { stroke: var(--ik-acc); }

/* Rum-panelet: fra venstre, over en dæmpet baggrund; kort glid, 0 bevægelse ved reduceret bevægelse og lavstimuli */
.drawer {
  position: fixed;
  inset: 0 auto 0 max(0px, calc((100vw - 430px) / 2));
  width: min(86vw, 340px);
  max-width: none;
  height: 100vh;
  height: 100dvh;
  max-height: none;
  margin: 0;
  padding: calc(env(safe-area-inset-top) + min(0.75rem, 14px)) min(1rem, 20px) calc(min(1.5rem, 28px) + env(safe-area-inset-bottom));
  overflow-y: auto;
  border: 0;
  border-radius: 0 min(1.6rem, 32px) min(1.6rem, 32px) 0;
  background: var(--bg);
  color: var(--text);
  box-shadow: 12px 0 32px rgba(20, 4, 18, 0.28);
}
.drawer::backdrop { background: rgba(20, 4, 18, 0.55); }
.drawer[open] { animation: drawer-in 200ms ease-out; }
@keyframes drawer-in { from { transform: translateX(-100%); } to { transform: none; } }
.drawer-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: min(0.5rem, 10px); }
.drawer-head h2 { margin: 0; min-width: 0; font-size: calc(1rem + 3.4px); overflow-wrap: break-word; }
.drawer-head h2:focus { outline: none; }
.btn-close {
  display: inline-flex;
  align-items: center;
  gap: min(0.35rem, 6px);
  min-width: var(--tap);
  min-height: var(--tap);
  padding: 0 min(0.85rem, 16px) 0 min(0.6rem, 12px);
  border: 1px solid var(--border-strong);
  border-radius: 999px;
  background: transparent;
  color: var(--text);
  font: inherit;
  font-weight: 650;
  cursor: pointer;
}
.btn-close .icon { width: min(1.2rem, 24px); height: min(1.2rem, 24px); }
.btn-close:active { background: var(--accent-soft); }
.room-list { list-style: none; margin: min(0.75rem, 14px) 0 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px; }   /* sporet må krympe under det længste ord (AX5) */
.room-sec { margin: min(1.25rem, 24px) 0 min(0.35rem, 6px); padding-left: min(0.75rem, 12px); font-size: 0.8rem; font-weight: 700; color: var(--text-muted); overflow-wrap: break-word; }
.room-sec + .room-list { margin-top: 0; }
.room-item {
  display: flex;
  align-items: center;
  gap: min(0.75rem, 14px);
  width: 100%;
  min-height: var(--tap);
  padding: min(0.35rem, 6px) min(0.75rem, 12px);
  border: 0;
  border-radius: min(0.75rem, 14px);
  background: transparent;
  color: var(--text);
  font: inherit;
  font-weight: 400;
  line-height: 1.3;
  text-align: left;
  cursor: pointer;
}
.room-item > span:last-child { min-width: 0; overflow-wrap: break-word; }   /* et ord bredere end panelet (AX5) brydes i stedet for vandret rulning */
.room-item .mark { flex: none; width: min(0.75rem, 14px); height: min(0.75rem, 14px); border: 2px solid var(--lip); border-radius: 50%; }
.room-item[aria-current="true"] { background: var(--accent-soft); font-weight: 800; }   /* aktivt rum: fyldt prik + fed + flade, ikke kun farve */
.room-item[aria-current="true"] .mark { background: var(--accent); border-color: var(--accent); }
.room-item[aria-current="true"] .room-icon { --ik-alt: var(--bg); }
.room-item:active { background: var(--accent-soft); }

/* Store tekster: monogrammet over personlinjen (aliasset får hele bredden), "Skift rum" på egen linje */
@container screen (max-width: 18em) {
  .screen-feed .post-card { grid-template-columns: minmax(0, 1fr); row-gap: min(0.3rem, 6px); }
  .screen-feed .post-card .card-meta > span[aria-hidden] { display: none; }
  .screen-feed .post-card .card-meta { flex-direction: column; align-items: flex-start; }
  .info-link .source-line { margin-left: 0; }
  .info-link > .icon { display: none; }
  .room-change { margin-left: 0; }
  .drawer { width: min(94vw, 480px); }
  .room-item { flex-wrap: wrap; row-gap: min(0.2rem, 4px); padding-top: min(0.5rem, 10px); padding-bottom: min(0.5rem, 10px); }
  .room-item > span:last-child { flex-basis: 100%; }   /* navnet får hele panelets bredde under prik og ikon */
}

html.lowstim .avatar { background: transparent; color: var(--text); box-shadow: none; border: 1px solid var(--lip); }
html.lowstim .drawer { box-shadow: none; }
html.lowstim .screen-feed .person .intent { border-color: var(--lip); }

/* ---------- R2: 2.2 tråd i Balance-retningen (D11) ---------- */
/* Trådstarteren som person på scenen (monogram + alias + rum), derefter hensigt og titel. Arket: "Personlig erfaring"
   med "…", brødtekst, diskret svaroverskrift med hårlinje og en flad svarliste med én rolig trådlinje (kun ét niveau, ingen kort). */
.screen-post { --av: min(2.25rem, 44px); }
.screen-post .op-who { display: flex; align-items: center; gap: min(0.6rem, 12px); margin-top: min(0.75rem, 14px); }
.screen-post .op-who .avatar { flex: none; box-shadow: inset 0 0 0 1px var(--av-ring), 0 0 0 2px rgba(255, 247, 229, 0.22); }
.op-line { min-width: 0; line-height: 1.3; }   /* div, ikke p: etiket uden automatisk orddeling */
.op-line .alias { display: block; color: var(--on-stage); font-weight: 700; }
.op-room { display: block; font-size: 0.85rem; color: var(--on-stage-2); }
.op-room .room-icon { width: min(1rem, 20px); height: min(1rem, 20px); margin: 0 min(0.3rem, 6px) 0 0; vertical-align: -0.2em; stroke: var(--on-stage);
  --ik-soft: rgba(242, 142, 162, 0.30); --ik-acc: var(--blush); --ik-alt: rgba(214, 190, 228, 0.62); }
.screen-post .stage .intent { margin-top: min(0.75rem, 14px); }
.op-head { display: flex; align-items: flex-start; justify-content: space-between; gap: min(0.5rem, 10px); }
.op-head .kind-block { min-width: 0; margin-bottom: 0; }
.op-head .more-btn { flex: none; }
.screen-post .replies-title { display: flex; align-items: center; gap: min(0.6rem, 12px); margin: min(1.25rem, 24px) 0 min(0.75rem, 14px);
  font-size: 0.9rem; font-weight: 700; color: var(--text-muted); }
.screen-post .replies-title::after { content: ""; flex: 1; height: 1px; background: var(--edge); }   /* hårlinje, dekorativ */
.screen-post .replies { gap: 0; }
.screen-post .reply { position: relative; display: grid; grid-template-columns: var(--av) minmax(0, 1fr); column-gap: min(0.75rem, 14px);
  padding: 0 0 min(1rem, 18px); }
/* Én fælles, rolig trådlinje fra monogram til næste svar; dekorativ (rækkefølgen bæres af listen) */
.screen-post .replies > li:not(:last-child) .reply::before { content: ""; position: absolute; left: calc(var(--av) / 2 - 1px);
  top: calc(var(--av) + 5px); bottom: 5px; width: 2px; border-radius: 1px; background: var(--edge); }
.reply-main { min-width: 0; }
.screen-post .reply-head { min-height: var(--av); }
.screen-post .reply-head .more-btn { margin-left: auto; }
.op-tag { display: inline-block; padding: 0 min(0.5rem, 9px); border: 1px solid var(--border-strong); border-radius: 999px;
  font-size: 0.75rem; font-weight: 700; line-height: 1.5; }   /* "Trådstarter": tekst i kapsel, ikke kun farve */
.screen-post .reply-text { margin-top: 1px; }

/* Store tekster: monogram over personlinjen, trådlinjen bliver en fælles venstrekant */
@container screen (max-width: 18em) {
  .screen-post .op-who { flex-direction: column; align-items: flex-start; gap: min(0.3rem, 6px); }
  .screen-post .reply { grid-template-columns: minmax(0, 1fr); row-gap: min(0.3rem, 6px); padding-left: min(0.75rem, 14px); border-left: 2px solid var(--edge); }
  .screen-post .replies > li .reply::before { display: none; }
  .screen-post .reply-head { min-height: 0; }
}

/* ---------- R3: Community-navigation på scenen (D5, D11) ---------- */
/* Fem punkter med ikon (ikonstil B, dekorativt) + ord. Aktivt punkt: fed tekst + lys flade + streg under (ikke kun farve).
   Opret er en handling (rosa plus-cirkel), aldrig aktiv. Ingen badges, tal eller prikker. */
.cnav { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 2px; margin: min(0.35rem, 6px) calc(-1 * var(--gutter) + 6px) 0;
  --ik-soft: rgba(242, 142, 162, 0.30); --ik-acc: var(--blush); --ik-alt: rgba(214, 190, 228, 0.62); }
.cn { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; min-width: 0;
  min-height: min(3.4rem, 64px); padding: 5px 2px 8px; border: 0; border-radius: min(0.8rem, 14px); background: none; color: var(--on-stage-2);
  font: inherit; font-size: 0.74rem; font-weight: 550; line-height: 1.15; text-align: center; cursor: pointer; }
.cn > span:last-child { max-width: 100%; overflow-wrap: break-word; hyphens: manual; }
.cn .nav-icon { width: min(1.55rem, 30px); height: min(1.55rem, 30px); }
.nav-icon .f-soft { fill: var(--ik-soft); }
.nav-icon .f-acc { fill: var(--ik-acc); }
.nav-icon .f-alt { fill: var(--ik-alt); }
.cn[aria-current="page"] { background: var(--cap); color: var(--on-stage); font-weight: 800; }
.cn[aria-current="page"]::after { content: ""; position: absolute; left: 50%; bottom: 3px; width: 22px; height: 3px; margin-left: -11px;
  border-radius: 2px; background: var(--blush); }
.cn:active { background: rgba(255, 247, 229, 0.18); }
.cn.create { color: var(--on-stage); }
.cn.create .plus { display: grid; place-items: center; width: min(1.75rem, 34px); height: min(1.75rem, 34px); border-radius: 50%;
  background: var(--blush); color: var(--on-blush); }
.cn.create .plus .nav-icon { width: min(1.1rem, 22px); height: min(1.1rem, 22px); stroke-width: 2.2; }
/* Pladsholdere (Følger, Socialt, Nyt): rolig besked på arket */
.screen-dest .content { flex: 1 0 auto; }   /* kort indhold: bundnavigationen står stadig nederst */
.dest { padding: min(0.5rem, 10px) 2px min(1rem, 20px); }
.dest h2 { margin: 0 0 0.4rem; }
.dest p { margin: 0 0 0.4rem; max-width: var(--measure); }
/* Store tekster: to kolonner (tre rækker), ordene bliver stående */
@container screen (max-width: 18em) {
  .cnav { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: min(0.4rem, 8px); }
}
html.lowstim .cn.create .plus { display: none; }
html.lowstim .cn[aria-current="page"]::after { background: var(--on-stage); }

html.lowstim .screen-post .op-who .avatar { box-shadow: none; color: var(--on-stage); border-color: var(--on-stage-2); }

/* ---------- Testleder-oversigt (G1): neutral side, ikke en del af deltagerens app ---------- */
.g1 { flex: 1; padding: calc(env(safe-area-inset-top) + 1.25rem) 1.25rem 2rem; background: var(--bg); color: var(--text); }
.g1-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.4rem; }
.g1-link {
  width: 100%;
  min-height: var(--tap);
  padding: 0.5rem 0.875rem;
  border: 1px solid var(--border-strong);
  border-radius: 0.7rem;
  background: var(--surface);
  color: var(--text);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.setting { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: var(--tap); }
.setting select {
  min-height: 2.75rem;
  padding: 0.25rem 0.5rem;
  border: 1px solid var(--border-strong);
  border-radius: 8px;
  background: var(--surface);
  color: var(--text);
  font: inherit;
}

/* ---------- Store tekststørrelser: ombryd i stedet for vandret overløb ---------- */
/* Ingen automatisk orddeling med bindestreg nogen steder (Gate R-fund R1, 01.10.2026): et ord, der ikke kan være på linjen,
   flyttes helt til næste linje. break-word deler kun et ord, der er bredere end hele linjen (uundgåeligt, uden bindestreg).
   Global regel på roden (arves af alt); -webkit-hyphens for ældre Safari/iOS. Bløde orddelinger (\u00AD) i data er manuelle. */
html { -webkit-hyphens: manual; hyphens: manual; }
.option, .option span, .chip label, .btn, .btn span, .nav-btn span, .tab span, .back-card span, h1, p, legend, summary {
  min-width: 0;
  overflow-wrap: break-word;
  hyphens: manual;
}
.tab { min-width: min-content; }   /* en fane er mindst så bred som sit længste ord; ellers brydes rækken */
.tab span, .option span { max-width: 100%; }   /* flex-elementer: lad break-word dele et ord, der er bredere end pladsen */
.tab-pill { max-width: 100%; }
.setting { flex-wrap: wrap; }
.setting select { max-width: 100%; }
