/* LederNord, screenshots 15.09.2026. Se DESIGN.md for proveniens. */
:root {
  --ln-blue:#23547b; --ln-green:#03bf62; --ln-green-readable:#007a40;
  --ln-white:#fff; --ln-paper:#f6f6f6; --ln-text:#333; --ln-muted:#606060;
  --ln-border:#d6dce0; --ln-font:'Avenir Next','Segoe UI',Arial,sans-serif;
  --blaek:var(--ln-text); --sekundaer:var(--ln-muted); --kant:var(--ln-border);
  --lys:var(--ln-paper); --accent:var(--ln-blue); --hvid:var(--ln-white);
}
body { font-family:var(--ln-font); }
h1,h2,h3 { font-weight:700; letter-spacing:-.035em; }
h1 { max-width:24ch; line-height:1.2; }
h2 { line-height:1.3; }
.prototype { background:var(--ln-paper); border-bottom:1px solid var(--kant); color:var(--sekundaer); }
.prototype span:first-child { color:var(--ln-blue); font-weight:700; }
aside { padding-top:44px; }
.logo { position:relative; align-self:flex-start; color:var(--ln-blue); font-family:'Arial Narrow',var(--ln-font); font-size:32px; letter-spacing:-1.3px; }
.logo span { font-weight:700; }
.logo::after { content:none; }
.logo img { display:block; width:198px; max-width:100%; height:78px; object-fit:cover; object-position:center 40%; }
.logo small { margin-top:10px; font-family:var(--ln-font); font-size:10px; letter-spacing:1.8px; color:var(--sekundaer); }
.hold { margin-top:34px; }
.hold strong { color:var(--ln-blue); }
nav a { border-radius:0; border-left:4px solid transparent; }
nav a[aria-current=page] { background:var(--ln-blue); border-left-color:var(--ln-green); }
.bundnav a:hover,.tilbage,.sektionstitel a { color:var(--ln-blue); }
.overlinje { color:var(--ln-blue); font-weight:700; font-size:.75rem; letter-spacing:.12em; }
.intro { max-width:65ch; margin-bottom:34px; }
button,.knap { background:var(--ln-green-readable); border-color:var(--ln-green-readable); border-radius:2px; padding:12px 20px; font-weight:700; }
button:hover,.knap:hover { background:var(--ln-blue); border-color:var(--ln-blue); color:var(--hvid); }
button.sekundaer,.knap.sekundaer { color:var(--ln-blue); border-color:var(--ln-blue); }
button.sekundaer:hover,.knap.sekundaer:hover { background:var(--ln-paper); }
:focus-visible { outline:3px solid var(--ln-blue); outline-offset:4px; box-shadow:0 0 0 3px var(--ln-white); }
.naeste { background:var(--ln-blue); border-radius:0; padding:36px; }
.naeste .overlinje,.naeste .dato { color:var(--ln-white); }
.naeste h2 { font-size:clamp(1.7rem,2.4vw,2.1rem); }
.naeste .knap { background:var(--ln-green); color:#102d20; border-color:var(--ln-green); }
.naeste .knap:hover { background:var(--ln-white); border-color:var(--ln-white); color:var(--ln-blue); }
.to-kolonner:has(>.naeste) { gap:0; grid-template-columns:minmax(0,1.5fr) minmax(240px,1fr); }
.forbered { background:var(--ln-paper); padding:36px; }
.forbered h2 { font-size:1.45rem; }
.forbered p { margin-bottom:14px; }
.note { background:var(--ln-paper); border-left-color:var(--ln-green-readable); }
.kortliste { background:var(--ln-blue); padding:28px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.modulkort { background:var(--ln-paper); border:0; grid-template-columns:minmax(0,1fr); gap:16px; padding:26px; align-content:start; align-items:start; }
.nummer { font-size:1rem; font-weight:700; color:var(--ln-blue); }
.nummer::before { content:'MODUL '; font-size:.75rem; letter-spacing:.08em; }
.modulkort h2 { font-size:1.35rem; }
.modulkort .knap { grid-column:1; justify-self:start; margin-top:6px; }
.type,.maerke,input,textarea,select,dialog,#status:not(:empty) { border-radius:0; }
.type { color:var(--ln-blue); background:var(--ln-paper); font-weight:700; }
.maerke { background:var(--ln-paper); color:var(--ln-blue); }
.sektion { margin-top:40px; }
.sektionstitel { margin-bottom:6px; }
th { background:var(--ln-paper); color:var(--ln-blue); }
.login { padding:32px; background:var(--ln-paper); border-top:5px solid var(--ln-blue); }
.login-fejl { margin:24px 0; padding:18px; background:var(--ln-white); border:2px solid var(--ln-blue); border-left-width:6px; }
.login-fejl strong { display:block; color:var(--ln-blue); }
.login-fejl p { margin:8px 0; }
.personligt-link { overflow-wrap:anywhere; }
.luk { background:var(--ln-white); color:var(--ln-blue); }
#status:not(:empty) { background:var(--ln-blue); box-shadow:none; border-left:4px solid var(--ln-green); }
@media(max-width:1100px) {
  .to-kolonner:has(>.naeste) { grid-template-columns:minmax(0,1fr); }
  .kortliste { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:680px) {
  aside { padding-top:24px; }
  .logo { font-size:29px; margin-bottom:15px; }
  .logo::after { top:36px; }
  .hold { margin-top:9px; }
  nav a { border-left:0; border-bottom:3px solid transparent; }
  nav a[aria-current=page] { border-bottom-color:var(--ln-green); }
  .naeste,.forbered { padding:25px; }
  .kortliste { padding:16px; gap:16px; }
  .modulkort { padding:22px; }
  .login { margin:24px auto; padding:22px; }
}

/* Deltagerforbedringer, 17.09.2026. Brandlaget indlæses sidst. */
.spring { left:12px; top:-160px; color:var(--ln-blue); background:var(--ln-white); border:2px solid var(--ln-blue); }
.spring:focus { top:8px; }
main:focus { outline:none; }
.materialetekst { flex:1; min-width:0; }
.materialeraekke { align-items:flex-start; }
.materialeraekke audio { display:block; width:min(100%,480px); min-width:0; margin:14px 0 8px; }
.materialeraekke .lydhjaelp { max-width:62ch; font-size:.875rem; }
.materialeraekke>a { flex-shrink:0; }
.filter { row-gap:16px; }
.nulstil { padding:12px 0; color:var(--ln-blue); }
.praktik { margin:16px 0 24px; }
.praktik p { margin:4px 0; }
.naeste .praktik { font-size:.9375rem; }
.naeste h2 { color:var(--ln-white); }
.kontakt { padding:24px; background:var(--ln-paper); border-left:3px solid var(--ln-green-readable); }
.kontakt p:last-child { margin-bottom:0; }
.kontakt-placeholder { color:var(--ln-muted); }
.bundnav .logout { background:transparent; border:0; color:var(--ln-blue); padding:8px 0; min-height:44px; text-decoration:underline; text-underline-offset:4px; font-weight:400; }
.bundnav .logout:hover { color:var(--ln-text); }
.hold { overflow-wrap:normal; word-break:normal; hyphens:auto; }
.hold strong { overflow-wrap:break-word; }
.naeste h2,.modulkort h2 { word-break:normal; hyphens:auto; overflow-wrap:break-word; }
@media(max-width:680px) {
  .ramme { display:block; }
  aside { padding:12px 20px 8px; border-right:0; border-bottom:1px solid var(--ln-border); }
  .identitet { display:flex; align-items:center; gap:16px; margin-bottom:10px; }
  .logo { margin:0; flex:0 0 130px; }
  .logo img { width:130px; height:52px; }
  .logo small { display:none; }
  .hold { margin:0; padding:0; border:0; display:block; min-width:0; }
  .hold strong { font-size:.875rem; line-height:1.4; }
  nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:3px; }
  nav a { padding:11px 3px; font-size:.875rem; text-align:center; border-left:0; border-bottom:3px solid transparent; }
  nav .workshops-nav { grid-column:1 / -1; }
  nav a[aria-current=page] { border-bottom-color:var(--ln-green); }
  .bundnav { display:flex; align-items:center; flex-wrap:wrap; gap:4px 20px; margin:0; padding:4px 0 0; font-size:.875rem; }
  .bundnav>a { padding:10px 0; }
  .bundnav p { display:none; }
  .bundnav form { margin-left:auto; }
  .admin-link { margin:8px 0 0; }
  .prototype { padding:6px 16px; display:block; font-size:.75rem; }
  main { padding:24px 20px 60px; }
  .tilbage { margin-bottom:12px; }
  .intro { margin-bottom:24px; }
  .login { margin:12px auto; }
}
@media(max-width:680px) {
  .filter { display:block; }
  .filter>div { margin-bottom:16px; }
  .nulstil { display:inline-block; margin-left:12px; }
  .materialeraekke { display:block; }
  .materialeraekke>.knap { margin-top:14px; }
  .sektionstitel { flex-wrap:wrap; }
  .materialeraekke audio { width:100%; }
}
@media(max-width:360px) {
  aside { padding-inline:14px; }
  .identitet { gap:10px; }
  .logo { flex-basis:110px; }
  .logo img { width:110px; height:44px; }
  .hold strong { font-size:.8125rem; }
  nav a { font-size:.8125rem; }
}

/* Tal med NordAI: samme brand og enkel, tilgængelig samtaleflade. */
[hidden] { display:none !important; }
.nord-nav { display:block; margin-top:10px; padding:12px; color:var(--ln-blue); border:1px solid var(--ln-border); }
.nord-nav[aria-current=page] { background:var(--ln-blue); color:var(--ln-white); }
.nord-nav small { float:right; font-size:.75rem; font-weight:400; }
.nordai { max-width:960px; }
.nordai h1 { overflow-wrap:normal; }
.nord-besked,.nord-tale { padding:24px; background:var(--ln-paper); border-left:3px solid var(--ln-green-readable); margin:24px 0; }
.nord-besked h2,.nord-tale h2 { font-size:1.5rem; }
.nord-modul { margin:28px 0 18px; }
.nord-modul>div { display:flex; align-items:center; gap:12px; }
.nord-modul select { min-width:0; flex:1; }
.nord-modul button { flex-shrink:0; }
.nord-grundlag { font-size:.9375rem; margin-bottom:28px; }
.nord-grundlag p { margin-bottom:5px; }
.nord-tabs { display:flex; gap:8px; border-bottom:1px solid var(--ln-border); padding-bottom:12px; }
.nord-tabs button { flex:1; }
.nord-startere { display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.nord-startere button { font-size:.875rem; font-weight:400; text-transform:none; }
.nord-samtale { margin:24px 0; border:1px solid var(--ln-border); padding:20px; max-height:480px; overflow-y:auto; }
#nord-empty { color:var(--ln-muted); margin:0; }
.nord-replik { padding:14px 18px; margin:0 0 14px; background:var(--ln-paper); border-left:3px solid var(--ln-blue); }
.nord-replik[data-role=user] { background:var(--ln-white); border-left-color:var(--ln-green-readable); }
.nord-replik>p { white-space:pre-wrap; overflow-wrap:anywhere; margin:6px 0; }
.nord-replik strong { font-size:.8125rem; color:var(--ln-blue); }
.nord-replik a { font-size:.875rem; }
.nord-send { display:flex; align-items:center; gap:16px; margin:12px 0 20px; }
.nordai textarea { resize:vertical; width:100%; min-width:0; }
.nord-privat,.nord-lille { color:var(--ln-muted); font-size:.875rem; line-height:1.55; }
.nord-privat { border-top:1px solid var(--ln-border); padding-top:20px; margin-top:28px; }
#nord-error { color:#882c25; background:#fff1ef; padding:16px; margin-top:16px; }
.nordai button:disabled { opacity:.5; cursor:not-allowed; }
#nord-audio { width:100%; margin-top:12px; }
.nord-kildetekst { white-space:normal; overflow-wrap:anywhere; }
@media(max-width:680px) { .nord-nav { margin:4px 0; padding:9px 12px; font-size:.875rem; } }
@media(max-width:680px) {
 .nordai h1 { font-size:2rem; }
 .nord-modul>div { display:block; }
 .nord-modul button { margin-top:8px; }
 .nord-tabs { flex-direction:column; }
 .nord-startere { display:grid; }
 .nord-besked,.nord-tale { padding:18px; }
 .nord-samtale { padding:10px; }
 .nord-replik { padding:10px; }
 .nord-tale .handlinger { flex-direction:column; align-items:stretch; }
 .nord-send { flex-wrap:wrap; }
}

/* NordAI som chatvindue: åbnes fra holdet og fylder skærmen på mobil. */
body:has(.nord-widget) main { padding-bottom:120px; }
.nord-launcher { position:fixed; bottom:max(20px,env(safe-area-inset-bottom)); right:max(24px,env(safe-area-inset-right)); z-index:40; display:flex; align-items:center; gap:10px; min-height:52px; background:var(--ln-blue); border-color:var(--ln-blue); }
.nord-dialog-open { overflow:hidden; }
.nord-dialog-open .nord-launcher { visibility:hidden; }
dialog.nord-dialog { position:fixed; inset:auto 24px 20px auto; margin:0; padding:0; width:min(460px,calc(100vw - 48px)); height:min(760px,calc(100dvh - 40px)); max-width:none; max-height:none; overflow:hidden; border:1px solid var(--ln-blue); border-radius:2px; background:var(--ln-white); color:var(--ln-text); }
.nord-dialog[open] { display:flex; flex-direction:column; }
.nord-dialog::backdrop { background:#102d202b; }
.nord-dialog-header { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-shrink:0; padding:16px 18px; background:var(--ln-blue); color:var(--ln-white); border-bottom:3px solid var(--ln-green); }
.nord-dialog-header h2 { font-size:1.25rem; margin:0; letter-spacing:-.02em; }
.nord-dialog-header p { font-size:.8125rem; margin:3px 0 0; }
#nord-dialog-close { padding:0; width:44px; min-width:44px; height:44px; font-size:28px; line-height:1; background:transparent; border:1px solid #ffffff80; color:var(--ln-white); font-weight:400; }
#nord-dialog-close:focus-visible { outline-color:white; }
#nord-frame { width:100%; flex:1; min-height:0; border:0; background:var(--ln-white); }
.nord-embedded { margin:0; height:100dvh; overflow:hidden; }
.nord-embedded .nordai { display:flex; flex-direction:column; height:100%; max-width:none; min-height:0; }
.nord-context { display:flex; align-items:start; gap:8px; padding:12px 16px 8px; border-bottom:1px solid var(--ln-border); flex-shrink:0; }
.nord-context details { flex:1; min-width:0; }
.nord-context summary { cursor:pointer; font-size:.875rem; font-weight:600; padding:10px 0; line-height:1.4; overflow-wrap:anywhere; }
.nord-context details[open] { max-height:28dvh; overflow:auto; }
.nord-context p { font-size:.8125rem; margin:10px 0; }
.nord-context #nord-reset { padding:0; min-width:44px; height:44px; font-size:26px; font-weight:400; border-color:var(--ln-border); }
.nord-context .nord-modul { margin:4px 0; }
.nord-context .nord-modul label { font-size:.875rem; }
.nord-context .nord-modul>div { display:block; }
.nord-context .nord-modul select { font-size:1rem; padding:8px; }
.nord-context .nord-modul button { padding:8px 12px; margin-top:8px; }
.nord-source-note { flex-shrink:0; padding:10px 16px; margin:0; font-size:.8125rem; line-height:1.45; color:var(--ln-muted); background:var(--ln-paper); }
.nord-embedded .nord-samtale { flex:1; min-height:70px; max-height:none; margin:0; border:0; padding:18px 16px; overscroll-behavior:contain; }
.nord-welcome { font-size:1.2rem; font-weight:700; color:var(--ln-text); margin-bottom:8px; }
.nord-embedded #nord-empty p:not(.nord-welcome) { font-size:.9375rem; line-height:1.5; }
.nord-embedded .nord-startere { display:flex; gap:8px; margin-top:16px; }
.nord-embedded .nord-startere button { text-align:left; padding:9px 12px; font-size:.875rem; min-height:44px; }
.nord-embedded .nord-replik { padding:12px; margin:0 0 16px; line-height:1.5; }
.nord-embedded .nord-replik[data-role=user] { margin-left:24px; border:1px solid var(--ln-border); border-left:3px solid var(--ln-green-readable); }
.nord-compose { flex-shrink:0; padding:10px 16px 12px; border-top:1px solid var(--ln-border); max-height:65%; overflow:auto; }
.nord-embedded .nord-tabs { display:flex; flex-direction:row; border:0; gap:8px; padding:0; margin-bottom:10px; }
.nord-embedded .nord-tabs button { display:flex; align-items:center; justify-content:center; gap:7px; font-size:.875rem; padding:8px 10px; min-height:44px; }
.nord-embedded .nord-tabs button:first-child { flex:0 0 auto; min-width:72px; }
.nord-input-label { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.nord-input-row { display:flex; align-items:end; gap:8px; border:1px solid var(--ln-border); padding:6px; }
.nord-input-row:focus-within { outline:2px solid var(--ln-blue); outline-offset:2px; }
.nord-embedded textarea { flex:1; resize:none; border:0; padding:6px; min-height:56px; height:64px; max-height:140px; line-height:1.5; outline:none; box-shadow:none; }
.nord-embedded #nord-send { width:44px; min-width:44px; height:44px; padding:0; font-size:26px; font-weight:400; }
.nord-embedded #nord-text-status { display:block; font-size:.8125rem; margin-top:5px; }
.nord-embedded #nord-text-status:empty { display:none; }
.nord-embedded #nord-error { margin:0 0 10px; padding:10px; font-size:.875rem; }
.nord-embedded #nord-voice .handlinger { display:flex; flex-direction:row; flex-wrap:wrap; gap:8px; margin:0; }
.nord-embedded #nord-voice button { font-size:.8125rem; padding:8px 10px; min-height:44px; }
.nord-embedded #nord-voice-status { font-size:.875rem; margin:10px 0; }
.nord-embedded #nord-audio { margin:0 0 6px; height:40px; }
.nord-data { font-size:.75rem; color:var(--ln-muted); line-height:1.5; margin-top:10px; }
.nord-data summary { cursor:pointer; padding:3px 0; }
.nord-data p { margin:10px 0; }
.nord-data[open] { max-height:24dvh; overflow:auto; }
@media(max-width:600px) {
 dialog.nord-dialog { inset:0; width:100%; height:100dvh; border:0; border-radius:0; padding-bottom:env(safe-area-inset-bottom); }
 .nord-launcher { bottom:max(14px,env(safe-area-inset-bottom)); right:16px; font-size:.875rem; padding:10px 14px; }
 .nord-dialog-header { padding:12px 16px; }
}
@media(prefers-reduced-motion:reduce) { .nord-widget * { scroll-behavior:auto; } }
@media print { .nord-widget { display:none; } }

/* Manuel afslutning af et hold: tydelig konsekvens før bekræftelse. */
.luk-advarsel { border-left:4px solid #882c25; background:#fff1ef; padding:20px 24px; max-width:780px; margin:24px 0; }
.luk-advarsel h2 { font-size:1.3rem; margin-top:0; }
.luk-form { max-width:680px; }
.luk-holdnavn { display:block; margin:6px 0 10px; overflow-wrap:anywhere; }
.luk-bekraeft { display:flex; gap:12px; align-items:flex-start; }
.luk-bekraeft input[type=checkbox] { width:22px; height:22px; flex:0 0 22px; margin-top:4px; }
.luk-bekraeft label { flex:1; }
button.luk-knap { background:#882c25; border-color:#882c25; color:#fff; white-space:normal; }
@media(max-width:600px) { .luk-advarsel { padding:16px; } .luk-form .handlinger { align-items:stretch; flex-direction:column; } }

/* Tomt program skal være læsbart på den blå programflade. */
.kortliste > .program-empty { color:#fff; padding:1rem; }

/* Deltagerimport: tabellen kan rulles uden at udvide siden. */
.import-table { max-width: 100%; overflow-x: auto; margin: 1rem 0; }
.import-table table { width: 100%; border-collapse: collapse; font-size: 1rem; }
.import-table th, .import-table td { padding: .7rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--ln-line, #d3dce2); overflow-wrap: anywhere; min-width: 6rem; }
.import-table th:first-child, .import-table td:first-child { min-width: 3rem; }
