/* ==========================================================================
   NERVE Finance — fladelag for GUIDET KUNDEOPRETTELSE (ny-kunde).
   Reglerne: ../../docs/UI-UX-STANDARD.md · grundlaget: ../design/nerve-finance-apple.css

   ⛔ ../design/*.css og *.js RETTES ALDRIG. De er ordret dem ADR-0005 hash-låste,
      og SH-18 skal kunne se at de ikke har flyttet sig. Alt hvad en flade har brug
      for ud over grundlaget, står i et fladelag som dette — additivt.

   § 1-9 er ORDRET den samme blok som kartotek.css, perioder.css, postkasser.css,
   regnskab.css og kladde.css bærer. Den er gentaget og ikke importeret, af den
   grund der står i kladde.css's hoved. Fladens EGNE dele står i § 10.

   ⚠ Og den er ikke valgfri: grundlaget sætter `body{display:grid;
     grid-template-rows:auto 1fr}` og definerer IKKE `.springlink`. Mangler
     reglen, bliver springlinket et in-flow grid-item, `header.top` skubbes ned i
     1fr-rækken, og `.app` mister sin — hele arbejdsfladen bliver ~0 px høj.
     Det skete for rykker.html og bank.html 20-08-2026, og for fakturaoversigten
     28-08-2026 (Christian: »Nej, alt ligger jo stadig helt nede i bunden?«).
     Vagt: tests/ui/test_springlink_reglen.py.

   ⚠ Tokennavnene er grundlagets: --line, --line-2, --chrome, --win, --txt,
     --txt-2, --txt-3, --skygge, --graa-flade, --pos, --warn, --neg. Der findes
     INGEN --linje, --flade eller --txt-1. Uden en reserve bliver en ukendt
     custom property invalid at computed-value time, og HELE deklarationen
     forsvinder — tavst, uden en fejl i konsollen.

   ⛔ MOTOREN (`_nykunde.js`) TEGNER OGSÅ INDE I EN RUDE PÅ FAKTURAFLADEN.
      Alle regler nedenfor der hører motoren til, er derfor rodfæstet i `.nyk`
      — motorens egen rod — og ALDRIG i et id eller i `.prkrop`. En regel bundet
      til denne sides skelet ville tegne rigtigt her og forsvinde dér, og det er
      præcis den fejlform § 14 siger kun et skærmbillede finder.
      `faktura.html` skal indlæse DENNE fil for at ruden ser rigtig ud.
   ========================================================================== */

/* ── 1. Fokus og spring-link ─────────────────────────────────────────────── */
:root { --fokus: #0059B3; --acc-tekst: #0059B3; --btn-flade: #0071E3; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) {
  --fokus: #6FB6FF; --acc-tekst: #6FB6FF; --btn-flade: #0060C9;
}}
:root[data-theme="dark"] { --fokus: #6FB6FF; --acc-tekst: #6FB6FF; --btn-flade: #0060C9; }

/* ⛔ KONTRASTRETTELSERNE FRA UI-UX-STANDARD § 3 — og de er MÅLT, ikke antaget.
   Grundlagets `--txt-3` (#8E8E93) er 3,3:1 mod kortets hvide flade. Målt i
   browseren 20-08-2026 på perioder-fladen FØR rettelsen:
       .prtab th 3,26 · .intet 3,26 · .feltnote 3,26 · .pille.aaben 4,40
   Alle fire under de 4,5:1 § 10 kræver. De er ikke pynt: kolonnehovedet er dét
   der siger om pillen er status eller momsdom, og `.intet` er tankestregen der
   betyder »ingen«.
   ⚠ Målt mod den REELLE baggrund (kortets `--chrome`), ikke mod ren hvid — en
     måling mod hvid lyver, når laget ovenpå er gennemsigtigt. */
:root { --txt-3: #65656A; --pos-tekst: #1A7A35; --warn-tekst: #8A5200; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) {
  --txt-3: #A0A0A6; --pos-tekst: #30D158; --warn-tekst: #FF9F0A;
}}
:root[data-theme="dark"] { --txt-3: #A0A0A6; --pos-tekst: #30D158; --warn-tekst: #FF9F0A; }

a:focus-visible,
button:focus-visible,
select:focus-visible,
input:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--fokus);
  outline-offset: 2px;
  border-radius: 7px;
}

.springlink {
  position: fixed; top: -60px; left: 12px; z-index: 200;
  padding: 8px 14px; border-radius: 0 0 10px 10px;
  background: var(--chrome); color: var(--txt); font-size: 13px; font-weight: 600;
  text-decoration: none; box-shadow: var(--skygge);
}
.springlink:focus { top: 0; }

.visuelt-skjult {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}

/* ── 2. Kroppen ──────────────────────────────────────────────────────────── */
/* `.view` er `overflow:hidden` i grundlaget — rulningen hører i en egen
   beholder, ellers klippes indholdet uden at nogen kan nå det. */
.prkrop {
  flex: 1; min-height: 0; overflow-y: auto;
  padding: 14px 18px 28px;
  display: flex; flex-direction: column; gap: 16px;
  max-width: 1180px;
}

.prkort {
  background: var(--chrome); box-shadow: var(--skygge);
  border-radius: 12px; padding: 15px 17px 17px;
}
.prkort h2 {
  margin: 0 0 10px; font-size: 13.5px; font-weight: 650; letter-spacing: .01em;
  display: flex; align-items: center; gap: 8px; color: var(--txt);
}
.prkort h2 .ic { width: 16px; height: 16px; color: var(--txt-3); }

.hjaelp {
  margin: 0 0 12px; font-size: 12.5px; line-height: 1.65;
  color: var(--txt-2); max-width: 74ch;
}
.tomtekst { color: var(--txt-3); font-size: 13px; margin: 0; }

/* ── 3. (Reserveret — regnskabsårsboksen bruges ikke her, blokken beholdes
       ordret så § -numrene svarer til perioder.css) ─────────────────────── */
.aarboks { font-size: 13px; line-height: 1.7; }
.aarvalg { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.aarvalg label { font-size: 12px; font-weight: 600; color: var(--txt-2); }
.aarvalg select {
  min-height: 44px; padding: 8px 11px;
  border: 1px solid var(--line); border-radius: 9px;
  background: var(--win); color: var(--txt);
  font: inherit; font-size: 13.5px; cursor: pointer;
}

/* ── 4. Piller ───────────────────────────────────────────────────────────── */
/* ⚠ Farve er ALDRIG eneste bærer af betydningen (UI-UX-STANDARD § 3, § 10):
   hver pille har både et ord og et ikon. Læses siden i gråtoner, eller af en
   der ikke skelner rød og grøn, står betydningen stadig. */
.pille {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 2px 9px; border-radius: 999px;
  font-size: 11.5px; font-weight: 600; letter-spacing: .01em;
  border: 1px solid var(--line); white-space: nowrap;
}
.pille .ic { width: 13px; height: 13px; }
/* ⚠ `--pos`/`--warn` er FLADE-farver. Som TEKST måler grundlagets grønne 4,4:1 i
   lyst tema — under grænsen. Kanten må gerne beholde den mættede farve; det er
   kun bogstaverne der skal være den mørkere variant (§ 3's egen sondring
   »accent som flade« kontra »accent som tekst«). */
.pille.aaben     { color: var(--pos-tekst);  border-color: var(--pos); }
.pille.spaerret  { color: var(--warn-tekst); border-color: var(--warn); }
.pille.lukket    { color: var(--txt-2); }
.pille.ikke_aktiv { color: var(--txt-3); }

/* ── 5. Tabellerne ───────────────────────────────────────────────────────── */
/* Brede tabeller ruller i deres EGEN beholder — siden må aldrig rulle vandret. */
.tabelrul { overflow-x: auto; }
.prtab { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.prtab th, .prtab td {
  padding: 7px 11px; text-align: left; vertical-align: middle;
  /* --line-2, som gittermotoren bruger til RÆKKE-skillere. */
  border-bottom: 1px solid var(--line-2); white-space: nowrap;
}
.prtab tr:last-child td { border-bottom: none; }
.prtab th {
  font-size: 11.5px; font-weight: 600; color: var(--txt-3);
  border-bottom: 1px solid var(--line);
}
.prtab td.tal, .prtab th.tal {
  text-align: right; font-variant-numeric: tabular-nums;
}
.prtab .tomraekke td { color: var(--txt-3); white-space: normal; padding: 16px 11px; }

.prtab tr.eraaben td { font-weight: 600; }
.prtab tr.eraaben td:first-child { box-shadow: inset 3px 0 0 var(--pos); }
.prtab tr.valgt td { background: var(--graa-flade); }
.prtab td.maaned { cursor: pointer; }

.advarseltal { color: var(--warn-tekst); font-weight: 600; }
.intet { color: var(--txt-3); }

/* ── 6. Handlinger ───────────────────────────────────────────────────────── */
.handling { margin-top: 15px; display: flex; align-items: center; gap: 13px; flex-wrap: wrap; }
.raekkehandling { display: flex; gap: 7px; flex-wrap: wrap; }

.prknap {
  min-height: 44px; padding: 0 18px;
  border-radius: 9px; border: 1px solid var(--line);
  background: var(--chrome); color: var(--txt);
  font: inherit; font-size: 13px; font-weight: 600; cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}
.prknap:hover { border-color: var(--txt-3); }
.prknap.primaer { background: var(--btn-flade); border-color: transparent; color: #fff; }
.prknap.primaer:hover { filter: brightness(1.06); }
.prknap[disabled] { opacity: .55; cursor: progress; }
/* ⚠ 32 px i rækken er UNDER de 44 px § 10 kræver — derfor gælder det kun når
   pegeredskabet er fint. På `pointer: coarse` vokser knappen tilbage til 44 px.
   Undtagelsen er afgrænset til dét, og den er skrevet ned frem for at blive
   opdaget. */
.prknap.lille { min-height: 32px; padding: 0 12px; font-size: 12px; }
@media (pointer: coarse) {
  .prknap.lille { min-height: 44px; padding: 0 16px; }
}

.svar { font-size: 12.5px; color: var(--txt-2); }
.svar.ok { color: var(--pos); }
.svar.fejl { color: var(--neg); }
.svar:empty { display: none; }

/* ── 7. Udfoldede rækker (årsags-/detaljeboksen) ─────────────────────────── */
/* ⛔ Ingen `confirm()` og ingen `prompt()`. En browserdialog kan ikke bære en
   forklaring, kan ikke tælle tegn, og kan ikke vise hvad man er ved at gøre.
   Boksen folder sig ud UNDER rækken den hører til. */
.aarsagsraekke td { background: var(--graa-flade); white-space: normal; }
.aarsagsboks { display: flex; flex-direction: column; gap: 8px; padding: 4px 0 6px; }
.aarsagsboks .forklaring {
  font-size: 12.5px; color: var(--txt-2); line-height: 1.6; max-width: 74ch; margin: 0;
}
.aarsagsboks .linje { display: flex; gap: 10px; align-items: flex-start; flex-wrap: wrap; }
.aarsagsboks input {
  flex: 1 1 320px; min-height: 44px; padding: 8px 11px;
  border: 1px solid var(--line); border-radius: 9px;
  background: var(--chrome); color: var(--txt); font: inherit; font-size: 13.5px;
}
.aarsagsboks input::placeholder { color: var(--txt-3); }
.aarsagsboks .taeller { font-size: 11.5px; color: var(--txt-3); }
.aarsagsboks .taeller.nok { color: var(--pos); }

/* ── 8. Formularen ───────────────────────────────────────────────────────── */
.felter {
  display: grid; gap: 13px 18px;
  grid-template-columns: repeat(auto-fit, minmax(255px, 1fr));
}
.felt { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.felt label { font-size: 12px; font-weight: 600; color: var(--txt-2); }
.valgfri { font-weight: 400; color: var(--txt-3); }
.felt input {
  /* 44 px trykflade: mindstemålet for en berøringsflade. */
  min-height: 44px; padding: 8px 11px;
  border: 1px solid var(--line); border-radius: 9px;
  background: var(--win); color: var(--txt);
  font: inherit; font-size: 13.5px; min-width: 0;
}
.feltnote { font-size: 11.5px; line-height: 1.6; color: var(--txt-3); margin: 0; }
.feltnote b { color: var(--txt-2); }

/* Fejlen står VED feltet, ikke i toppen af siden. */
.feltfejl { font-size: 11.5px; color: var(--neg); margin: 0; }
.feltfejl:empty { display: none; }
.felt.fejl input { border-color: var(--neg); }

/* ── 9. Båndet der forklarer en manglende oplysning ──────────────────────── */
/* UI-UX-STANDARD § 9: ingen advarsler uden en handling. Et bånd der siger at
   noget ikke kan vises, skal sige hvad man kan gøre eller hvor man læser videre. */
.baand {
  display: flex; gap: 9px; align-items: flex-start;
  font-size: 12px; line-height: 1.6; color: var(--txt-2);
  border-left: 2px solid var(--warn); padding: 2px 0 2px 10px; margin: 0 0 12px;
  max-width: 78ch;
}
.baand .ic { width: 14px; height: 14px; color: var(--warn); flex: none; margin-top: 2px; }

@media (prefers-reduced-motion: reduce) {
  .prknap { transition: none; }
}


/* ══ 10. FLADENS EGET SKELET — kun tilføjelser ═════════════════════════════ */

/* ⚠ MÅLT FÆLDE, ikke en formodning (UI-UX-STANDARD § 14): grundlagets `.app` er
   `grid-template-columns: auto auto minmax(0,1fr)` — rail + TRÆ + arbejde.
   Denne flade har intet træ, så `main.work` lander i den content-sizede kolonne
   2 og bliver en smal stribe i et bredt vindue (målt på kartoteket 22-08-2026:
   `.app` = 54px · 620px · 826px tom). Arbejdet skal spænde begge kolonner.
   Additiv regel — grundlaget står urørt.

   ⛔ VÆLGEREN ER AFGRÆNSET 10-09-2026, OG AFGRÆNSNINGEN ER SELVE RETTELSEN.
      Reglen stod som et bart `main.work { grid-column: 2 / -1 }`, altså for
      ETHVERT dokument der linker dette stilark — og fra 02-09-2026 (ADR-0047)
      linker `faktura.html` det, fordi »Ny kunde«-ruden genbruger motoren her.
      Fakturafladen HAR et træ. Arbejdsfladen blev derfor tvunget ind over
      træets kolonne, og de tre led i husets ramme holdt op med at stå ved
      siden af hinanden. MÅLT i browseren 10-09-2026: sidebjælken stoppede ved
      380 px og båndet begyndte UNDER den, i fuld bredde.

      Det er REGEL 5 punkt 2, ordret: en kur der gives videre uden sit
      forbehold, er en fejl ganget med antallet af flader. Forbeholdet her er
      »fladen har intet træ«, og det siges nu af vælgeren selv:
      `nav.rail + main.work` rammer kun når arbejdet følger UMIDDELBART efter
      rail'en — altså netop når der ikke står et træ imellem.

   ⚠ Rail'en indsættes af serveren (ADR-0013), så søskendeforholdet findes
     først i det leverede dokument. Derfor måles reglen i en browser og ikke i
     kilden: tests/ui/test_fakturamodul_i_rail.py. */
.app > nav.rail + main.work { grid-column: 2 / -1; }
.prkrop { width: 100%; }

/* Guiden er ÉN søjle med ét spørgsmål ad gangen. Den skal ikke være så bred at
   øjet skal vandre for at finde det ene felt der er i brug (§ 2's linjelængde). */
.nyk { max-width: 760px; }


/* ══ 11. MOTORENS EGNE DELE (`_nykunde.js`) ════════════════════════════════
   ⛔ ALT hernede er rodfæstet i `.nyk` og aldrig i et id. Motoren kan optræde
      TO gange på samme dokument (fladen her, og ruden på fakturafladen), og en
      id-vælger ville dels ramme forkert, dels — efter § 14's tredje fælde —
      kunne slå grundlagets `.skjult`. Der bruges derfor ingen `display`-regel
      på noget der kan skjules: motoren tegner sin tilstand HELT om i stedet for
      at vise og skjule (samme greb som kartotek.js's »svaret tegnes helt om«).
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 11a. Tilstand 1: ét felt ── */
/* Christian, 01-09-2026: »den del skal være meget simpelt«. Der er derfor
   ingen trin-liste, ingen »næste«, og ingen anden knap end den ene. */
.nyk-start { display: flex; flex-direction: column; gap: 12px; }
.nyk-linje { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; }
.nyk-nummer { flex: 1 1 260px; min-width: 0; }
/* ⛔ Et CVR-nummer er en IDENTIFIKATOR, ikke et beløb: ingen tusindtalspunktum
   (UI-UX-STANDARD § 5's afgrænsning). `tabular-nums` er alene for at cifrene
   står i lige kolonner mens man taster — det ændrer ingen ciffer. */
.nyk .nyk-cifre { font-variant-numeric: tabular-nums; letter-spacing: .04em; }
.nyk-land { flex: 0 0 190px; }

/* Vejen til det udenlandske nummer er DISKRET, ikke en fane: langt de fleste
   kunder er danske, og et valg man skal træffe før man har tastet noget, er et
   trin — netop dét guiden ikke skal have. */
.nyk-skift {
  align-self: flex-start;
  min-height: 44px; padding: 0 2px;
  border: none; background: none; cursor: pointer;
  font: inherit; font-size: 12.5px; font-weight: 600;
  color: var(--acc-tekst); text-decoration: underline;
  text-underline-offset: 3px;
}
.nyk-skift:hover { filter: brightness(1.1); }

/* ── 11b. Tilstand 2: opslaget kører ── */
/* Kort med vilje: opslaget tager ~1 sekund. En spinner der drejer i et sekund
   er uro; en rolig bjælke siger »der sker noget« uden at kræve opmærksomhed. */
.nyk-soeger {
  display: flex; align-items: center; gap: 12px;
  font-size: 13px; color: var(--txt-2);
  padding: 6px 0 2px;
}
.nyk-bjaelke {
  flex: 1 1 auto; height: 3px; min-width: 80px;
  border-radius: 999px; background: var(--line);
  overflow: hidden; position: relative;
}
.nyk-bjaelke::after {
  content: ""; position: absolute; inset: 0 auto 0 0;
  width: 35%; border-radius: 999px; background: var(--acc);
  animation: nyk-glid 1.15s ease-in-out infinite;
}
@keyframes nyk-glid {
  0%   { transform: translateX(-100%); }
  100% { transform: translateX(300%); }
}
/* § 10: `prefers-reduced-motion` respekteres. Bjælken bliver da et roligt,
   halvt udfyldt spor — den siger stadig at der arbejdes, den bevæger sig bare
   ikke. En indikator der forsvinder helt, ville lade siden se død ud. */
@media (prefers-reduced-motion: reduce) {
  .nyk-bjaelke::after { animation: none; width: 50%; }
}

/* ── 11c. Tilstand 3: kortet ── */
.nyk-hoved {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding-bottom: 11px; margin-bottom: 13px;
  border-bottom: 1px solid var(--line);
}
.nyk-navn {
  margin: 0; font-size: 15px; font-weight: 650; color: var(--txt);
  letter-spacing: -.01em; min-width: 0; overflow-wrap: anywhere;
}
/* Nummeret ved siden af navnet er identiteten — rå cifre, aldrig separeret. */
.nyk-cvrmaerke { font-size: 12px; color: var(--txt-3); font-variant-numeric: tabular-nums; }

/* Linjen der siger hvor meget der IKKE kom med. § 9: ingen advarsel uden en
   handling — teksten siger hvad man gør, ikke bare at noget mangler. */
.nyk-mangler {
  display: flex; gap: 9px; align-items: flex-start;
  font-size: 12.5px; line-height: 1.6; color: var(--txt-2);
  border-left: 2px solid var(--warn); padding: 2px 0 2px 10px;
  margin: 0 0 14px; max-width: 78ch;
}
.nyk-mangler .ic { width: 14px; height: 14px; color: var(--warn); flex: none; margin-top: 2px; }
.nyk-mangler.nyk-alt { border-left-color: var(--pos); }
.nyk-mangler.nyk-alt .ic { color: var(--pos); }

/* Felterne genbruger husets `.felter`/`.felt` fra § 8 — de er ikke tegnet om.
   Etiketten er her IMPLICIT (`<label>` om feltet), fordi motoren kan stå to
   gange på samme dokument og et `for=`/`id=`-par så ville pege forkert.
   ⛔ Det er ikke en slækkelse af § 10: implicit binding er den samme binding. */
.nyk-felter { margin-bottom: 4px; }
.nyk-bred { grid-column: 1 / -1; }

/* Tvungne felter mærkes ved etiketten, ikke med en stjerne uden forklaring.
   Gruppen ER tvungen: uden `gruppe_id` har kunden ingen samlekonto, og så kan
   der ikke bogføres på hende. Det står som ord ved feltet. */
.nyk-tvungen { font-weight: 600; color: var(--warn-tekst); }

/* Feltets herkomst: hentet eller tastet. Farve er ALDRIG eneste bærer (§ 10) —
   der står også et ord. */
.nyk-kilde { font-size: 11px; color: var(--txt-3); font-weight: 400; }

/* ── 11d. EU-registerets tre svar — det farligste sted i fladen ────────────
   ⛔ Der er TRE udfald, ikke to. Målt 01-09-2026 svarede Tyskland
      `MS_UNAVAILABLE` og Frankrig `MS_MAX_CONCURRENT_REQ`: registeret var nede,
      ikke nummeret forkert. Spanien svarede GYLDIGT med navnet »---«, fordi
      landet ikke deler navnet — et tomt navn er lovligt.

      Et nedbrud i Berlin må ALDRIG se ud som en kunde der snyder. Derfor har
      `nyk-ubesvaret` hverken rød farve, rød kant eller et kryds: den er
      NEUTRAL, med informationsikonet. Skriver nogen den om til `--neg`, er det
      ikke en farvejustering — det er en anklage mod en kunde der intet har
      gjort. Og kunden kan oprettes alligevel; der spærres intet. */
.pille.nyk-gyldig     { color: var(--pos-tekst);  border-color: var(--pos); }
.pille.nyk-ugyldig    { color: var(--warn-tekst); border-color: var(--warn); }
.pille.nyk-ubesvaret  { color: var(--txt-2);      border-color: var(--line); }
.pille.nyk-aktiv      { color: var(--pos-tekst);  border-color: var(--pos); }
.pille.nyk-ikkeaktiv  { color: var(--txt-3); }

/* Forklaringen under mærket — hvad man kan gøre. Uden den er mærket en
   advarsel uden en handling (§ 9). */
.nyk-viesnote { font-size: 11.5px; line-height: 1.6; color: var(--txt-3); margin: 4px 0 0; }
.nyk-viesnote b { color: var(--txt-2); }

/* ── 11e. Ruden på fakturafladen ──────────────────────────────────────────
   Samme motor, mindre plads. ⛔ Ingen felter fjernes i kompakt form: et felt
   der forsvinder når man opretter kunden inde fra fakturaen, er en kunde der
   fødes anderledes alt efter hvor man stod — og gruppen er netop den der ikke
   må kunne springes over. Det er kun luften der er mindre. */
.nyk-kompakt { max-width: none; }
.nyk-kompakt .prkort { box-shadow: none; padding: 0; background: none; }
.nyk-kompakt .felter { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 11px 14px; }
.nyk-kompakt .nyk-hoved { padding-bottom: 9px; margin-bottom: 11px; }

/* ── 11f. Svarlinjen ── */
.nyk-svar { font-size: 12.5px; line-height: 1.6; }
.nyk-svar:empty { display: none; }
.nyk-svar.ok { color: var(--pos-tekst); }
.nyk-svar.fejl { color: var(--neg); }

/* Den oprettede kunde — kvitteringen. § 9: statuslinjen bekræfter at det skete,
   men fladen skal også selv sige det, for ruden på fakturafladen har ingen
   statuslinje at bekræfte i. */
.nyk-kvittering { display: flex; flex-direction: column; gap: 10px; }

/* ── 11g. Etiketten er IMPLICIT — den omslutter feltet ─────────────────────
   ⛔ Motoren kan stå TO gange på samme dokument, og et `for=`/`id=`-par kan
      derfor ikke være unikt. Etiketten omslutter feltet i stedet; bindingen er
      den samme, og § 10's krav om at hvert felt har en etiket er opfyldt.

   ⚠ Formen kræver reglen nedenfor: `<label>` bliver ellers ét flex-barn der
     lægger etiket og felt på SAMME linje, og feltet mister sin fulde bredde.
     Husets § 8 sætter `.felt { display:flex; flex-direction:column; gap:5px }`
     — den arves ikke ned i labelet af sig selv. */
.nyk .felt label {
  display: flex; flex-direction: column; gap: 5px; min-width: 0;
  font-size: 12px; font-weight: 600; color: var(--txt-2);
}

/* Husets § 8 styler `.felt input`, men ikke `.felt select` — guiden har tre
   valglister (momszone, betalingsbetingelse, gruppe), og uden reglen står de
   som browserens egne, i en anden højde og en anden skrift end felterne ved
   siden af. 44 px er § 10's berøringsmål. */
.nyk .felt select {
  min-height: 44px; padding: 8px 11px;
  border: 1px solid var(--line); border-radius: 9px;
  background: var(--win); color: var(--txt);
  font: inherit; font-size: 13.5px; min-width: 0; cursor: pointer;
}

/* Bekræftelsesmærket sidder UNDER momsnummerfeltet, i feltets egen søjle. */
.nyk-vies { display: flex; flex-direction: column; gap: 2px; align-items: flex-start; }
.nyk-vies:empty { display: none; }

/* ═══════════════════════════════════════════════════════════════════════════
   § 12 · RUDEN PÅ FAKTURAFLADEN                          [ADR-0047, 02-09-2026]
   ═══════════════════════════════════════════════════════════════════════════

   Motoren monteres også inde i en `.modal` på `faktura.html`, og grundlagets
   rude er `max-width: 580px` (`nerve-finance-apple.css`) — smallere end guidens
   egne 760 px. Uden denne regel ville felterne klemmes eller bryde om, og
   brugeren ville se en anden skærm end på `ny-kunde.html`.

   ⛔ Reglen står HER og ikke i `ui/design/`: grundlaget er hash-låst af ADR-0005
      og rettes aldrig. Et fladelag må gøre sin egen rude bredere; det må ikke
      ændre alle andres.

   `max-height` + rulning i kroppen, fordi guidens tilstand 3 er høj: uden den
   ville »Opret kunde«-knappen kunne havne under skærmkanten på en bærbar, og en
   knap man ikke kan se, er en knap der ikke findes. */
.modal.modal-nykunde {
  max-width: 820px;
  width: 94%;
  max-height: 88vh;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.modal.modal-nykunde .modalkrop {
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
}
/* Guiden fylder ruden ud — den er ikke et indlejret kort med egen ramme.
   `.nyk` bærer sin egen luft; ruden skal ikke lægge en ekstra ramme udenom. */
.modal.modal-nykunde .nyk {
  width: 100%;
  max-width: none;
  border: none;
  box-shadow: none;
  padding: 0;
}
