/* GadgetLageret — navngivne komponenter (DESIGN-MANUAL.md §2, §9, §11, §12).
   Klassenavne er bevidst danske translitterationer af depot-motivet — ingen
   af dem kolliderer med spærrelisten (§17). */

/* ---------- Kategori-accent bindinger ---------- */
[data-cat="hverdags-tech"] { --cat-accent: var(--cat-hverdags-tech); }
[data-cat="gaming-setup"] { --cat-accent: var(--cat-gaming-setup); }
[data-cat="smart-hjem"] { --cat-accent: var(--cat-smart-hjem); }
[data-cat="gimmicks-gaver"] { --cat-accent: var(--cat-gimmicks-gaver); }
[data-cat="mystery-tech-box"] { --cat-accent: var(--cat-mystery-a); --cat-accent-2: var(--cat-mystery-b); }

/* ================= 11.1 Lastbroen ================= */
.lastbro-fastholder { position: sticky; top: 0; z-index: var(--z-lastbro); }

.demo-strip {
  background: var(--depot-steel);
  border-bottom: 1px solid var(--depot-line);
  padding: 0.5rem var(--gutter);
  display: flex; align-items: center; justify-content: center; gap: 0.6rem;
  font-size: var(--fs-xs);
  color: var(--fog);
  text-align: center;
  position: relative;
}
.demo-strip__luk {
  position: absolute; right: 0.75rem; top: 50%; transform: translateY(-50%);
  background: none; border: none; color: var(--fog); cursor: pointer; padding: 0.25rem;
}
.demo-strip__luk:hover { color: var(--paper); }

.lastbro {
  background: rgba(10, 14, 19, 0.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--depot-line);
  height: var(--lastbro-h);
  transition: height 200ms ease-out;
}
.lastbro.is-compact { height: var(--lastbro-h-compact); }
.lastbro--admin { height: var(--lastbro-h-compact); }

.lastbro__inner {
  height: 100%;
  display: flex;
  align-items: center;
  gap: 2rem;
}

.lastbro__mark {
  display: flex; align-items: center; gap: 0.55rem;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1.05rem;
  letter-spacing: 0.02em;
  white-space: nowrap;
  color: var(--paper);
}
.admin-badge {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--charge);
  border: 1px solid var(--depot-line);
  padding: 0.15rem 0.45rem;
  margin-left: 0.5rem;
}

.signal-prik {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--depot-line);
  flex-shrink: 0;
}
.signal-prik.is-live {
  background: var(--charge);
  animation: signal-puls 2s ease-in-out infinite;
}
@keyframes signal-puls {
  0%, 100% { box-shadow: 0 0 0 0 rgba(55, 214, 196, 0.55); }
  50% { box-shadow: 0 0 0 5px rgba(55, 214, 196, 0); }
}
@media (prefers-reduced-motion: reduce) { .signal-prik.is-live { animation: none; opacity: 0.9; } }

.lastbro__links {
  display: flex; align-items: center; gap: 0.25rem;
  flex: 1;
}
.lastbro__link {
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--fog);
  padding: 0.6rem 0.85rem;
  display: inline-flex; align-items: center; gap: 0.3rem;
  background: none; border: none; cursor: pointer;
  transition: color 150ms;
}
.lastbro__link:hover, .lastbro__link[aria-current="page"] { color: var(--paper); }
.lastbro__link[aria-current="page"] { position: relative; }
.lastbro__link[aria-current="page"]::after {
  content: ''; position: absolute; left: 0.85rem; right: 0.85rem; bottom: 0.1rem; height: 2px; background: var(--signal);
}
.lastbro__link .icon { transition: transform 150ms; }
.lastbro__link[aria-expanded="true"] .icon { transform: rotate(180deg); }

.kategori-udloeser-wrap, .soege-udloeser-wrap { position: relative; }

.lastbro__actions { display: flex; align-items: center; gap: 0.35rem; }
.lastbro__ikon-knap {
  position: relative;
  background: none; border: none; color: var(--paper); cursor: pointer;
  padding: 0.55rem; display: inline-flex;
  transition: color 150ms, background-color 150ms;
}
.lastbro__ikon-knap:hover { background: var(--depot-steel-raised); }

.niveau-ring {
  position: absolute; top: 2px; right: 2px;
  min-width: 15px; height: 15px; padding: 0 3px;
  border-radius: 50%;
  background: var(--charge); color: var(--depot-night);
  font-family: var(--font-mono); font-size: 9px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  border: 2px solid var(--depot-night);
}
.kurv-badge {
  position: absolute; top: 0; right: 0;
  min-width: 16px; height: 16px; padding: 0 3px;
  border-radius: 50%;
  background: var(--signal); color: var(--depot-night);
  font-family: var(--font-mono); font-size: 10px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  border: 2px solid var(--depot-night);
}

.hylde-knap { display: none; background: none; border: none; color: var(--paper); cursor: pointer; padding: 0.55rem; }

/* ---------- Søgepanel ---------- */
.soegepanel {
  position: absolute; top: calc(100% + 10px); right: -0.5rem;
  width: 320px; max-width: 90vw;
  background: var(--depot-steel-raised);
  border: 1px solid var(--depot-line);
  box-shadow: var(--shadow-float);
  clip-path: var(--clip-facet);
  padding: 0.85rem;
  z-index: var(--z-bugt);
}
.soegepanel__input {
  width: 100%; background: var(--depot-night); border: 1px solid var(--depot-line);
  color: var(--paper); padding: 0.7rem 0.85rem; font-size: var(--fs-sm);
}
.soegepanel__input:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
.soegepanel__resultater { margin-top: 0.6rem; max-height: 340px; overflow-y: auto; display: flex; flex-direction: column; gap: 0.4rem; }
.soegepanel__resultat {
  display: flex; align-items: center; gap: 0.6rem; padding: 0.5rem; color: var(--paper);
}
.soegepanel__resultat:hover { background: var(--depot-steel); }
.soegepanel__resultat .illo-wrapper { width: 40px; height: 40px; flex-shrink: 0; }
.soegepanel__tom { color: var(--fog); font-size: var(--fs-sm); padding: 0.5rem; }

/* ================= Kategori-bugten ================= */
.kategori-bugt {
  position: absolute; top: calc(100% + 10px); left: 0;
  background: var(--depot-steel-raised);
  border: 1px solid var(--depot-line);
  box-shadow: var(--shadow-float);
  clip-path: var(--clip-facet);
  padding: 1rem;
  display: grid;
  grid-template-columns: repeat(5, 148px);
  gap: 0.75rem;
  z-index: var(--z-bugt);
}

/* ================= Bay-kort ================= */
.bay-kort {
  display: flex; flex-direction: column; gap: 0.6rem;
  background: var(--depot-steel);
  border: 1px solid var(--depot-line);
  border-top: 3px solid var(--cat-accent, var(--charge));
  padding: 1rem 0.9rem;
  transition: transform 150ms ease-out, background-color 150ms ease-out;
  color: var(--paper);
}
.bay-kort:hover { transform: translateY(-2px); background: var(--depot-steel-raised); }
.bay-kort__glyf { width: 30px; height: 30px; color: var(--cat-accent, var(--charge)); }
.bay-kort__navn { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-sm); }
.bay-kort__antal { font-family: var(--font-mono); font-size: var(--fs-xs); color: var(--fog); }

.bay-kort--stor { padding: 1.3rem 1.1rem; gap: 0.85rem; }
.bay-kort--stor .bay-kort__glyf { width: 40px; height: 40px; }
.bay-kort--stor .bay-kort__navn { font-size: var(--fs-md); }

/* Kategori-strip (forside) og kategori-grid layout */
.kategori-strip__grid, .kategori-bugt-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: var(--gutter);
}

/* ================= 11.2 Lagerkortet ================= */
.lagerkort {
  position: fixed; inset: 0; z-index: var(--z-lagerkort);
}
.lagerkort[hidden] { display: none; }
.lagerkort__scrim {
  position: absolute; inset: 0;
  background: var(--depot-night);
  background-image: repeating-linear-gradient(180deg, rgba(55,214,196,0.03) 0px, rgba(55,214,196,0.03) 1px, transparent 1px, transparent 3px);
}
.lagerkort__panel {
  position: relative; height: 100%;
  display: flex; flex-direction: column;
  padding: 1.25rem 1.25rem calc(1.25rem + env(safe-area-inset-bottom));
  overflow-y: auto;
  opacity: 0; transform: translateY(14px);
  transition: opacity 250ms ease-out, transform 250ms ease-out;
}
.lagerkort.is-open .lagerkort__panel { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .lagerkort__panel { transition: opacity 100ms linear; transform: none; }
}

.lagerkort__util { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1.5rem; }
.lagerkort__luk { background: var(--depot-steel-raised); border: 1px solid var(--depot-line); color: var(--paper); padding: 0.6rem; cursor: pointer; }
.lagerkort__spacer { flex: 1; }
.lagerkort__ikon { position: relative; background: var(--depot-steel-raised); border: 1px solid var(--depot-line); color: var(--paper); padding: 0.6rem; cursor: pointer; display: inline-flex; }

.lagerkort__soegepanel { margin-bottom: 1.5rem; }
.lagerkort__soegepanel .soegepanel__resultater { max-height: none; }

.lagerkort__bugt {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.75rem;
  margin-bottom: 1.5rem;
}
.lagerkort__bugt .bay-kort { opacity: 0; transform: translateY(8px); transition: opacity 250ms ease-out, transform 250ms ease-out; }
.lagerkort.is-open .lagerkort__bugt .bay-kort { opacity: 1; transform: none; }
.lagerkort.is-open .lagerkort__bugt .bay-kort:nth-child(1) { transition-delay: 0ms; }
.lagerkort.is-open .lagerkort__bugt .bay-kort:nth-child(2) { transition-delay: 40ms; }
.lagerkort.is-open .lagerkort__bugt .bay-kort:nth-child(3) { transition-delay: 80ms; }
.lagerkort.is-open .lagerkort__bugt .bay-kort:nth-child(4) { transition-delay: 120ms; }
.lagerkort.is-open .lagerkort__bugt .bay-kort:nth-child(5) { transition-delay: 160ms; }
@media (prefers-reduced-motion: reduce) {
  .lagerkort__bugt .bay-kort { transition: opacity 100ms linear !important; transition-delay: 0ms !important; transform: none; }
}

.lagerkort__sekundaer { display: flex; flex-direction: column; gap: 0.5rem; margin-bottom: 1.25rem; }
.lagerkort__sek-link {
  display: flex; align-items: center; gap: 0.7rem;
  padding: 0.85rem 0.9rem; background: var(--depot-steel); border: 1px solid var(--depot-line);
  color: var(--paper); font-weight: 600; font-size: var(--fs-sm);
}
.lagerkort__sek-link .icon { color: var(--fog); }
.lagerkort__sek-link .signal-prik { margin-left: auto; }
.lagerkort__sek-badge {
  margin-left: auto; font-family: var(--font-mono); font-size: var(--fs-xs); color: var(--charge);
}

.lagerkort__drop-chip {
  margin-top: auto;
  display: flex; align-items: center; justify-content: center; gap: 0.5rem;
  background: var(--depot-steel-raised); border: 1px solid var(--charge);
  color: var(--charge); font-weight: 700; font-size: var(--fs-sm);
  padding: 0.85rem; clip-path: var(--clip-facet-compact);
}

/* ================= Fragtkort ================= */
.reol-gitter {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--gutter);
}
.reol-gitter__raekke-linje { border-bottom: 1px solid var(--depot-line); padding-bottom: var(--section-pad-half); margin-bottom: var(--section-pad-half); }

.fragtkort {
  display: flex; flex-direction: column;
  background: var(--depot-steel);
  border: 1px solid var(--depot-line);
  clip-path: var(--clip-facet);
  transition: transform 150ms ease-out, border-color 150ms ease-out;
  position: relative;
}
.fragtkort:hover { transform: scale(1.02); border-color: var(--fog); z-index: 1; }
.fragtkort:hover .fragtmaerke { transform: translateY(-2px); }

.fragtkort__billede { display: block; aspect-ratio: 1 / 1; background: var(--depot-steel); border-bottom: 1px solid var(--depot-line); }
.fragtkort__body { padding: 0.9rem 1rem 1.1rem; display: flex; flex-direction: column; gap: 0.5rem; position: relative; }
.fragtkort__navn { display: block; min-width: 0; max-width: 100%; font-weight: 600; font-size: var(--fs-sm); color: var(--paper); line-height: 1.35; }
.fragtkort__navn:hover { color: var(--signal-hover); }
.fragtkort__bund { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; }
.fragtkort__pris { font-size: var(--fs-md); font-weight: 600; color: var(--paper); }
.fragtkort__pris .fragtkort__normalpris { text-decoration: line-through; color: var(--fog); font-weight: 400; font-size: var(--fs-sm); margin-right: 0.4rem; }
.fragtkort__pris .fragtkort__droppris { color: var(--signal); }
.fragtkort__quick-add {
  background: var(--depot-steel-raised); border: 1px solid var(--depot-line); color: var(--paper);
  width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer; flex-shrink: 0; clip-path: var(--clip-facet-compact);
  opacity: 1;
  transition: opacity 150ms, background-color 150ms, border-color 150ms;
}
@media (hover: hover) {
  .fragtkort__quick-add { opacity: 0; }
  .fragtkort:hover .fragtkort__quick-add, .fragtkort:focus-within .fragtkort__quick-add { opacity: 1; }
}
.fragtkort__quick-add:hover { background: var(--signal); border-color: var(--signal); color: var(--depot-night); }

.fragtkort--mini { flex-direction: row; align-items: center; gap: 0.75rem; padding: 0.6rem; clip-path: var(--clip-facet-compact); }
.fragtkort--mini .fragtkort__billede { width: 64px; height: 64px; flex-shrink: 0; aspect-ratio: unset; border-bottom: none; }
.fragtkort--mini .fragtkort__body { padding: 0; flex: 1; min-width: 0; }
.fragtkort--mini .fragtkort__navn { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.cross-sell-strip {
  display: grid; grid-auto-flow: column; grid-auto-columns: 220px;
  gap: 0.85rem; overflow-x: auto; padding-bottom: 0.5rem;
  scroll-snap-type: x proximity;
}
.cross-sell-strip .fragtkort { scroll-snap-align: start; min-width: 0; }
@media (min-width: 1024px) {
  .cross-sell-strip { grid-auto-flow: row; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow-x: visible; }
}

/* ================= Status-chip / Perk-chip ================= */
.status-chip {
  display: inline-flex; align-items: center; gap: 0.4rem;
  border-radius: var(--r-pill);
  padding: 0.3rem 0.7rem 0.3rem 0.55rem;
  font-size: var(--fs-xs); font-weight: 600;
  font-family: var(--font-mono);
  width: fit-content;
}
.status-chip::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex-shrink: 0; }
.status-chip--paa-lager { background: rgba(79, 217, 140, 0.12); color: var(--success); }
.status-chip--faa-tilbage { background: rgba(255, 122, 41, 0.12); color: var(--signal); }
.status-chip--udsolgt { background: rgba(255, 77, 77, 0.12); color: var(--danger); }
.status-chip--info { background: rgba(55, 214, 196, 0.12); color: var(--charge); }
.status-chip--demo { background: var(--depot-steel-raised); color: var(--fog); border: 1px solid var(--depot-line); }

.perk-chip {
  display: inline-flex; align-items: center; gap: 0.4rem;
  border-radius: var(--r-pill);
  padding: 0.4rem 0.8rem;
  font-size: var(--fs-xs); font-weight: 600;
}
.perk-chip--optjent { background: var(--charge); color: var(--depot-night); }
.perk-chip--laast { background: transparent; border: 1px dashed var(--depot-line); color: var(--fog); }
.perk-chip .icon { width: 15px; height: 15px; }

/* ================= Demo-plomben ================= */
.demo-plombe {
  display: inline-flex; align-items: center; gap: 0.5rem;
  background: var(--depot-steel-raised);
  border: 1px solid var(--depot-line);
  border-left: 2px solid var(--charge);
  padding: 0.5rem 0.9rem;
  font-family: var(--font-mono); font-size: var(--fs-xs);
  text-transform: uppercase; letter-spacing: 0.08em;
  color: var(--paper);
}
.demo-plombe__ring {
  width: 20px; height: 20px; border-radius: 50%;
  border: 1.5px dashed var(--charge);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.demo-plombe__ring .icon { width: 11px; height: 11px; color: var(--charge); }
.demo-strip .demo-plombe { border: none; background: none; padding: 0; }

.demo-plombe-panel {
  background: var(--depot-steel);
  border: 1px solid var(--charge);
  clip-path: var(--clip-facet);
  padding: 1.5rem;
  display: flex; gap: 1rem; align-items: flex-start;
  margin-bottom: 2rem;
}
.demo-plombe-panel__ring {
  width: 46px; height: 46px; border-radius: 50%;
  border: 2px dashed var(--charge);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.demo-plombe-panel__ring .icon { color: var(--charge); width: 22px; height: 22px; }
.demo-plombe-panel h3 { margin-bottom: 0.35rem; }
.demo-plombe-panel p { color: var(--fog); font-size: var(--fs-sm); }

/* ================= Manifest-strimlen (toast) ================= */
.manifest-mount {
  position: fixed; top: calc(var(--lastbro-h) + 10px); left: 50%; transform: translateX(-50%);
  z-index: var(--z-manifest);
  display: flex; flex-direction: column; gap: 0.5rem;
  width: min(380px, calc(100vw - 2rem));
  pointer-events: none;
}
.manifest-strimmel {
  display: flex; align-items: center; gap: 0.65rem;
  background: var(--depot-steel-raised);
  border: 1px solid var(--depot-line);
  padding: 0.8rem 1rem;
  box-shadow: var(--shadow-float);
  transform: translateY(-16px); opacity: 0;
  transition: transform 220ms ease-out, opacity 220ms ease-out;
  pointer-events: auto;
}
.manifest-strimmel.is-visible { transform: translateY(0); opacity: 1; }
.manifest-strimmel__bar { width: 3px; align-self: stretch; background: var(--charge); flex-shrink: 0; }
.manifest-strimmel--fejl .manifest-strimmel__bar { background: var(--danger); }
.manifest-strimmel__tekst { font-size: var(--fs-sm); }
@media (prefers-reduced-motion: reduce) {
  .manifest-strimmel { transition: opacity 100ms linear; transform: none; }
}

/* ---------- Fejring (§18 sekventiel kø) ---------- */
.fejring-mount {
  position: fixed; top: calc(var(--lastbro-h) + 10px); left: 50%; transform: translateX(-50%);
  z-index: calc(var(--z-manifest) + 1);
  width: min(420px, calc(100vw - 2rem));
}
.fejring {
  display: flex; align-items: center; gap: 0.75rem;
  background: linear-gradient(120deg, var(--depot-steel-raised), var(--depot-steel));
  border: 1px solid var(--charge);
  box-shadow: 0 0 0 1px rgba(55,214,196,0.25), var(--shadow-float);
  padding: 0.9rem 1.1rem;
  opacity: 0; transform: translateY(-16px) scale(0.98);
  transition: opacity 220ms ease-out, transform 220ms ease-out;
}
.fejring.is-visible { opacity: 1; transform: none; }
.fejring__glyf { width: 34px; height: 34px; color: var(--charge); flex-shrink: 0; animation: fejring-glow 900ms ease-out; }
@keyframes fejring-glow {
  0% { filter: drop-shadow(0 0 0 rgba(55,214,196,0)); transform: scale(0.7); }
  40% { filter: drop-shadow(0 0 10px rgba(55,214,196,0.8)); }
  100% { filter: drop-shadow(0 0 0 rgba(55,214,196,0)); transform: scale(1); }
}
.fejring__titel { font-family: var(--font-display); font-weight: 800; font-size: var(--fs-sm); }
.fejring__sub { color: var(--fog); font-size: var(--fs-xs); }
.fejring__link { color: var(--charge); font-size: var(--fs-xs); font-weight: 700; margin-left: auto; white-space: nowrap; }
@media (prefers-reduced-motion: reduce) {
  .fejring { transition: opacity 100ms linear; transform: none; }
  .fejring__glyf { animation: none; }
}

/* ================= Manifest-række ================= */
.manifest-raekke {
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  align-items: center;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--depot-line);
}
.manifest-raekke__hoved { font-family: var(--font-mono); font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: 0.08em; color: var(--fog); border-bottom: 1px solid var(--depot-line); }
.manifest-raekke__id { font-family: var(--font-mono); color: var(--fog); font-size: var(--fs-sm); }
.manifest-raekke__total { font-family: var(--font-mono); font-weight: 600; }
.manifest-raekke__toggle { background: none; border: 1px solid var(--depot-line); color: var(--paper); width: 32px; height: 32px; cursor: pointer; display: inline-flex; align-items:center; justify-content:center; }
.manifest-raekke__detaljer { grid-column: 1 / -1; padding: 0 0 0.75rem 0; display: none; }
.manifest-raekke__detaljer.is-open { display: block; }
.manifest-raekke__vare { display: flex; justify-content: space-between; padding: 0.3rem 0; color: var(--fog); font-size: var(--fs-sm); }

/* Admin-tabel */
.manifest-tabel { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.manifest-tabel th {
  text-align: left; font-family: var(--font-mono); text-transform: uppercase; letter-spacing: 0.06em;
  font-size: var(--fs-xs); color: var(--fog); padding: 0.7rem 0.75rem; border-bottom: 1px solid var(--depot-line);
}
.manifest-tabel td { padding: 0.75rem; border-bottom: 1px solid var(--depot-line); vertical-align: middle; }
.manifest-tabel tbody tr { transition: background-color 120ms; }
.manifest-tabel tbody tr:hover { background: var(--depot-steel-raised); }
.manifest-tabel .mono { font-family: var(--font-mono); }
.manifest-tabel__ikon-knap {
  background: none; border: 1px solid var(--depot-line); color: var(--fog);
  width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer; margin-right: 0.35rem;
}
.manifest-tabel__ikon-knap:hover { color: var(--paper); border-color: var(--fog); }
.manifest-tabel__ikon-knap--slet:hover { color: var(--danger); border-color: var(--danger); }
.tabel-scroll { overflow-x: auto; }

/* ================= Landingszonen (signatur) ================= */
.landingszone {
  position: fixed; z-index: var(--z-landingszonen);
  left: 0; right: 0; bottom: 0;
  transform: translateY(0);
  transition: transform 280ms ease-out;
}
.landingszone[hidden] { display: none; }
.landingszone.is-entering { transform: translateY(100%); }
@media (prefers-reduced-motion: reduce) { .landingszone { transition: opacity 100ms linear; } .landingszone.is-entering { transform: none; opacity: 0; } }

.landingszone__flig {
  display: none;
  margin-left: auto; margin-right: 1.25rem;
  background: var(--depot-steel-raised); border: 1px solid var(--depot-line); border-bottom: none;
  color: var(--paper); font-weight: 700; font-size: var(--fs-xs);
  padding: 0.55rem 1rem; cursor: pointer;
  align-items: center; gap: 0.4rem;
}
.landingszone.is-collapsed .landingszone__flig { display: inline-flex; }
.landingszone.is-collapsed .landingszone__panel { display: none; }

.landingszone__panel {
  background: var(--depot-steel-raised);
  border-top: 1px solid var(--depot-line);
  box-shadow: var(--shadow-float);
  padding: 0.85rem var(--gutter);
  display: flex; align-items: center; gap: 1rem;
}
.landingszone__eyebrow {
  display: none;
  align-items: center; gap: 0.4rem;
  color: var(--charge);
  width: 100%;
}
.landingszone__eyebrow .icon { width: 13px; height: 13px; }
.landingszone__produkt { display: flex; align-items: center; gap: 0.75rem; min-width: 0; }
.landingszone__produkt .illo-wrapper { width: 52px; height: 52px; flex-shrink: 0; }
.landingszone__info { display: flex; flex-direction: column; gap: 0.15rem; min-width: 0; }
.landingszone__navn { font-size: var(--fs-sm); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 220px; }
.landingszone__pris { font-family: var(--font-mono); font-size: var(--fs-sm); }
.landingszone__pris s { color: var(--fog); font-weight: 400; margin-right: 0.35rem; }
.landingszone__pris b { color: var(--signal); }

.landingszone__mellem { display: flex; flex-direction: column; gap: 0.3rem; flex: 1; min-width: 120px; }
.lagerbjaelke { height: 5px; background: var(--depot-line); width: 100%; position: relative; overflow: hidden; }
.lagerbjaelke__fyld { height: 100%; background: var(--charge); transition: width 300ms, background-color 300ms; }
.lagerbjaelke__fyld[data-niveau="lav"] { background: var(--signal); }
.lagerbjaelke__fyld[data-niveau="kritisk"] { background: var(--danger); }
.landingszone__countdown { font-family: var(--font-mono); font-size: var(--fs-sm); color: var(--charge); font-variant-numeric: tabular-nums; }

.landingszone__cta { flex-shrink: 0; }
.landingszone__minimer {
  background: none; border: none; color: var(--fog); cursor: pointer; padding: 0.4rem; flex-shrink: 0;
}
.landingszone__minimer:hover { color: var(--paper); }

@media (min-width: 1024px) {
  .landingszone { left: auto; right: 1.5rem; bottom: 1.5rem; width: 420px; }
  .landingszone__panel {
    clip-path: var(--clip-facet); border-top: 1px solid var(--depot-line);
    flex-wrap: wrap; padding: 1.1rem 1.35rem; gap: 0.85rem 1rem;
  }
  .landingszone__eyebrow { display: flex; order: -1; }
  .landingszone__produkt .illo-wrapper { width: 68px; height: 68px; }
  .landingszone__navn { font-size: var(--fs-md); max-width: 260px; }
  .landingszone__mellem { width: 100%; order: 3; }
  .landingszone.is-collapsed { width: auto; }
  .landingszone.is-collapsed .landingszone__eyebrow { display: none; }
}
@media (max-width: 1023px) {
  .landingszone__panel { flex-wrap: wrap; row-gap: 0.6rem; }
  .landingszone__mellem { order: 3; width: 100%; }
  .landingszone__produkt { order: 1; flex: 1; }
  .landingszone__cta { order: 2; }
}

/* ================= Sporingslisten / Spor-linjen (skattejagt) ================= */
.sporingsliste__header { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem; margin-bottom: 2.5rem; }
.sporingsliste__fraktion { font-family: var(--font-display); font-weight: 900; font-size: var(--fs-3xl); color: var(--charge); display: flex; align-items: baseline; gap: 0.3rem; }
.sporingsliste__fraktion small { font-size: var(--fs-md); color: var(--fog); font-weight: 600; }

.sporlinje {
  display: flex; align-items: center;
  padding: 2rem 0.5rem;
  overflow-x: auto;
}
.sporlinje__knude {
  position: relative;
  width: 52px; height: 52px; flex-shrink: 0;
  border: 1.5px dashed var(--depot-line);
  background: var(--depot-steel);
  display: flex; align-items: center; justify-content: center;
  color: var(--fog);
  clip-path: var(--clip-facet-compact);
}
.sporlinje__knude--fundet {
  border: 1.5px solid var(--charge);
  background: var(--depot-steel-raised);
  color: var(--charge);
  box-shadow: 0 0 0 3px rgba(55, 214, 196, 0.12);
}
.sporlinje__knude .icon { width: 22px; height: 22px; }
.sporlinje__segment { flex: 1; min-width: 28px; height: 0; border-top: 2px dashed var(--depot-line); }
.sporlinje__segment--fundet { border-top-color: var(--charge); border-top-style: solid; }

.artefakt-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gutter); margin-top: 2rem; }
.artefakt-kort {
  background: var(--depot-steel); border: 1px solid var(--depot-line);
  padding: 1rem; display: flex; flex-direction: column; gap: 0.6rem;
}
.artefakt-kort--fundet { border-color: var(--charge); }
.artefakt-kort__status { display: flex; align-items: center; gap: 0.4rem; font-size: var(--fs-xs); font-family: var(--font-mono); text-transform: uppercase; color: var(--fog); }
.artefakt-kort--fundet .artefakt-kort__status { color: var(--charge); }
.artefakt-kort__link { font-size: var(--fs-sm); font-weight: 600; color: var(--signal); }

.kiste-reveal {
  margin-top: 2.5rem; background: var(--depot-steel-raised); border: 1px solid var(--charge);
  clip-path: var(--clip-facet); padding: 1.75rem; text-align: center;
}
.kiste-reveal.is-animating { animation: kiste-glow 1.4s ease-out; }
@keyframes kiste-glow { 0% { box-shadow: 0 0 0 0 rgba(55,214,196,0.5);} 100% { box-shadow: 0 0 0 24px rgba(55,214,196,0);} }
@media (prefers-reduced-motion: reduce) { .kiste-reveal.is-animating { animation: none; } }
.kiste-reveal__kode {
  display: inline-flex; align-items: center; gap: 0.75rem;
  background: var(--depot-night); border: 1px dashed var(--charge);
  padding: 0.85rem 1.25rem; margin-top: 1rem;
  font-family: var(--font-mono); font-size: var(--fs-lg); letter-spacing: 0.05em; color: var(--charge);
}
.kiste-reveal__kopier { background: none; border: none; color: var(--paper); cursor: pointer; padding: 0.3rem; }

/* ================= Spin-hjul (modal) ================= */
.spinhjul-scrim {
  position: fixed; inset: 0; z-index: var(--z-modal);
  background: rgba(10, 14, 19, 0.82);
  display: flex; align-items: center; justify-content: center;
  padding: 1.25rem;
  opacity: 0; transition: opacity 200ms ease-out;
}
.spinhjul-scrim[hidden] { display: none; }
.spinhjul-scrim.is-visible { opacity: 1; }

.spinhjul {
  position: relative;
  background: var(--depot-steel);
  border: 1px solid var(--depot-line);
  clip-path: var(--clip-facet);
  box-shadow: var(--shadow-float);
  width: min(440px, 100%);
  max-height: 90vh;
  overflow-y: auto;
  padding: 2rem 1.75rem;
  text-align: center;
  transform: translateY(16px); opacity: 0;
  transition: transform 220ms ease-out, opacity 220ms ease-out;
}
.spinhjul-scrim.is-visible .spinhjul { transform: none; opacity: 1; }
@media (prefers-reduced-motion: reduce) { .spinhjul, .spinhjul-scrim { transition: opacity 100ms linear !important; transform: none !important; } }

.spinhjul__luk { position: absolute; top: 0.85rem; right: 0.85rem; background: none; border: none; color: var(--fog); cursor: pointer; padding: 0.4rem; }
.spinhjul__luk:hover { color: var(--paper); }
.spinhjul h2 { margin-bottom: 0.4rem; }
.spinhjul__intro { color: var(--fog); font-size: var(--fs-sm); margin-bottom: 1.5rem; }

.spinhjul__email-form { display: flex; flex-direction: column; gap: 0.6rem; margin-bottom: 1.5rem; text-align: left; }

.signalskive-wrap { position: relative; width: 220px; height: 220px; margin: 0 auto 1.5rem; }
.signalskive { width: 100%; height: 100%; transition: transform 3s cubic-bezier(0.17, 0.67, 0.16, 0.99); }
.signalskive__naal {
  position: absolute; top: 50%; left: 50%; width: 0; height: 0;
  border-left: 9px solid transparent; border-right: 9px solid transparent;
  border-bottom: 26px solid var(--signal);
  transform: translate(-50%, -100%) rotate(0deg);
  transform-origin: 50% 100%;
  filter: drop-shadow(0 2px 3px rgba(0,0,0,0.5));
}
.signalskive-wrap.is-spinning .signalskive__naal { transition: transform 3s cubic-bezier(0.17, 0.67, 0.16, 0.99); }
@media (prefers-reduced-motion: reduce) {
  .signalskive, .signalskive-wrap.is-spinning .signalskive__naal { transition: none !important; }
}
.signalskive__hub {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: 46px; height: 46px; border-radius: 50%;
  background: var(--depot-steel-raised); border: 2px solid var(--depot-night);
  display: flex; align-items: center; justify-content: center;
}
.signalskive__knap {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: 46px; height: 46px; border-radius: 50%; padding: 0;
  font-size: 0.6rem; clip-path: none;
}

.spinhjul__resultat { text-align: center; }
.spinhjul__resultat-titel { font-family: var(--font-display); font-weight: 800; font-size: var(--fs-lg); color: var(--charge); margin-bottom: 0.5rem; }
.spinhjul__kode {
  display: inline-flex; align-items: center; gap: 0.6rem;
  background: var(--depot-night); border: 1px dashed var(--charge);
  padding: 0.7rem 1rem; margin: 0.75rem 0; font-family: var(--font-mono); color: var(--charge); font-size: var(--fs-md);
}
.spinhjul__finskrift { color: var(--fog); font-size: var(--fs-xs); margin-top: 1rem; }

/* ================= Depot-kajen (footer) ================= */
.depot-kaj { background: var(--depot-steel); border-top: 1px solid var(--depot-line); margin-top: auto; }
.depot-kaj__grid {
  padding-block: var(--section-pad);
  display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 2rem;
}
.depot-kaj__brand { display: flex; flex-direction: column; gap: 0.75rem; }
.depot-kaj__wordmark { font-family: var(--font-display); font-weight: 800; font-size: var(--fs-md); }
.depot-kaj__payoff { color: var(--fog); font-size: var(--fs-sm); max-width: 32ch; }
.depot-kaj__gruppe h5 { font-family: var(--font-mono); text-transform: uppercase; letter-spacing: 0.08em; font-size: var(--fs-xs); color: var(--fog); margin-bottom: 1rem; }
.depot-kaj__gruppe ul { display: flex; flex-direction: column; gap: 0.6rem; }
.depot-kaj__gruppe a { font-size: var(--fs-sm); color: var(--paper); }
.depot-kaj__gruppe a:hover { color: var(--signal-hover); }
.depot-kaj__forklaring-trigger {
  display: inline-flex; align-items: center; gap: 0.35rem;
  background: none; border: none; padding: 0; cursor: pointer;
  font-family: var(--font-body); font-size: var(--fs-sm); color: var(--paper);
}
.depot-kaj__forklaring-trigger:hover { color: var(--signal-hover); }
.depot-kaj__forklaring-trigger .icon { width: 14px; height: 14px; color: var(--fog); transition: transform 200ms; }
.depot-kaj__forklaring-trigger[aria-expanded="true"] .icon { transform: rotate(180deg); }
.depot-kaj__forklaring-panel { margin-top: 0.5rem; max-width: 30ch; }
.depot-kaj__forklaring-panel p { font-size: var(--fs-xs); color: var(--fog); }
.depot-kaj__bund {
  border-top: 1px solid var(--depot-line);
  padding-block: 1.25rem;
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem;
  font-size: var(--fs-xs); color: var(--fog);
}

/* ================= Depotkontoret (admin) ================= */
.depotkontor { padding-block: 2rem; }
.depotkontor__header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; flex-wrap: wrap; }
.depotkontor__faner { display: flex; gap: 0.35rem; border-bottom: 1px solid var(--depot-line); margin-bottom: 1.75rem; overflow-x: auto; }
.depotkontor__fane {
  background: none; border: none; color: var(--fog); cursor: pointer;
  padding: 0.85rem 1.1rem; font-weight: 600; font-size: var(--fs-sm);
  white-space: nowrap; position: relative;
}
.depotkontor__fane:hover { color: var(--paper); }
.depotkontor__fane[aria-selected="true"] { color: var(--paper); }
.depotkontor__fane[aria-selected="true"]::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--signal); }
.depotkontor__panel[hidden] { display: none; }
.depotkontor__panel-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; gap: 1rem; flex-wrap: wrap; }

.sidepanel-scrim { position: fixed; inset: 0; background: rgba(10,14,19,0.7); z-index: var(--z-modal); opacity: 0; transition: opacity 200ms; }
.sidepanel-scrim[hidden] { display: none; }
.sidepanel-scrim.is-visible { opacity: 1; }
.sidepanel {
  position: fixed; top: 0; right: 0; bottom: 0; width: min(440px, 100%);
  background: var(--depot-steel); border-left: 1px solid var(--depot-line);
  box-shadow: var(--shadow-float);
  overflow-y: auto; padding: 1.75rem;
  transform: translateX(100%); transition: transform 220ms ease-out;
  z-index: calc(var(--z-modal) + 1);
}
.sidepanel-scrim.is-visible .sidepanel { transform: none; }
@media (prefers-reduced-motion: reduce) { .sidepanel, .sidepanel-scrim { transition: opacity 100ms linear !important; transform: none !important; } }
.sidepanel__header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; }
.sidepanel__luk { background: none; border: none; color: var(--fog); cursor: pointer; padding: 0.4rem; }
.sidepanel__preview { display: flex; align-items: center; gap: 1rem; background: var(--depot-steel-raised); border: 1px solid var(--depot-line); padding: 1rem; margin-bottom: 1.25rem; }
.sidepanel__preview .illo-wrapper { width: 72px; height: 72px; flex-shrink: 0; }
.sidepanel__actions { display: flex; gap: 0.6rem; margin-top: 1.5rem; }

.stat-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 1rem; margin-bottom: 2rem; }
.stat-tile { background: var(--depot-steel); border: 1px solid var(--depot-line); padding: 1rem 1.1rem; }
.stat-tile__label { font-family: var(--font-mono); text-transform: uppercase; font-size: var(--fs-xs); color: var(--fog); letter-spacing: 0.06em; }
.stat-tile__value { font-family: var(--font-mono); font-size: var(--fs-xl); font-weight: 700; margin-top: 0.3rem; }

.admin-week { border: 1px solid var(--depot-line); background: var(--depot-steel); margin-bottom: 1.25rem; padding: 1rem; }
.admin-week > header { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; margin-bottom: 0.75rem; }
.admin-week > header h3 { margin-right: auto; }
.inline-admin-action { display: flex; align-items: center; gap: 0.5rem; min-width: 280px; }
.inline-admin-action .field__select { min-width: 190px; padding: 0.55rem; }
.admin-multiselect { min-height: 17rem; clip-path: none; }
.admin-copy-preview { max-width: 760px; background: var(--depot-steel); border: 1px solid var(--depot-line); padding: 1.5rem; }
.admin-copy-preview h3, .admin-copy-preview h4 { margin-top: 1rem; margin-bottom: 0.35rem; }
.admin-copy-preview p { color: var(--fog); white-space: pre-line; }
.admin-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }

/* ================= Illustrationssystem wrapper ================= */
.illo-wrapper {
  position: relative;
  width: 100%; height: 100%;
  background: var(--depot-steel);
}
.illo-wrapper svg { width: 100%; height: 100%; display: block; }
.illo-wrapper svg.cw-tint { filter: brightness(1.22) saturate(0.9); }
.illo-wrapper svg.cw-shade { filter: brightness(0.8) saturate(1.12); }
.fragtmaerke-knap {
  position: absolute; right: 6%; bottom: 6%; width: 22%; height: 22%;
  background: transparent; border: none; padding: 0; cursor: pointer;
}
.fragtmaerke-knap:focus-visible { outline: 2px solid var(--charge); outline-offset: 3px; }
.fragtmaerke-knap__hak { position: absolute; top: -6px; left: -6px; }
.fragtmaerke--glimt { animation: fragtmaerke-glimt 3s ease-in-out infinite; }
@keyframes fragtmaerke-glimt {
  0%, 100% { filter: brightness(1) drop-shadow(0 0 0 rgba(55,214,196,0)); }
  50% { filter: brightness(1.35) drop-shadow(0 0 6px rgba(55,214,196,0.7)); }
}
@media (prefers-reduced-motion: reduce) { .fragtmaerke--glimt { animation: none; filter: brightness(1.15); } }
.fragtmaerke--snap { animation: fragtmaerke-snap 150ms ease-out; }
@keyframes fragtmaerke-snap { 0% { transform: scale(1); } 50% { transform: scale(0.88); } 100% { transform: scale(1); } }

.fund-popup {
  position: absolute; z-index: 20; left: 50%; bottom: 100%; transform: translate(-50%, -8px);
  background: var(--paper); color: var(--depot-night);
  padding: 0.4rem 0.7rem; font-family: 'Caveat', cursive; font-size: 1.15rem; font-weight: 700;
  white-space: nowrap; box-shadow: var(--shadow-float);
  opacity: 0; animation: fund-popup-vis 2.2s ease-out forwards;
}
@keyframes fund-popup-vis {
  0% { opacity: 0; transform: translate(-50%, 0); }
  15% { opacity: 1; transform: translate(-50%, -8px); }
  80% { opacity: 1; transform: translate(-50%, -8px); }
  100% { opacity: 0; transform: translate(-50%, -14px); }
}
@media (prefers-reduced-motion: reduce) { .fund-popup { animation: none; opacity: 1; transform: translate(-50%, -8px); } }

/* ================= Niveau-op badge (§8) ================= */
.badge-flip { animation: badge-flip 500ms ease-out; }
@keyframes badge-flip {
  0% { transform: rotateY(0deg) scale(1); }
  40% { transform: rotateY(90deg) scale(1.08); }
  60% { transform: rotateY(90deg) scale(1.08); }
  100% { transform: rotateY(0deg) scale(1); }
}
@media (prefers-reduced-motion: reduce) { .badge-flip { animation: none; } }

@media (max-width: 1023px) {
  .lastbro__inner { gap: 0.5rem; }
  .lastbro__links, .soege-udloeser-wrap, .lastbro__konto { display: none; }
  .lastbro__actions { margin-left: auto; }
  .hylde-knap { display: inline-flex; }
  .reol-gitter { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .depot-kaj__grid { grid-template-columns: repeat(2, 1fr); }
  .artefakt-grid { grid-template-columns: repeat(2, 1fr); }
  .cross-sell-strip .fragtkort__navn { white-space: normal; overflow: visible; text-overflow: clip; }
}

@media (max-width: 767px) {
  .lastbro__mark { font-size: 0.88rem; }
  .lastbro__inner { padding-inline: 0.75rem; }
  .reol-gitter { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
  .fragtkort__body { padding: 0.7rem; }
  .fragtkort__pris { font-size: var(--fs-sm); }
  .fragtkort__quick-add { width: 32px; height: 32px; }
  .depot-kaj__grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .artefakt-grid { grid-template-columns: 1fr; }
  .manifest-raekke { gap: 0.5rem; }
  .inline-admin-action { min-width: 230px; }
  .admin-form-grid { grid-template-columns: 1fr; gap: 0; }
}
