/* ──────────────────────────────────────────────────────────────────
   RCHub medlemssystem – fælles designsystem, layout og komponenter
   Struktur: tokens → shell/navigation → kort/tabeller/forms/modaler → moduler → responsive regler.
   Bemærk: rækkefølgen er bevidst for at bevare cascade og eksisterende layout.
   ────────────────────────────────────────────────────────────────── */
:root {
  --sw: 252px;
  --th: 60px;
  /* Backgrounds */
  --bg: #f0eee8;
  --surf: #ffffff;
  --surf2: #faf8f4;
  /* Borders */
  --bdr: #e4ddd3;
  --bdr2: #ece6dc;
  /* Sidebar */
  --sb: #1c2f40;
  --sbh: #243748;
  --sba: #1e4976;
  --sbt: rgba(255,255,255,.7);
  --sbta: #fff;
  --sbl: #6e98b8;
  /* Primary */
  --pri: #1e4976;
  --prid: #163860;
  --pril: #e8eef7;
  /* Accent (gold) */
  --acc: #b07d2a;
  --accl: #fef6e4;
  /* Danger */
  --dan: #c0392b;
  --danl: #fce8e8;
  /* Warning */
  --wrn: #d97706;
  --wrnl: #fef3cd;
  /* Success */
  --suc: #2d6a4f;
  --sucl: #e8f5ee;
  /* Text */
  --tx: #1a1f2e;
  --tx2: #4a5568;
  --txm: #8a95a5;
  /* Compatibility aliases used by newer accounting components */
  --txt: var(--tx);
  --mut: var(--txm);
  --bd: var(--bdr);
  --pri2: var(--prid);
  --ink: var(--tx);
  /* Radii */
  --r: 8px;
  --rl: 12px;
  --rxl: 16px;
  /* Shadows */
  --sh0: 0 1px 4px rgba(0,0,0,.07);
  --sh: 0 4px 14px rgba(0,0,0,.1);
  --shl: 0 12px 40px rgba(0,0,0,.18);
  /* Fonts */
  --fd: 'Source Sans 3', system-ui, sans-serif;
  --fb: 'Source Sans 3', system-ui, sans-serif;
  --t: .17s ease;
}

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 19.5px;
}

body {
  font-family: var(--fb);
  background: var(--bg);
  color: var(--tx);
  height: 100vh;
  display: flex;
  overflow: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font-family: var(--fb);
}

/* ─── Sidebar ─────────────────────────────────────────────────── */
.sidebar {
  width: var(--sw);
  height: 100vh;
  background: var(--sb);
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  transition: width var(--t);
  overflow: hidden;
  position: fixed;
  left: 0;
  top: 0;
  z-index: 100;
}

.sidebar.col {
  width: 60px;
}

.sidebar.col .sorg, .sidebar.col .snsl, .sidebar.col .nav-link span, .sidebar.col .sfv {
  display: none;
}

.sidebar.col .nav-link {
  justify-content: center;
  padding: 10px;
}

.sidebar.col .shd {
  padding: 10px 6px;
  align-items: center;
}

.sidebar.col .slogo {
  justify-content: center;
}

.sidebar.col .slogo img {
  max-width: 32px;
}

.sidebar.col .shd-bot {
  justify-content: center;
}

.sidebar.col .stog {
  margin: 0;
}

.sidebar.col .slogout-form,
.global-tenant-exit-form,
.member-self-logout-form {
  margin: 0;
}

.global-tenant-exit,
.member-self-logout-form .btn {
  font: inherit;
  cursor: pointer;
}

.slogout {
  justify-content: center;
  padding: 9px;
}

.sidebar.col .slogout span {
  display: none;
}

.shd {
  padding: 18px 16px 12px;
  border-bottom: 1px solid rgba(255,255,255,.08);
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex-shrink: 0;
}

.slogo {
  display: flex;
  align-items: center;
  justify-content: center;
}

.slogo img {
  max-width: 120px;
  max-height: 120px;
  width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
}

.shd-bot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.sorg {
  font-family: var(--fd);
  font-size: .7rem;
  color: rgba(255,255,255,.45);
  letter-spacing: .03em;
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
}

.stog {
  background: none;
  border: none;
  color: rgba(255,255,255,.45);
  cursor: pointer;
  padding: 5px;
  border-radius: 4px;
  transition: var(--t);
  flex-shrink: 0;
}

.stog:hover {
  color: #fff;
  background: rgba(255,255,255,.08);
}

.snav {
  flex: 1;
  padding: 10px 6px;
  overflow-y: auto;
  min-height: 0;
}

.snsl {
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--sbl);
  padding: 14px 10px 4px;
}

.nav-link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  border-radius: 6px;
  color: var(--sbt);
  font-size: .8rem;
  font-weight: 500;
  transition: var(--t);
  white-space: nowrap;
  overflow: hidden;
  cursor: pointer;
  border: none;
  background: none;
  width: 100%;
  text-align: left;
}

.nav-link i {
  width: 17px;
  text-align: center;
  flex-shrink: 0;
  font-size: .8rem;
}

.nav-link:hover {
  background: var(--sbh);
  color: #fff;
}

.nav-link.active {
  background: var(--sba);
  color: var(--sbta);
  font-weight: 600;
}

.sft {
  padding: 8px 6px 12px;
  border-top: 1px solid rgba(255,255,255,.06);
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.sfv {
  font-size: .62rem;
  color: rgba(255,255,255,.25);
  padding: 2px 10px;
}

.slogout {
  display: flex;
  appearance: none;
  align-items: center;
  gap: 8px;
  padding: 9px 12px;
  border-radius: 7px;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.1);
  color: rgba(255,255,255,.75);
  font-family: var(--fb);
  font-size: .76rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--t);
  width: 100%;
}

.slogout:hover {
  background: rgba(255,255,255,.12);
  color: #fff;
}

.slogout i {
  width: 17px;
  text-align: center;
  font-size: .8rem;
}

/* ─── Main ────────────────────────────────────────────────────── */
.main {
  margin-left: var(--sw);
  height: 100vh;
  display: flex;
  flex-direction: column;
  flex: 1;
  transition: margin-left var(--t);
  overflow: hidden;
}

.main.exp {
  margin-left: 60px;
}

/* ─── Topbar ─────────────────────────────────────────────────── */
.topbar {
  height: var(--th);
  flex-shrink: 0;
  background: var(--surf);
  border-bottom: 1px solid var(--bdr);
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 24px;
  z-index: 50;
  box-shadow: var(--sh0);
}

.tbtitle {
  font-family: var(--fd);
  font-size: .92rem;
  font-weight: 700;
  flex: 1;
  color: var(--tx);
}

.topbar-right {
  display: flex;
  gap: 6px;
  align-items: center;
}

.btni {
  background: none;
  border: none;
  color: var(--txm);
  cursor: pointer;
  padding: 6px 8px;
  border-radius: 6px;
  font-size: .85rem;
  transition: var(--t);
}

.btni:hover {
  background: var(--bg);
  color: var(--tx);
}

.save-ok {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 1200;
  display: none;
  align-items: center;
  gap: 5px;
  padding: 8px 11px;
  border-radius: 999px;
  border: 1px solid var(--bdr);
  background: var(--surf);
  color: var(--suc);
  box-shadow: var(--sh0);
  font-size: .7rem;
  font-weight: 700;
}

.save-ok.show {
  display: flex;
}

/* Kompatibilitet for regnskabssider, der opretter toast dynamisk som #oktoast. */
.oktoast {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 1200;
  display: none;
  align-items: center;
  gap: 5px;
  padding: 8px 11px;
  border-radius: 999px;
  border: 1px solid var(--bdr);
  background: var(--surf);
  color: var(--suc);
  box-shadow: var(--sh0);
  font-size: .7rem;
  font-weight: 700;
}

.oktoast.show {
  display: flex;
}

/* ─── Scroll area ─────────────────────────────────────────────── */
.vc {
  flex: 1;
  min-height: 0;
  overflow-y: scroll;
  padding: 22px 24px 60px;
}

.vc::-webkit-scrollbar {
  width: 8px;
}

.vc::-webkit-scrollbar-track {
  background: var(--bg);
}

.vc::-webkit-scrollbar-thumb {
  background: #cac3b8;
  border-radius: 4px;
  border: 2px solid var(--bg);
}

.vc::-webkit-scrollbar-thumb:hover {
  background: #b8b0a4;
}

.view {
  display: none;
}

.view.active {
  display: block;
  animation: vu .18s ease;
}

@keyframes vu {
  from {
    opacity: 0;
    transform: translateY(5px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ─── Page header ─────────────────────────────────────────────── */
.ph {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 18px;
  gap: 12px;
  flex-wrap: wrap;
}

.ptitle {
  font-family: var(--fd);
  font-size: 1.45rem;
  font-weight: 700;
  line-height: 1.2;
}

.psub {
  font-size: .78rem;
  color: var(--txm);
  margin-top: 3px;
}

.pact {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}

/* ─── Cards ───────────────────────────────────────────────────── */
.card {
  background: var(--surf);
  border: 1px solid var(--bdr);
  border-radius: var(--rl);
  box-shadow: var(--sh0);
  overflow: hidden;
}

.ch {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 13px 18px;
  border-bottom: 1px solid var(--bdr2);
  background: var(--surf2);
  gap: 10px;
}

.ctitle {
  font-family: var(--fd);
  font-size: .85rem;
  font-weight: 700;
  color: var(--tx);
}

.cb {
  padding: 16px 18px;
}

.p0 {
  padding: 0 !important;
}

.mb4 {
  margin-bottom: 14px;
}

.mb2 {
  margin-bottom: 8px;
}

.mt2 {
  margin-top: 8px;
}

.mt3 {
  margin-top: 12px;
}

.me1 {
  margin-right: 5px;
}

.me2 {
  margin-right: 8px;
}

/* ─── Grid layouts ────────────────────────────────────────────── */
.grid2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.grid3 {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 16px;
}

.grid-auto {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 14px;
}

/* ─── KPI cards ───────────────────────────────────────────────── */
.kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}

.kpi {
  background: var(--surf);
  border: 1px solid var(--bdr);
  border-radius: var(--rl);
  padding: 14px 16px;
  box-shadow: var(--sh0);
}

.kpi-val {
  font-family: var(--fd);
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--tx);
  line-height: 1;
}

.kpi-label {
  font-size: .68rem;
  color: var(--txm);
  margin-top: 5px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.kpi-accent {
  border-left: 3px solid var(--pri);
}

.kpi-warn {
  border-left: 3px solid var(--wrn);
}

.kpi-suc {
  border-left: 3px solid var(--suc);
}

.kpi-acc {
  border-left: 3px solid var(--acc);
}

/* ─── Table ───────────────────────────────────────────────────── */
.tw {
  overflow-x: auto;
}

.dt {
  width: 100%;
  border-collapse: collapse;
  font-size: .78rem;
  table-layout: fixed;
}

.dt th {
  padding: 10px 14px;
  text-align: left;
  font-size: .63rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--txm);
  background: var(--surf2);
  border-bottom: 1px solid var(--bdr);
  white-space: nowrap;
  user-select: none;
  position: relative;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dt th.sortable {
  cursor: pointer;
  transition: var(--t);
}

.dt th.sortable:hover {
  color: var(--pri);
  background: #f0ece4;
}

.dt th.sort-asc::after {
  content: ' ↑';
  color: var(--pri);
  font-size: .75em;
}

.dt th.sort-desc::after {
  content: ' ↓';
  color: var(--pri);
  font-size: .75em;
}

.dt td {
  padding: 10px 14px;
  border-bottom: 1px solid var(--bdr2);
  vertical-align: middle;
  color: var(--tx2);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dt tr:last-child td {
  border-bottom: none;
}

.dt tbody tr {
  transition: background var(--t);
  cursor: pointer;
}

.dt tbody tr:hover td {
  background: #f5f1ea;
}

.dt tbody tr.sel td {
  background: var(--pril);
}

.cact {
  width: 100px;
  text-align: right;
  cursor: default;
  white-space: nowrap;
}

.tf {
  padding: 8px 14px;
  font-size: .71rem;
  color: var(--txm);
  border-top: 1px solid var(--bdr2);
  background: var(--surf2);
}

/* Col resize */
.col-resizer {
  position: absolute;
  top: 0;
  right: 0;
  width: 10px;
  height: 100%;
  cursor: col-resize;
  user-select: none;
  touch-action: none;
}

.col-resizer::after {
  content: '';
  position: absolute;
  top: 22%;
  bottom: 22%;
  left: 4px;
  width: 2px;
  border-radius: 2px;
  background: rgba(0,0,0,.1);
  transition: background var(--t);
}

.dt th:hover .col-resizer::after, .dt th.is-resizing .col-resizer::after {
  background: var(--pri);
}

/* Last column never has a right neighbour to steal from — hide its resizer */
.dt th:last-child .col-resizer {
  display: none;
}

/* Fees action buttons + date picker — consistent height/font */
.fees-action-btn {
  font-size: .78rem !important;
  box-sizing: border-box;
}

.fees-toolbar-danger-actions {
  margin-left: auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.fees-toolbar-danger-actions .fees-toolbar-danger-btn {
  width: auto;
  flex: 0 0 auto;
  white-space: nowrap;
}

.fees-kontingent-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  width: 100%;
}

.fees-kontingent-actions .fees-action-col {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  width: 100%;
  min-width: 0;
  flex-wrap: wrap;
}

.fees-kontingent-actions .fees-action-col--dual {
  flex-direction: row;
}

.fees-kontingent-actions .fees-action-form {
  display: flex;
  align-items: center;
  margin: 0;
  width: auto;
  min-width: 0;
  flex: 0 0 auto;
}

.fees-kontingent-actions .fees-action-btn {
  width: auto;
  min-width: 0;
  height: auto;
  flex: 0 0 auto;
  justify-content: center;
  white-space: nowrap;
  text-align: center;
  line-height: normal;
}

/* Column drag-to-reorder */
.dt th[draggable] {
  cursor: grab;
}

.dt th[draggable].sortable {
  cursor: pointer;
}

.dt th[draggable].sortable:active {
  cursor: grabbing;
}

.dt th.col-dragging {
  opacity: .4;
  background: var(--pril);
}

.dt th.col-drag-over {
  background: var(--pril);
  box-shadow: inset 3px 0 0 var(--pri);
}

/* ─── Toolbar ─────────────────────────────────────────────────── */
.tb {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}

.srch-wrap {
  position: relative;
  flex: 1;
  max-width: 320px;
}

.srch-wrap .sico {
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--txm);
  font-size: .78rem;
  pointer-events: none;
}

.sinp {
  width: 100%;
  padding: 8px 32px 8px 32px;
  border: 1px solid var(--bdr);
  border-radius: var(--r);
  background: var(--surf);
  font-family: var(--fb);
  font-size: .78rem;
  color: var(--tx);
  transition: var(--t);
}

.sinp:focus {
  outline: none;
  border-color: var(--pri);
  box-shadow: 0 0 0 3px rgba(30,73,118,.1);
}

.srch-clear {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: var(--txm);
  cursor: pointer;
  font-size: .72rem;
  padding: 2px 4px;
  line-height: 1;
  display: none;
  transition: var(--t);
}

.srch-clear:hover {
  color: var(--tx);
}

.srch-wrap.has-val .srch-clear {
  display: block;
}

/* Filter chips */
.fc {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
  align-items: center;
}

.chip {
  padding: 4px 12px;
  border: 1px solid var(--bdr);
  border-radius: 20px;
  background: var(--surf);
  font-size: .71rem;
  font-weight: 500;
  color: var(--txm);
  cursor: pointer;
  transition: var(--t);
}

.chip:hover {
  border-color: var(--pri);
  color: var(--pri);
}

.chip.on {
  background: var(--pri);
  border-color: var(--pri);
  color: #fff;
}

/* ─── Members filter modal ─────────────────────────────────────── */
.members-filter-controls {
  flex: 0 0 auto;
}

.member-filter-chip.on {
  background: var(--pri);
  border-color: var(--pri);
  color: #fff;
}

.member-filter-modal {
  max-width: 640px;
}

.member-filter-modal-body {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.member-filter-group {
  margin: 0;
  padding: 0;
  border: 0;
  min-width: 0;
}

.member-filter-group > legend {
  margin: 0 0 8px;
  padding: 0;
  font-size: .76rem;
  font-weight: 700;
  color: var(--tx2);
}

.member-filter-status-options {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.member-filter-status-option {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
}

.member-filter-status-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.member-filter-status-option span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 32px;
  padding: 5px 12px;
  border: 1px solid var(--bdr);
  border-radius: 20px;
  background: var(--surf);
  color: var(--txm);
  font-size: .75rem;
  font-weight: 600;
  transition: var(--t);
}

.member-filter-status-option:hover span,
.member-filter-status-option input:focus-visible + span {
  border-color: var(--pri);
  color: var(--pri);
}

.member-filter-status-option input:checked + span {
  border-color: var(--pri);
  background: var(--pri);
  color: #fff;
}

.member-filter-search {
  margin-bottom: 10px;
}

.member-filter-type-list {
  max-height: 360px;
  overflow-y: auto;
  border: 1px solid var(--bdr);
  border-radius: var(--r);
  padding: 6px;
}

.member-filter-type-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px;
  border-radius: 6px;
  cursor: pointer;
}

.member-filter-type-row:hover {
  background: var(--surf2);
}

.member-filter-type-row + .member-filter-type-row {
  border-top: 1px solid var(--bdr2);
}

.member-filter-type-row input[type=checkbox] {
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: var(--pri);
  flex: 0 0 auto;
  cursor: pointer;
}

.member-filter-type-copy {
  display: flex;
  min-width: 0;
  flex: 1 1 auto;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}

.member-filter-type-name {
  min-width: 0;
  overflow-wrap: anywhere;
  color: var(--tx);
  font-size: .8rem;
  font-weight: 600;
}

.member-filter-empty {
  margin: 0;
  padding: 8px;
  color: var(--txm);
  font-size: .78rem;
}

.member-filter-modal-footer {
  align-items: center;
}

.member-filter-summary {
  margin-right: auto;
  min-width: 0;
  overflow-wrap: anywhere;
}

@media (max-width: 700px) {
  .member-filter-modal {
    max-width: 95vw;
  }

  .member-filter-status-options {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .member-filter-status-option span {
    width: 100%;
    justify-content: center;
  }

  .member-filter-type-list {
    max-height: min(46dvh, 360px);
  }

  .member-filter-modal-footer .member-filter-summary {
    flex-basis: 100%;
    margin-right: 0;
  }
}

/* ─── Badges ──────────────────────────────────────────────────── */
.bdg {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 9px;
  border-radius: 20px;
  font-size: .64rem;
  font-weight: 600;
}

.bgreen {
  background: var(--sucl);
  color: var(--suc);
}

.bblue {
  background: var(--pril);
  color: var(--pri);
}

.bgold {
  background: var(--accl);
  color: var(--acc);
}

.bgray {
  background: #f0ede7;
  color: #666;
}

.bred {
  background: var(--danl);
  color: var(--dan);
}

.byellow {
  background: var(--wrnl);
  color: var(--wrn);
}

.bcnt {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 1.1;
  white-space: nowrap;
  background: var(--pril);
  color: var(--pri);
  padding: 3px 10px;
  border-radius: 20px;
  font-size: .71rem;
  font-weight: 600;
}

/* ─── Buttons ─────────────────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border-radius: var(--r);
  border: 1px solid transparent;
  font-family: var(--fb);
  font-size: .78rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--t);
  white-space: nowrap;
  text-decoration: none;
}

.btn:disabled {
  opacity: .5;
  cursor: not-allowed;
}

.bp {
  background: var(--pri);
  color: #fff;
  border-color: var(--pri);
}

.bp:hover {
  background: var(--prid);
}

.bs {
  background: var(--surf);
  border-color: var(--bdr);
  color: var(--tx2);
}

.bs:hover {
  background: var(--bg);
}

.bg2 {
  background: none;
  color: var(--txm);
  border-color: transparent;
}

.bg2:hover {
  background: var(--bg);
  color: var(--tx);
}

.bd {
  background: var(--dan);
  color: #fff;
  border-color: var(--dan);
}

.bd:hover {
  background: #a93226;
}

.bwrn {
  background: var(--wrn);
  color: #fff;
  border-color: var(--wrn);
}

.bwrn:hover {
  background: #b96908;
}

.bsm {
  padding: 5px 11px;
  font-size: .71rem;
}

.bxl {
  padding: 11px 22px;
  font-size: .88rem;
}

.btn-icon {
  padding: 7px 9px;
}

/* ─── Forms ───────────────────────────────────────────────────── */
.fg {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.s2 {
  grid-column: span 2;
}

.s3 {
  grid-column: span 3;
}

.fgrp {
  display: flex;
  flex-direction: column;
}

.fl {
  font-size: .71rem;
  font-weight: 600;
  color: var(--tx2);
  margin-bottom: 5px;
  display: block;
}

.fl.req::after {
  content: ' *';
  color: var(--dan);
}

.fi, .fsel, .fta {
  padding: 8px 12px;
  border: 1px solid var(--bdr);
  border-radius: var(--r);
  background: var(--surf);
  font-family: var(--fb);
  font-size: .78rem;
  color: var(--tx);
  transition: var(--t);
  width: 100%;
}

.fi:focus, .fsel:focus, .fta:focus {
  outline: none;
  border-color: var(--pri);
  box-shadow: 0 0 0 3px rgba(30,73,118,.1);
}

.fi:-webkit-autofill, .fi:-webkit-autofill:hover, .fi:-webkit-autofill:active, .fsel:-webkit-autofill, .fsel:-webkit-autofill:hover, .fsel:-webkit-autofill:active, .fta:-webkit-autofill, .fta:-webkit-autofill:hover, .fta:-webkit-autofill:active {
  -webkit-text-fill-color: var(--tx) !important;
  caret-color: var(--tx) !important;
  -webkit-box-shadow: 0 0 0 1000px var(--surf) inset !important;
  box-shadow: 0 0 0 1000px var(--surf) inset !important;
  border-color: var(--bdr) !important;
  background-color: var(--surf) !important;
  background-image: none !important;
  transition: background-color 999999s ease-in-out 0s, color 999999s ease-in-out 0s;
}

.fi:-webkit-autofill:focus, .fsel:-webkit-autofill:focus, .fta:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--tx) !important;
  caret-color: var(--tx) !important;
  -webkit-box-shadow: 0 0 0 1000px var(--surf) inset, 0 0 0 3px rgba(30,73,118,.1) !important;
  box-shadow: 0 0 0 1000px var(--surf) inset, 0 0 0 3px rgba(30,73,118,.1) !important;
  border-color: var(--pri) !important;
  background-color: var(--surf) !important;
  background-image: none !important;
}

.fi:disabled, .fsel:disabled {
  opacity: .6;
  cursor: not-allowed;
  background: var(--bg);
}

.fsel {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='7'%3E%3Cpath fill='%238a95a5' d='M5 7L0 0h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  padding-right: 28px;
}

.fsel-sm {
  padding: 5px 26px 5px 9px;
  font-size: .71rem;
}

.fta {
  resize: vertical;
  min-height: 72px;
}

.ht {
  font-size: .72rem;
  color: var(--txm);
  line-height: 1.5;
  margin-top: 3px;
}

.ferr {
  font-size: .71rem;
  color: var(--dan);
  margin-top: 3px;
}

/* Toggle switch */
.tglb {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  user-select: none;
}

.tglb input {
  display: none;
}

.tgltr {
  width: 40px;
  height: 22px;
  background: var(--bdr);
  border-radius: 11px;
  position: relative;
  transition: var(--t);
  flex-shrink: 0;
}

.tgltr::after {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  background: #fff;
  border-radius: 50%;
  top: 3px;
  left: 3px;
  transition: var(--t);
  box-shadow: 0 1px 3px rgba(0,0,0,.2);
}

.tglb input:checked + .tgltr {
  background: var(--pri);
}

.tglb input:checked + .tgltr::after {
  transform: translateX(18px);
}

.tgltx {
  font-size: .8rem;
  font-weight: 500;
  color: var(--tx2);
}

.tglb.is-disabled {
  cursor: not-allowed;
  opacity: .62;
}

.tglb.is-disabled .tgltr {
  background: #94a3b8 !important;
}

.tglb.is-disabled .tgltx {
  color: var(--txm);
}

/* Checkbox styled */
.cbx-row {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
}

.cbx-row input[type=checkbox] {
  accent-color: var(--pri);
  width: 15px;
  height: 15px;
  cursor: pointer;
}

.cbx-row label {
  font-size: .8rem;
  color: var(--tx2);
  cursor: pointer;
}

/* ─── Action buttons ──────────────────────────────────────────── */
.abs {
  display: flex;
  justify-content: flex-end;
  gap: 4px;
}

.btt {
  width: 30px;
  height: 30px;
  border: none;
  border-radius: 6px;
  background: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .75rem;
  transition: var(--t);
  color: var(--txm);
}

.btt:hover {
  background: var(--bg);
  color: var(--tx);
}

.btt.dn:hover {
  background: var(--danl);
  color: var(--dan);
}

.btt.pr:hover {
  background: var(--pril);
  color: var(--pri);
}

/* ─── Modals ──────────────────────────────────────────────────── */
.mo {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.48);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  padding: 16px;
  backdrop-filter: blur(2px);
}

.mo.open {
  display: flex;
  animation: mfi .14s ease;
}

@keyframes mfi {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.mdl {
  background: var(--surf);
  border-radius: var(--rxl);
  width: 100%;
  max-height: 92vh;
  display: flex;
  flex-direction: column;
  box-shadow: var(--shl);
  overflow: hidden;
  animation: msu .18s ease;
}

@keyframes msu {
  from {
    transform: translateY(12px);
    opacity: 0;
  }

  to {
    transform: translateY(0);
    opacity: 1;
  }
}

.msm {
  max-width: 440px;
}

.mmd {
  max-width: 620px;
}

.mlg {
  max-width: 840px;
}

.mxl {
  max-width: 1060px;
}

.mh {
  padding: 16px 22px 13px;
  border-bottom: 1px solid var(--bdr);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-shrink: 0;
}

.mt2 {
  font-family: var(--fd);
  font-size: .98rem;
  font-weight: 700;
}

.mc2 {
  width: 30px;
  height: 30px;
  border: none;
  background: none;
  border-radius: 6px;
  cursor: pointer;
  color: var(--txm);
  font-size: .85rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--t);
}

.mc2:hover {
  background: var(--bg);
  color: var(--tx);
}

.mb2 {
  padding: 20px 22px;
  overflow-y: auto;
  flex: 1;
  min-height: 0;
}

.mb2::-webkit-scrollbar {
  width: 6px;
}

.mb2::-webkit-scrollbar-thumb {
  background: var(--bdr);
  border-radius: 3px;
}

.mf {
  padding: 13px 22px;
  border-top: 1px solid var(--bdr);
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-shrink: 0;
  background: var(--surf2);
  border-radius: 0 0 var(--rxl) var(--rxl);
}

/* Member modal special bg */
#mo-mem .mdl {
  background: var(--bg);
  max-width: 1092px;
}

#mo-mem .mh,
#mo-mem .mb2,
#mo-mem .mf {
  background: var(--bg);
}

#mo-mem .mb2, #mo-req .mb2 {
  padding-bottom: 8px;
}

/* ─── Membership fee confirmation ─────────────────────────────── */
.membership-fee-confirm-modal {
  z-index: 1010;
}

.membership-fee-confirm-dialog {
  max-width: 520px;
}

.membership-fee-confirm-actions {
  justify-content: flex-end;
}

.membership-fee-choice-set {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.membership-fee-choice-set legend {
  margin: 0 0 8px;
  padding: 0;
  color: var(--tx);
  font-size: .92rem;
  font-weight: 800;
}

.membership-fee-choice-list {
  display: grid;
  gap: 8px;
}

.membership-fee-choice {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--bdr);
  border-radius: var(--r);
  background: var(--surf2);
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}

.membership-fee-choice:hover {
  border-color: color-mix(in srgb, var(--pri) 45%, var(--bdr));
}

.membership-fee-choice.is-selected {
  border-color: color-mix(in srgb, var(--pri) 55%, var(--bdr));
  background: color-mix(in srgb, var(--pri) 8%, var(--surf));
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--pri) 12%, transparent);
}

.membership-fee-choice input[type="radio"] {
  inline-size: 18px;
  block-size: 18px;
  margin: 0;
  accent-color: var(--pri);
}

.membership-fee-choice-main {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.membership-fee-choice-title {
  display: flex;
  align-items: center;
  gap: 7px;
  color: var(--tx);
  font-weight: 800;
}

.membership-fee-choice-title i {
  color: var(--pri);
}

.membership-fee-choice-description {
  color: var(--txm);
  font-size: .82rem;
  line-height: 1.35;
}

.membership-fee-choice-amount {
  color: var(--tx);
  font-size: .94rem;
  text-align: right;
  white-space: nowrap;
}

.membership-fee-custom-control {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--txm);
  font-weight: 700;
  white-space: nowrap;
}

.membership-fee-custom-control .fi {
  width: 112px;
  min-height: 38px;
  text-align: right;
}

.membership-fee-custom-control .fi:disabled {
  cursor: not-allowed;
  opacity: .62;
}

@media (max-width: 700px) {
  .membership-fee-choice {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
  }

  .membership-fee-choice-amount,
  .membership-fee-custom-control {
    grid-column: 2;
    justify-self: start;
    text-align: left;
  }

  .membership-fee-confirm-actions .btn {
    flex: 1 1 0;
    justify-content: center;
  }
}

/* ─── Login ───────────────────────────────────────────────────── */
.login-overlay {
  position: fixed;
  inset: 0;
  background: var(--sb);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity .4s ease;
}

.login-box {
  width: 100%;
  max-width: 440px;
  padding: 24px 32px;
}

.login-logo {
  display: block;
  max-width: 140px;
  margin: 0 auto 18px;
  filter: brightness(0) invert(1);
  opacity: .85;
}

.login-title {
  font-family: var(--fd);
  color: #fff;
  font-size: 1.3rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 4px;
}

.login-sub {
  color: rgba(255,255,255,.45);
  font-size: .74rem;
  text-align: center;
  margin-bottom: 28px;
}

.login-lbl {
  display: block;
  color: rgba(255,255,255,.6);
  font-size: .67rem;
  font-weight: 700;
  margin-bottom: 6px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.login-fi {
  width: 100%;
  padding: 11px 14px;
  border-radius: 8px;
  border: 1.5px solid rgba(255,255,255,.12);
  background: #506479 !important;
  background-color: #506479 !important;
  background-image: none !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff;
  caret-color: #fff;
  color-scheme: dark;
  font-size: .85rem;
  font-family: var(--fb);
  outline: none;
  box-sizing: border-box;
  transition: border-color .2s, box-shadow .2s;
}

.login-fi:hover, .login-fi:focus, .login-fi:active {
  background: #506479 !important;
  background-color: #506479 !important;
  background-image: none !important;
  border-color: rgba(255,255,255,.13);
  box-shadow: none;
  color: #fff !important;
  -webkit-text-fill-color: #fff;
}

.login-fi::placeholder {
  color: rgba(255,255,255,.28);
}

.login-fi:-webkit-autofill, .login-fi:-webkit-autofill:hover, .login-fi:-webkit-autofill:focus {
  -webkit-text-fill-color: #fff !important;
  -webkit-box-shadow: 0 0 0 1000px #506479 inset !important;
  box-shadow: 0 0 0 1000px #506479 inset !important;
  background-color: #506479 !important;
  background-image: none !important;
  caret-color: #fff;
}

.login-pw-wrap {
  position: relative;
}

.login-pw-wrap input {
  padding-right: 44px !important;
}

.pw-toggle {
  position: absolute;
  right: 11px;
  top: 50%;
  transform: translateY(-50%);
  border: none;
  background: transparent;
  color: rgba(255,255,255,.45);
  cursor: pointer;
  padding: 4px;
  font-size: .92rem;
  transition: var(--t);
}

.pw-toggle:hover {
  color: #fff;
}

.login-btn {
  width: 100%;
  padding: 13px;
  border-radius: 8px;
  border: none;
  background: var(--pri);
  color: #fff;
  font-family: var(--fb);
  font-size: .88rem;
  font-weight: 700;
  cursor: pointer;
  transition: background .2s;
}

.login-btn:hover {
  background: var(--prid);
}

.login-err {
  color: #f87171;
  font-size: .74rem;
  text-align: center;
  margin-top: 10px;
}

.login-ok {
  color: #6ee7b7;
  font-size: .74rem;
  text-align: center;
  margin-top: 10px;
}

.login-link {
  background: none;
  border: none;
  color: rgba(255,255,255,.38);
  font-size: .72rem;
  cursor: pointer;
  font-family: var(--fb);
  padding: 4px;
  transition: color .2s;
}

.login-link:hover {
  color: rgba(255,255,255,.65);
}

#member-login input[type="email"], #member-login input[type="password"], #fpModal input[type="email"] {
  width: 100%;
  box-sizing: border-box;
  border: 1.5px solid rgba(255,255,255,.13);
  background: #506479 !important;
  background-color: #506479 !important;
  background-image: none !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff;
  caret-color: #fff;
  color-scheme: dark;
}

#member-login input[type="email"]::placeholder, #member-login input[type="password"]::placeholder, #fpModal input[type="email"]::placeholder {
  color: transparent;
}

#member-login input[type="email"]:hover, #member-login input[type="email"]:focus, #member-login input[type="email"]:active, #member-login input[type="password"]:hover, #member-login input[type="password"]:focus, #member-login input[type="password"]:active, #fpModal input[type="email"]:hover, #fpModal input[type="email"]:focus, #fpModal input[type="email"]:active {
  background: #506479 !important;
  background-color: #506479 !important;
  background-image: none !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff;
  border-color: rgba(255,255,255,.13);
  box-shadow: none;
}

#member-login input[type="email"]:-webkit-autofill, #member-login input[type="email"]:-webkit-autofill:hover, #member-login input[type="email"]:-webkit-autofill:focus, #member-login input[type="password"]:-webkit-autofill, #member-login input[type="password"]:-webkit-autofill:hover, #member-login input[type="password"]:-webkit-autofill:focus, #fpModal input[type="email"]:-webkit-autofill, #fpModal input[type="email"]:-webkit-autofill:hover, #fpModal input[type="email"]:-webkit-autofill:focus {
  -webkit-text-fill-color: #fff !important;
  caret-color: #fff !important;
  -webkit-box-shadow: 0 0 0 1000px #506479 inset !important;
  box-shadow: 0 0 0 1000px #506479 inset !important;
  border: 1.5px solid rgba(255,255,255,.13) !important;
  background-color: #506479 !important;
  background-image: none !important;
}

/* ─── Alerts/notices ──────────────────────────────────────────── */
.alert {
  padding: 12px 16px;
  border-radius: var(--r);
  margin-bottom: 14px;
  font-size: .8rem;
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.alert-err {
  background: var(--danl);
  color: #7e2f26;
  border: 1px solid #f2c4bf;
}

.alert-ok {
  background: var(--sucl);
  color: var(--suc);
  border: 1px solid #a8d5b8;
}

.alert-warn {
  background: var(--wrnl);
  color: #92570a;
  border: 1px solid #f5d98e;
}

.alert-info {
  background: var(--pril);
  color: var(--pri);
  border: 1px solid #b8cfe8;
}

/* ─── Tabs ────────────────────────────────────────────────────── */
.tabs {
  display: flex;
  gap: 2px;
  border-bottom: 1px solid var(--bdr);
  margin-bottom: 18px;
}

.tabbtn {
  padding: 9px 18px;
  border: none;
  background: none;
  font-family: var(--fb);
  font-size: .8rem;
  font-weight: 500;
  color: var(--txm);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: var(--t);
  white-space: nowrap;
}

.tabbtn:hover {
  color: var(--tx);
}

.tabbtn.active {
  color: var(--pri);
  border-bottom-color: var(--pri);
  font-weight: 600;
}

/* ─── Settings layout ─────────────────────────────────────────── */
.set-layout {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 20px;
  align-items: start;
}

.set-nav .nav-link {
  border-radius: var(--r);
}

.set-nav .snsl {
  padding: 4px 8px 3px;
  font-size: .6rem;
}

/* ─── Communication editor ────────────────────────────────────── */
.el {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 16px;
  align-items: start;
}

.esb {
  position: sticky;
  top: 10px;
}

.rgl {
  font-size: .71rem;
  font-weight: 600;
  color: var(--txm);
  margin-bottom: 5px;
}

.cbrow {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-bottom: 8px;
}

.cbl {
  display: flex;
  align-items: center;
  gap: 5px;
  cursor: pointer;
  font-size: .76rem;
  color: var(--tx2);
  padding: 3px 10px;
  border: 1px solid var(--bdr);
  border-radius: 20px;
  transition: var(--t);
  user-select: none;
}

.cbl input {
  accent-color: var(--pri);
}

.cbl:has(input:checked) {
  border-color: var(--pri);
  background: var(--pril);
  color: var(--pri);
}

/* Template list */
.tplist {
  padding: 6px;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.tpi {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 7px 9px;
  border-radius: var(--r);
  transition: var(--t);
  border-bottom: 1px solid var(--bdr2);
  cursor: pointer;
}

.tpi:last-child {
  border-bottom: none;
}

.tpi:hover {
  background: var(--bg);
}

.tpi.sel {
  background: var(--pril);
}

.tpin {
  font-size: .78rem;
  font-weight: 500;
}

.tpac {
  display: flex;
  gap: 2px;
  opacity: 0;
  transition: var(--t);
}

.tpi:hover .tpac, .tpi.sel .tpac {
  opacity: 1;
}

/* Recipient list */
.pvl {
  font-size: .67rem;
  font-weight: 700;
  color: var(--txm);
  text-transform: uppercase;
  letter-spacing: .05em;
  margin-bottom: 4px;
}

.pvlist {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  max-height: 96px;
  overflow-y: auto;
}

.pchip {
  padding: 2px 8px;
  background: var(--bg);
  border: 1px solid var(--bdr);
  border-radius: 4px;
  font-size: .67rem;
  color: var(--tx2);
}

/* ─── Member cert pills ───────────────────────────────────────── */
.cert-pill {
  display: inline-flex;
  align-items: center;
  padding: 1px 7px;
  border-radius: 20px;
  font-size: .64rem;
  font-weight: 700;
  color: #fff;
}

/* ─── Fee table specifics ────────────────────────────────────── */
.fee-paid {
  color: var(--suc);
  font-weight: 600;
}

.fee-unpaid {
  color: var(--dan);
}

.fee-overdue {
  color: var(--dan);
  font-weight: 700;
}

/* ─── Year selector ───────────────────────────────────────────── */
.year-nav {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--fd);
  font-weight: 700;
  font-size: .9rem;
}

.year-nav button {
  width: 28px;
  height: 28px;
  border: 1px solid var(--bdr);
  border-radius: 6px;
  background: var(--surf);
  color: var(--txm);
  cursor: pointer;
  transition: var(--t);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .8rem;
}

.year-nav button:hover {
  background: var(--bg);
  color: var(--tx);
}

/* ─── Send mail progress ─────────────────────────────────────── */
.mail-progress-bar-wrap {
  padding: 14px 16px;
  border: 1px solid var(--bdr);
  border-radius: var(--rl);
  background: #fff;
  margin-top: 14px;
}

.mail-progress-bar {
  height: 10px;
  border-radius: 999px;
  background: #e4ddd3;
  overflow: hidden;
}

.mail-progress-bar-fill {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, var(--pri) 0%, #3a7ac5 100%);
  transition: width .22s ease;
}

.mail-progress-meta {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-top: 7px;
  font-size: .69rem;
  color: var(--txm);
}

/* ─── Login overlay for change_password / twofactor ─────────── */
.auth-box {
  max-width: 420px;
  margin: 40px auto;
  background: var(--surf);
  border: 1px solid var(--bdr);
  border-radius: var(--rl);
  padding: 24px;
  box-shadow: var(--sh);
}

/* ─── MDK status ──────────────────────────────────────────────── */
.mdk-ok {
  background: var(--sucl);
  color: var(--suc);
}

.mdk-bad {
  background: #f0ede7;
  color: var(--txm);
}

.mdk-warn {
  background: var(--wrnl);
  color: var(--wrn);
}

/* ─── Divider ─────────────────────────────────────────────────── */
.div {
  border: none;
  border-top: 1px solid var(--bdr2);
  margin: 14px 0;
}

.div-v {
  border: none;
  border-left: 1px solid var(--bdr2);
}

/* ─── Rich text editor (Quill) ────────────────────────────────── */
.ql-container {
  font-family: var(--fb);
  font-size: .82rem;
}

.ql-toolbar {
  border-color: var(--bdr) !important;
  background: var(--surf2);
}

.ql-container {
  border-color: var(--bdr) !important;
}

.ql-editor {
  min-height: 200px;
}

/* Kommunikation: Word-lignende tabelværktøj i Quill editor */
body.page-communication .ql-toolbar.ql-snow {
  position: relative;
}

body.page-communication .ql-snow .ql-toolbar button.comm-word-toolbar-btn, body.page-communication .ql-toolbar.ql-snow button.comm-word-toolbar-btn {
  width: auto;
  min-width: 34px;
  padding: 0 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  color: var(--tx2);
  font-size: 12px;
  line-height: 1;
}

body.page-communication .ql-toolbar.ql-snow button.comm-word-toolbar-btn:hover, body.page-communication .ql-toolbar.ql-snow button.comm-word-toolbar-btn:focus {
  color: var(--pri);
}

body.page-communication .ql-toolbar.ql-snow button.comm-word-toolbar-btn svg {
  display: none;
}

body.page-communication .ql-toolbar.ql-snow button.comm-word-toolbar-main {
  min-width: 72px;
  font-weight: 700;
}

body.page-communication .comm-word-table-popover {
  display: none;
  position: fixed;
  top: auto;
  left: auto;
  z-index: 10000;
  width: 286px;
  padding: 12px;
  border: 1px solid var(--bdr);
  border-radius: 12px;
  background: var(--surf);
  box-shadow: var(--sh);
}

body.page-communication .comm-word-table-popover.open {
  display: block;
}

body.page-communication .comm-word-table-popover-head {
  font-size: .76rem;
  font-weight: 800;
  color: var(--tx);
  margin-bottom: 8px;
}

body.page-communication .comm-word-table-mode {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  margin-bottom: 10px;
}

body.page-communication .comm-word-table-mode button, body.page-communication .comm-word-table-actions button {
  border: 1px solid var(--bdr2);
  border-radius: 8px;
  background: var(--surf2);
  color: var(--tx2);
  font-family: var(--fb);
  font-size: .68rem;
  font-weight: 700;
  padding: 7px 8px;
  cursor: pointer;
  transition: var(--t);
}

body.page-communication .comm-word-table-mode button:hover, body.page-communication .comm-word-table-actions button:hover, body.page-communication .comm-word-table-mode button.active {
  border-color: rgba(30,73,118,.42);
  background: var(--pril);
  color: var(--pri);
}

body.page-communication .comm-word-table-grid {
  display: grid;
  grid-template-columns: repeat(10, 18px);
  gap: 4px;
  justify-content: start;
  padding: 2px 0;
}

body.page-communication .comm-word-table-grid-cell {
  width: 18px;
  height: 18px;
  border: 1px solid #cbd5e1;
  border-radius: 3px;
  background: #fff;
  cursor: pointer;
  transition: background .08s ease, border-color .08s ease;
}

body.page-communication .comm-word-table-grid-cell.active {
  border-color: var(--pri);
  background: rgba(30,73,118,.18);
}

body.page-communication .comm-word-table-grid-info {
  min-height: 20px;
  margin: 8px 0 10px;
  color: var(--txm);
  font-size: .7rem;
  font-weight: 700;
}

body.page-communication .comm-word-table-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  border-top: 1px solid var(--bdr2);
  padding-top: 10px;
}

body.page-communication .ql-editor table.comm-word-table, body.page-communication .ql-editor table[data-comm-table="word"] {
  width: 100%;
  max-width: 100%;
  margin: 14px 0;
  table-layout: fixed;
  border-collapse: collapse;
  border-spacing: 0;
  background: transparent;
}

body.page-communication .ql-editor table.comm-word-table td, body.page-communication .ql-editor table.comm-word-table th, body.page-communication .ql-editor table[data-comm-table="word"] td, body.page-communication .ql-editor table[data-comm-table="word"] th {
  min-width: 28px;
  height: auto;
  min-height: 0;
  padding: 2px 6px;
  vertical-align: top;
  box-sizing: border-box;
  background: rgba(255,255,255,.86);
  line-height: 1.35;
}

body.page-communication .ql-editor table.comm-word-table-hidden, body.page-communication .ql-editor table[data-comm-table-border="hidden"] {
  outline: 2px dashed rgba(30,73,118,.55);
  outline-offset: 0;
  background: rgba(30,73,118,.035);
}

body.page-communication .ql-editor table.comm-word-table-hidden td, body.page-communication .ql-editor table.comm-word-table-hidden th, body.page-communication .ql-editor table[data-comm-table-border="hidden"] td, body.page-communication .ql-editor table[data-comm-table-border="hidden"] th {
  border: 1px dashed rgba(30,73,118,.64);
  box-shadow: inset 0 0 0 1px rgba(30,73,118,.10);
}

body.page-communication .ql-editor table.comm-word-table-visible, body.page-communication .ql-editor table[data-comm-table-border="visible"] {
  border: 1px solid #64748b;
}

body.page-communication .ql-editor table.comm-word-table-visible td, body.page-communication .ql-editor table.comm-word-table-visible th, body.page-communication .ql-editor table[data-comm-table-border="visible"] td, body.page-communication .ql-editor table[data-comm-table-border="visible"] th {
  border: 1px solid #64748b;
}

body.page-communication .ql-editor table.comm-word-table th, body.page-communication .ql-editor table[data-comm-table="word"] th {
  font-weight: 700;
}

body.page-communication .ql-editor table.comm-word-table p, body.page-communication .ql-editor table[data-comm-table="word"] p {
  margin: 0;
  padding: 0;
  line-height: 1.35;
}

body.page-communication .ql-editor table.comm-word-table p:last-child, body.page-communication .ql-editor table[data-comm-table="word"] p:last-child {
  margin-bottom: 0;
}

body.page-communication .ql-editor table.comm-word-table br, body.page-communication .ql-editor table[data-comm-table="word"] br {
  line-height: 1.35;
}

body.page-communication .comm-word-table-resize-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 10001;
  pointer-events: none;
}

body.page-communication .comm-word-table-resize-overlay.open {
  display: block;
}

body.page-communication .comm-word-table-resize-handle {
  position: fixed;
  width: 8px;
  min-width: 8px;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  cursor: col-resize;
  pointer-events: auto;
}

body.page-communication .comm-word-table-resize-handle::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 3px;
  width: 2px;
  border-radius: 999px;
  background: rgba(30,73,118,.34);
}

body.page-communication .comm-word-table-resize-handle:hover::before, body.page-communication.comm-word-table-is-resizing .comm-word-table-resize-handle::before, body.comm-word-table-is-resizing .comm-word-table-resize-handle::before {
  background: rgba(30,73,118,.78);
}

body.comm-word-table-is-resizing, body.comm-word-table-is-resizing * {
  cursor: col-resize !important;
  user-select: none !important;
}

body.page-communication .ql-editor .comm-email-image-placeholder {
  min-height: 120px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--txm);
  text-align: center;
  border: 1px dashed rgba(30,73,118,.45);
  border-radius: 8px;
  background: rgba(148,163,184,.12);
}

/* ─── Responsive ──────────────────────────────────────────────── */
/* ─── Mobile sidebar overlay ─────────────────────────────────── */
.sidebar-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.45);
  z-index: 199;
}

.sidebar-overlay.open {
  display: block;
}

/* Hamburger button in topbar (only shown on mobile) */
.mob-nav-btn {
  display: none;
  background: none;
  border: none;
  color: var(--txm);
  cursor: pointer;
  font-size: 1.1rem;
  padding: 6px 8px;
  border-radius: var(--r);
  flex-shrink: 0;
}

.mob-nav-btn:hover {
  background: var(--bg);
  color: var(--tx);
}

.mob-nav-floating {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 180;
  background: var(--surf);
  border: 1px solid var(--bdr);
  box-shadow: var(--sh0);
}

/* ─── Desktop: sidebar always visible ────────────────────────── */
@media (min-width: 701px) {
  .mob-nav-btn {
    display: none !important;
  }

  .sidebar-overlay {
    display: none !important;
  }
}

/* ─── Tablet/lille skærm (701px–1024px): sidebar collapses to icons ───────── */
@media (max-width: 1024px) {
  .sidebar {
    width: 60px;
  }

  .sidebar .sorg, .sidebar .snsl, .sidebar .nav-link span, .sidebar .sfv {
    display: none;
  }

  .sidebar .nav-link {
    justify-content: center;
    padding: 10px;
  }

  .sidebar .slogout {
    justify-content: center;
    padding: 9px;
  }

  .sidebar .slogout span {
    display: none;
  }

  .main {
    margin-left: 60px;
  }

  .el {
    grid-template-columns: 1fr;
  }

  .set-layout {
    grid-template-columns: 1fr;
  }

  .fg {
    grid-template-columns: 1fr;
  }

  .s2, .s3 {
    grid-column: span 1;
  }

  .kpi-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ─── Mobile (≤700px): sidebar hidden, overlay on open ─────── */
@media (max-width: 700px) {
  html {
    font-size: 19px;
  }

  /* Show hamburger, hide desktop sidebar toggle */
  .mob-nav-btn {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .stog {
    display: none;
  }

  /* Sidebar: hidden off-screen, slides in when .mob-open */
  .sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: var(--sw) !important;
    transform: translateX(-100%);
    transition: transform .22s ease;
    z-index: 200;
  }

  .sidebar .nav-link {
    justify-content: flex-start;
    padding: 10px 14px;
  }

  .sidebar .nav-link span {
    display: inline !important;
  }

  .sidebar .snsl {
    display: block !important;
  }

  .sidebar .sfv {
    display: block !important;
  }

  .sidebar .slogout {
    justify-content: flex-start;
    padding: 10px 14px;
  }

  .sidebar .slogout span {
    display: inline !important;
  }

  .sidebar .slogo img {
    max-width: 120px;
  }

  .sidebar.mob-open {
    transform: translateX(0);
  }

  /* Main takes full width */
  .main {
    margin-left: 0 !important;
  }

  /* Topbar tighter on mobile */
  .topbar {
    padding: 0 12px;
  }

  /* Grids collapse */
  .grid2, .grid3 {
    grid-template-columns: 1fr;
  }

  .el {
    grid-template-columns: 1fr;
  }

  .set-layout {
    grid-template-columns: 1fr;
  }

  .kpi-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  /* ── Toolbar (members + events) ──────────────────────────── */
  .tb {
    flex-wrap: wrap;
    gap: 8px;
    padding: 10px 12px;
  }

  .srch-wrap {
    max-width: 100%;
    width: 100%;
  }

  .fc {
    flex-wrap: wrap;
    margin-left: 0 !important;
  }

  .tb > div:last-child {
    margin-left: 0 !important;
    width: 100%;
  }

  .tb > div:last-child .btn {
    flex: 1 1 auto;
  }

  /* ── Members table: vis kun Navn og MDK ─────────────────── */
  body.page-members .tw {
    overflow-x: hidden;
  }

  body.page-members #members-table {
    width: 100% !important;
    min-width: 100% !important;
    table-layout: fixed;
  }

  body.page-members #members-table th, body.page-members #members-table td {
    min-width: 0;
  }

  /* Skjul Type, OY-nummer, E-mail, Telefon, Certifikater, Status */
  body.page-members #members-table th:nth-child(2), body.page-members #members-table td:nth-child(2), body.page-members #members-table th:nth-child(3), body.page-members #members-table td:nth-child(3), body.page-members #members-table th:nth-child(4), body.page-members #members-table td:nth-child(4), body.page-members #members-table th:nth-child(5), body.page-members #members-table td:nth-child(5), body.page-members #members-table th:nth-child(6), body.page-members #members-table td:nth-child(6), body.page-members #members-table th:nth-child(7), body.page-members #members-table td:nth-child(7) {
    display: none;
  }

  /* Skift til auto layout så Navn+MDK fordeles korrekt uden fixed px */
  body.page-members #members-table {
    table-layout: auto !important;
  }

  body.page-members #members-table th:nth-child(1), body.page-members #members-table td:nth-child(1) {
    width: auto !important;
    overflow: hidden;
  }

  body.page-members #members-table th:last-child, body.page-members #members-table td:last-child {
    width: 54px !important;
    white-space: nowrap !important;
    padding-left: 6px;
    padding-right: 10px;
    text-align: center;
  }

  /* ── Requests table: vis kun Navn, Type og OY-nummer ─────── */
  body.page-members #requests-table {
    table-layout: auto !important;
  }

  body.page-members #requests-table th, body.page-members #requests-table td {
    min-width: 0;
  }

  /* Skjul E-mail, Telefon, Status, Handling */
  body.page-members #requests-table th:nth-child(4), body.page-members #requests-table td:nth-child(4), body.page-members #requests-table th:nth-child(5), body.page-members #requests-table td:nth-child(5), body.page-members #requests-table th:nth-child(6), body.page-members #requests-table td:nth-child(6), body.page-members #requests-table th:nth-child(7), body.page-members #requests-table td:nth-child(7) {
    display: none;
  }

  /* ── Member editor modal: ægte modal, maks 90% bredde ───── */
  /* Overlay scroller hele modalen */
  #mo-mem, #mo-req {
    align-items: flex-start;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* Modal: ingen højdebegrænsning – indhold bestemmer */
  #mo-mem .mdl, #mo-req .mdl {
    max-height: none !important;
    display: block !important;
  }

  /* Body: ingen intern scroll – hele modalen scroller samlet */
  #mo-mem .mb2, #mo-req .mb2 {
    overflow: visible;
    flex: none;
    padding: 16px;
  }

  /* Header: normal flow, ikke sticky */
  #mo-mem .mh, #mo-req .mh {
    padding: 14px 16px 12px;
  }

  /* Footer: normal flow i bunden af indholdet */
  #mo-mem .mf, #mo-req .mf {
    padding: 12px 16px;
    gap: 8px;
    flex-wrap: wrap;
  }

  #mo-mem .mf .btn, #mo-req .mf .btn {
    min-height: 42px;
    font-size: .78rem;
  }

  /*
     Mobilplacering af knapper i medlemsmodalerne.
     Grid bruges kun her, så desktop-flowet ikke ændres.
  */
  #mo-mem-footer.member-modal-actions, #mo-req-footer.request-modal-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
  }

  #mo-mem-footer.member-modal-actions .btn, #mo-req-footer.request-modal-actions .btn {
    width: 100%;
    min-width: 0;
    justify-content: center;
    margin: 0 !important;
  }

  /* Redigér medlem: Annullér/Slet/Gem på én linje i mobilvisning. */
  #mo-mem-footer.has-delete {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #mo-mem-footer.has-delete .member-cancel-action {
    order: 1;
    grid-column: auto;
  }

  #mo-mem-footer.has-delete .member-delete-action {
    order: 2;
    grid-column: auto;
  }

  #mo-mem-footer.has-delete .member-save-action {
    order: 3;
    grid-column: auto;
  }

  /* Opret medlem: når Slet ikke findes, hold Annullér/Gem på samme linje. */
  #mo-mem-footer.no-delete .member-cancel-action {
    order: 1;
    grid-column: auto;
  }

  #mo-mem-footer.no-delete .member-save-action {
    order: 2;
    grid-column: auto;
  }

  /* Medlemsanmodning: Annullér/Gem kladde øverst, Afvis/Acceptér nederst. */
  #mo-req-footer .request-cancel-action {
    order: 1;
  }

  #mo-req-footer .request-draft-action {
    order: 2;
  }

  #mo-req-footer .request-reject-action {
    order: 3;
  }

  #mo-req-footer .request-accept-action {
    order: 4;
  }

  /* 3-kolonners grid → 1 kolonne
     NB: de gamle inline-style selectors bevares som fallback, men
     CSP-oprydningen har flyttet styling til .csp-style-* klasser. */
  #mem-form .csp-style-e4ca9ef65c, #mem-form [style*="grid-template-columns:2fr 1fr 1fr"], #mem-form [style*="grid-template-columns: 2fr 1fr 1fr"] {
    grid-template-columns: 1fr !important;
  }

  /* 2-kolonners grid → 1 kolonne */
  #mem-form .csp-style-28badaee55, #mem-form .csp-style-49a3bebb46, #mem-form [style*="grid-template-columns:1fr 1fr"], #mem-form [style*="grid-template-columns: 1fr 1fr"] {
    grid-template-columns: 1fr !important;
  }

  /* Halvbredde-blok → fuld bredde */
  #mem-form .csp-style-28badaee55, #mem-form [style*="width:50%"] {
    width: 100% !important;
    margin-left: 0 !important;
  }

  #mem-form .csp-style-a56c85e3df {
    width: 100%;
  }

  #mem-form .csp-style-a76d597a07 {
    width: 100%;
  }

  /* Sektions-titler: strammere på mobil */
  #mem-form .msec {
    margin-bottom: 14px;
  }

  #mem-form .msec-title {
    font-size: .74rem;
    margin-bottom: 8px;
    padding-bottom: 5px;
  }

  /* Touch-venlige inputs: 44px min-højde */
  #mem-form .fi, #mem-form .fsel, #mem-form .fta {
    min-height: 44px;
    font-size: 18px;
    /* undgå iOS zoom ved fokus og giver tydeligere mobiltypografi */
    padding: 10px 12px;
  }

  #mem-form .fl {
    font-size: .71rem;
    margin-bottom: 4px;
  }

  /* Cert-grid spacing */
  #mem-form .cert-cat-label {
    font-size: .68rem;
    margin-bottom: 6px;
    margin-top: 4px;
  }

  /* Status-sektion: stak toggles og datoer vertikalt */
  #mem-form .msec:nth-child(2) > div {
    flex-direction: column !important;
    gap: 12px !important;
  }

  /* iOS dato-fix */
  #mem-form input[type="date"] {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
    display: block;
    min-height: 44px;
    font-size: 18px;
    -webkit-appearance: none;
  }

  /* Familiegruppe: stak vertikalt */
  #mem-form .cbx-row {
    margin-bottom: 2px;
  }

  #mem-form #fam-new-row, #mem-form #fam-existing-row {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 8px !important;
  }

  #mem-form #fam-new-row input[type="text"], #mem-form #fam-existing-row select {
    max-width: 100% !important;
  }

  /* Kommentar textarea */
  #mem-form .fta {
    min-height: 80px;
  }

  /* ── Fees table: Medlem auto, Status højre ───────────────── */
  body.page-fees .tw {
    overflow-x: hidden;
  }

  body.page-fees #feesTable {
    width: 100% !important;
    min-width: 100% !important;
    table-layout: auto !important;
  }

  body.page-fees #feesTable th, body.page-fees #feesTable td {
    min-width: 0;
  }

  /* Skjul Type, Beløb, Betalt dato */
  body.page-fees #feesTable th:nth-child(2), body.page-fees #feesTable td:nth-child(2), body.page-fees #feesTable th:nth-child(3), body.page-fees #feesTable td:nth-child(3), body.page-fees #feesTable th:nth-child(4), body.page-fees #feesTable td:nth-child(4) {
    display: none;
  }

  /* Medlem fylder al plads, Status kompakt højre */
  body.page-fees #feesTable th:nth-child(1), body.page-fees #feesTable td:nth-child(1) {
    width: auto !important;
  }

  body.page-fees #feesTable th:last-child, body.page-fees #feesTable td:last-child {
    width: 80px !important;
    white-space: nowrap !important;
    padding-left: 8px;
    padding-right: 10px;
    text-align: right;
  }

  /* ── Skjul Kontingent og Restance kort ───────────────────── */
  #fees-kontingent-card, #fees-restance-card {
    display: none !important;
  }

  /* ── Events table: skjul Beskrivelse ────────────────────── */
  body.page-events #eventsTable th:nth-child(4), body.page-events #eventsTable td:nth-child(4) {
    display: none;
  }

  /* ── Navigation: skjul Kommunikation og Indstillinger ───── */
  .sidebar .nav-link[href*="communication.php"], .sidebar .nav-link[href*="settings.php"] {
    display: none !important;
  }

  /* ── Card padding ────────────────────────────────────────── */
  .vc {
    padding: 12px 10px 40px;
  }

  .card {
    border-radius: calc(var(--r) * 1.5);
  }

  .cb {
    padding: 12px 14px;
  }

  .ch {
    padding: 12px 16px;
  }

  /* ── Backup list: horizontal scroll on mobile ────────────── */
  .backup-list-table {
    min-width: 480px;
  }

  #backupListContainer > div:first-child {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

/* ─── Utility ─────────────────────────────────────────────────── */
.nowrap {
  white-space: nowrap;
}

.trunc {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.muted {
  color: var(--txm);
}

.small {
  font-size: .75rem;
}

.bold {
  font-weight: 700;
}

.serif {
  font-family: var(--fd);
}

.ta-r {
  text-align: right;
}

.ta-c {
  text-align: center;
}

.flex {
  display: flex;
}

.flex-center {
  display: flex;
  align-items: center;
}

.flex-between {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.gap-6 {
  gap: 6px;
}

.gap-8 {
  gap: 8px;
}

.gap-12 {
  gap: 12px;
}

.wrap {
  flex-wrap: wrap;
}

.hidden {
  display: none !important;
}

.w100 {
  width: 100%;
}

/* Family group indent */
.family-indent {
  border-left: 3px solid var(--pril);
  padding-left: 10px;
  margin-left: 6px;
}

/* Quill editor overrides for email composer */
#ebody .ql-editor {
  min-height: 260px;
  font-family: var(--fb);
}

/* Cert checkbox grid in member editor */
.cert-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}

.cert-cat-label {
  font-size: .67rem;
  font-weight: 700;
  color: var(--txm);
  text-transform: uppercase;
  letter-spacing: .05em;
  margin-bottom: 4px;
  display: block;
}

/* Inline success banner */
.inline-saved {
  padding: 6px 12px;
  background: var(--sucl);
  color: var(--suc);
  border-radius: var(--r);
  font-size: .75rem;
  font-weight: 600;
  display: none;
  align-items: center;
  gap: 6px;
}

.inline-saved.show {
  display: flex;
}

/* Section separator in modals */
.msec {
  margin-bottom: 18px;
}

.msec-title {
  font-family: var(--fd);
  font-size: .78rem;
  font-weight: 700;
  color: var(--tx);
  margin-bottom: 10px;
  padding-bottom: 7px;
  border-bottom: 1px solid var(--bdr2);
}

/* Event repeat options */
.repeat-opts {
  background: var(--surf2);
  border: 1px solid var(--bdr2);
  border-radius: var(--r);
  padding: 12px 14px;
  margin-top: 8px;
}

/* ─── Print styles ───────────────────────────────────────────── */
@media print {
  .sidebar, .topbar, .tb, .pact {
    display: none !important;
  }

  .main {
    margin-left: 0 !important;
  }

  .vc {
    overflow: visible !important;
    height: auto !important;
  }

  .mo {
    display: none !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════
   ADMIN COMPATIBILITY LAYER
   Maps old admin.zip class names → new design system
   ═══════════════════════════════════════════════════════════════════ */
/* Layout compat */
.container {
  max-width: 100%;
}

.app {
  display: flex;
}

.main {
  flex: 1;
}

/* Button compat */
.btn.primary, .btn-primary {
  background: var(--pri);
  color: #fff;
  border-color: var(--pri);
}

.btn.primary:hover, .btn-primary:hover {
  background: var(--prid);
}

.btn.secondary {
  background: var(--surf);
  border-color: var(--bdr);
  color: var(--tx2);
}

.btn.secondary:hover {
  background: var(--bg);
}

.btn.danger, .btn.danger-ghost {
  background: none;
  color: var(--dan);
  border-color: var(--dan);
}

.btn.danger:hover, .btn.danger-ghost:hover {
  background: var(--danl);
}

.btn.ghost {
  background: none;
  border-color: var(--bdr);
  color: var(--tx2);
}

.btn.ghost:hover {
  background: var(--bg);
}

.btn.compact {
  padding: 6px 12px;
  font-size: .75rem;
}

.start-btn {
  padding: 8px 16px;
  border-radius: var(--r);
  border: 1px solid var(--bdr);
  background: var(--surf);
  font-family: var(--fb);
  font-size: .78rem;
  font-weight: 600;
  cursor: pointer;
  color: var(--tx2);
}

.start-btn:hover {
  background: var(--bg);
}

/* Card compat */
.card-h, .card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 13px 18px;
  border-bottom: 1px solid var(--bdr2);
  background: var(--surf2);
  gap: 10px;
}

.card-h .title {
  font-family: var(--fd);
  font-size: .85rem;
  font-weight: 700;
  color: var(--tx);
}

.card h2 {
  font-family: var(--fd);
  font-size: .9rem;
  font-weight: 700;
  padding: 13px 18px;
  border-bottom: 1px solid var(--bdr2);
}

/* Table compat */
.tablewrap {
  overflow-x: auto;
}

table.resizable {
  width: 100%;
  border-collapse: collapse;
  font-size: .78rem;
}

table.resizable thead th {
  padding: 10px 14px;
  text-align: left;
  font-size: .63rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--txm);
  background: var(--surf2);
  border-bottom: 1px solid var(--bdr);
  white-space: nowrap;
}

table.resizable td {
  padding: 10px 14px;
  border-bottom: 1px solid var(--bdr2);
  vertical-align: middle;
  color: var(--tx2);
  font-size: .78rem;
}

table.resizable tr:last-child td {
  border-bottom: none;
}

table.resizable tbody tr:hover td {
  background: #f5f1ea;
}

.tablewrap .hint, .hint {
  font-size: .74rem;
  color: var(--txm);
  padding: 12px 18px;
  line-height: 1.55;
}

/* Pill badges compat */
.pill {
  display: inline-flex;
  align-items: center;
  padding: 2px 9px;
  border-radius: 20px;
  font-size: .64rem;
  font-weight: 600;
  background: #f0ede7;
  color: var(--txm);
}

.pill.ok, .badge.ok {
  background: var(--sucl);
  color: var(--suc);
}

.pill.warn, .badge.warn {
  background: var(--wrnl);
  color: var(--wrn);
}

.pill.bad, .badge.bad {
  background: var(--danl);
  color: var(--dan);
}

.pill.mdk-ok {
  background: var(--sucl);
  color: var(--suc);
}

.pill.mdk-bad {
  background: #f0ede7;
  color: var(--txm);
}

.badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 9px;
  border-radius: 20px;
  font-size: .64rem;
  font-weight: 600;
}

/* Alert/notice compat */
.alert {
  padding: 12px 16px;
  border-radius: var(--r);
  margin-bottom: 14px;
  font-size: .8rem;
  background: var(--danl);
  color: #7e2f26;
  border: 1px solid #f2c4bf;
}

.notice, .flash {
  padding: 12px 16px;
  border-radius: var(--r);
  margin-bottom: 14px;
  font-size: .8rem;
}

.notice-ok {
  background: var(--sucl);
  color: var(--suc);
  border: 1px solid #a8d5b8;
}

.notice-err {
  background: var(--danl);
  color: #7e2f26;
  border: 1px solid #f2c4bf;
}

/* Form compat */
.form .row {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin-bottom: 12px;
}

.form .row label {
  font-size: .71rem;
  font-weight: 600;
  color: var(--tx2);
}

.form input[type=text], .form input[type=email], .form input[type=tel], .form input[type=date], .form input[type=number], .form select, .form textarea {
  padding: 8px 12px;
  border: 1px solid var(--bdr);
  border-radius: var(--r);
  background: var(--surf);
  font-family: var(--fb);
  font-size: .78rem;
  color: var(--tx);
  width: 100%;
}

.form input[type=text]:focus, .form input[type=email]:focus, .form select:focus {
  outline: none;
  border-color: var(--pri);
  box-shadow: 0 0 0 3px rgba(30,73,118,.1);
}

.field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 12px;
}

.field label {
  font-size: .71rem;
  font-weight: 600;
  color: var(--tx2);
}

.field input, .field select, .field textarea {
  padding: 8px 12px;
  border: 1px solid var(--bdr);
  border-radius: var(--r);
  background: var(--surf);
  font-family: var(--fb);
  font-size: .78rem;
  color: var(--tx);
  width: 100%;
}

.row-actions {
  display: flex;
  gap: 6px;
}

.two-up {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  align-items: start;
}

.muted {
  color: var(--txm);
}

.small {
  font-size: .75rem;
}

/* Layout compat for fees/events/settings */
.fees-layout {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.fees-page-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}

.fees-segment {
  display: flex;
  border: 1px solid var(--bdr);
  border-radius: var(--r);
  overflow: hidden;
}

.fees-seg-opt {
  padding: 7px 16px;
  font-size: .78rem;
  font-weight: 500;
  color: var(--txm);
  cursor: pointer;
  transition: var(--t);
  text-decoration: none;
}

.fees-seg-opt.active {
  background: var(--pri);
  color: #fff;
}

.fees-seg-opt:hover:not(.active) {
  background: var(--bg);
}

.fees-year-nav {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Kontingent: årsfelt uden native up/down-spinnere og med bredde til 4-cifret årstal. */
.fees-year-input {
  width: calc(4ch + 18px);
  min-width: calc(4ch + 18px);
  max-width: calc(4ch + 18px);
  padding: 6px 8px;
  border: 1px solid var(--bdr);
  border-radius: var(--r);
  background: var(--surf);
  color: var(--tx);
  font-family: var(--fd);
  font-weight: 700;
  font-size: .88rem;
  line-height: 1.2;
  text-align: center;
  font-variant-numeric: tabular-nums;
  -moz-appearance: textfield;
  appearance: textfield;
}

.fees-year-input::-webkit-outer-spin-button, .fees-year-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.fees-year-season-label {
  font-size: .82rem;
  color: var(--txm);
  font-weight: 500;
}

.fees-restance-card, .fees-kontingent-card {
  background: var(--surf);
  border: 1px solid var(--bdr);
  border-radius: var(--rl);
  padding: 16px 18px;
  box-shadow: var(--sh0);
}

.fees-restance-row {
  display: flex;
  gap: 16px;
  align-items: center;
  flex-wrap: wrap;
  justify-content: space-between;
}

.fees-restance-left {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}

.fees-restance-right {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}

.fees-restance-stats {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.fees-stat-pill {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border: 1px solid var(--bdr);
  border-radius: 20px;
  background: var(--surf2);
  font-size: .76rem;
}

.fees-stat-pill .val {
  font-family: var(--fd);
  font-weight: 700;
  font-size: .9rem;
}

.fees-stat-pill .lbl {
  color: var(--txm);
  font-size: .7rem;
}

.fees-stat-pill.warn {
  border-color: #f5d98e;
  background: var(--wrnl);
  color: var(--wrn);
}

.fees-stat-pill.ok {
  border-color: #a8d5b8;
  background: var(--sucl);
  color: var(--suc);
}

.fees-duedate-lbl {
  font-size: .7rem;
  font-weight: 600;
  color: var(--tx2);
}

.fees-kont-row {
  display: flex;
  gap: 14px;
  align-items: center;
  flex-wrap: wrap;
  justify-content: space-between;
}

.fees-kont-left, .fees-kont-right {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}

/* Events compat */
.events-layout {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.events-form-card {
  background: var(--surf);
  border: 1px solid var(--bdr);
  border-radius: var(--rl);
  padding: 18px;
  box-shadow: var(--sh0);
}

.events-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.form-row {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: start;
}

.form-half {
  flex: 1 1 calc(50% - 6px);
}

/* Settings compat */
.settings-tabs {
  display: flex;
  gap: 2px;
  border-bottom: 1px solid var(--bdr);
  margin-bottom: 18px;
  flex-wrap: wrap;
}

.settings-tab {
  padding: 9px 18px;
  border: none;
  background: none;
  font-family: var(--fb);
  font-size: .8rem;
  font-weight: 500;
  color: var(--txm);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: var(--t);
}

.settings-tab.active {
  color: var(--pri);
  border-bottom-color: var(--pri);
  font-weight: 600;
}

.settings-tab:hover:not(.active) {
  color: var(--tx);
}

.settings-section {
  max-width: 700px;
}

.settings-group {
  margin-bottom: 18px;
}

.settings-group label {
  font-size: .71rem;
  font-weight: 600;
  color: var(--tx2);
  display: block;
  margin-bottom: 5px;
}

.settings-group input, .settings-group select, .settings-group textarea {
  padding: 8px 12px;
  border: 1px solid var(--bdr);
  border-radius: var(--r);
  background: var(--surf);
  font-family: var(--fb);
  font-size: .78rem;
  color: var(--tx);
  width: 100%;
}

.settings-actions {
  display: flex;
  gap: 8px;
  align-items: center;
}

.settings-ok {
  font-size: .76rem;
  color: var(--suc);
  display: none;
}

.settings-err {
  font-size: .76rem;
  color: var(--dan);
  display: none;
}

/* Communication compat */
.comm-grid {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 16px;
}

.comm-list {
  overflow: hidden;
}

.comm-editor {
  overflow: hidden;
}

.comm-editor-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.list {
  min-height: 120px;
}

/* Tabs compat */
.tabs {
  display: flex;
  gap: 2px;
  border-bottom: 1px solid var(--bdr);
  margin-bottom: 18px;
}

.tabbtn {
  padding: 9px 18px;
  border: none;
  background: none;
  font-family: var(--fb);
  font-size: .8rem;
  font-weight: 500;
  color: var(--txm);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: var(--t);
}

.tabbtn.active {
  color: var(--pri);
  border-bottom-color: var(--pri);
  font-weight: 600;
}

.tabbtn:hover:not(.active) {
  color: var(--tx);
}

.tab-panel {
  display: none;
}

.tab-panel.active {
  display: block;
}

/* dialog element compat */
dialog {
  border: none;
  border-radius: var(--rl);
  box-shadow: var(--shl);
  padding: 0;
  max-width: 520px;
  width: 90%;
}

dialog::backdrop {
  background: rgba(0,0,0,.48);
  backdrop-filter: blur(2px);
}

dialog h3 {
  font-family: var(--fd);
  font-size: .9rem;
  font-weight: 700;
  padding: 16px 20px 12px;
  border-bottom: 1px solid var(--bdr2);
}

dialog > div {
  padding: 16px 20px;
}

dialog > div > div:last-child {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 14px;
}

/* Header/nav compat (overrides old top-nav) */
header {
  position: static !important;
}

.header-inner, .header-left, .header-nav, .header-right {
  display: none !important;
}

.navlink, .navlink.active {
  display: none !important;
}

/* Active member status toggle */
.active-toggle input {
  accent-color: var(--pri);
}

.mdk-toggle input {
  accent-color: var(--pri);
}

/* Inline member editor row (fallback – now modals) */
.inline-member-editor {
  display: none;
}

/* Members top layout compat */
.members-top {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 14px;
  margin-bottom: 14px;
  align-items: start;
}

.members-status {
  overflow: hidden;
}

.status-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
}

.status-item {
  padding: 12px 16px;
  border-right: 1px solid var(--bdr2);
  border-bottom: 1px solid var(--bdr2);
}

.status-item:nth-child(4n) {
  border-right: none;
}

.status-item .value {
  font-family: var(--fd);
  font-size: 1.4rem;
  font-weight: 700;
}

.status-item .label {
  font-size: .66rem;
  color: var(--txm);
  margin-top: 3px;
  text-transform: uppercase;
  letter-spacing: .04em;
}

/* QR page */
.qr-container {
  max-width: 600px;
  margin: 30px auto;
}

/* ─── Events list/week/month views ─────────────────────────────── */
.events-calendar-card .cb {
  padding: 14px;
}

.events-toolbar {
  margin-bottom: 13px;
}

.events-view-tabs {
  gap: 6px;
}

.events-view-tabs .chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.events-completed-chip {
  margin-left: 28px;
  white-space: nowrap;
}

.events-toolbar-actions {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 8px;
}

.events-nav-card {
  margin-bottom: 13px;
  overflow: hidden;
}

.events-nav-row {
  display: grid;
  grid-template-columns: auto minmax(180px,1fr) auto auto;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  background: var(--surf2);
}

.events-period-title {
  font-family: var(--fd);
  font-size: .98rem;
  font-weight: 700;
  color: var(--pri);
  text-align: center;
  text-transform: capitalize;
}

.events-panel {
  min-width: 0;
}

.events-grid-wrap {
  overflow-x: auto;
  padding-bottom: 2px;
}

.events-grid {
  display: grid;
  grid-template-columns: repeat(7,minmax(148px,1fr));
  gap: 1px;
  min-width: 1036px;
  background: var(--bdr);
  border: 1px solid var(--bdr);
  border-radius: var(--rl);
  overflow: hidden;
  box-shadow: var(--sh0);
}

.events-grid.week-mode {
  min-height: 520px;
}

.events-weekday {
  background: var(--sb);
  color: #fff;
  padding: 9px 10px;
  text-align: center;
  font-size: .66rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
}

.events-day {
  min-height: 138px;
  background: var(--surf);
  padding: 9px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: var(--t);
}

.events-grid.week-mode .events-day {
  min-height: 430px;
}

.events-day.muted {
  background: #f7f4ee;
  color: var(--txm);
}

.events-day.today {
  box-shadow: inset 0 0 0 2px var(--pri);
}

.events-day.has-events {
  background: linear-gradient(180deg,#fff 0%,#fbfdfb 100%);
}

.events-day-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  color: var(--tx2);
}

.events-day-head span {
  width: 26px;
  height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-weight: 700;
  font-size: .82rem;
}

.events-day.today .events-day-head span {
  background: var(--pri);
  color: #fff;
}

.events-day-head small {
  font-size: .62rem;
  color: var(--txm);
  text-transform: uppercase;
  letter-spacing: .04em;
}

.events-day-items {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 0;
}

.events-calendar-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  width: 100%;
  border: 1px solid rgba(30,73,118,.22);
  border-left: 4px solid var(--pri);
  background: var(--pril);
  color: var(--tx2);
  border-radius: 9px;
  padding: 7px 8px;
  text-align: left;
  cursor: pointer;
  transition: var(--t);
  font-family: var(--fb);
}

.events-calendar-item:hover {
  transform: translateY(-1px);
  box-shadow: var(--sh0);
  border-color: rgba(30,73,118,.45);
}

.events-calendar-time {
  font-size: .61rem;
  font-weight: 700;
  color: var(--pri);
}

.events-calendar-location {
  width: fit-content;
  max-width: 100%;
  padding: 1px 7px;
  border-radius: 20px;
  background: rgba(255,255,255,.8);
  color: var(--pri);
  font-size: .58rem;
  font-weight: 700;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.events-calendar-item strong {
  color: var(--tx);
  font-size: .72rem;
  line-height: 1.18;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.events-calendar-item.completed {
  border-color: rgba(110,110,110,.25);
  border-left-color: #8a8a8a;
  background: #f3f4f3;
  opacity: .78;
}

.events-calendar-item.completed .events-calendar-time, .events-calendar-item.completed .events-calendar-location {
  color: #666;
}

.events-calendar-status {
  width: fit-content;
  padding: 1px 7px;
  border-radius: 20px;
  background: #e7e7e7;
  color: #666;
  font-size: .56rem;
  font-weight: 700;
}

.event-completed-row {
  opacity: .72;
}

.event-status-badge {
  margin-left: 8px;
  vertical-align: middle;
}

.event-location {
  margin-top: 2px;
  display: flex;
  align-items: center;
  gap: 4px;
}

@media (max-width: 1024px) {
  .events-calendar-card .cb {
    padding: 12px;
  }

  .events-view-tabs {
    width: 100%;
  }

  .events-view-tabs .chip {
    flex: 1 1 auto;
    justify-content: center;
  }

  .events-completed-chip {
    margin-left: 0;
    flex-basis: 100%;
  }

  .events-toolbar-actions {
    width: 100%;
    margin-left: 0;
  }

  .events-toolbar-actions .btn {
    width: 100%;
    justify-content: center;
  }

  .events-nav-row {
    grid-template-columns: 1fr 1fr;
  }

  .events-period-title {
    grid-column: 1 / -1;
    order: -1;
  }

  .events-nav-row .btn {
    justify-content: center;
  }

  .events-grid {
    grid-template-columns: repeat(7,minmax(126px,1fr));
    min-width: 882px;
  }

  .events-day {
    min-height: 126px;
    padding: 7px;
  }
}

/* ─── Sponsors page ───────────────────────────────────────────── */
.sponsors-page-head .ptitle i {
  color: var(--pri);
}

.sponsors-toolbar {
  justify-content: space-between;
}

.sponsors-toolbar .srch-wrap {
  max-width: 460px;
  min-width: 260px;
}

.sponsors-status-filter {
  margin-left: auto;
}

.sponsors-kpi-grid {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.sponsors-table-card .tw {
  min-height: 0;
}

.sponsors-table .lid {
  margin-top: 2px;
  color: var(--txm);
  font-size: .67rem;
  line-height: 1.25;
}

.sponsors-table td a {
  color: var(--pri);
}

.sponsors-table td a:hover {
  text-decoration: underline;
}

.sponsors-table td:nth-child(6) {
  font-variant-numeric: tabular-nums;
}

.sponsor-table-sponsorships {
  display: grid;
  gap: 7px;
  min-width: 190px;
}

.sponsor-table-sponsorship {
  padding: 0 0 7px;
  border-bottom: 1px solid rgba(30,73,118,.11);
}

.sponsor-table-sponsorship:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.sponsor-table-sponsorship-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.sponsor-table-sponsorship-value {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  font-weight: 650;
}

.sponsors-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 110px;
  color: var(--txm);
  font-size: .82rem;
}

.sponsors-empty i {
  color: var(--pri);
  opacity: .75;
}

#mo-sponsor .mdl {
  max-width: 960px;
  background: var(--bg);
}

#mo-sponsor .mb2 {
  background: var(--bg);
  flex: 0 1 auto;
  padding-bottom: 0;
}

#mo-sponsor .mf {
  background: var(--bg);
  border-top: 0;
}

#mo-sponsor .sponsor-modal-payment-action {
  margin-right: auto;
}

#mo-sponsor .sponsor-modal-payment-action[hidden] {
  display: none !important;
}

.sponsor-section-title {
  grid-column: span 2;
  margin: 3px 0 0;
  padding-top: 2px;
  font-family: var(--fd);
  font-size: .86rem;
  font-weight: 700;
  color: var(--tx);
}

.sponsor-section-title + .fgrp {
  margin-top: 0;
}

.sponsor-section-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-top: 1px solid rgba(30,73,118,.12);
  margin-top: 10px;
  padding-top: 14px;
}

.sponsor-section-title-row span {
  display: inline-flex;
  align-items: center;
}

.sponsor-add-sponsorship {
  flex: 0 0 auto;
  min-height: 34px;
  padding: 7px 11px;
}

.sponsor-location-group,
.sponsor-phone-cvr-group {
  display: grid;
  grid-template-columns: minmax(96px, .45fr) minmax(0, 1fr);
  gap: 10px;
  align-items: end;
}

.sponsor-location-field,
.sponsor-phone-cvr-field {
  min-width: 0;
}

.sponsor-note-field {
  grid-column: span 2;
}

.sponsor-sponsorship-list {
  grid-column: span 2;
  display: grid;
  gap: 0;
  overflow-y: visible;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  border: 1px solid rgba(30,73,118,.16);
  border-radius: 16px;
  background: rgba(255,255,255,.8);
  box-shadow: 0 10px 22px rgba(15,23,42,.05);
  padding: 10px 12px;
}

.sponsor-sponsorship-list.has-many-sponsorships {
  max-height: 356px;
  overflow-y: auto;
  padding-right: 12px;
}

.sponsor-sponsorship-header,
.sponsor-sponsorship-fields {
  display: grid;
  grid-template-columns: minmax(112px, .7fr) minmax(115px, .75fr) minmax(145px, .9fr) minmax(120px, .72fr) minmax(120px, .72fr) 46px;
  gap: 10px;
  align-items: end;
}

.sponsor-sponsorship-header {
  align-items: center;
  color: var(--tx2);
  font-size: .71rem;
  font-weight: 700;
  padding: 0 0 8px;
  border-bottom: 1px solid rgba(30,73,118,.12);
}

.sponsor-sponsorship-fields {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  padding: 5px 0;
}

.sponsor-sponsorship-fields + .sponsor-sponsorship-fields {
  border-top: 1px solid rgba(30,73,118,.1);
}

.sponsor-sponsorship-fields .fl:not(.sponsor-sponsorship-action-label) {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  margin: 0;
}

.sponsor-sponsorship-actions {
  align-self: stretch;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

.sponsor-sponsorship-actions .btt {
  min-width: 42px;
  min-height: 42px;
}

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

.sponsor-sponsorship-dates {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.sponsor-sponsorship-dates > div {
  min-width: 0;
}


.sponsor-form-error {
  margin: 14px 0 0;
}

@media (max-width: 1024px) {
  .sponsors-status-filter {
    margin-left: 0;
  }

  .sponsors-toolbar .srch-wrap {
    max-width: none;
    width: 100%;
    min-width: 0;
  }

  #mo-sponsor .mdl {
    max-width: min(960px, calc(100vw - 28px));
  }

  .sponsor-sponsorship-header {
    display: none;
  }

  .sponsor-sponsorship-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sponsor-sponsorship-fields .fl:not(.sponsor-sponsorship-action-label) {
    position: static;
    width: auto;
    height: auto;
    overflow: visible;
    clip: auto;
    clip-path: none;
    white-space: normal;
    margin-bottom: 5px;
  }

  .sponsor-sponsorship-dates,
  .sponsor-sponsorship-actions {
    grid-column: span 2;
  }

  .sponsor-sponsorship-actions {
    justify-content: flex-end;
  }

  .sponsor-sponsorship-list.has-many-sponsorships {
    max-height: 648px;
  }
}

@media (max-width: 700px) {
  .sponsors-page-head {
    align-items: stretch;
  }

  .sponsors-page-head .pact, .sponsors-page-head .pact .btn {
    width: 100%;
    justify-content: center;
  }

  .sponsor-section-title,
  .sponsor-sponsorship-list {
    grid-column: auto;
  }

  .sponsor-section-title-row {
    align-items: stretch;
    flex-direction: column;
  }

  .sponsor-add-sponsorship {
    width: 100%;
    justify-content: center;
  }

  .sponsor-location-group,
  .sponsor-phone-cvr-group,
  .sponsor-sponsorship-fields,
  .sponsor-sponsorship-dates {
    grid-template-columns: minmax(0, 1fr);
  }

  .sponsor-sponsorship-dates,
  .sponsor-sponsorship-actions {
    grid-column: auto;
  }

  .sponsor-sponsorship-actions {
    justify-content: flex-end;
  }

  .sponsor-sponsorship-fields {
    border-radius: 14px;
    padding: 6px 12px;
  }

  .sponsor-sponsorship-list.has-many-sponsorships {
    max-height: 1240px;
  }

  #mo-sponsor .mdl {
    max-width: 100% !important;
    width: 100% !important;
  }

  .sponsors-kpi-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ─── Dashboard / Oversigt ─────────────────────────────────────── */
.dashboard-head .ptitle i {
  color: var(--pri);
}

.dashboard-head-actions {
  align-items: center;
  gap: 10px;
}

.dashboard-updated {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid var(--bdr2);
  border-radius: 999px;
  background: rgba(255,255,255,.68);
  color: var(--txm);
  font-size: .7rem;
  font-weight: 700;
}

.dashboard-kpis {
  display: grid;
  grid-template-columns: repeat(6, minmax(136px, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.dashboard-kpi-card {
  position: relative;
  min-height: 116px;
  padding: 16px;
  border: 1px solid var(--bdr2);
  border-radius: var(--rxl);
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(250,248,244,.96));
  box-shadow: var(--sh0);
  overflow: hidden;
}

.dashboard-clickable,
[data-dashboard-nav] {
  cursor: pointer;
}

.dashboard-clickable:hover,
.dashboard-clickable:focus-visible,
[data-dashboard-nav]:focus-visible {
  border-color: rgba(30, 73, 118, .28);
  box-shadow: var(--sh1);
}

body.dashboard-edit-mode [data-dashboard-nav] {
  cursor: default;
}

.dashboard-card-title-link,
.dashboard-card-chip-link {
  color: inherit;
  text-decoration: none;
}

.dashboard-card-title-link:hover,
.dashboard-card-title-link:focus-visible,
.dashboard-card-chip-link:hover,
.dashboard-card-chip-link:focus-visible {
  color: var(--pri);
  text-decoration: none;
}

.dashboard-table tbody tr.dashboard-clickable:hover td,
.dashboard-table tbody tr.dashboard-clickable:focus-visible td {
  background: rgba(30, 73, 118, .045);
}

.dashboard-task-bar-row.dashboard-clickable {
  border-radius: var(--r);
  padding: 6px;
  margin: -6px;
}

.dashboard-task-bar-row.dashboard-clickable:hover,
.dashboard-task-bar-row.dashboard-clickable:focus-visible {
  background: rgba(30, 73, 118, .045);
}

.dashboard-kpi-card::after {
  content: '';
  position: absolute;
  right: -36px;
  top: -36px;
  width: 104px;
  height: 104px;
  border-radius: 50%;
  background: rgba(30,73,118,.08);
}

.dashboard-kpi-card strong {
  position: relative;
  z-index: 1;
  display: block;
  margin-top: 12px;
  font-family: var(--fd);
  font-size: 1.55rem;
  font-weight: 800;
  line-height: 1;
  color: var(--tx);
}

.dashboard-kpi-card small {
  position: relative;
  z-index: 1;
  display: block;
  margin-top: 8px;
  font-size: .64rem;
  font-weight: 800;
  line-height: 1.25;
  color: var(--txm);
  text-transform: uppercase;
  letter-spacing: .055em;
}

.dashboard-kpi-icon {
  position: relative;
  z-index: 1;
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: var(--pril);
  color: var(--pri);
}

.dashboard-kpi-card.warn .dashboard-kpi-icon {
  background: var(--wrnl);
  color: var(--wrn);
}

.dashboard-kpi-card.danger .dashboard-kpi-icon {
  background: var(--danl);
  color: var(--dan);
}

.dashboard-kpi-card.accent .dashboard-kpi-icon {
  background: var(--accl);
  color: var(--acc);
}

.dashboard-kpi-card.success .dashboard-kpi-icon {
  background: var(--sucl);
  color: var(--suc);
}

.dashboard-kpi-card.muted .dashboard-kpi-icon {
  background: #eef1f4;
  color: var(--txm);
}

.dashboard-main-grid {
  --dashboard-card-body-height: 284px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  align-items: stretch;
}

.dashboard-card {
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: calc(50px + var(--dashboard-card-body-height));
}

.dashboard-card .ch {
  min-height: 50px;
  flex: 0 0 auto;
}

.dashboard-card > .dashboard-chart, .dashboard-card > .dashboard-table-wrap, .dashboard-card > .dashboard-list, .dashboard-card > .dashboard-status-list, .dashboard-card > .dashboard-quick-actions {
  flex: 1 1 auto;
}

.dashboard-card > .dashboard-list, .dashboard-card > .dashboard-status-list, .dashboard-audit-card .dashboard-list {
  height: var(--dashboard-card-body-height);
  min-height: var(--dashboard-card-body-height);
  max-height: var(--dashboard-card-body-height);
  overflow: auto;
}

.dashboard-card-wide {
  grid-column: span 1;
}

.dashboard-quick-card {
  min-height: 100%;
}

.dashboard-table-wrap {
  height: var(--dashboard-card-body-height);
  min-height: var(--dashboard-card-body-height);
  max-height: var(--dashboard-card-body-height);
  overflow: auto;
}

.dashboard-table {
  min-width: 580px;
}

.dashboard-table th, .dashboard-table td {
  font-size: .72rem;
}

.dashboard-table td {
  vertical-align: top;
}

.dashboard-table a {
  color: var(--pri);
}

.dashboard-table a.btn {
  color: inherit;
}

.dashboard-subline {
  margin-top: 2px;
  color: var(--txm);
  font-size: .64rem;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dashboard-badge {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--pril);
  color: var(--pri);
  font-size: .58rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .045em;
  white-space: nowrap;
}

.dashboard-badge.warn {
  background: var(--wrnl);
  color: var(--wrn);
}

.dashboard-badge.success {
  background: var(--sucl);
  color: var(--suc);
}

.dashboard-badge.danger {
  background: var(--danl);
  color: var(--dan);
}

.dashboard-empty, .dashboard-loading {
  min-height: 96px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  color: var(--txm);
  font-size: .78rem;
  text-align: center;
  padding: 16px;
}

.dashboard-empty i, .dashboard-loading i {
  color: var(--pri);
  opacity: .75;
}

.dashboard-quick-actions {
  display: grid;
  gap: 12px;
  padding: 14px;
}

.dashboard-action {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--bdr2);
  border-radius: var(--rl);
  background: var(--surf2);
  transition: var(--t);
}

.dashboard-action:hover {
  transform: translateY(-1px);
  box-shadow: var(--sh0);
  border-color: rgba(30,73,118,.28);
}

.dashboard-action > i {
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: var(--pril);
  color: var(--pri);
  flex: 0 0 auto;
}

.dashboard-action.accent > i {
  background: var(--accl);
  color: var(--acc);
}

.dashboard-action strong {
  display: block;
  font-size: .82rem;
  color: var(--tx);
}

.dashboard-action small {
  display: block;
  margin-top: 2px;
  font-size: .66rem;
  color: var(--txm);
}

.dashboard-status-list {
  display: grid;
  gap: 10px;
  padding: 14px;
  align-content: start;
}

.dashboard-status-item {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-height: 42px;
  padding: 10px;
  border: 1px solid var(--bdr2);
  border-radius: var(--rl);
  background: rgba(255,255,255,.72);
}

.dashboard-status-item.warn {
  border-color: rgba(217,119,6,.24);
  background: rgba(255,251,235,.76);
}

.dashboard-status-item.danger {
  border-color: rgba(220,38,38,.24);
  background: rgba(254,242,242,.78);
}

.dashboard-status-item.ok {
  border-color: rgba(22,163,74,.22);
  background: rgba(240,253,244,.74);
}

.dashboard-status-icon {
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: #eef1f4;
  color: var(--txm);
}

.dashboard-status-icon.success {
  background: var(--sucl);
  color: var(--suc);
}

.dashboard-status-icon.warn {
  background: var(--wrnl);
  color: var(--wrn);
}

.dashboard-status-icon.danger {
  background: var(--danl);
  color: var(--dan);
}

.dashboard-status-copy {
  min-width: 0;
}

.dashboard-status-copy strong {
  display: block;
  font-size: .76rem;
  color: var(--tx);
  line-height: 1.25;
}

.dashboard-status-copy small {
  display: block;
  margin-top: 2px;
  color: var(--txm);
  font-size: .64rem;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dashboard-status-badge {
  justify-self: end;
}

.dashboard-chart {
  padding: 14px;
}

.dashboard-donut-area {
  height: var(--dashboard-card-body-height);
  min-height: var(--dashboard-card-body-height);
}

.dashboard-donut-layout {
  display: grid;
  grid-template-columns: 176px minmax(0, 1fr);
  gap: 18px;
  align-items: center;
  min-height: 244px;
}

.dashboard-donut {
  position: relative;
  width: 176px;
  height: 176px;
  border-radius: 50%;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.55), var(--sh0);
}

.dashboard-donut::after {
  content: '';
  position: absolute;
  inset: 26px;
  border-radius: 50%;
  background: var(--surf);
  box-shadow: inset 0 0 0 1px var(--bdr2);
}

.dashboard-donut-center {
  position: absolute;
  inset: 42px;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.dashboard-donut-center strong {
  font-family: var(--fd);
  font-size: 1.42rem;
  font-weight: 900;
  line-height: 1;
  color: var(--tx);
}

.dashboard-donut-center small {
  margin-top: 5px;
  color: var(--txm);
  font-size: .62rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .055em;
}

.dashboard-donut-legend {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}

.dashboard-donut-legend-row {
  display: grid;
  grid-template-columns: 12px minmax(0, 1fr) auto auto;
  gap: 8px;
  align-items: center;
  padding: 8px 10px;
  border: 1px solid var(--bdr2);
  border-radius: 13px;
  background: rgba(255,255,255,.68);
}

.dashboard-donut-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  display: inline-block;
}

.dashboard-donut-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--tx);
  font-size: .7rem;
  font-weight: 800;
}

.dashboard-donut-legend-row strong {
  color: var(--tx);
  font-size: .7rem;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

.dashboard-donut-legend-row em {
  min-width: 38px;
  color: var(--txm);
  font-size: .62rem;
  font-style: normal;
  font-weight: 800;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.dashboard-task-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

.dashboard-task-summary > div {
  padding: 12px;
  border: 1px solid var(--bdr2);
  border-radius: var(--rl);
  background: rgba(255,255,255,.68);
}

.dashboard-task-summary strong {
  display: block;
  font-family: var(--fd);
  font-size: 1.08rem;
  font-weight: 900;
  line-height: 1;
  color: var(--tx);
}

.dashboard-task-summary small {
  display: block;
  margin-top: 6px;
  color: var(--txm);
  font-size: .58rem;
  font-weight: 800;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.dashboard-task-bars {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.dashboard-task-bar-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 5px;
  color: var(--tx);
  font-size: .7rem;
  font-weight: 800;
}

.dashboard-task-bar-label strong {
  flex: 0 0 auto;
  color: var(--txm);
  font-size: .62rem;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

.dashboard-task-bar-track {
  height: 10px;
  border-radius: 999px;
  background: rgba(15,23,42,.07);
  overflow: hidden;
}

.dashboard-task-bar-track span {
  display: block;
  height: 100%;
  border-radius: 999px;
  min-width: 0;
  transition: width .22s ease;
}

.dashboard-chart-legend {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 10px;
  color: var(--txm);
  font-size: .66rem;
  font-weight: 700;
}

.dashboard-chart-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.dashboard-chart-legend i {
  width: 10px;
  height: 10px;
  border-radius: 3px;
  display: inline-block;
  background: var(--pri);
}

.dashboard-chart-legend i.left {
  background: var(--dan);
}

.dashboard-chart-legend i.total {
  background: var(--acc);
}

.dashboard-chart-bars {
  display: grid;
  grid-template-columns: repeat(12, minmax(38px, 1fr));
  gap: 8px;
  min-height: 238px;
  align-items: end;
  overflow-x: auto;
  padding: 8px 2px 2px;
}

.dashboard-month {
  min-width: 38px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: center;
}

.dashboard-bars {
  height: 194px;
  width: 100%;
  display: flex;
  align-items: end;
  justify-content: center;
  gap: 3px;
  padding: 0 2px;
  border-bottom: 1px solid var(--bdr2);
}

.dashboard-bars .bar {
  position: relative;
  width: 24%;
  min-height: 5px;
  border-radius: 6px 6px 0 0;
  background: var(--pri);
  transition: var(--t);
}

.dashboard-bars .bar.left {
  background: var(--dan);
  opacity: .78;
}

.dashboard-bars .bar.total {
  background: var(--acc);
  opacity: .86;
}

.dashboard-bars .bar b {
  position: absolute;
  top: -20px;
  left: 50%;
  transform: translateX(-50%);
  font-size: .55rem;
  color: var(--txm);
  opacity: 0;
  transition: var(--t);
}

.dashboard-month:hover .bar b {
  opacity: 1;
}

.dashboard-month small {
  color: var(--txm);
  font-size: .58rem;
  font-weight: 700;
}

.dashboard-list {
  padding: 10px 14px 14px;
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.dashboard-list-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px;
  border: 1px solid var(--bdr2);
  border-radius: var(--rl);
  background: rgba(255,255,255,.64);
}

.dashboard-list-item.compact {
  padding: 9px 10px;
}

.dashboard-list-icon {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  border-radius: 11px;
  background: var(--pril);
  color: var(--pri);
}

.dashboard-list-icon.accent {
  background: var(--accl);
  color: var(--acc);
}

.dashboard-list-icon.muted {
  background: #eef1f4;
  color: var(--txm);
}

.dashboard-list-item strong {
  display: block;
  font-size: .75rem;
  color: var(--tx);
  line-height: 1.25;
}

.dashboard-list-item small {
  display: block;
  margin-top: 2px;
  color: var(--txm);
  font-size: .64rem;
  line-height: 1.35;
}

@media (max-width: 1024px) {
  .dashboard-kpis {
    grid-template-columns: repeat(3, minmax(150px, 1fr));
  }
}

@media (max-width: 1024px) {
  .dashboard-main-grid {
    grid-template-columns: 1fr;
  }

  .dashboard-card-wide {
    grid-column: auto;
  }
}

@media (max-width: 1024px) {
  .dashboard-head {
    align-items: stretch;
  }

  .dashboard-head-actions {
    width: 100%;
    justify-content: space-between;
  }

  .dashboard-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dashboard-kpi-card {
    min-height: 108px;
    padding: 13px;
  }

  .dashboard-chart-bars {
    grid-template-columns: repeat(12, minmax(42px, 1fr));
  }

  .dashboard-donut-layout {
    grid-template-columns: 148px minmax(0, 1fr);
    gap: 14px;
  }

  .dashboard-donut {
    width: 148px;
    height: 148px;
  }

  .dashboard-donut-center {
    inset: 36px;
  }

  .dashboard-task-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .dashboard-kpis {
    grid-template-columns: 1fr;
  }

  .dashboard-head-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .dashboard-head-actions .btn {
    justify-content: center;
  }

  .dashboard-updated {
    justify-content: center;
  }

  .dashboard-donut-layout {
    grid-template-columns: 1fr;
    justify-items: center;
  }

  .dashboard-donut-legend {
    width: 100%;
  }

  .dashboard-task-summary {
    grid-template-columns: 1fr;
  }
}

/* ─── Opgavestyring page ───────────────────────────────────────── */
.tasks-page-head .ptitle i {
  color: var(--pri);
}

.tasks-toolbar {
  justify-content: space-between;
}

.tasks-toolbar .srch-wrap {
  max-width: 520px;
  min-width: 280px;
}

.tasks-status-filter {
  margin-left: auto;
}

.tasks-kpi-grid {
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
}

.task-kpi,
.tasks-kpi {
  cursor: pointer;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.task-kpi *,
.tasks-kpi *,
.task-kpi .kpi-val,
.task-kpi .kpi-label,
.tasks-kpi .kpi-val,
.tasks-kpi .kpi-label {
  cursor: pointer;
}

.task-kpi:hover,
.task-kpi:focus-visible,
.tasks-kpi:hover,
.tasks-kpi:focus-visible {
  border-color: color-mix(in srgb, var(--pri), var(--bdr) 35%);
  box-shadow: var(--sh1);
  outline: none;
  transform: translateY(-1px);
}

.task-kpi.is-active,
.tasks-kpi.is-active {
  border-color: var(--pri);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--pri), transparent 82%), var(--sh1);
}

.tasks-table-card .tw {
  min-height: 0;
}

.tasks-table {
  min-width: 1040px;
}

.tasks-table td {
  vertical-align: top;
}

.tasks-table td:nth-child(4), .tasks-table td:nth-child(5) {
  font-variant-numeric: tabular-nums;
}

.tasks-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 112px;
  color: var(--txm);
  font-size: .82rem;
  white-space: normal;
}

.tasks-empty.small {
  min-height: 76px;
  font-size: .76rem;
}

.tasks-empty i {
  color: var(--pri);
  opacity: .75;
}

.task-title-cell {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  min-width: 0;
}

.task-title-text {
  min-width: 0;
  display: block;
}

.task-title-text strong {
  display: block;
  color: var(--tx);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.task-title-text small {
  display: block;
  margin-top: 2px;
  color: var(--txm);
  font-size: .66rem;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.task-tree-indent {
  flex: 0 0 auto;
  height: 1px;
}

.task-tree-icon {
  color: var(--txm);
  font-size: .65rem;
  transform: rotate(90deg);
  margin-top: 3px;
  flex: 0 0 auto;
}

.task-expand-head, .task-expand-cell {
  text-align: center;
  padding-left: 10px !important;
  padding-right: 6px !important;
}

.task-expand-btn {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--bdr2);
  border-radius: 999px;
  background: rgba(255,255,255,.9);
  color: var(--pri);
  cursor: pointer;
  transition: background .14s ease, border-color .14s ease, transform .14s ease;
}

.task-expand-btn:hover {
  background: var(--pril);
  border-color: rgba(30,73,118,.22);
}

.task-expand-btn:active {
  transform: scale(.96);
}

.task-expand-btn i {
  font-size: .68rem;
}

.task-expand-placeholder, .task-expand-spacer {
  display: inline-block;
  width: 28px;
  height: 28px;
}

.task-main-row {
  cursor: pointer;
}

.task-subtask-overview-row td {
  background: rgba(244,240,232,.75);
}

.task-subtask-overview-row:hover td, .task-main-row:hover td {
  background: rgba(30,73,118,.035);
}

.task-status-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 9px;
  border-radius: 999px;
  font-size: .62rem;
  font-weight: 700;
  white-space: nowrap;
}

.task-status-badge.primary {
  background: var(--pril);
  color: var(--pri);
}

.task-status-badge.success {
  background: var(--sucl);
  color: var(--suc);
}

.task-status-badge.warn {
  background: var(--wrnl);
  color: var(--wrn);
}

.task-status-badge.muted {
  background: #eef1f4;
  color: var(--txm);
}

.task-status-badge.neutral {
  background: #f0ede7;
  color: #666;
}

.task-comment-count {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--pri);
  font-weight: 700;
}

.task-subtask-count {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--tx2);
  font-weight: 700;
  white-space: nowrap;
}

.task-subtask-count i {
  color: var(--txm);
}

.task-row-overdue td {
  background: rgba(192,57,43,.035);
}

#mo-task .task-edit-modal {
  max-width: min(1320px, calc(100vw - 28px));
  width: min(1320px, calc(100vw - 28px));
  background: var(--bg);
}

#mo-task .mb2 {
  background: var(--bg);
  flex: 0 1 auto;
  padding-bottom: 0;
}

#mo-task .mf {
  background: var(--bg);
  border-top: 0;
}

.task-modal-body {
  max-height: calc(100vh - 170px);
  overflow: auto;
}

.task-modal-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
  gap: 16px;
  align-items: start;
}

.task-modal-main, .task-comment-column {
  min-width: 0;
  border: 1px solid var(--bdr2);
  border-radius: var(--rl);
  background: rgba(255,255,255,.72);
  padding: 14px;
  box-shadow: 0 12px 30px rgba(31,64,96,.05);
}

.task-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 13px 14px;
}

.task-section-title {
  grid-column: span 2;
  margin: 3px 0 0;
  padding-top: 2px;
  font-family: var(--fd);
  font-size: .86rem;
  font-weight: 700;
  color: var(--tx);
}

.task-form-error, .task-comment-error {
  margin: 14px 0 0;
}

.task-inline-section {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--bdr2);
}

.task-inline-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.task-inline-head strong {
  display: block;
  color: var(--tx);
  font-size: .86rem;
}

.task-inline-head span {
  display: block;
  color: var(--txm);
  font-size: .69rem;
  line-height: 1.35;
  margin-top: 2px;
}

.task-subtasks-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--bdr2);
  border-radius: var(--rl);
  background: rgba(255,255,255,.7);
}

.task-subtasks-table {
  width: 100%;
  min-width: 780px;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
}

.task-subtasks-table th {
  text-align: left;
  padding: 8px 9px;
  color: var(--txm);
  font-size: .64rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  border-bottom: 1px solid var(--bdr2);
  background: rgba(245,248,252,.88);
}

.task-subtasks-table td {
  padding: 7px;
  border-bottom: 1px solid var(--bdr2);
  vertical-align: middle;
}

.task-subtasks-table tr:last-child td {
  border-bottom: 0;
}

.task-subtasks-table .fi, .task-subtasks-table .fsel {
  min-height: 34px;
  height: 34px;
  font-size: .72rem;
}

.task-subtasks-table th:nth-child(1) {
  width: auto;
}

.task-subtasks-table th:nth-child(2) {
  width: 210px;
}

.task-subtasks-table th:nth-child(3) {
  width: 145px;
}

.task-subtasks-table th:nth-child(4) {
  width: 150px;
}

.task-subtasks-table th:nth-child(5) {
  width: 42px;
}

.task-subtasks-table .task-subtask-description {
  width: 100%;
}

.task-subtask-actions {
  width: 42px;
  text-align: right;
}

#task-subtasks-empty {
  min-height: 64px;
  margin-top: 8px;
}

.task-comment-column {
  position: sticky;
  top: 0;
}

.task-comments-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}

.task-comments-list {
  display: flex;
  flex-direction: column;
  gap: 9px;
  max-height: 420px;
  min-height: 180px;
  overflow: auto;
  padding-right: 4px;
  margin-bottom: 16px;
}

.task-comment-item {
  border: 1px solid var(--bdr2);
  background: rgba(255,255,255,.82);
  border-radius: var(--rl);
  padding: 10px 12px;
}

.task-comment-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 6px;
}

.task-comment-meta strong {
  color: var(--tx);
  font-size: .75rem;
}

.task-comment-meta span {
  color: var(--txm);
  font-size: .65rem;
}

.task-comment-text {
  color: var(--tx2);
  line-height: 1.45;
  font-size: .76rem;
  white-space: normal;
  word-break: break-word;
}

.task-comment-form {
  border-top: 1px solid var(--bdr2);
  padding-top: 14px;
}

.task-comment-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 10px;
}

.task-comment-actions .btn {
  justify-content: center;
}

@media (max-width: 1024px) {
  .task-modal-layout {
    grid-template-columns: 1fr;
  }

  .task-comment-column {
    position: static;
  }

  .task-comments-list {
    max-height: 280px;
  }
}

@media (max-width: 1024px) {
  .tasks-status-filter {
    margin-left: 0;
  }

  .tasks-toolbar .srch-wrap {
    max-width: none;
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 700px) {
  .tasks-page-head {
    align-items: stretch;
  }

  .tasks-page-head .pact, .tasks-page-head .pact .btn {
    width: 100%;
    justify-content: center;
  }

  .tasks-kpi-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .task-section-title {
    grid-column: auto;
  }

  .task-form-grid {
    grid-template-columns: 1fr;
  }

  #mo-task .task-edit-modal {
    max-width: 100% !important;
    width: 100% !important;
  }

  .task-modal-body {
    max-height: calc(100vh - 140px);
  }

  .task-modal-main, .task-comment-column {
    padding: 12px;
  }

  .task-inline-head {
    flex-direction: column;
    align-items: stretch;
  }

  .task-inline-head .btn {
    justify-content: center;
  }

  .task-comment-actions .btn {
    flex: 1 1 100%;
    justify-content: center;
  }
}

@media (max-width: 700px) {
  .fees-kontingent-actions {
    grid-template-columns: 1fr;
  }

  .fees-toolbar-danger-actions {
    width: 100%;
    margin-left: 0;
    justify-content: flex-end;
  }
}

/* Restancekort: dato-feltet er fast, mens rykkerknappen udfylder resten af linjen. */
#fees-restance-card .fees-restance-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-start;
}

#fees-restance-card .fees-restance-label {
  margin: 0;
  white-space: nowrap;
  flex: 0 0 auto;
}

#fees-restance-card .fees-restance-date {
  flex: 0 0 160px;
  width: 160px;
  max-width: 160px;
}

#fees-restance-card #dueDateSavedHint {
  flex: 0 0 auto;
}

#fees-restance-card #btnBulkReminder {
  flex: 0 0 auto;
  min-width: 0;
  width: auto;
  max-width: 100%;
  margin-left: auto;
  justify-content: center;
  white-space: nowrap;
}

body.page-fees .fees-indoor-members-card {
  width: 100%;
}

body.page-fees .fees-indoor-members-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  grid-template-areas: 'title toggle spacer';
  align-items: center;
  gap: 10px 14px;
  position: relative;
  min-height: 34px;
}

body.page-fees .fees-indoor-members-head .ctitle {
  grid-area: title;
  min-width: 0;
}

body.page-fees .fees-indoor-members-toggle {
  grid-area: toggle;
  justify-self: center;
  align-self: center;
  white-space: nowrap;
}

body.page-fees .fees-indoor-members-body[hidden] {
  display: none;
}

@media (max-width: 1024px) {
  #fees-restance-card #btnBulkReminder {
    flex-basis: auto;
    min-width: 0;
    margin-left: auto;
  }
}

/* ─── Kommunikation: attachment previews ───────────────────────── */
.comm-attach-list-inner {
  padding: 0 16px;
}

.comm-attach-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--bdr2);
}

.comm-attach-row:last-child {
  border-bottom: 0;
}

.comm-attach-thumb {
  width: 80px;
  height: 56px;
  border: 0;
  padding: 0;
  border-radius: 6px;
  overflow: hidden;
  flex-shrink: 0;
  background: var(--surf2);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--txm);
  transition: var(--t);
}

.comm-attach-thumb:hover {
  box-shadow: 0 0 0 2px rgba(30,73,118,.22);
  color: var(--pri);
}

.comm-attach-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.comm-attach-doc-thumb {
  font-size: 1.35rem;
}

.comm-attach-info {
  flex: 1;
  min-width: 0;
}

.comm-attach-name {
  font-weight: 600;
  font-size: .82rem;
  color: var(--tx);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.comm-attach-actions {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
}

.comm-preview-modal {
  background: rgba(0,0,0,.86);
  padding: 0;
  backdrop-filter: blur(3px);
}

.comm-preview-shell {
  position: relative;
  width: 90vw;
  height: 90vh;
  max-width: 1600px;
  background: rgba(17,24,39,.92);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: var(--rxl);
  box-shadow: 0 18px 70px rgba(0,0,0,.45);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.comm-preview-topbar {
  min-height: 58px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 10px 14px 10px 18px;
  background: rgba(0,0,0,.38);
  border-bottom: 1px solid rgba(255,255,255,.14);
}

.comm-preview-heading {
  min-width: 0;
}

.comm-preview-title {
  color: #fff;
  font-weight: 700;
  font-size: .9rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.comm-preview-meta {
  color: rgba(255,255,255,.62);
  font-size: .72rem;
  margin-top: 2px;
}

.comm-preview-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.comm-preview-actions .btn {
  border-color: rgba(255,255,255,.24);
  background: rgba(255,255,255,.12);
  color: #fff;
}

.comm-preview-actions .btn:hover {
  background: rgba(255,255,255,.2);
}

.comm-preview-close {
  background: rgba(255,255,255,.14);
  color: #fff;
}

.comm-preview-close:hover {
  background: rgba(255,255,255,.22);
  color: #fff;
}

.comm-preview-body {
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

.comm-preview-image-stage {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding: 16px 78px;
  box-sizing: border-box;
}

.comm-preview-image {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
  border-radius: 8px;
  box-shadow: 0 10px 50px rgba(0,0,0,.42);
}

.comm-preview-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 42px;
  height: 54px;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: var(--t);
  z-index: 2;
}

.comm-preview-nav:hover {
  background: rgba(255,255,255,.26);
}

.comm-preview-prev {
  left: 22px;
}

.comm-preview-next {
  right: 22px;
}

.comm-preview-counter {
  position: absolute;
  left: 50%;
  bottom: 12px;
  transform: translateX(-50%);
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(0,0,0,.48);
  color: rgba(255,255,255,.86);
  font-size: .72rem;
  font-weight: 700;
}

.comm-preview-doc-wrap {
  position: relative;
  width: 100%;
  height: 100%;
  background: #111827;
}

.comm-preview-frame {
  width: 100%;
  height: 100%;
  border: 0;
  background: #fff;
  display: block;
}

.comm-preview-doc-fallback {
  position: absolute;
  left: 50%;
  bottom: 12px;
  transform: translateX(-50%);
  max-width: min(680px, calc(100% - 32px));
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 12px;
  border-radius: 999px;
  background: rgba(0,0,0,.68);
  color: rgba(255,255,255,.78);
  font-size: .72rem;
  pointer-events: none;
}

.comm-preview-doc-unsupported {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: rgba(255,255,255,.82);
  text-align: center;
  padding: 24px;
}

.comm-preview-doc-unsupported i {
  font-size: 3rem;
  color: rgba(255,255,255,.55);
}

.comm-preview-doc-unsupported strong {
  color: #fff;
  font-size: 1rem;
}

.comm-preview-doc-unsupported span {
  max-width: 520px;
  font-size: .78rem;
  color: rgba(255,255,255,.62);
}

@media (max-width: 700px) {
  .comm-attach-row {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .comm-attach-actions {
    width: 100%;
    margin-left: 92px;
  }

  .comm-attach-actions .btn {
    flex: 1;
    justify-content: center;
  }

  .comm-preview-shell {
    width: 100vw;
    height: 100vh;
    border-radius: 0;
    border: 0;
  }

  .comm-preview-topbar {
    align-items: flex-start;
    padding: 10px 10px 10px 12px;
  }

  .comm-preview-image-stage {
    padding: 12px 54px;
  }

  .comm-preview-nav {
    width: 38px;
    height: 48px;
  }

  .comm-preview-prev {
    left: 8px;
  }

  .comm-preview-next {
    right: 8px;
  }

  .comm-preview-doc-fallback {
    display: none;
  }
}

/* Rights: per-user Bruger permissions */

.rights-role-mail-test-card .cb {
  padding-top:14px
}

.rights-role-mail-test-form {
  display:flex;
  align-items:flex-end;
  gap:10px;
  flex-wrap:wrap
}

.rights-role-mail-test-form .fgrp {
  min-width:220px
}

.rights-role-mail-test-recipient {
  min-height:42px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:2px;
  border:1px solid var(--bdr2);
  background:var(--surf2);
  border-radius:10px;
  padding:8px 12px;
  min-width:260px
}

.rights-role-mail-test-recipient span {
  color:var(--txm);
  font-size:.7rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em
}

.rights-role-mail-test-recipient strong {
  color:var(--tx);
  font-size:.82rem;
  word-break:break-word
}

.rights-add-user-form {
  display:flex;
  gap:8px;
  align-items:flex-end;
  flex-wrap:wrap
}

.rights-add-user-form .fgrp {
  min-width:260px
}

.rights-user-grid {
  display:grid;
  grid-template-columns:minmax(330px,.9fr) minmax(360px,1.1fr);
  gap:16px;
  align-items:start
}

.rights-pane-title {
  font-size:.86rem;
  font-weight:800;
  color:var(--tx);
  margin-bottom:10px;
  display:flex;
  align-items:center;
  gap:8px
}

.rights-user-table-wrap {
  border:1px solid var(--bdr2);
  border-radius:var(--r);
  overflow:hidden;
  background:var(--surf)
}

.rights-user-table a {
  color:var(--tx);
  font-weight:700;
  text-decoration:none;
  display:block
}

.rights-user-table a:hover {
  color:var(--pri)
}

.rights-user-row.active td {
  background:rgba(30,73,118,.08)
}

.rights-permission-panel {
  border:1px solid var(--bdr2);
  border-radius:var(--r);
  padding:14px;
  background:linear-gradient(180deg,var(--surf),var(--surf2))
}

.rights-lock-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border:1px solid rgba(30,73,118,.16);
  background:rgba(30,73,118,.07);
  border-radius:12px;
  padding:12px 14px;
  margin-bottom:10px
}

.rights-lock-row strong {
  display:block;
  color:var(--tx);
  font-size:.84rem
}

.rights-lock-row span {
  display:block;
  color:var(--txm);
  font-size:.74rem;
  margin-top:2px
}

.rights-locked-badge {
  white-space:nowrap;
  background:var(--pri);
  color:#fff;
  border-radius:999px;
  padding:5px 9px!important;
  font-weight:800;
  font-size:.69rem!important;
  margin-top:0!important
}

.rights-permission-list {
  display:grid;
  gap:8px
}

.rights-permission-item {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border:1px solid var(--bdr2);
  background:var(--surf);
  border-radius:12px;
  padding:12px 14px;
  cursor:pointer;
  transition:var(--t)
}

.rights-permission-item:hover {
  border-color:rgba(30,73,118,.35);
  box-shadow:0 6px 18px rgba(30,73,118,.08)
}

.rights-permission-text strong {
  display:block;
  color:var(--tx);
  font-size:.84rem
}

.rights-permission-text span {
  display:block;
  color:var(--txm);
  font-size:.72rem;
  margin-top:2px
}

.rights-permission-toggle-wrap {
  margin:0
}

.rights-permission-toggle-wrap .tgltr {
  width:52px;
  height:28px;
  border-radius:999px
}

.rights-permission-toggle-wrap .tgltr::after {
  width:22px;
  height:22px;
  top:3px;
  left:3px
}

.rights-permission-toggle-wrap input:checked + .tgltr::after {
  transform:translateX(24px)
}

.rights-permission-status {
  min-height:18px;
  margin-top:10px;
  font-size:.75rem;
  color:var(--txm)
}

.rights-permission-status.ok {
  color:var(--suc)
}

.rights-permission-status.bad {
  color:var(--dan)
}

.rights-permission-status.saving {
  color:var(--pri)
}

.rights-empty-state {
  min-height:260px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:var(--txm);
  gap:8px
}

.rights-empty-state i {
  font-size:2rem;
  color:var(--bdr)
}

.rights-empty-state strong {
  color:var(--tx);
  font-size:.9rem
}

.rights-empty-state span {
  max-width:360px;
  font-size:.78rem;
  line-height:1.5
}

@media(max-width: 1024px) {
  .rights-user-grid {
    grid-template-columns:1fr
  }

  .rights-add-user-form {
    display:grid;
    grid-template-columns:1fr
  }

  .rights-add-user-form .fgrp {
    min-width:0
  }

  .rights-lock-row,.rights-permission-item {
    align-items:flex-start
  }

  .rights-lock-row {
    flex-direction:column
  }

  .rights-locked-badge {
    align-self:flex-start
  }
}

/* ─── Event create modal ───────────────────────────────────────── */
#mo-event-new, #mo-event-edit {
  align-items: center;
  justify-content: center;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 22px 14px;
}

#mo-event-new .event-create-modal, #mo-event-edit .event-edit-modal {
  max-height: calc(100vh - 44px);
  margin: auto 0;
  background: var(--bg);
}

#mo-event-new .event-create-body, #mo-event-edit .event-create-body {
  background: var(--bg);
  flex: 1 1 auto;
  overflow-y: auto;
  padding-bottom: 10px;
}

#mo-event-new .event-create-footer, #mo-event-edit .event-create-footer {
  background: var(--bg);
  border-top: 0;
  justify-content: space-between;
  flex-wrap: wrap;
}

#mo-event-edit .event-description-autosize {
  box-sizing: border-box;
  min-height: 72px;
  overflow-y: hidden;
  resize: none;
}

.event-modal-subtitle {
  margin-top: 3px;
  color: var(--txm);
  font-size: .72rem;
  line-height: 1.35;
}

.event-create-form {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.event-create-section {
  background: rgba(255,255,255,.88);
  border: 1px solid var(--bdr2);
  border-radius: var(--rl);
  box-shadow: var(--sh0);
  padding: 14px;
  margin-bottom: 14px;
}

.event-create-section-title {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 12px;
  font-family: var(--fd);
  font-weight: 700;
  font-size: .86rem;
  color: var(--pri);
}

.event-create-grid, .event-date-time-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.event-repeat-grid {
  margin-top: 12px;
}

.event-date-time-row {
  display: flex;
  gap: 8px;
  align-items: center;
}

.event-date-time-row .fi:first-child {
  flex: 1 1 auto;
  min-width: 0;
}

.event-time-input {
  width: 112px;
  flex: 0 0 112px;
}

.event-weekday-options {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 4px;
}

.event-generate-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 14px;
}

.event-occurrences-table {
  overflow-x: auto;
}

.event-create-footer-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

@media (max-width: 1024px) {
  #mo-event-new, #mo-event-edit {
    padding: 10px;
  }

  #mo-event-new .event-create-modal, #mo-event-edit .event-edit-modal {
    max-height: calc(100vh - 20px);
  }

  #mo-event-new .mh, #mo-event-new .mb2, #mo-event-new .mf, #mo-event-edit .mh, #mo-event-edit .mb2, #mo-event-edit .mf {
    padding-left: 14px;
    padding-right: 14px;
  }

  .event-create-grid, .event-date-time-grid {
    grid-template-columns: 1fr;
  }

  .event-date-time-row {
    flex-wrap: wrap;
  }

  .event-time-input {
    width: 100%;
    flex: 1 1 100%;
  }

  .event-create-footer .btn {
    width: 100%;
    justify-content: center;
  }

  .event-create-footer-actions {
    width: 100%;
  }

  .event-create-footer-actions .btn {
    flex: 1 1 100%;
  }
}

.event-modal-alert {
  margin-bottom: 14px;
}

/* Mailstatus / central mailkø */
.mailq-page {
  display:flex;
  flex-direction:column;
  gap:16px;
}

.mailq-hero {
  padding:18px;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
}

.mailq-actions {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.mailq-kpis {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:12px;
}

.mailq-kpi {
  padding:16px;
}

.mailq-kpi span {
  display:block;
  font-size:.72rem;
  color:var(--txm);
  text-transform:uppercase;
  letter-spacing:.05em;
  font-weight:800;
}

.mailq-kpi strong {
  display:block;
  font-family:var(--fd);
  font-size:1.75rem;
  color:var(--pri);
  line-height:1.1;
  margin-top:5px;
}

.mailq-dispatcher {
  padding:12px 16px;
  border-color:rgba(32,128,73,.20);
  background:rgba(32,128,73,.06);
}

.mailq-dispatcher.warn {
  border-color:rgba(176,117,0,.25);
  background:rgba(245,158,11,.08);
}

.mailq-dispatcher strong {
  display:block;
  color:var(--tx);
  font-size:.85rem;
  margin-bottom:3px;
}

.mailq-dispatcher span {
  display:block;
  line-height:1.45;
}

.mailq-filter-row {
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.mailq-list {
  display:flex;
  flex-direction:column;
  gap:10px;
}

.mailq-job {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,392px);
  gap:16px;
  padding:14px;
  border:1px solid var(--bdr2);
  border-radius:var(--rl);
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(247,250,255,.96));
  box-shadow:var(--sh0);
}

.mailq-job-title {
  color:var(--tx);
  font-weight:800;
  font-size:.95rem;
  margin-bottom:3px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.mailq-job-meta {
  color:var(--txm);
  font-size:.75rem;
  margin-bottom:8px;
}

.mailq-job-side {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  align-content:start;
  justify-content:end;
}

.mailq-job-side .btn {
  grid-column:1 / -1;
  justify-content:center;
}

.mailq-mini {
  border:1px solid var(--bdr2);
  border-radius:10px;
  padding:7px;
  text-align:center;
  background:#fff;
}

.mailq-mini strong {
  display:block;
  color:var(--pri);
  font-size:1rem;
  line-height:1.05;
}

.mailq-mini span {
  display:block;
  color:var(--txm);
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  overflow-wrap:anywhere;
}

.mailq-mini.bad strong {
  color:var(--dan);
}

.mailq-failed-list {
  display:flex;
  flex-direction:column;
  gap:6px;
}

.mailq-failed-row {
  display:grid;
  grid-template-columns:minmax(180px,.8fr) minmax(0,1.2fr);
  gap:10px;
  align-items:start;
  padding:8px 10px;
  border-radius:10px;
  background:rgba(187,28,28,.06);
  border:1px solid rgba(187,28,28,.16);
}

.mailq-failed-row strong {
  display:block;
  color:var(--dan);
  font-size:.8rem;
}

.mailq-failed-row span {
  display:block;
  color:var(--txm);
  font-size:.72rem;
  margin-top:1px;
}

.mailq-failed-row em {
  font-style:normal;
  color:var(--txm);
  font-size:.74rem;
  line-height:1.35;
  overflow-wrap:anywhere;
}

.mailq-okline {
  padding:9px 10px;
  border-radius:10px;
  border:1px solid rgba(32,128,73,.18);
  background:rgba(32,128,73,.07);
  color:var(--suc);
  font-size:.78rem;
  font-weight:700;
  display:flex;
  gap:7px;
  align-items:center;
}

.mailq-detail-head {
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  gap:10px;
  margin-bottom:12px;
}

.mailq-detail-head > div {
  border:1px solid var(--bdr2);
  border-radius:12px;
  padding:10px 12px;
  background:#fff;
}

.mailq-detail-head span {
  display:block;
  font-size:.68rem;
  color:var(--txm);
  text-transform:uppercase;
  letter-spacing:.05em;
  font-weight:800;
}

.mailq-detail-head strong {
  display:block;
  color:var(--tx);
  font-size:.85rem;
  margin-top:2px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.mailq-rec-table {
  margin-top:12px;
  overflow:auto;
  border:1px solid var(--bdr2);
  border-radius:12px;
}

.mailq-rec-table table {
  width:100%;
  border-collapse:collapse;
  font-size:.78rem;
}

.mailq-rec-table th, .mailq-rec-table td {
  padding:8px 10px;
  border-bottom:1px solid var(--bdr2);
  text-align:left;
  vertical-align:top;
}

.mailq-rec-table th {
  background:var(--surf2);
  color:var(--txm);
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.mailq-rec-table td:last-child {
  overflow-wrap:anywhere;
  color:var(--txm);
}

.comm-send-failed-box {
  margin-top:12px;
  border:1px solid rgba(187,28,28,.18);
  background:rgba(187,28,28,.06);
  border-radius:12px;
  padding:10px;
  text-align:left;
}

.comm-send-failed-box h4 {
  margin:0 0 8px;
  color:var(--dan);
  font-size:.86rem;
}

.comm-send-failed-box ul {
  margin:0;
  padding-left:18px;
  color:var(--txm);
  font-size:.75rem;
  max-height:180px;
  overflow:auto;
}

.comm-send-failed-box li {
  margin-bottom:4px;
  overflow-wrap:anywhere;
}

.comm-send-failed-actions {
  display:flex;
  gap:8px;
  justify-content:flex-end;
  margin-top:10px;
  flex-wrap:wrap;
}

@media (max-width: 1024px) {
  .mailq-hero {
    flex-direction:column;
  }

  .mailq-actions {
    width:100%;
    justify-content:flex-start;
  }

  .mailq-kpis {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .mailq-job {
    grid-template-columns:1fr;
  }

  .mailq-job-side {
    grid-template-columns:repeat(4,minmax(0,1fr));
    justify-content:stretch;
  }

  .mailq-detail-head {
    grid-template-columns:1fr;
  }
}

@media (max-width: 700px) {
  .mailq-kpis {
    grid-template-columns:1fr;
  }

  .mailq-failed-row {
    grid-template-columns:1fr;
  }
}

/* Medlemsimport */
#mo-member-import .mdl {
  max-width: min(1272px, calc(100vw - 32px));
  height: min(92vh, 860px);
}

#mo-member-import .member-import-footer {
  justify-content:flex-end;
}

#mo-member-import .member-import-export-btn {
  margin-right:auto;
}

.member-import-body {
  display:flex;
  flex-direction:column;
  gap:14px;
}

.import-steps {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
}

.import-step {
  border:1px solid var(--bdr2);
  border-radius:12px;
  padding:12px;
  background:linear-gradient(180deg,#fff,rgba(247,250,255,.94));
}

.import-step strong {
  display:block;
  color:var(--tx);
  font-size:.82rem;
  margin-bottom:4px;
}

.import-step span {
  display:block;
  color:var(--txm);
  font-size:.74rem;
  line-height:1.35;
}

.import-actions {
  display:flex;
  gap:12px;
  align-items:stretch;
  flex-wrap:wrap;
}

.import-file-label {
  display:flex;
  flex-direction:column;
  gap:6px;
  flex:1;
  min-width:260px;
  border:1px dashed var(--bdr);
  border-radius:12px;
  padding:10px 12px;
  background:rgba(30,73,118,.04);
  color:var(--txm);
  font-size:.72rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.import-file-label input {
  margin-top:2px;
  color:var(--tx);
  font-size:.78rem;
  font-weight:500;
  text-transform:none;
  letter-spacing:0;
}

.import-summary {
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}

.import-summary > div {
  border:1px solid var(--bdr2);
  border-radius:12px;
  padding:11px 12px;
  background:#fff;
}

.import-summary strong {
  display:block;
  font-family:var(--fd);
  color:var(--pri);
  font-size:1.35rem;
  line-height:1;
}

.import-summary span {
  display:block;
  color:var(--txm);
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.05em;
  font-weight:800;
  margin-top:4px;
}

#member-import-hint {
  background: var(--sucl);
  color: var(--suc);
  border-color: #a8d5b8;
}

.import-preview-wrap {
  max-height:544px;
  overflow:auto;
  border:1px solid var(--bdr2);
  border-radius:12px;
}

.import-preview-table {
  min-width:1500px;
}

.import-preview-table .import-col-line {
  width:54px;
}

.import-preview-table .import-col-status {
  width:82px;
}

.import-preview-table .import-col-name {
  width:132px;
}

.import-preview-table .import-col-address {
  width:155px;
}

.import-preview-table .import-col-zip {
  width:72px;
}

.import-preview-table .import-col-city {
  width:112px;
}

.import-preview-table .import-col-email {
  width:185px;
}

.import-preview-table .import-col-oy {
  width:96px;
}

.import-preview-table .import-col-phone {
  width:105px;
}

.import-preview-table .import-col-birth {
  width:112px;
}

.import-preview-table .import-col-type {
  width:94px;
}

.import-preview-table .import-col-message {
  width:300px;
}

.import-preview-table th, .import-preview-table td {
  vertical-align:top;
}

.import-preview-table td:first-child, .import-preview-table th:first-child {
  padding-left:9px;
  padding-right:7px;
}

.import-preview-table td:nth-child(2), .import-preview-table th:nth-child(2) {
  padding-left:8px;
  padding-right:8px;
}

.import-preview-table td:last-child {
  white-space:normal;
  overflow-wrap:anywhere;
}

.import-row-error {
  background:rgba(187,28,28,.045);
}

.import-row-warning {
  background:rgba(176,125,42,.055);
}

.import-msg {
  font-size:.72rem;
  line-height:1.35;
  margin-bottom:3px;
}

.import-msg.err {
  color:var(--dan);
  font-weight:700;
}

.import-msg.wrn {
  color:#8a5a10;
  font-weight:700;
}

@media (max-width: 1024px) {
  #mo-member-import .mdl {
    height: auto;
    max-height: 92vh;
  }

  .import-steps, .import-summary {
    grid-template-columns:1fr;
  }

  #mo-member-import .mf {
    flex-wrap:wrap;
  }

  #mo-member-import .mf .btn {
    flex:1 1 100%;
    justify-content:center;
  }

  #mo-member-import .member-import-export-btn {
    margin-right:0;
  }
}

/* Kontingent: fast betalingskolonne.
   M/B-chips ligger i en separat, fast kolonne, så de ikke flytter sig når statusknappen skifter mellem "Registrér" og "BETALT". */
body.page-fees .fees-status-actions {
  --fees-status-button-width: 138px;
  --fees-methods-width: 60px;
  display: inline-block;
  width: calc(var(--fees-status-button-width) + 8px + var(--fees-methods-width));
}

body.page-fees .fees-status-form {
  margin: 0;
  display: inline-grid;
  grid-template-columns: var(--fees-status-button-width) var(--fees-methods-width);
  align-items: center;
  column-gap: 8px;
  width: 100%;
}

body.page-fees .fees-status-form > button[id^="togglePaid-"] {
  width: var(--fees-status-button-width);
  min-width: var(--fees-status-button-width);
  box-sizing: border-box;
  justify-content: center;
  white-space: nowrap;
}

body.page-fees .fees-payment-methods {
  display: inline-grid;
  grid-template-columns: 28px 28px;
  align-items: center;
  justify-content: start;
  column-gap: 4px;
  width: var(--fees-methods-width);
  min-width: var(--fees-methods-width);
}

body.page-fees .fee-payment-chip {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 28px;
  min-width: 28px;
  height: 24px;
  padding: 0 !important;
  cursor: pointer;
  user-select: none;
}

/* Kontingent: recipient picker for bulk mail actions */
.fees-recipient-modal {
  max-width: 760px;
}

.fees-recipient-intro {
  color: var(--tx2);
  font-size: .88rem;
  line-height: 1.55;
  margin-bottom: 12px;
}

.fees-recipient-intro p {
  margin: 0 0 8px 0;
}

.fees-recipient-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 0 0 10px 0;
  flex-wrap: wrap;
}

.fees-recipient-toolbar-buttons {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.fees-recipient-count {
  font-size: .82rem;
  color: var(--txm);
  font-weight: 600;
}

.fees-recipient-list {
  border: 1px solid var(--bdr);
  border-radius: var(--r);
  overflow: hidden;
  background: var(--surf);
  max-height: min(52vh, 520px);
  overflow-y: auto;
}

.fees-recipient-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--bdr2);
  cursor: pointer;
  transition: var(--t);
}

.fees-recipient-row:last-child {
  border-bottom: 0;
}

.fees-recipient-row:hover {
  background: rgba(30,73,118,.045);
}

.fees-recipient-row.disabled {
  opacity: .55;
  cursor: not-allowed;
}

.fees-recipient-check {
  margin-top: 3px;
  accent-color: var(--pri);
}

.fees-recipient-main {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.fees-recipient-name {
  color: var(--tx);
  font-weight: 700;
  font-size: .88rem;
}

.fees-recipient-email {
  color: var(--tx2);
  font-size: .78rem;
  overflow-wrap: anywhere;
}

.fees-recipient-empty, .fees-recipient-loading {
  padding: 18px 14px;
  color: var(--tx2);
  font-size: .86rem;
}

@media (max-width: 700px) {
  .fees-recipient-toolbar {
    align-items: flex-start;
  }

  .fees-recipient-toolbar-buttons {
    width: 100%;
  }

  .fees-recipient-toolbar-buttons .btn {
    flex: 1;
  }

  .fees-recipient-list {
    max-height: 48vh;
  }
}

/* Kontingent: progress display while sending bulk invoices */
.fees-send-progress {
  margin-top: 12px;
  padding: 12px 14px;
  border: 1px solid var(--bdr);
  border-radius: var(--r);
  background: var(--surf2);
}

.fees-send-progress-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--tx);
  font-size: .84rem;
  font-weight: 700;
  margin-bottom: 8px;
}

.fees-send-progress-track {
  width: 100%;
  height: 10px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(30,73,118,.12);
}

.fees-send-progress-fill {
  height: 100%;
  width: 0%;
  border-radius: inherit;
  background: var(--pri);
  transition: width .22s ease;
}

.fees-send-progress-detail {
  margin-top: 8px;
  color: var(--tx2);
  font-size: .8rem;
}

#feesRecipientClose:disabled, #feesRecipientCancel:disabled {
  opacity: .5;
  cursor: not-allowed;
}

/* ═══════════════════════════════════════════════════════════════════
   Tema: Hvid topmenu + transparent iframe-baggrund
   - Standardtemaet er hvid topmenu.
   - Klassisk sidemenu kan stadig vælges i Indstillinger → Generelt.
   ═══════════════════════════════════════════════════════════════════ */
html.embedded-frame, html.embedded-frame body {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
}

html.embedded-frame body .main, html.embedded-frame body .vc, html.embedded-frame body .topbar {
  background-color: transparent !important;
  background-image: none !important;
}

html.embedded-frame .login-overlay, html.embedded-frame .signup-page, html.embedded-frame .tenant-admin-page {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
}

body.theme-top-white {
  --app-menu-h: 76px;
  background: var(--bg);
  display: block;
  overflow: hidden;
}

body.theme-top-white .sidebar {
  position: fixed;
  inset: 0 0 auto 0;
  width: 100% !important;
  height: var(--app-menu-h);
  min-height: var(--app-menu-h);
  background: rgba(255,255,255,.97);
  color: var(--tx);
  border-bottom: 1px solid var(--bdr);
  box-shadow: 0 8px 24px rgba(28,47,64,.08);
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 14px;
  padding: 0 22px;
  overflow: visible;
  z-index: 1000;
  backdrop-filter: blur(16px);
}

body.theme-top-white .sidebar.col {
  width: 100% !important;
}

body.theme-top-white .sidebar.col .sorg, body.theme-top-white .sidebar.col .snsl, body.theme-top-white .sidebar.col .nav-link span, body.theme-top-white .sidebar.col .sfv, body.theme-top-white .sidebar.col .slogout span {
  display: inline;
}

body.theme-top-white .shd {
  width: auto;
  min-width: 168px;
  height: 100%;
  padding: 0;
  border-bottom: 0;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  flex-shrink: 0;
}

body.theme-top-white .slogo {
  justify-content: flex-start;
  min-width: 0;
}

body.theme-top-white .slogo img {
  max-width: 128px;
  max-height: 54px;
  width: auto;
  height: auto;
  filter: none;
}

body.theme-top-white .shd-bot {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  margin-left: auto;
}

body.theme-top-white .stog {
  display: none;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin: 0;
  border: 1px solid var(--bdr);
  border-radius: 12px;
  background: var(--surf2);
  color: var(--tx2);
}

body.theme-top-white .stog:hover {
  background: var(--pril);
  color: var(--pri);
}

body.theme-top-white .snav {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  height: 100%;
  padding: 0 4px;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 4px;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: thin;
}

body.theme-top-white .snsl {
  display: none !important;
}

body.theme-top-white .nav-link, body.theme-top-white .sidebar .nav-link[href*="communication.php"], body.theme-top-white .sidebar .nav-link[href*="settings.php"] {
  display: inline-flex !important;
  width: auto;
  min-height: 40px;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 12px;
  border: 1px solid transparent;
  border-radius: 999px;
  color: var(--tx2);
  background: transparent;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

body.theme-top-white .nav-link i {
  width: 16px;
  color: inherit;
}

body.theme-top-white .nav-link span {
  display: inline !important;
}

body.theme-top-white .nav-link:hover {
  background: var(--surf2);
  border-color: var(--bdr2);
  color: var(--tx);
}

body.theme-top-white .nav-link.active, body.theme-top-white .nav-link[aria-current="page"], body.theme-top-white.page-dashboard .snav .nav-link[href$="dashboard.php"], body.theme-top-white.page-index .snav .nav-link[href$="dashboard.php"], body.theme-top-white.page-members .snav .nav-link[href$="members.php"], body.theme-top-white.page-fees .snav .nav-link[href$="fees.php"], body.theme-top-white.page-events .snav .nav-link[href$="events.php"], body.theme-top-white.page-communication .snav .nav-link[href$="communication.php"], body.theme-top-white.page-tasks .snav .nav-link[href$="tasks.php"], body.theme-top-white.page-sponsors .snav .nav-link[href$="sponsors.php"], body.theme-top-white.page-settings .snav .nav-link[href$="settings.php"], body.theme-top-white.page-mail-queue .snav .nav-link[href$="mail_queue.php"], body.theme-top-white.page-support .snav .nav-link[href$="support.php"] {
  background: var(--pril) !important;
  border-color: rgba(30,73,118,.22) !important;
  color: var(--pri) !important;
  box-shadow: inset 0 0 0 1px rgba(30,73,118,.05) !important;
  font-weight: 800;
}

body.theme-top-white .sft {
  height: 100%;
  padding: 0;
  border-top: 0;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

body.theme-top-white .sfv {
  display: inline;
  padding: 0;
  color: var(--txm);
  font-size: .66rem;
  max-width: 160px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.theme-top-white .slogout {
  width: auto;
  min-height: 40px;
  justify-content: center;
  padding: 8px 13px;
  border-radius: 999px;
  background: var(--pri);
  border: 1px solid var(--pri);
  color: #fff;
  box-shadow: 0 6px 16px rgba(30,73,118,.18);
}

body.theme-top-white .slogout:hover {
  background: var(--prid);
  color: #fff;
}

body.theme-top-white .slogout span {
  display: inline !important;
}

body.theme-top-white .main, body.theme-top-white .main.exp {
  margin-left: 0 !important;
  height: 100vh;
  padding-top: var(--app-menu-h);
  transition: none;
}

body.theme-top-white .topbar {
  display: none !important;
}

body.theme-top-white .mob-nav-btn {
  display: none !important;
}

body.theme-top-white .vc {
  background: var(--bg);
}

@media (max-width: 1024px) {
  body.theme-top-white .sfv {
    display: none !important;
  }

  body.theme-top-white .nav-link {
    padding-left: 10px;
    padding-right: 10px;
  }
}

@media (max-width: 1024px) {
  body.theme-top-white {
    --app-menu-h: 64px;
  }

  body.theme-top-white .sidebar {
    height: auto;
    min-height: var(--app-menu-h);
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 0;
    transform: none !important;
  }

  body.theme-top-white .shd {
    width: 100%;
    min-width: 0;
    min-height: var(--app-menu-h);
    height: var(--app-menu-h);
    padding: 0 14px;
    justify-content: space-between;
  }

  body.theme-top-white .slogo img {
    max-width: 118px;
    max-height: 46px;
  }

  body.theme-top-white .stog {
    display: inline-flex !important;
  }

  body.theme-top-white .snav, body.theme-top-white .sft {
    display: none;
    height: auto;
    border-top: 1px solid var(--bdr2);
    background: rgba(255,255,255,.98);
  }

  body.theme-top-white .sidebar.mob-open .snav {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 5px;
    padding: 10px 12px;
    max-height: calc(100vh - var(--app-menu-h) - 72px);
    overflow-y: auto;
    overflow-x: hidden;
  }

  body.theme-top-white .sidebar.mob-open .sft {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 10px 12px 12px;
  }

  body.theme-top-white .nav-link, body.theme-top-white .sidebar .nav-link[href*="communication.php"], body.theme-top-white .sidebar .nav-link[href*="settings.php"] {
    width: 100% !important;
    justify-content: flex-start;
    min-height: 44px;
    border-radius: 12px;
    padding: 10px 12px;
    display: flex !important;
  }

  body.theme-top-white .slogout {
    width: auto;
    min-height: 42px;
  }

  body.theme-top-white .sidebar-overlay.open {
    display: block !important;
    background: rgba(15,23,42,.35);
    z-index: 900;
  }

  body.theme-top-white .topbar {
    padding: 0 12px;
  }
}

@media print {
  body.theme-top-white .sidebar {
    display: none !important;
  }

  body.theme-top-white .main {
    padding-top: 0 !important;
  }
}

/* ─── Professionel mobiltilpasning ────────────────────────────────
   Samlet nederst, så reglerne vinder over de side-specifikke regler ovenfor. */
.mobile-app-header {
  display: none;
  flex-shrink: 0;
  height: 64px;
  min-height: 64px;
  align-items: center;
  gap: 10px;
  padding: 0 14px;
  background: rgba(255,255,255,.98);
  border-bottom: 1px solid var(--bdr);
  box-shadow: 0 8px 24px rgba(28,47,64,.08);
  z-index: 160;
}

.mobile-app-logo {
  max-width: 112px;
  max-height: 42px;
  width: auto;
  height: auto;
  object-fit: contain;
  flex: 0 1 auto;
}

.mobile-app-title {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: .9rem;
  font-weight: 800;
  color: var(--tx);
  text-align: center;
}

.mobile-app-header-spacer {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
}

.fee-pay-choice-backdrop {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 18px;
  background: rgba(15,23,42,.42);
}

.fee-pay-choice-backdrop.open {
  display: flex;
}

.fee-pay-choice {
  width: min(420px, 100%);
  overflow: hidden;
  border: 1px solid var(--bdr);
  border-radius: 16px;
  background: var(--surf);
  box-shadow: 0 18px 60px rgba(15,23,42,.26);
}

.fee-pay-choice-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px 18px 6px;
  color: var(--tx);
  font-weight: 800;
}

.fee-pay-choice-body {
  padding: 4px 18px 14px;
  color: var(--tx2);
  font-size: .86rem;
  line-height: 1.45;
}

.fee-pay-choice-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 12px 14px 14px;
  border-top: 1px solid var(--bdr2);
  background: var(--surf2);
}

.fee-pay-choice-actions .btn {
  width: 100%;
  justify-content: center;
  min-height: 44px;
}

.fee-pay-choice-cancel {
  grid-column: 1 / -1;
}

@media (max-width: 700px) {
  body {
    height: 100dvh;
  }

  .main {
    height: 100dvh;
  }

  body.theme-classic-sidebar .mobile-app-header {
    display: flex;
  }

  body.theme-classic-sidebar .mob-nav-btn {
    width: 42px;
    height: 42px;
    padding: 0;
    border: 1px solid var(--bdr);
    border-radius: 13px;
    background: var(--surf2);
    color: var(--tx2);
    box-shadow: none;
  }

  body.theme-classic-sidebar .mob-nav-btn:hover {
    background: var(--pril);
    color: var(--pri);
  }

  body.theme-classic-sidebar .vc {
    padding-top: 14px;
  }

  .sidebar .nav-link[href*="mail_queue.php"], .sidebar .nav-link[href*="settings.php"] {
    display: none !important;
  }

  body.page-members .tb {
    padding: 0;
    align-items: stretch;
  }

  body.page-members #msrch-wrap {
    order: 1;
    width: 100%;
    max-width: 100%;
  }

  body.page-members #fchips, body.page-members #type-chips {
    display: none !important;
  }

  body.page-members .members-action-buttons {
    order: 2;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    gap: 8px !important;
    margin-left: 0 !important;
  }

  body.page-members #btn-import-members {
    display: none !important;
  }

  body.page-members .members-action-buttons .btn {
    width: 100%;
    min-width: 0;
    min-height: 44px;
    justify-content: center;
    padding-left: 8px;
    padding-right: 8px;
    white-space: nowrap;
  }

  body.page-members #members-table {
    font-size: .94rem;
  }

  body.page-members #members-table th {
    font-size: .75rem;
  }

  body.page-members #members-table td {
    padding-top: 13px;
    padding-bottom: 13px;
  }

  body.page-members #members-table td:first-child strong, body.page-members #members-table td:first-child {
    color: var(--tx);
  }

  body.page-fees .fees-payment-methods {
    display: none !important;
  }

  body.page-fees .fees-status-actions {
    --fees-status-button-width: 100%;
    --fees-methods-width: 0px;
    display: block !important;
    width: 100% !important;
  }

  body.page-fees .fees-status-form {
    display: block !important;
    width: 100% !important;
  }

  body.page-fees .fees-status-form > button[id^="togglePaid-"] {
    width: 100% !important;
    min-width: 0 !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  body.page-sponsors .sponsors-table-card .tw {
    overflow-x: hidden;
  }

  body.page-sponsors #sponsors-table {
    min-width: 100% !important;
    width: 100% !important;
    table-layout: auto !important;
  }

  body.page-sponsors #sponsors-table thead tr, body.page-sponsors #sponsors-table tbody tr[data-sponsor-id] {
    display: grid !important;
    grid-template-columns: minmax(0, 1.45fr) minmax(76px, .72fr) minmax(92px, .95fr) minmax(72px, .72fr) !important;
    align-items: center;
  }

  body.page-sponsors #sponsors-table th, body.page-sponsors #sponsors-table td {
    width: auto !important;
    min-width: 0 !important;
  }

  body.page-sponsors #sponsors-table th:nth-child(3), body.page-sponsors #sponsors-table td:nth-child(3), body.page-sponsors #sponsors-table th:nth-child(4), body.page-sponsors #sponsors-table td:nth-child(4), body.page-sponsors #sponsors-table th:nth-child(5), body.page-sponsors #sponsors-table td:nth-child(5), body.page-sponsors #sponsors-table th:nth-child(8), body.page-sponsors #sponsors-table td:nth-child(8), body.page-sponsors #sponsors-table th:nth-child(9), body.page-sponsors #sponsors-table td:nth-child(9) {
    display: none !important;
  }

  body.page-sponsors #sponsors-table th:nth-child(2), body.page-sponsors #sponsors-table td:nth-child(2) {
    order: 1 !important;
  }

  body.page-sponsors #sponsors-table th:nth-child(6), body.page-sponsors #sponsors-table td:nth-child(6) {
    order: 2 !important;
    text-align: right;
  }

  body.page-sponsors #sponsors-table th:nth-child(7), body.page-sponsors #sponsors-table td:nth-child(7) {
    order: 3 !important;
  }

  body.page-sponsors #sponsors-table th:nth-child(1), body.page-sponsors #sponsors-table td:nth-child(1) {
    order: 4 !important;
    text-align: right;
  }

  body.page-sponsors #sponsors-table tbody tr[data-sponsor-id] td:nth-child(9) {
    display: block !important;
    grid-column: 1 / -1;
    order: 5 !important;
    padding-top: 5px !important;
    padding-bottom: 8px !important;
    text-align: right !important;
  }

  body.page-sponsors #sponsors-table tbody tr[data-sponsor-id] td:nth-child(9) .abs {
    justify-content: flex-end;
  }

  body.page-sponsors #sponsors-table tbody tr:not([data-sponsor-id]) td {
    display: block !important;
    grid-column: 1 / -1;
    width: 100% !important;
  }
}

@media (max-width: 1024px) {
  body.theme-top-white .shd {
    justify-content: flex-start !important;
    gap: 10px !important;
  }

  body.theme-top-white .shd-bot {
    order: -1 !important;
    margin: 0 !important;
    flex: 0 0 auto !important;
    justify-content: flex-start !important;
  }

  body.theme-top-white .slogo {
    flex: 1 1 auto !important;
    justify-content: center !important;
  }

  body.theme-top-white .sidebar .nav-link[href*="mail_queue.php"], body.theme-top-white .sidebar .nav-link[href*="settings.php"] {
    display: none !important;
  }
}

/* ─── Mobilrettelser: webapp-clean start og sponsor-modal ───────── */
@media (max-width: 700px) {
  html, body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  body.theme-top-white, body.theme-classic-sidebar {
    overscroll-behavior-x: none;
    touch-action: pan-y;
  }

  .sidebar-overlay:not(.open) {
    display: none !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  .mo {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    touch-action: pan-y;
  }

  body.page-sponsors #mo-sponsor {
    align-items: flex-start !important;
    justify-content: center !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
    padding: max(10px, env(safe-area-inset-top)) 10px max(12px, env(safe-area-inset-bottom));
  }

  body.page-sponsors #mo-sponsor .mdl {
    width: calc(100vw - 20px) !important;
    max-width: calc(100vw - 20px) !important;
    min-width: 0 !important;
    max-height: none !important;
    margin: 0 auto !important;
    overflow: hidden !important;
    display: block !important;
  }

  body.page-sponsors #mo-sponsor .mh, body.page-sponsors #mo-sponsor .mf {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  body.page-sponsors #mo-sponsor .mb2 {
    overflow: visible !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 16px !important;
  }

  body.page-sponsors #sponsor-form, body.page-sponsors #mo-sponsor .sponsor-form-grid, body.page-sponsors #mo-sponsor .fg, body.page-sponsors #mo-sponsor .sponsor-sponsorship-list {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.page-sponsors #mo-sponsor .sponsor-phone-cvr-group {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.page-sponsors #mo-sponsor .sponsor-section-title, body.page-sponsors #mo-sponsor .sponsor-sponsorship-list, body.page-sponsors #mo-sponsor .s2, body.page-sponsors #mo-sponsor .s3 {
    grid-column: auto !important;
  }

  body.page-sponsors #mo-sponsor .fgrp, body.page-sponsors #mo-sponsor .sponsor-location-field, body.page-sponsors #mo-sponsor .sponsor-phone-cvr-field, body.page-sponsors #mo-sponsor .sponsor-sponsorship-fields, body.page-sponsors #mo-sponsor .fi, body.page-sponsors #mo-sponsor .fsel, body.page-sponsors #mo-sponsor .fta {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  body.page-sponsors #mo-sponsor .fi, body.page-sponsors #mo-sponsor .fsel, body.page-sponsors #mo-sponsor .fta {
    min-height: 44px;
    font-size: 18px;
  }

  body.page-sponsors #mo-sponsor input[type="date"], body.page-sponsors #sp-start-date, body.page-sponsors #sp-end-date {
    display: block !important;
    width: 100% !important;
    inline-size: 100% !important;
    max-width: 100% !important;
    max-inline-size: 100% !important;
    min-width: 0 !important;
    -webkit-appearance: none;
    appearance: none;
  }

  body.page-sponsors #mo-sponsor .sponsor-location-group,
  body.page-sponsors #mo-sponsor .sponsor-sponsorship-fields,
  body.page-sponsors #mo-sponsor .sponsor-sponsorship-dates {
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
  }

  body.page-sponsors #mo-sponsor .sponsor-sponsorship-dates,
  body.page-sponsors #mo-sponsor .sponsor-sponsorship-actions {
    grid-column: auto !important;
  }

  body.page-sponsors #mo-sponsor .sponsor-sponsorship-actions {
    justify-content: flex-end !important;
  }

  body.page-sponsors #mo-sponsor .sponsor-section-title-row {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  body.page-sponsors #mo-sponsor .sponsor-add-sponsorship {
    width: 100% !important;
    justify-content: center !important;
  }

  body.page-sponsors #mo-sponsor .mf {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px !important;
  }

  body.page-sponsors #mo-sponsor .mf .btn {
    width: 100%;
    justify-content: center;
    min-width: 0;
    min-height: 44px;
  }

  /* Mobilmenu: skjul tomme system-/statussektioner og status-links */
  .sidebar .snsl-system, .sidebar .snsl-status, .sidebar .snsl:has(+ .nav-link[href*="mail_queue.php"]), .sidebar .nav-link[href*="status.php"], .sidebar .nav-link[href*="/status"], .sidebar .nav-link[href*="mail_queue.php"], .sidebar .nav-link[href*="settings.php"] {
    display: none !important;
  }
}

/* ────────────────────────────────────────────────────────────────
   Indstillinger → Abonnement
──────────────────────────────────────────────────────────────── */
.subscription-page {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.subscription-hero .ch {
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.subscription-card-menu {
  position: relative;
  flex: 0 0 auto;
  margin-left: auto;
}

.subscription-card-menu > summary {
  list-style: none;
  cursor: pointer;
}

.subscription-card-menu > summary::-webkit-details-marker {
  display: none;
}

.subscription-card-menu-trigger {
  min-width: 40px;
  min-height: 40px;
  padding: 0;
  justify-content: center;
}

.subscription-card-menu-panel {
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  z-index: 40;
  width: max-content;
  min-width: 220px;
  max-width: min(320px, calc(100vw - 32px));
  border: 1px solid var(--bdr);
  border-radius: 14px;
  background: var(--surf);
  box-shadow: var(--sh2);
  padding: 6px;
}

.subscription-card-menu-item {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 9px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--tx);
  font: inherit;
  font-weight: 700;
  text-align: left;
  white-space: nowrap;
  padding: 10px 12px;
  cursor: pointer;
}

.subscription-card-menu-item:hover,
.subscription-card-menu-item:focus-visible {
  background: var(--surf2);
  outline: none;
}

.subscription-card-menu-item.is-danger {
  color: var(--dan);
}

.subscription-card-menu-item:disabled {
  color: var(--txm);
  cursor: not-allowed;
  opacity: .7;
}

.subscription-cancel-status:empty {
  display: none;
}

.subscription-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 12px;
}

.subscription-summary-item {
  border: 1px solid var(--bdr);
  background: var(--surf2);
  border-radius: var(--r);
  padding: 12px;
  min-width: 0;
}

.subscription-summary-item span {
  display: block;
  font-size: .68rem;
  font-weight: 700;
  color: var(--txm);
  text-transform: uppercase;
  letter-spacing: .035em;
  margin-bottom: 5px;
}

.subscription-summary-item strong {
  display: block;
  color: var(--tx);
  font-size: .92rem;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.subscription-summary-item small {
  display: block;
  color: var(--txm);
  font-size: .72rem;
  line-height: 1.35;
  margin-top: 4px;
}

.subscription-status-item {
  border-width: 2px;
}

.subscription-status-item strong {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 1.05rem;
}

.subscription-status-item strong i {
  flex: 0 0 auto;
  font-size: 1rem;
}

.subscription-status-item.is-ok {
  border-color: rgba(45,106,79,.28);
  background: var(--sucl);
}

.subscription-status-item.is-ok strong,
.subscription-status-item.is-ok strong i {
  color: var(--suc);
}

.subscription-status-item.is-warn {
  border-color: rgba(217,119,6,.3);
  background: var(--wrnl);
}

.subscription-status-item.is-warn strong,
.subscription-status-item.is-warn strong i {
  color: var(--wrn);
}

.subscription-status-item.is-bad {
  border-color: rgba(192,57,43,.3);
  background: var(--danl);
}

.subscription-status-item.is-bad strong,
.subscription-status-item.is-bad strong i {
  color: var(--dan);
}

.subscription-cancel-box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  border: 1px solid var(--bdr);
  background: var(--surf2);
  border-radius: var(--rl);
  padding: 14px;
  margin-top: 14px;
}

.subscription-cancel-box p {
  margin: 4px 0 0;
  color: var(--txm);
  font-size: .82rem;
  line-height: 1.45;
}

.subscription-cancel-box small {
  display: block;
  color: var(--txm);
  font-size: .72rem;
  line-height: 1.35;
  margin-top: 4px;
}

.subscription-cancel-status {
  margin-top: 8px;
  font-size: .78rem;
  font-weight: 700;
}

.subscription-cancel-status.is-loading {
  color: var(--txm);
}

.subscription-cancel-status.is-ok {
  color: var(--suc);
}

.subscription-cancel-status.is-error {
  color: var(--dan);
}

.subscription-detail-grid {
  align-items: start;
}

.subscription-table th, .subscription-table td {
  vertical-align: middle;
}

.subscription-empty {
  min-height: 155px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 22px;
}

.subscription-empty i {
  font-size: 1.7rem;
  color: var(--txm);
  opacity: .55;
}

@media (max-width: 1024px) {
  .subscription-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .subscription-summary-grid {
    grid-template-columns: 1fr;
  }

  .subscription-cancel-box {
    align-items: stretch;
    flex-direction: column;
  }

  .subscription-cancel-box .btn {
    width: 100%;
    justify-content: center;
  }

  .subscription-card-menu {
    align-self: flex-start;
  }

  .subscription-card-menu-panel {
    right: 0;
  }

  .subscription-detail-grid {
    grid-template-columns: 1fr !important;
  }

  .subscription-table {
    min-width: 680px;
  }
}

/* ────────────────────────────────────────────────────────────────
   Mobil/tablet-only hardening (desktop >1024px påvirkes ikke)
   ──────────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  html, body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  body {
    min-width: 0;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  .main, .vc, .view, .card, .ch, .cb, .tb, .ph, .pact, .fg, .grid2, .grid3, .grid-auto, .dashboard-main-grid, .set-layout, .settings-section, .subscription-page {
    min-width: 0;
    max-width: 100%;
  }

  .vc {
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
  }

  img, svg, canvas, iframe, video {
    max-width: 100%;
  }

  .ph {
    align-items: stretch;
  }

  .pact, .tb, .fc, .settings-actions, .abs, .mf, .event-create-footer, .event-create-footer-actions, .mailq-actions, .comm-attach-actions, .fees-recipient-toolbar-buttons {
    flex-wrap: wrap;
    min-width: 0;
  }

  .btn, .chip, .bdg, .bcnt, .dashboard-badge, .event-status-badge {
    max-width: 100%;
    min-width: 0;
  }

  .btn {
    min-height: 40px;
    white-space: normal;
    text-align: center;
    line-height: 1.18;
  }

  .btt, .mc2, .btni, .srch-clear, .mob-nav-btn {
    min-width: 40px;
    min-height: 40px;
  }

  .fi, .fsel, .fta, .sinp, input, select, textarea, button {
    max-width: 100%;
  }

  .fi, .fsel, .fta, .sinp, .settings-group input, .settings-group select, .settings-group textarea, .form input, .form select, .form textarea {
    min-width: 0;
    font-size: 16px;
  }

  .tw, .tablewrap, .events-grid-wrap, .event-occurrences-table, .task-subtasks-table-wrap, .mailq-rec-table, .comm-preview-doc-wrap {
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
  }

  .tw .dt, .tablewrap table, .mailq-rec-table table, .event-occurrences-table table, .task-subtasks-table {
    margin: 0;
  }

  .mo {
    align-items: center;
    justify-content: center;
    padding: max(10px, env(safe-area-inset-top)) 10px max(12px, env(safe-area-inset-bottom));
    overflow-x: hidden;
    overflow-y: auto;
  }

  .mdl, .mxl, .mlg, .mmd, .msm, .task-edit-modal, .fees-recipient-modal {
    width: min(95vw, 100%);
    max-width: 95vw;
    max-height: 95dvh;
    min-width: 0;
  }

  .mb2, .task-modal-body, .fees-recipient-scroll, .ga-modal-scroll {
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
  }

  .mh, .mf {
    gap: 8px;
  }

  .mt2, .ctitle, .ptitle, .psub, .dashboard-list-item, .dashboard-status-copy, .task-title-text, .comm-attach-info, .subscription-summary-item, .settings-group, .ht, .alert, .notice, code, pre {
    overflow-wrap: anywhere;
    word-break: normal;
  }

  .col-resizer {
    display: none;
  }

  .sidebar .snsl-system, .sidebar .snsl-status {
    display: none !important;
  }

  .sidebar .nav-link[href*="mail_queue.php"], .sidebar .nav-link[href*="settings.php"], body.theme-top-white .sidebar .nav-link[href*="mail_queue.php"], body.theme-top-white .sidebar .nav-link[href*="settings.php"] {
    display: flex !important;
  }
}

@media (min-width: 701px) and (max-width: 1024px) {
  body.theme-classic-sidebar .sidebar {
    width: 60px;
  }

  body.theme-classic-sidebar .sidebar .sorg, body.theme-classic-sidebar .sidebar .snsl, body.theme-classic-sidebar .sidebar .nav-link span, body.theme-classic-sidebar .sidebar .sfv, body.theme-classic-sidebar .sidebar .slogout span {
    display: none;
  }

  body.theme-classic-sidebar .sidebar .nav-link {
    justify-content: center;
    padding: 10px;
  }

  body.theme-classic-sidebar .sidebar .slogout {
    justify-content: center;
    padding: 9px;
  }

  body.theme-classic-sidebar .main {
    margin-left: 60px;
  }

  body.theme-top-white {
    --app-menu-h: 64px;
  }

  body.theme-top-white .sidebar {
    height: auto;
    min-height: var(--app-menu-h);
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 0;
    transform: none !important;
  }

  body.theme-top-white .shd {
    width: 100%;
    min-width: 0;
    min-height: var(--app-menu-h);
    height: var(--app-menu-h);
    padding: 0 16px;
    justify-content: space-between;
  }

  body.theme-top-white .stog {
    display: inline-flex !important;
  }

  body.theme-top-white .snav, body.theme-top-white .sft {
    display: none;
    height: auto;
    border-top: 1px solid var(--bdr2);
    background: rgba(255,255,255,.98);
  }

  body.theme-top-white .sidebar.mob-open .snav {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    padding: 10px 14px;
    max-height: calc(100dvh - var(--app-menu-h) - 72px);
    overflow-y: auto;
    overflow-x: hidden;
  }

  body.theme-top-white .sidebar.mob-open .sft {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px 12px;
  }

  body.theme-top-white .nav-link, body.theme-top-white .sidebar .nav-link[href*="communication.php"], body.theme-top-white .sidebar .nav-link[href*="mail_queue.php"], body.theme-top-white .sidebar .nav-link[href*="settings.php"] {
    width: 100% !important;
    justify-content: flex-start;
    min-height: 44px;
    border-radius: 12px;
    padding: 10px 12px;
    display: flex !important;
  }

  body.theme-top-white .slogout {
    width: auto;
    min-height: 42px;
  }

  body.theme-top-white .sidebar-overlay.open {
    display: block !important;
    background: rgba(15,23,42,.35);
    z-index: 900;
  }
}

@media (min-width: 701px) and (max-width: 1024px) {
  .vc {
    padding: 20px 20px 56px;
  }

  .grid3, .dashboard-main-grid, .subscription-detail-grid, .task-modal-layout {
    grid-template-columns: 1fr !important;
  }

  .grid2, .subscription-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dashboard-kpis, .tasks-kpi-grid, .sponsors-kpi-grid, .kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .set-layout {
    grid-template-columns: 1fr;
  }

  .settings-section {
    max-width: 100%;
  }

  .events-grid {
    grid-template-columns: repeat(7, minmax(116px, 1fr));
    min-width: 812px;
  }
}

@media (max-width: 700px) {
  html {
    font-size: 18px;
  }

  .vc {
    padding: 14px 12px 54px;
  }

  .mobile-app-header {
    height: 60px;
    min-height: 60px;
    padding-left: max(12px, env(safe-area-inset-left));
    padding-right: max(12px, env(safe-area-inset-right));
  }

  .mobile-app-title {
    font-size: .84rem;
  }

  .ph {
    gap: 10px;
    margin-bottom: 14px;
  }

  .ptitle {
    font-size: 1.24rem;
  }

  .psub {
    font-size: .82rem;
    line-height: 1.35;
  }

  .ch, .cb {
    padding-left: 14px;
    padding-right: 14px;
  }

  .grid2, .grid3, .grid-auto, .kpi-grid, .dashboard-kpis, .tasks-kpi-grid, .sponsors-kpi-grid, .subscription-summary-grid {
    grid-template-columns: 1fr !important;
  }

  .pact, .pact .btn, .tb > .btn, .tb > form, .tb > form .btn, .settings-actions, .settings-actions .btn, .mf .btn, .event-create-footer .btn, .event-create-footer-actions, .fees-recipient-toolbar-buttons, .fees-recipient-toolbar-buttons .btn {
    width: 100%;
    justify-content: center;
  }

  .btn, .chip, .bdg, .bcnt {
    min-height: 36px;
  }

  .fi, .fsel, .fta, .sinp, .settings-group input, .settings-group select, .settings-group textarea, .form input, .form select, .form textarea {
    min-height: 44px;
  }

  .settings-tabs {
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
    border-bottom: 0;
  }

  .settings-tab {
    width: 100%;
    min-height: 42px;
    border: 1px solid var(--bdr);
    border-radius: 12px;
    background: var(--surf);
    text-align: left;
  }

  .settings-tab.active {
    background: var(--pril);
    border-color: rgba(30,73,118,.28);
  }

  .mdl, .mxl, .mlg, .mmd, .msm, .task-edit-modal, .fees-recipient-modal {
    width: min(95vw, 100%);
    max-width: 95vw !important;
    max-height: 95dvh !important;
  }

  .mh, .mb2, .mf {
    padding-left: 14px;
    padding-right: 14px;
  }

  .mf {
    display: grid;
    grid-template-columns: 1fr;
  }

  .mf .btn {
    min-width: 0;
  }

  .rchub-dlg-backdrop {
    padding: 12px;
  }

  .rchub-dlg {
    min-width: 0 !important;
    width: min(94vw, 440px) !important;
  }

  .rchub-dlg-body {
    padding-left: 20px !important;
  }

  .rchub-dlg-ft {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  .dashboard-table-wrap, .dashboard-card > .dashboard-list, .dashboard-card > .dashboard-status-list, .dashboard-audit-card .dashboard-list {
    height: auto;
    min-height: 0;
    max-height: none;
  }

  .dashboard-status-item, .dashboard-list-item, .comm-attach-item, .fees-recipient-row, .task-comment-meta {
    align-items: flex-start;
  }

  .dashboard-status-item, .fees-recipient-row {
    grid-template-columns: minmax(0, 1fr);
  }

  .dashboard-status-badge, .fees-recipient-row .bdg {
    justify-self: start;
  }

  .comm-preview-shell {
    width: 100vw;
    height: 100dvh;
  }

  .fee-pay-choice-actions {
    grid-template-columns: 1fr;
  }
}

/* ─── Oversigt: mobil/tablet højderegler for dashboardkort ───────
   Gælder kun til og med tablet. Desktop over 1024px påvirkes ikke.
   Standardkort: 50px header + --dashboard-card-body-height.
   Maks. 100% vækst: op til dobbelt standardhøjde, derefter intern scroll.
   ──────────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  body.page-dashboard .dashboard-main-grid {
    --dashboard-card-total-height: calc(50px + var(--dashboard-card-body-height));
    --dashboard-card-double-height: calc(50px + var(--dashboard-card-body-height) + 50px + var(--dashboard-card-body-height));
    --dashboard-card-double-body-height: calc(var(--dashboard-card-body-height) + 50px + var(--dashboard-card-body-height));
  }

  /* Må gerne vokse frit i mobil/tablet:
     1 Fordeling af medlemstyper
     2 Kontingent i år
     8 Nye indmeldingsanmodninger
     12 Systemstatus */
  body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-member-types"], body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-fee-status"], body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-new-requests"], body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-system-health"] {
    height: auto;
    min-height: var(--dashboard-card-total-height);
    max-height: none;
    overflow: hidden;
  }

  body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-member-types"] > .dashboard-chart, body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-fee-status"] > .dashboard-chart, body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-new-requests"] > .dashboard-table-wrap, body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-system-health"] > .dashboard-status-list {
    height: auto;
    max-height: none;
    overflow-y: visible;
  }

  body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-member-types"] > .dashboard-chart, body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-fee-status"] > .dashboard-chart {
    min-height: var(--dashboard-card-body-height);
  }

  body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-new-requests"] > .dashboard-table-wrap {
    min-height: 0;
    overflow-x: auto;
  }

  body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-system-health"] > .dashboard-status-list {
    min-height: 0;
  }

  /* Må maksimalt vokse 100% i mobil/tablet:
     4 Opgaver efter status
     5 Seneste betalinger
     6 Medlemmer i restance
     7 Kommende aktiviteter
     11 Fødselsdage */
  body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-task-status"], body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-recent-payments"], body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-arrears"], body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-events"], body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-birthdays"] {
    height: auto;
    min-height: var(--dashboard-card-total-height);
    max-height: var(--dashboard-card-double-height);
    overflow: hidden;
  }

  body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-task-status"] > .dashboard-chart, body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-recent-payments"] > .dashboard-table-wrap, body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-arrears"] > .dashboard-table-wrap, body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-events"] > .dashboard-table-wrap, body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-birthdays"] > .dashboard-list {
    height: auto;
    min-height: 0;
    max-height: var(--dashboard-card-double-body-height);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-recent-payments"] > .dashboard-table-wrap, body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-arrears"] > .dashboard-table-wrap, body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-events"] > .dashboard-table-wrap {
    overflow-x: auto;
  }

  /* Må ikke vokse i mobil/tablet:
     9 Seneste systemhændelser
     10 Loginhistorik */
  body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-system-events"], body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-login-history"] {
    height: var(--dashboard-card-total-height);
    min-height: var(--dashboard-card-total-height);
    max-height: var(--dashboard-card-total-height);
    overflow: hidden;
  }

  body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-system-events"] > .dashboard-list, body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-login-history"] > .dashboard-table-wrap {
    height: var(--dashboard-card-body-height);
    min-height: var(--dashboard-card-body-height);
    max-height: var(--dashboard-card-body-height);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  body.page-dashboard .dashboard-main-grid > [data-dashboard-card-id="main-login-history"] > .dashboard-table-wrap {
    overflow-x: auto;
  }
}

/* ────────────────────────────────────────────────────────────────
   Mobil/tablet: safe-area til header (Dynamic Island/notch/statusbar)
   Desktop >1024px påvirkes ikke.
   ──────────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  body {
    --app-safe-top: max(16px, env(safe-area-inset-top, 0px));
    --app-safe-left: max(12px, env(safe-area-inset-left, 0px));
    --app-safe-right: max(12px, env(safe-area-inset-right, 0px));
  }

  body.theme-top-white {
    --app-menu-h: calc(64px + var(--app-safe-top));
  }

  body.theme-top-white .sidebar, body.theme-top-white .shd {
    min-height: var(--app-menu-h) !important;
  }

  body.theme-top-white .shd {
    height: var(--app-menu-h) !important;
    padding-top: var(--app-safe-top) !important;
    padding-left: var(--app-safe-left) !important;
    padding-right: var(--app-safe-right) !important;
    box-sizing: border-box;
  }
}

@media (max-width: 700px) {
  body {
    --app-safe-top: max(32px, env(safe-area-inset-top, 0px));
  }

  body.theme-classic-sidebar .mobile-app-header {
    height: calc(60px + var(--app-safe-top)) !important;
    min-height: calc(60px + var(--app-safe-top)) !important;
    padding-top: var(--app-safe-top) !important;
    padding-left: var(--app-safe-left) !important;
    padding-right: var(--app-safe-right) !important;
    box-sizing: border-box;
    align-items: center;
  }

  body.theme-top-white {
    --app-menu-h: calc(64px + var(--app-safe-top));
  }
}

/* ────────────────────────────────────────────────────────────────
   Mobil/tablet: sørg for at Log ud-knappen altid er synlig
   Desktop >1024px påvirkes ikke.
   ──────────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .sidebar {
    height: 100dvh;
    max-height: 100dvh;
  }

  body:not(.theme-top-white) .sidebar .sft, body.theme-classic-sidebar .sidebar .sft {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    margin-top: auto;
    flex-shrink: 0;
    padding-bottom: max(28px, calc(env(safe-area-inset-bottom, 0px) + 18px));
    position: relative;
    z-index: 2;
  }

  body:not(.theme-top-white) .sidebar .slogout, body.theme-classic-sidebar .sidebar .slogout {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    min-height: 40px;
    color: rgba(255,255,255,.92) !important;
    background: rgba(255,255,255,.12) !important;
    border-color: rgba(255,255,255,.20) !important;
  }

  body:not(.theme-top-white) .sidebar .slogout i, body.theme-classic-sidebar .sidebar .slogout i, body.theme-top-white .sidebar.mob-open .slogout i {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    color: inherit !important;
    flex: 0 0 auto;
  }

  body.theme-top-white .sidebar.mob-open .sft {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    flex-shrink: 0;
    padding-bottom: max(28px, calc(env(safe-area-inset-bottom, 0px) + 18px)) !important;
    position: relative;
    z-index: 2;
  }

  body.theme-top-white .sidebar.mob-open .slogout {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    color: #fff !important;
    background: var(--pri) !important;
    border-color: var(--pri) !important;
  }
}

@media (max-width: 700px) {
  .sidebar {
    height: 100svh;
    max-height: 100svh;
  }

  body:not(.theme-top-white) .sidebar .sft, body.theme-classic-sidebar .sidebar .sft, body.theme-top-white .sidebar.mob-open .sft {
    padding-bottom: max(96px, calc(env(safe-area-inset-bottom, 0px) + 82px)) !important;
  }

  body:not(.theme-top-white) .sidebar .slogout, body.theme-classic-sidebar .sidebar .slogout {
    width: 100%;
    justify-content: flex-start;
  }

  body:not(.theme-top-white) .sidebar .slogout span, body.theme-classic-sidebar .sidebar .slogout span {
    display: inline !important;
  }
}

/* Password reset page - scoped, does not affect admin layout breakpoints */
body.reset-password-page {
  margin:0;
  min-height:100vh;
  background:radial-gradient(circle at top,#1e4976 0%,#1c2f40 48%,#0d1822 100%);
  font-family:'Source Sans 3',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  color:#fff;
  box-sizing:border-box;
  overflow-y:auto
}

.reset-box {
  width:min(430px,100%)
}

.reset-card {
  background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.15);
  border-radius:24px;
  box-shadow:0 24px 70px rgba(0,0,0,.28);
  padding:32px 30px;
  backdrop-filter:blur(18px)
}

.reset-logo {
  display:flex;
  justify-content:center;
  margin-bottom:20px
}

.reset-logo img {
  max-width:230px;
  max-height:120px;
  object-fit:contain
}

.reset-card h1 {
  font-size:1.25rem;
  margin:0 0 18px;
  text-align:center
}

.reset-msg {
  font-size:.85rem;
  text-align:center;
  padding:10px 12px;
  border-radius:10px;
  margin:0 0 14px
}

.reset-err {
  color:#fecaca;
  background:rgba(192,57,43,.16);
  border:1px solid rgba(252,165,165,.34)
}

.reset-ok {
  color:#86efac;
  background:rgba(34,197,94,.12);
  border:1px solid rgba(34,197,94,.25)
}

.reset-card label {
  display:block;
  color:rgba(255,255,255,.7);
  font-size:.75rem;
  font-weight:700;
  margin:12px 0 6px
}

.reset-card input {
  width:100%;
  box-sizing:border-box;
  padding:11px 14px;
  border-radius:8px;
  border:1.5px solid rgba(255,255,255,.13);
  background:#506479!important;
  color:#fff!important;
  font-size:.9rem
}

.reset-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:100%;
  min-height:42px;
  margin-top:16px;
  border:0;
  border-radius:8px;
  background:#1e4976;
  color:#fff;
  font-weight:800;
  cursor:pointer;
  text-decoration:none
}

.reset-btn:hover {
  background:#163860
}

.reset-link {
  display:block;
  text-align:center;
  margin-top:14px;
  color:rgba(255,255,255,.75);
  font-size:.85rem
}

/* ────────────────────────────────────────────────────────────────
   Mobil: fast header og fuld admin-menu for owner/administrator
   Desktop/tablet over 700px påvirkes ikke.
   ──────────────────────────────────────────────────────────────── */
@media (max-width: 700px) {
  body.theme-classic-sidebar {
    --mobile-fixed-header-h: calc(60px + var(--app-safe-top));
  }

  body.theme-classic-sidebar .mobile-app-header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    height: var(--mobile-fixed-header-h) !important;
    min-height: var(--mobile-fixed-header-h) !important;
    z-index: 900 !important;
  }

  body.theme-classic-sidebar .main {
    height: 100dvh !important;
    max-height: 100dvh !important;
    padding-top: var(--mobile-fixed-header-h) !important;
  }

  body.theme-classic-sidebar .sidebar-overlay.open {
    z-index: 1000 !important;
  }

  body.theme-classic-sidebar .sidebar {
    z-index: 1100 !important;
  }

  body.admin-full-admin .sidebar .snsl, body.admin-full-admin .sidebar .snsl-system, body.admin-full-admin .sidebar .snsl-status, body.admin-full-admin .sidebar .snsl:has(+ .nav-link[href*="mail_queue.php"]) {
    display: block !important;
  }

  body.admin-full-admin .sidebar .nav-link[href*="communication.php"], body.admin-full-admin .sidebar .nav-link[href*="mail_queue.php"], body.admin-full-admin .sidebar .nav-link[href*="settings.php"] {
    display: flex !important;
  }
}

/* ────────────────────────────────────────────────────────────────
   Rollebaseret menukonsistens
   Owner/administrator skal se samme menupunkter og sektionsoverskrifter
   i mobil, tablet og desktop. Almindelige brugere får aldrig System.
──────────────────────────────────────────────────────────────── */
body .sidebar .nav-link[href*="communication.php"] {
  display: flex !important;
}

body.admin-full-admin .sidebar .nav-link[href*="mail_queue.php"], body.admin-full-admin .sidebar .nav-link[href*="settings.php"] {
  display: flex !important;
}

body.admin-full-admin .sidebar .snsl, body.admin-full-admin .sidebar .snsl-system, body.admin-full-admin .sidebar .snsl-status, body.admin-full-admin .sidebar .snsl:has(+ .nav-link[href*="mail_queue.php"]) {
  display: block !important;
}

body:not(.admin-full-admin) .sidebar .snsl-system, body:not(.admin-full-admin) .sidebar .snsl-status, body:not(.admin-full-admin) .sidebar .snsl:has(+ .nav-link[href*="mail_queue.php"]), body:not(.admin-full-admin) .sidebar .nav-link[href*="mail_queue.php"], body:not(.admin-full-admin) .sidebar .nav-link[href*="settings.php"] {
  display: none !important;
}

@media (min-width: 701px) and (max-width: 1024px) {
  body.admin-full-admin.theme-classic-sidebar .sidebar {
    width: var(--sw) !important;
  }

  body.admin-full-admin.theme-classic-sidebar .main {
    margin-left: var(--sw) !important;
  }

  body.admin-full-admin.theme-classic-sidebar .sidebar .nav-link {
    justify-content: flex-start !important;
    padding: 9px 10px !important;
  }

  body.admin-full-admin.theme-classic-sidebar .sidebar .nav-link span, body.admin-full-admin.theme-classic-sidebar .sidebar .slogout span, body.admin-full-admin.theme-classic-sidebar .sidebar .sfv {
    display: inline !important;
  }

  body.admin-full-admin.theme-classic-sidebar .sidebar .slogo img {
    max-width: 120px !important;
  }
}

/* Hvid topmenu bruger én sammenhængende navigationsrække uden sektionsoverskrifter. */
body.theme-top-white .sidebar .snsl {
  display: none !important;
}

body.admin-full-admin.theme-top-white .sidebar .nav-link[href*="mail_queue.php"], body.admin-full-admin.theme-top-white .sidebar .nav-link[href*="settings.php"], body.theme-top-white .sidebar .nav-link[href*="communication.php"] {
  display: inline-flex !important;
}

@media (max-width: 700px) {
  /* Hold også den åbne mobilmenu fri for sektionsoverskrifter. */
  body.theme-top-white .sidebar.mob-open .snsl {
    display: none !important;
  }

  body.admin-full-admin.theme-top-white .sidebar.mob-open .nav-link[href*="mail_queue.php"], body.admin-full-admin.theme-top-white .sidebar.mob-open .nav-link[href*="settings.php"], body.theme-top-white .sidebar.mob-open .nav-link[href*="communication.php"] {
    display: flex !important;
  }
}

/* ────────────────────────────────────────────────────────────────
   Mobil/tablet layoutjustering: ens fast header og fuldbredde-menu
   Gælder kun <=1024px. Desktop påvirkes ikke.
   ──────────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  body.theme-classic-sidebar {
    --mobile-fixed-header-h: calc(60px + max(0px, env(safe-area-inset-top, 0px)));
  }

  body.theme-classic-sidebar .mobile-app-header {
    display: flex !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    height: var(--mobile-fixed-header-h) !important;
    min-height: var(--mobile-fixed-header-h) !important;
    padding-top: max(0px, env(safe-area-inset-top, 0px)) !important;
    z-index: 900 !important;
  }

  body.theme-classic-sidebar .mob-nav-btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
  }

  body.theme-classic-sidebar .stog {
    display: none !important;
  }

  body.theme-classic-sidebar .main, body.admin-full-admin.theme-classic-sidebar .main {
    margin-left: 0 !important;
    width: 100% !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    padding-top: var(--mobile-fixed-header-h) !important;
  }

  body.theme-classic-sidebar .vc {
    padding-top: 18px;
  }

  body.theme-classic-sidebar .sidebar, body.admin-full-admin.theme-classic-sidebar .sidebar {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    bottom: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    transform: translateX(-100%) !important;
    transition: transform .22s ease !important;
    z-index: 1100 !important;
    overflow: hidden !important;
  }

  body.theme-classic-sidebar .sidebar.mob-open, body.admin-full-admin.theme-classic-sidebar .sidebar.mob-open {
    transform: translateX(0) !important;
  }

  body.theme-classic-sidebar .sidebar .shd {
    padding-top: max(18px, calc(env(safe-area-inset-top, 0px) + 12px)) !important;
  }

  body.theme-classic-sidebar .sidebar .snav {
    display: block !important;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 10px 14px;
    -webkit-overflow-scrolling: touch;
  }

  body.theme-classic-sidebar .sidebar .snsl, body.theme-classic-sidebar .sidebar .sfv {
    display: block !important;
  }

  body.theme-classic-sidebar .sidebar .nav-link, body.admin-full-admin.theme-classic-sidebar .sidebar .nav-link {
    display: flex !important;
    justify-content: flex-start !important;
    width: 100% !important;
    min-height: 44px;
    padding: 10px 14px !important;
    border-radius: 12px;
  }

  body.theme-classic-sidebar .sidebar .nav-link span, body.theme-classic-sidebar .sidebar .slogout span, body.admin-full-admin.theme-classic-sidebar .sidebar .nav-link span, body.admin-full-admin.theme-classic-sidebar .sidebar .slogout span, body.admin-full-admin.theme-classic-sidebar .sidebar .sfv {
    display: inline !important;
  }

  body.theme-classic-sidebar .sidebar .slogo img, body.admin-full-admin.theme-classic-sidebar .sidebar .slogo img {
    max-width: 120px !important;
  }

  body.theme-classic-sidebar .sidebar .slogout {
    width: 100% !important;
    justify-content: flex-start !important;
    padding: 10px 14px !important;
  }

  body.theme-classic-sidebar .sidebar-overlay.open {
    display: block !important;
    z-index: 1000 !important;
    background: rgba(15,23,42,.42) !important;
  }

  body.theme-top-white {
    --app-menu-h: calc(64px + max(0px, env(safe-area-inset-top, 0px)));
  }

  body.theme-top-white .sidebar {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    min-height: var(--app-menu-h) !important;
    height: var(--app-menu-h) !important;
    transform: none !important;
    z-index: 900 !important;
  }

  body.theme-top-white .main {
    margin-left: 0 !important;
    width: 100% !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    padding-top: var(--app-menu-h) !important;
  }

  body.theme-top-white .shd {
    height: var(--app-menu-h) !important;
    min-height: var(--app-menu-h) !important;
    padding-top: max(0px, env(safe-area-inset-top, 0px)) !important;
  }

  body.theme-top-white .stog {
    display: inline-flex !important;
  }

  body.theme-top-white .sidebar .snav, body.theme-top-white .sidebar .sft {
    display: none !important;
  }

  body.theme-top-white .sidebar.mob-open {
    height: 100dvh !important;
    max-height: 100dvh !important;
    overflow: hidden !important;
  }

  body.theme-top-white .sidebar.mob-open .snav {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    max-height: calc(100dvh - var(--app-menu-h) - 78px);
    padding: 12px 14px;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
  }

  body.theme-top-white .sidebar.mob-open .sft {
    display: flex !important;
    padding: 12px 14px max(18px, env(safe-area-inset-bottom, 0px)) !important;
  }

  body.theme-top-white .sidebar.mob-open .nav-link, body.theme-top-white .sidebar.mob-open .nav-link[href*="communication.php"], body.theme-top-white .sidebar.mob-open .nav-link[href*="mail_queue.php"], body.theme-top-white .sidebar.mob-open .nav-link[href*="settings.php"] {
    display: flex !important;
    width: 100% !important;
    justify-content: flex-start !important;
    min-height: 44px;
  }

  body.theme-top-white .sidebar-overlay.open {
    display: block !important;
    z-index: 850 !important;
    background: rgba(15,23,42,.35) !important;
  }

  .dashboard-kpis, .kpi-grid, .tasks-kpi-grid, .sponsors-kpi-grid, .mailq-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .kpi, .dashboard-kpi-card {
    min-width: 0;
  }
}

/* ────────────────────────────────────────────────────────────────
   Kontingent: tablet-optimering
   ──────────────────────────────────────────────────────────────── */
@media (min-width: 701px) and (max-width: 1024px) {
  body.page-fees .fees-kontingent-actions {
    justify-content: flex-end !important;
  }

  body.page-fees .fees-kontingent-actions .fees-action-col {
    width: 100%;
    flex-wrap: wrap;
    justify-content: flex-end;
  }

  body.page-fees .fees-kontingent-actions .fees-action-btn, body.page-fees .fees-kontingent-actions .fees-action-form {
    width: auto !important;
    flex: 0 0 auto;
  }

  body.page-fees .fees-kontingent-actions .fees-action-btn {
    justify-content: center;
    min-height: 0;
  }

  body.page-fees #feesTable {
    width: 100% !important;
    min-width: 0 !important;
    table-layout: fixed !important;
    font-size: .94rem;
  }

  body.page-fees #feesTable th {
    font-size: .75rem;
  }

  body.page-fees #feesTable td {
    padding-top: 13px;
    padding-bottom: 13px;
  }

  body.page-fees #feesTable th:nth-child(2), body.page-fees #feesTable td:nth-child(2) {
    display: none !important;
  }

  body.page-fees #feesTable th:nth-child(1), body.page-fees #feesTable td:nth-child(1) {
    width: 34% !important;
  }

  body.page-fees #feesTable th:nth-child(3), body.page-fees #feesTable td:nth-child(3) {
    width: 18% !important;
  }

  body.page-fees #feesTable th:nth-child(4), body.page-fees #feesTable td:nth-child(4) {
    width: 22% !important;
  }

  body.page-fees #feesTable th:nth-child(5), body.page-fees #feesTable td:nth-child(5) {
    width: 26% !important;
  }

  body.page-fees .tw {
    overflow-x: hidden !important;
  }
}

@media (max-width: 700px) {
  body.page-fees #feesTable {
    font-size: .94rem;
  }

  body.page-fees #feesTable th {
    font-size: .75rem;
  }

  body.page-fees #feesTable td {
    padding-top: 13px;
    padding-bottom: 13px;
  }
}

/* ────────────────────────────────────────────────────────────────
   Kommunikation: mobil/tablet optimering inkl. skabelonmodal
   ──────────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  body.page-communication .vc > div[style*="grid-template-columns:1fr 290px"], body.page-communication .vc > div[style*="grid-template-columns: 1fr 290px"] {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body.page-communication .ch {
    align-items: flex-start;
    gap: 10px;
  }

  body.page-communication .ch > div:last-child {
    flex-wrap: wrap;
    justify-content: flex-end;
    min-width: 0;
  }

  body.page-communication #signature-sel {
    max-width: min(100%, 260px) !important;
  }

  body.page-communication #comm-group-row, body.page-communication #comm-pvlist {
    min-width: 0;
    max-width: 100%;
  }

  body.page-communication #comm-ebody, body.page-communication #tpl-editor {
    min-width: 0;
    max-width: 100%;
  }

  body.page-communication .ql-toolbar.ql-snow {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    align-items: center;
  }

  body.page-communication .ql-toolbar.ql-snow .ql-formats {
    margin-right: 4px;
  }

  body.page-communication #mo-tpl .mdl {
    width: min(95vw, 760px) !important;
    max-width: 95vw !important;
    max-height: 95dvh !important;
  }

  body.page-communication #mo-tpl .mb2 {
    max-height: calc(95dvh - 128px);
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
  }

  body.page-communication #mo-tpl .fg[style*="grid-template-columns:1fr 1fr"], body.page-communication #mo-tpl .fg[style*="grid-template-columns: 1fr 1fr"], body.page-communication details .fg[style*="grid-template-columns:1fr 1fr"], body.page-communication details .fg[style*="grid-template-columns: 1fr 1fr"] {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 700px) {
  body.page-communication .ch, body.page-communication .ch > div:last-child, body.page-communication #comm-attach-box .ch > div:last-child {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }

  body.page-communication .ch .btn, body.page-communication .ch .fsel, body.page-communication #btn-send, body.page-communication #btn-pick-files {
    width: 100% !important;
    justify-content: center;
  }

  body.page-communication .comm-attach-actions {
    margin-left: 0 !important;
  }

  body.page-communication .comm-attach-head-actions {
    align-items: stretch;
  }

  body.page-communication .comm-sent-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: 'title toolbar';
    align-items: start;
  }

  body.page-communication .comm-sent-title-block {
    padding-right: 0;
  }

  body.page-communication .comm-sent-toggle-top {
    position: absolute;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
    justify-self: center;
    width: auto !important;
  }

  body.page-communication .comm-sent-toolbar {
    grid-column: auto;
    grid-area: toolbar;
    justify-self: end;
    width: auto;
  }

  body.page-communication #mo-tpl .mf {
    display: grid;
    grid-template-columns: 1fr;
  }
}

.member-type-row {
  cursor: pointer;
}

.member-type-row:hover td,
.member-type-row:focus-visible td {
  background: var(--pril);
}

.member-type-row:focus-visible {
  outline: 2px solid var(--pri);
  outline-offset: -2px;
}

.settings-member-type-link {
  color: inherit;
  font-weight: 700;
  text-decoration: none;
}

.settings-member-type-link:hover,
.settings-member-type-link:focus-visible {
  color: var(--pri);
  text-decoration: underline;
}

/* ────────────────────────────────────────────────────────────────
   Indstillinger: scrollbar tabs + fuldbredde kort for udvalgte tabs
   ──────────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  body.page-settings > .main .tabs, body.page-settings .vc > .tabs {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 6px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    padding: 0 0 8px;
    margin-bottom: 18px !important;
  }

  body.page-settings .tabs .tabbtn {
    flex: 0 0 auto;
    white-space: nowrap;
    min-height: 42px;
    border: 1px solid var(--bdr);
    border-radius: 12px;
    background: var(--surf);
  }

  body.page-settings .tabs .tabbtn.active {
    background: var(--pril);
    border-color: rgba(30,73,118,.28);
  }

  body.page-settings #member-types, body.page-settings .grid2:has(#member-types), body.page-settings .settings-mail-grid {
    grid-template-columns: 1fr !important;
  }

  body.page-settings #member-types > .card, body.page-settings .settings-mail-grid > .card {
    width: 100%;
    max-width: 100%;
  }
}

/* Rollebeskyttelse skal vinde over de responsive fuldbredde-menu-regler. */
@media (max-width: 1024px) {
  body:not(.admin-full-admin) .sidebar .snsl-system, body:not(.admin-full-admin) .sidebar .snsl-status, body:not(.admin-full-admin) .sidebar .snsl:has(+ .nav-link[href*="mail_queue.php"]), body:not(.admin-full-admin) .sidebar .nav-link[href*="mail_queue.php"], body:not(.admin-full-admin) .sidebar .nav-link[href*="settings.php"], body:not(.admin-full-admin).theme-top-white .sidebar.mob-open .nav-link[href*="mail_queue.php"], body:not(.admin-full-admin).theme-top-white .sidebar.mob-open .nav-link[href*="settings.php"] {
    display: none !important;
  }
}

/* ────────────────────────────────────────────────────────────────
   Mobil/tablet: sammenfoldet menu åbner i normal sidebarmenu-bredde
   Desktop >1024px påvirkes ikke.
   ──────────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  body.theme-classic-sidebar, body.theme-top-white {
    --mobile-drawer-w: min(var(--sw, 280px), calc(100vw - 32px));
  }

  body.theme-classic-sidebar .sidebar, body.admin-full-admin.theme-classic-sidebar .sidebar {
    width: var(--mobile-drawer-w) !important;
    max-width: var(--mobile-drawer-w) !important;
  }

  body.theme-classic-sidebar .sidebar.mob-open, body.admin-full-admin.theme-classic-sidebar .sidebar.mob-open {
    transform: translateX(0) !important;
  }

  body.theme-top-white .sidebar {
    right: auto !important;
  }

  body.theme-top-white .sidebar.mob-open {
    width: var(--mobile-drawer-w) !important;
    max-width: var(--mobile-drawer-w) !important;
    min-height: 100dvh !important;
    height: 100dvh !important;
    transform: translateX(0) !important;
  }

  body.theme-top-white .sidebar.mob-open .shd {
    width: 100% !important;
  }
}

/* ────────────────────────────────────────────────────────────────
   Mobil/tablet: menuafstand matchet mod RCHub-reference
   Beholder sammenfoldet drawer i normal bredde, men bruger tidligere
   padding, gap og radius for menupunkter.
   ──────────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  body.theme-classic-sidebar .sidebar .snav, body.admin-full-admin.theme-classic-sidebar .sidebar .snav {
    padding: 10px 6px !important;
  }

  body.theme-classic-sidebar .sidebar .snsl, body.admin-full-admin.theme-classic-sidebar .sidebar .snsl {
    padding: 14px 10px 4px !important;
    font-size: .6rem !important;
    letter-spacing: .1em !important;
  }

  body.theme-classic-sidebar .sidebar .nav-link, body.admin-full-admin.theme-classic-sidebar .sidebar .nav-link {
    min-height: 0 !important;
    padding: 9px 10px !important;
    gap: 10px !important;
    border-radius: 6px !important;
    font-size: .8rem !important;
  }

  body.theme-classic-sidebar .sidebar .sft, body.admin-full-admin.theme-classic-sidebar .sidebar .sft {
    padding: 8px 6px max(12px, env(safe-area-inset-bottom, 0px)) !important;
    gap: 4px !important;
  }

  body.theme-classic-sidebar .sidebar .slogout, body.admin-full-admin.theme-classic-sidebar .sidebar .slogout {
    padding: 9px 12px !important;
    gap: 8px !important;
    border-radius: 7px !important;
    font-size: .76rem !important;
  }

  body.theme-top-white .sidebar.mob-open .snav {
    gap: 6px !important;
    padding: 10px 14px !important;
  }

  body.theme-top-white .sidebar.mob-open .snsl {
    padding: 14px 10px 4px !important;
    font-size: .6rem !important;
    letter-spacing: .1em !important;
  }

  body.theme-top-white .sidebar.mob-open .nav-link, body.theme-top-white .sidebar.mob-open .nav-link[href*="communication.php"], body.theme-top-white .sidebar.mob-open .nav-link[href*="mail_queue.php"], body.theme-top-white .sidebar.mob-open .nav-link[href*="settings.php"] {
    min-height: 44px !important;
    padding: 10px 12px !important;
    gap: 10px !important;
    border-radius: 12px !important;
    font-size: .8rem !important;
  }

  body.theme-top-white .sidebar.mob-open .sft {
    padding: 10px 14px max(12px, env(safe-area-inset-bottom, 0px)) !important;
  }
}

/* ────────────────────────────────────────────────────────────────
   Indstillinger mobil/tablet: fuldbredde kort for Generelt, System
   og Rettigheder. Placeres sidst for at vinde over tidligere grid2-regler.
   ──────────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  body.page-settings .settings-general-grid, body.page-settings .settings-system-grid, body.page-settings .settings-rights-role-grid {
    grid-template-columns: 1fr !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body.page-settings .settings-general-grid > .card, body.page-settings .settings-general-grid > .settings-general-main-column, body.page-settings .settings-system-grid > .card, body.page-settings .settings-rights-role-grid > .card {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* ─── Support tickets page ─────────────────────────────────────── */
.support-page-head .ptitle i {
  color: var(--pri);
}

.support-toolbar {
  justify-content: space-between;
}

.support-toolbar .srch-wrap {
  max-width: 520px;
  min-width: 280px;
}

.support-status-filter {
  margin-left: auto;
}

.support-kpi-grid {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.support-filter-kpi {
  cursor: pointer;
  user-select: none;
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}

.support-filter-kpi:hover {
  transform: translateY(-1px);
}

.support-filter-kpi:focus-visible {
  outline: 3px solid rgba(72, 95, 220, .22);
  outline-offset: 3px;
}

.support-filter-kpi.is-active {
  border-color: rgba(72, 95, 220, .55);
  box-shadow: 0 0 0 3px rgba(72, 95, 220, .12), var(--sh0);
}

.support-table-card .tw {
  min-height: 0;
}

.support-table {
  min-width: 1080px;
}

.support-table td {
  vertical-align: top;
}

.support-row {
  cursor: pointer;
}

.support-row:hover td {
  background: rgba(30,73,118,.035);
}

.support-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 112px;
  color: var(--txm);
  font-size: .82rem;
  white-space: normal;
}

.support-empty.small {
  min-height: 76px;
  font-size: .76rem;
}

.support-empty i {
  color: var(--pri);
  opacity: .75;
}

.support-title-text {
  min-width: 0;
  display: block;
}

.support-title-text strong {
  display: block;
  color: var(--tx);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.support-title-text small {
  display: block;
  margin-top: 2px;
  color: var(--txm);
  font-size: .66rem;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.support-status-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: max-content;
  max-width: 100%;
  min-height: 24px;
  padding: 3px 9px;
  border-radius: 999px;
  font-size: .62rem;
  font-weight: 800;
  white-space: nowrap;
}

.support-status-badge.primary {
  background: var(--pril);
  color: var(--pri);
}

.support-status-badge.success {
  background: var(--sucl);
  color: var(--suc);
}

.support-status-badge.warn {
  background: var(--wrnl);
  color: var(--wrn);
}

.support-status-badge.danger {
  background: rgba(192,57,43,.12);
  color: #b3281f;
}

.support-status-badge.muted {
  background: #eef1f4;
  color: var(--txm);
}

.support-status-badge.neutral {
  background: #f0ede7;
  color: #666;
}

.support-comment-count {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--pri);
  font-weight: 800;
}

.support-date {
  color: var(--tx2);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

#mo-support-ticket .support-ticket-modal {
  max-width: min(1280px, calc(100vw - 28px));
  width: min(1280px, calc(100vw - 28px));
  background: var(--bg);
}

#mo-support-ticket .mb2 {
  background: var(--bg);
  flex: 0 1 auto;
  padding-bottom: 18px;
}

#mo-support-ticket .mf {
  background: var(--bg);
  border-top: 0;
}

.support-modal-body {
  max-height: calc(100vh - 170px);
  overflow: auto;
}

.support-modal-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 456px);
  gap: 16px;
  align-items: start;
}

.support-modal-main, .support-comment-column {
  min-width: 0;
  border: 1px solid var(--bdr2);
  border-radius: var(--rl);
  background: rgba(255,255,255,.72);
  padding: 14px;
  box-shadow: 0 12px 30px rgba(31,64,96,.05);
}

.support-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 13px 14px;
}

.support-section-title {
  grid-column: span 2;
  margin: 3px 0 0;
  padding-top: 2px;
  font-family: var(--fd);
  font-size: .86rem;
  font-weight: 700;
  color: var(--tx);
}

.support-form-error, .support-comment-error {
  margin: 14px 0 0;
}

.support-comment-column {
  position: sticky;
  top: 0;
}

.support-comments-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}

.support-comments-list {
  display: flex;
  flex-direction: column;
  gap: 9px;
  max-height: 420px;
  min-height: 180px;
  overflow: auto;
  padding-right: 4px;
  margin-bottom: 16px;
}

.support-comment-item {
  border: 1px solid var(--bdr2);
  background: rgba(255,255,255,.86);
  border-radius: var(--rl);
  padding: 10px 12px;
}

.support-comment-item.is-global {
  background: rgba(30,73,118,.055);
  border-color: rgba(30,73,118,.15);
}

.support-comment-meta {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 6px;
}

.support-comment-meta strong {
  display: block;
  color: var(--tx);
  font-size: .75rem;
}

.support-comment-meta em {
  display: block;
  margin-top: 1px;
  font-style: normal;
  color: var(--txm);
  font-size: .62rem;
}

.support-comment-meta span {
  color: var(--txm);
  font-size: .65rem;
  white-space: nowrap;
}

.support-comment-text {
  color: var(--tx2);
  line-height: 1.45;
  font-size: .76rem;
  white-space: normal;
  word-break: break-word;
}

.support-comment-form {
  border-top: 1px solid var(--bdr2);
  padding-top: 14px;
}

.support-comment-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 10px;
}

.support-comment-actions .btn {
  justify-content: center;
}

.support-ticket-detail {
  display: grid;
  gap: 14px;
}

.support-detail-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--bdr2);
}

.support-detail-head span {
  display: block;
  color: var(--txm);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.support-detail-head strong {
  display: block;
  color: var(--tx);
  font-family: var(--fd);
  font-size: 1.08rem;
  line-height: 1.22;
  margin-top: 2px;
}

.support-locked-notice {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  border: 1px solid rgba(146, 48, 34, .22);
  border-radius: var(--rl);
  background: rgba(146, 48, 34, .08);
  color: var(--dan);
  padding: 11px 12px;
}

.support-locked-notice i {
  margin-top: 2px;
}

.support-locked-notice strong {
  display: block;
  font-size: .82rem;
}

.support-locked-notice span {
  display: block;
  color: var(--tx2);
  font-size: .76rem;
  line-height: 1.35;
  margin-top: 2px;
}

.support-detail-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.support-detail-grid div, .support-detail-text {
  border: 1px solid var(--bdr2);
  border-radius: var(--rl);
  background: rgba(255,255,255,.75);
  padding: 10px 12px;
  min-width: 0;
}

.support-detail-grid span, .support-detail-text span {
  display: block;
  color: var(--txm);
  font-size: .64rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: 4px;
}

.support-detail-grid strong {
  display: block;
  color: var(--tx);
  font-size: .78rem;
  overflow-wrap: anywhere;
}

.support-detail-text p {
  margin: 0;
  color: var(--tx2);
  font-size: .78rem;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

@media (max-width: 1024px) {
  .support-status-filter {
    margin-left: 0;
  }

  .support-toolbar .srch-wrap {
    max-width: none;
    width: 100%;
    min-width: 0;
  }

  .support-modal-layout {
    grid-template-columns: 1fr;
  }

  .support-comment-column {
    position: static;
  }

  .support-comments-list {
    max-height: 280px;
  }
}

@media (max-width: 700px) {
  .support-page-head {
    align-items: stretch;
  }

  .support-page-head .pact, .support-page-head .pact .btn {
    width: 100%;
    justify-content: center;
  }

  .support-kpi-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .support-section-title {
    grid-column: auto;
  }

  .support-form-grid {
    grid-template-columns: 1fr;
  }

  #mo-support-ticket .support-ticket-modal {
    max-width: 100% !important;
    width: 100% !important;
  }

  .support-modal-body {
    max-height: calc(100vh - 140px);
  }

  .support-modal-main, .support-comment-column {
    padding: 12px;
  }

  .support-comment-actions .btn {
    flex: 1 1 100%;
    justify-content: center;
  }

  .support-detail-head {
    flex-direction: column;
    align-items: stretch;
  }

  .support-detail-grid {
    grid-template-columns: 1fr;
  }
}

/* Support-modal: fælles placering af Beskrivelse nederst */
#mo-support-ticket .support-modal-layout {
  align-items: stretch;
}

#mo-support-ticket .support-modal-main {
  display: flex;
  flex-direction: column;
  min-height: min(640px, calc(100vh - 210px));
}

#support-ticket-form {
  display: flex;
  flex: 1 1 auto;
  min-height: 0;
  flex-direction: column;
}

.support-description-group {
  display: flex;
  flex: 1 1 auto;
  min-height: 220px;
  margin-top: 13px;
  flex-direction: column;
}

.support-description-group textarea {
  flex: 1 1 auto;
  min-height: 220px;
  resize: vertical;
}

.support-ticket-detail {
  display: flex;
  flex: 1 1 auto;
  min-height: 0;
  flex-direction: column;
}

.support-description-detail {
  display: flex;
  flex: 1 1 auto;
  min-height: 180px;
  flex-direction: column;
}

.support-description-detail p {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}

@media (max-width: 1024px) {
  #mo-support-ticket .support-modal-main {
    min-height: 0;
  }

  .support-description-group, .support-description-group textarea, .support-description-detail {
    min-height: 180px;
  }
}

@media (max-width: 700px) {
  .support-description-group, .support-description-group textarea, .support-description-detail {
    min-height: 160px;
  }
}


/* Support attachments and bottom-aligned comment composer */
#mo-support-ticket .support-comment-column {
  display: flex;
  flex-direction: column;
  min-height: min(640px, calc(100vh - 210px));
}

#mo-support-ticket .support-comments-list {
  flex: 1 1 auto;
  min-height: 180px;
}

#mo-support-ticket .support-comment-form {
  margin-top: auto;
}

.support-attachment-box {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 12px;
  padding: 10px 12px;
  border: 1px solid var(--bdr2);
  border-radius: var(--rl);
  background: rgba(255,255,255,.66);
}

.support-attachment-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.support-attachment-head strong {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--tx);
  font-size: .78rem;
  font-weight: 800;
}

.support-attach-empty {
  display: flex;
  align-items: center;
  gap: 7px;
  min-height: 32px;
  color: var(--txm);
  font-size: .72rem;
}

.support-attach-list-inner {
  display: grid;
  gap: 7px;
}

.support-attach-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  padding: 7px 8px;
  border: 1px solid rgba(30,73,118,.12);
  border-radius: 12px;
  background: rgba(255,255,255,.86);
}

.support-attach-row > i {
  color: var(--pri);
  font-size: 1rem;
}

.support-attach-row strong,
.support-attach-row small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.support-attach-row strong {
  color: var(--tx);
  font-size: .73rem;
}

.support-attach-row small {
  color: var(--txm);
  font-size: .64rem;
  margin-top: 1px;
}

.support-comment-attachments {
  display: grid;
  gap: 6px;
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid rgba(30,73,118,.10);
}

.support-comment-attachments strong {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--tx);
  font-size: .68rem;
  font-weight: 800;
}

.support-comment-attachments > div {
  display: grid;
  gap: 6px;
}

.support-comment-attachment {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  padding: 7px 8px;
  border: 1px solid rgba(30,73,118,.12);
  border-radius: 11px;
  background: rgba(255,255,255,.75);
  color: var(--tx);
  text-decoration: none;
}

.support-comment-attachment:hover {
  border-color: rgba(30,73,118,.28);
  background: #fff;
}

.support-comment-attachment > i {
  color: var(--pri);
}

.support-comment-attachment span,
.support-comment-attachment small {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.support-comment-attachment span {
  font-size: .72rem;
  font-weight: 800;
}

.support-comment-attachment small {
  color: var(--txm);
  font-size: .62rem;
  font-weight: 600;
  margin-top: 1px;
}

@media (max-width: 1024px) {
  #mo-support-ticket .support-comment-column {
    min-height: 0;
  }

  #mo-support-ticket .support-comment-form {
    margin-top: 14px;
  }
}

/* Global Admin tenant-adgang i tenant-admin */
.global-tenant-access-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 0 0 16px;
  padding: 12px 14px;
  border: 1px solid rgba(37, 99, 235, .28);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(37, 99, 235, .10), rgba(16, 185, 129, .10));
  color: var(--ink, #172033);
  box-shadow: 0 12px 30px rgba(15, 23, 42, .08);
}

.global-tenant-access-banner div {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 2px;
}

.global-tenant-access-banner strong {
  font-weight: 800;
  letter-spacing: .02em;
}

.global-tenant-access-banner span {
  color: var(--muted, #718096);
  font-weight: 600;
}

.global-tenant-exit {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 40px;
  padding: 9px 13px;
  border: 1px solid rgba(37, 99, 235, .24);
  border-radius: 999px;
  background: rgba(255, 255, 255, .82);
  color: var(--ink, #172033);
  font-weight: 800;
  text-decoration: none;
}

.global-tenant-exit:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(15, 23, 42, .10);
}

@media (max-width: 700px) {
  .global-tenant-access-banner {
    align-items: stretch;
    flex-direction: column;
    margin-bottom: 12px;
  }

  .global-tenant-exit {
    width: 100%;
  }
}

/* ────────────────────────────────────────────────────────────────
   RCHub mobile/tablet overflow and modal scroll guard
   Ensures screens only scroll vertically, while tables/large previews
   keep their horizontal scroll inside their own wrappers.
   Desktop >1024px is intentionally untouched.
   ──────────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  html, body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden !important;
    overscroll-behavior-x: none;
  }

  body, .main, .topbar, .vc, .container, .content, .card, .cb, .ch, .phead, .ptitle, .pact, .grid2, .grid3, .el, .set-layout, .fg, .fgrp, .toolbar, .tabs, .tab-content, .dashboard-main-grid, .dashboard-card, .settings-section, .settings-mail-grid, .rights-user-grid {
    min-width: 0 !important;
    max-width: 100%;
  }

  img, svg, canvas, iframe, video {
    max-width: 100%;
  }

  input, select, textarea, button, .btn, .chip, .bdg, .ql-toolbar, .ql-container, .ql-editor {
    max-width: 100%;
    min-width: 0;
  }

  textarea, .ql-editor, .support-comment-text, .support-detail-text, .task-detail-text, .comm-preview-doc-unsupported span {
    overflow-wrap: anywhere;
  }

  .tablewrap, .tw, .events-grid-wrap, .task-subtasks-table-wrap, .event-occurrences-table, .backup-list-table-wrap, .subscription-table-wrap, .comm-recipient-list-wrap {
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
  }

  .mo {
    padding: max(10px, env(safe-area-inset-top, 0px)) max(10px, env(safe-area-inset-right, 0px)) max(10px, env(safe-area-inset-bottom, 0px)) max(10px, env(safe-area-inset-left, 0px));
    align-items: flex-start;
    overflow-x: hidden !important;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .mo.open {
    display: flex;
  }

  .mdl, .task-edit-modal, .fees-recipient-modal, .event-create-modal, .support-ticket-modal, .comm-preview-shell {
    width: min(100%, calc(100vw - 20px)) !important;
    max-width: calc(100vw - 20px) !important;
    min-width: 0 !important;
    max-height: calc(100dvh - 20px) !important;
    margin: auto 0;
    overflow: hidden !important;
    box-sizing: border-box;
  }

  /* Sendt mail må også på mobil/tablet højst bruge 96 % af den synlige højde.
     Den generelle modalregel ovenfor er ellers større end den specifikke
     previewgrænse. */
  body.page-communication .comm-sent-modal {
    max-height: min(96dvh, calc(100dvh - 20px)) !important;
  }

  .mh, .mf, .mb2, .task-modal-body, .support-modal-body, .event-create-modal .mb2, .comm-preview-body, .comm-preview-header {
    min-width: 0 !important;
    max-width: 100%;
  }

  .mb2, .task-modal-body, .support-modal-body, .event-create-modal .mb2, .comm-preview-body {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
  }

  .mf, .modal-actions, .member-modal-actions, .request-modal-actions, .support-comment-actions, .task-modal-actions, .event-create-actions {
    flex-wrap: wrap;
  }

  .sidebar-overlay, .sidebar-overlay.open {
    max-width: 100vw;
    overflow: hidden;
  }

  body.theme-top-white .sidebar:not(.mob-open) {
    width: 100% !important;
    max-width: 100% !important;
  }

  body.theme-classic-sidebar .sidebar, body.theme-top-white .sidebar.mob-open {
    width: var(--mobile-drawer-w, min(var(--sw, 280px), calc(100vw - 32px))) !important;
    max-width: var(--mobile-drawer-w, min(var(--sw, 280px), calc(100vw - 32px))) !important;
    min-width: 0 !important;
  }

  body.reset-password-page {
    min-height: 100dvh;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden !important;
    padding: max(18px, env(safe-area-inset-top, 0px)) max(18px, env(safe-area-inset-right, 0px)) max(18px, env(safe-area-inset-bottom, 0px)) max(18px, env(safe-area-inset-left, 0px));
  }

  .reset-box {
    width: min(430px, calc(100vw - 36px));
    max-width: 100%;
    min-width: 0;
  }

  .reset-card {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
  }
}

@media (max-width: 700px) {
  .mdl, .task-edit-modal, .fees-recipient-modal, .event-create-modal, .support-ticket-modal, .comm-preview-shell {
    width: calc(100vw - 20px) !important;
    max-width: calc(100vw - 20px) !important;
  }

  .mh, .mb2, .mf {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  .mf .btn, .modal-actions .btn, .member-modal-actions .btn, .request-modal-actions .btn {
    min-width: 0;
  }
}

/* ────────────────────────────────────────────────────────────────
   Legacy modal/mail-dialog mobile/tablet scroll guard
   Covers older .modal-backdrop and member-mail dialogs used by public
   member flows and password dialogs.
   ──────────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .modal-backdrop, .member-mail-modal {
    padding: max(10px, env(safe-area-inset-top, 0px)) max(10px, env(safe-area-inset-right, 0px)) max(10px, env(safe-area-inset-bottom, 0px)) max(10px, env(safe-area-inset-left, 0px)) !important;
    align-items: flex-start !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .modal, .member-mail-dialog {
    width: min(560px, calc(100vw - 20px)) !important;
    max-width: calc(100vw - 20px) !important;
    min-width: 0 !important;
    max-height: calc(100dvh - 20px) !important;
    margin: auto 0;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    box-sizing: border-box;
    -webkit-overflow-scrolling: touch;
  }

  .member-mail-header, .member-mail-content, .member-mail-actions, .modal-actions {
    min-width: 0 !important;
    max-width: 100%;
  }

  .member-mail-content {
    max-height: calc(100dvh - 172px);
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
  }
}

@media (max-width: 700px) {
  .modal, .member-mail-dialog {
    width: calc(100vw - 20px) !important;
    max-width: calc(100vw - 20px) !important;
  }
}

/* ────────────────────────────────────────────────────────────────
   Final mobil/tablet safe-area + modal offset guard
   Holder notch/statusbar visuelt sammen med aktuel side/header og
   forhindrer indhold/modaler i at gemme sig under faste headers.
   Desktop >1024px påvirkes ikke.
   ──────────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  html {
    background: var(--bg);
  }

  body {
    --app-safe-top: env(safe-area-inset-top, 0px);
    --app-safe-right: env(safe-area-inset-right, 0px);
    --app-safe-bottom: env(safe-area-inset-bottom, 0px);
    --app-safe-left: env(safe-area-inset-left, 0px);
    --mobile-fixed-header-h: calc(60px + var(--app-safe-top));
    --app-menu-h: calc(64px + var(--app-safe-top));
    --app-modal-top-offset: 0px;
    background-color: var(--bg);
  }

  body.theme-classic-sidebar {
    --app-modal-top-offset: var(--mobile-fixed-header-h);
  }

  body.theme-top-white {
    --app-modal-top-offset: var(--app-menu-h);
  }

  body.theme-classic-sidebar .mobile-app-header {
    background: #fff !important;
    background-clip: padding-box;
    padding-top: var(--app-safe-top) !important;
  }

  body.theme-top-white .sidebar:not(.mob-open), body.theme-top-white .shd {
    background: #fff !important;
    padding-top: var(--app-safe-top) !important;
  }

  body.theme-classic-sidebar .main, body.theme-top-white .main, body.admin-full-admin.theme-classic-sidebar .main {
    overflow: hidden !important;
  }

  body.theme-classic-sidebar .vc, body.theme-top-white .vc {
    height: 100% !important;
    max-height: 100% !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
  }

  .mo.open, .rchub-dlg-backdrop.open, .fee-pay-choice-backdrop.open {
    z-index: 2100 !important;
  }

  .mo {
    align-items: flex-start !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-top: calc(var(--app-modal-top-offset) + 12px) !important;
    padding-right: max(10px, var(--app-safe-right)) !important;
    padding-bottom: max(14px, var(--app-safe-bottom)) !important;
    padding-left: max(10px, var(--app-safe-left)) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
  }

  .mdl, .mxl, .mlg, .mmd, .msm, .event-create-modal, .task-edit-modal, .fees-recipient-modal, .support-ticket-modal, .comm-preview-shell, .fee-pay-choice-card, .rchub-dlg {
    width: min(95vw, 100%) !important;
    max-width: calc(100vw - max(20px, calc(var(--app-safe-left) + var(--app-safe-right) + 20px))) !important;
    max-height: calc(100dvh - var(--app-modal-top-offset) - var(--app-safe-bottom) - 26px) !important;
    min-width: 0 !important;
    margin: 0 auto !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  .mb2, .task-modal-body, .fees-recipient-scroll, .event-create-body, .support-ticket-body, .comm-preview-body, .fee-pay-choice-body, .rchub-dlg-body {
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
  }

  #mo-mem, #mo-req, #mo-member-import, #mo-sponsor, #mo-task, #mo-support-ticket, #mo-event-new, #mo-attachment-preview {
    align-items: flex-start !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
  }

  #mo-mem .mdl, #mo-req .mdl, #mo-member-import .mdl, #mo-sponsor .mdl, #mo-task .mdl, #mo-support-ticket .mdl, #mo-event-new .mdl, #mo-attachment-preview .mdl {
    max-height: calc(100dvh - var(--app-modal-top-offset) - var(--app-safe-bottom) - 26px) !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
  }

  #mo-mem .mb2, #mo-req .mb2, #mo-member-import .mb2, #mo-sponsor .mb2, #mo-task .mb2, #mo-support-ticket .mb2, #mo-event-new .mb2, #mo-attachment-preview .mb2 {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
  }

  .mh, .mf {
    flex: 0 0 auto !important;
  }

  .modal-backdrop, .member-mail-modal {
    align-items: flex-start !important;
    padding-top: calc(var(--app-modal-top-offset) + 12px) !important;
    padding-right: max(10px, var(--app-safe-right)) !important;
    padding-bottom: max(14px, var(--app-safe-bottom)) !important;
    padding-left: max(10px, var(--app-safe-left)) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
  }

  .modal, .member-mail-dialog {
    max-height: calc(100dvh - var(--app-modal-top-offset) - var(--app-safe-bottom) - 26px) !important;
    margin: 0 auto !important;
  }
}

@media (max-width: 700px) {
  body.theme-classic-sidebar {
    --app-modal-top-offset: var(--mobile-fixed-header-h);
  }

  body.theme-top-white {
    --app-modal-top-offset: var(--app-menu-h);
  }

  .mdl, .event-create-modal, .task-edit-modal, .fees-recipient-modal, .support-ticket-modal, .comm-preview-shell, .rchub-dlg {
    width: calc(100vw - 20px) !important;
    max-width: calc(100vw - 20px) !important;
  }
}

/* ────────────────────────────────────────────────────────────────
   Mobil/tablet finpudsning: menuafstand, stabil scroll og brede
   indstillingskort med intern vandret scroll.
   Desktop >1024px påvirkes ikke.
   ──────────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  body.theme-classic-sidebar .mobile-app-header .mob-nav-btn {
    margin-left: 8px !important;
  }

  body.theme-top-white .sidebar .stog {
    margin-left: 8px !important;
  }

  body.theme-classic-sidebar .vc, body.theme-top-white .vc, body.page-dashboard .vc {
    min-height: 0 !important;
    height: 100% !important;
    max-height: 100% !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-y: contain;
    touch-action: pan-y;
  }

  #mo-sponsor .mdl {
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
  }

  #mo-sponsor .mb2 {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
  }

  #mo-sponsor .mf {
    position: sticky;
    bottom: 0;
    z-index: 3;
    flex: 0 0 auto !important;
    margin-top: auto;
    box-shadow: 0 -8px 18px rgba(28,47,64,.06);
  }

  body.page-settings .settings-xscroll, body.page-settings .member-types-table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto !important;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
  }

  body.page-settings .settings-roles-card .roles-form {
    min-width: 720px;
  }

  body.page-settings .settings-certificates-card .settings-certificates-form {
    min-width: 850px;
  }

  body.page-settings .settings-roles-grid {
    grid-template-columns: max-content 28px minmax(260px, 3fr) minmax(160px, 1fr);
    min-width: 720px;
  }

  body.page-settings .settings-certificates-grid {
    grid-template-columns: max-content max-content minmax(230px, 1fr) minmax(230px, 1fr);
    min-width: 850px;
  }

  body.page-settings #memberTypesTable {
    min-width: 680px !important;
    width: 100% !important;
  }

  body.page-settings .settings-xscroll .fsel, body.page-settings .settings-xscroll .fi {
    max-width: none;
  }
}

@media (max-width: 700px) {
  body.theme-classic-sidebar .mobile-app-header {
    padding-left: max(20px, calc(env(safe-area-inset-left, 0px) + 18px)) !important;
  }

  body.theme-top-white .shd {
    padding-left: max(20px, calc(env(safe-area-inset-left, 0px) + 18px)) !important;
  }

  body.theme-classic-sidebar .mobile-app-header .mob-nav-btn, body.theme-top-white .sidebar .stog {
    margin-left: 0 !important;
  }

  #mo-sponsor .mf .btn {
    flex: 1 1 calc(50% - 6px);
  }
}

/* ────────────────────────────────────────────────────────────────
   Endelig mobil/tablet-fix: safe-area farve og sponsor-modal footer
   Desktop >1024px påvirkes ikke.
   ──────────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  body.theme-classic-sidebar, body.theme-top-white {
    --app-mobile-safe-bg: #fff;
  }

  body.theme-classic-sidebar::before, body.theme-top-white::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: var(--app-safe-top, env(safe-area-inset-top, 0px));
    min-height: env(safe-area-inset-top, 0px);
    background: var(--app-mobile-safe-bg) !important;
    z-index: 905;
    pointer-events: none;
  }

  body.theme-classic-sidebar .mobile-app-header, body.theme-top-white .shd, body.theme-top-white .sidebar:not(.mob-open) {
    background: var(--app-mobile-safe-bg) !important;
  }

  body.page-sponsors #mo-sponsor {
    align-items: flex-start !important;
    justify-content: center !important;
    padding-top: calc(var(--app-modal-top-offset, 0px) + 12px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
  }

  body.page-sponsors #mo-sponsor .mdl {
    display: flex !important;
    flex-direction: column !important;
    width: min(960px, calc(100vw - max(20px, calc(var(--app-safe-left, 0px) + var(--app-safe-right, 0px) + 20px)))) !important;
    max-width: calc(100vw - max(20px, calc(var(--app-safe-left, 0px) + var(--app-safe-right, 0px) + 20px))) !important;
    max-height: calc(100dvh - var(--app-modal-top-offset, 0px) - var(--app-safe-bottom, 0px) - 26px) !important;
    min-height: 0 !important;
    margin: 0 auto !important;
    overflow: hidden !important;
  }

  body.page-sponsors #mo-sponsor .mh, body.page-sponsors #mo-sponsor .mf {
    flex: 0 0 auto !important;
  }

  body.page-sponsors #mo-sponsor .mb2 {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
  }

  body.page-sponsors #mo-sponsor .mf {
    position: static !important;
    bottom: auto !important;
    z-index: 1 !important;
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    background: var(--bg) !important;
    border-top: 1px solid rgba(30,73,118,.10) !important;
    box-shadow: 0 -8px 18px rgba(28,47,64,.06);
  }
}

@media (max-width: 700px) {
  body.page-sponsors #mo-sponsor .mdl {
    width: calc(100vw - max(20px, calc(var(--app-safe-left, 0px) + var(--app-safe-right, 0px) + 20px))) !important;
    max-width: calc(100vw - max(20px, calc(var(--app-safe-left, 0px) + var(--app-safe-right, 0px) + 20px))) !important;
  }

  body.page-sponsors #mo-sponsor .mf {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px !important;
  }

  body.page-sponsors #mo-sponsor .mf .btn {
    width: 100% !important;
    min-width: 0 !important;
    justify-content: center;
  }
}

/* ─── Settings > Generelt/Links: klublayout, offentlige links og mail-tags ─────── */
body.page-settings .settings-general-grid {
  align-items: start;
}

body.page-settings .settings-general-main-column {
  display: grid;
  gap: 16px;
  min-width: 0;
  align-content: start;
  align-self: start;
}

body.page-settings .settings-appearance-card, body.page-settings .settings-general-tags-card {
  min-width: 0;
  height: auto;
  align-self: start;
}

body.page-settings .settings-logo-field-group {
  position: relative;
  min-width: 0;
}

body.page-settings .settings-logo-preview {
  position: fixed;
  z-index: 1100;
  display: none;
  width: max-content;
  max-width: calc(100vw - 28px);
  padding: 10px;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 14px;
  background: var(--sb);
  box-shadow: var(--sh2);
  pointer-events: none;
}

body.page-settings .settings-logo-preview.is-visible {
  display: inline-block;
}

body.page-settings .settings-logo-preview-frame {
  display: grid;
  place-items: center;
  width: max-content;
  max-width: calc(100vw - 52px);
  max-height: min(60vh, 320px);
  padding: 12px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 10px;
  background: var(--sb);
  overflow: hidden;
}

body.page-settings .settings-logo-preview-frame img {
  display: block;
  max-width: calc(100vw - 76px);
  max-height: min(52vh, 280px);
  width: auto;
  height: auto;
  object-fit: contain;
}

body.page-settings .settings-logo-preview-frame img:not([src]),
body.page-settings .settings-logo-preview-frame img[src=""] {
  display: none;
}

body.page-settings .settings-logo-preview-status {
  display: none;
  margin-top: 7px;
  color: rgba(255,255,255,.92);
  font-size: .72rem;
  font-weight: 700;
  line-height: 1.35;
}

body.page-settings .settings-logo-preview.is-error .settings-logo-preview-status {
  display: block;
  color: #fff;
}

.settings-links-page-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

.settings-links-frame, .settings-tags-frame {
  min-width: 0;
}

.settings-links-frame > .cb, .settings-tags-frame > .cb {
  min-height: 0;
}

.settings-links-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  align-items: stretch;
}

.settings-links-item {
  min-width: 0;
  height: 100%;
}

.settings-public-link-card .cb {
  min-height: 0;
}

.settings-public-link-box {
  display: grid;
  gap: 10px;
}

.settings-public-link-help, .settings-tags-help {
  font-size: .78rem;
  line-height: 1.45;
  color: var(--txm);
}

.settings-public-link-note {
  font-size: .78rem;
  line-height: 1.5;
  color: var(--txm);
}

.settings-public-link-note strong {
  color: var(--tx);
  font-weight: 800;
}

.settings-public-link-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
}

.settings-public-link-url {
  min-width: 0;
  font-family: var(--fm, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
  font-size: .76rem;
}

.settings-public-link-status {
  min-height: 18px;
  font-size: .74rem;
  font-weight: 700;
  color: var(--txm);
}

.settings-public-link-status.is-ok {
  color: var(--suc);
}

.settings-public-link-status.is-error {
  color: var(--dan);
}

.settings-tags-help {
  margin-bottom: 14px;
}

.settings-tags-help code, .settings-tag-row code {
  font-family: var(--fm, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
}

.settings-tags-list {
  display: grid;
  gap: 0;
  border: 1px solid var(--bdr2);
  border-radius: var(--r);
  background: var(--surf2);
  overflow: hidden;
}

.settings-tags-group {
  border: 1px solid var(--bdr2);
  border-radius: var(--r);
  background: var(--surf2);
  overflow: hidden;
}

.settings-tags-group-title {
  padding: 9px 12px;
  border-bottom: 1px solid var(--bdr2);
  font-size: .74rem;
  font-weight: 800;
  color: var(--tx);
}

.settings-tag-row {
  display: grid;
  grid-template-columns: minmax(150px, .42fr) minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  padding: 8px 12px;
  border-top: 1px solid rgba(15, 23, 42, .06);
  font-size: .74rem;
}

.settings-tag-row:first-of-type {
  border-top: 0;
}

.settings-tag-row code {
  color: var(--tx);
  font-size: .72rem;
  font-weight: 800;
  white-space: nowrap;
}

.settings-tag-row span {
  color: var(--txm);
  line-height: 1.38;
}

@media (max-width: 1024px) {
  body.page-settings .settings-links-page-grid {
    grid-template-columns: 1fr;
  }

  body.page-settings .settings-links-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  body.page-settings .settings-public-link-row, body.page-settings .settings-tag-row {
    grid-template-columns: 1fr;
  }

  body.page-settings .settings-copy-url {
    width: 100%;
    justify-content: center;
  }

  body.page-settings .settings-tag-row code {
    white-space: normal;
  }
}

body.page-settings .settings-season-intro {
  margin-bottom: 14px;
  line-height: 1.45;
}

body.page-settings .settings-system-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  width: 100%;
}

body.page-settings .settings-system-grid > .card,
body.page-settings .settings-system-dashboard-card {
  width: 100%;
  max-width: 100%;
}

body.page-settings .settings-system-card-head {
  gap: 12px;
}

body.page-settings .settings-system-card-actions {
  margin-left: auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  min-width: 0;
}

body.page-settings .settings-system-backup-now-form {
  margin: 0;
  display: flex;
  align-items: center;
}

@media (max-width: 700px) {
  body.page-settings .settings-system-card-head {
    align-items: flex-start;
  }

  body.page-settings .settings-system-card-actions {
    width: 100%;
    justify-content: flex-start;
    flex-wrap: wrap;
  }
}

/* CSP-safe replacements for former static inline style attributes. */
.csp-style-006a6141a1 {
  width:9%
}

.csp-style-01ef7fc99e {
  display:flex;
  gap:8px;
  align-items:center
}

.csp-style-0495e9c6ac {
  width:27%
}

.csp-style-05e3218b29 {
  width:100%;
  border-collapse:collapse;
  font-size:13px
}

.csp-style-064028e7a7 {
  color:#64748b
}

.csp-style-068a8ddc17 {
  grid-column:1/-1
}

.csp-style-0c97ea905b {
  border:1px solid var(--bdr);
  border-radius:var(--r);
  max-height:320px;
  overflow:auto;
  padding:6px;
  font-size:.78rem;
  font-family:inherit
}

.csp-style-0cabf3f947 {
  padding:8px 12px;
  white-space:nowrap;
  color:var(--txm);
  font-family:monospace;
  font-size:.76rem
}

.csp-style-0e1a6d017b {
  display:flex;
  align-items:center
}

.csp-style-10f98e5a8d {
  display:flex;
  gap:8px;
  align-items:center;
  margin:0
}

.csp-style-1100c21b8c {
  width:100%;
  border-collapse:collapse;
  font-size:.82rem
}

.csp-style-1169661891 {
  margin:0
}

.csp-style-13313b1a3a {
  display:flex;
  justify-content:space-between;
  align-items:center
}

.csp-style-15d5f07dbb {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-left:auto
}

.csp-style-1a5b86e8ac {
  margin:0 0 10px 0;
  color:#334155
}

.csp-style-1c251725c9 {
  border:none;
  padding:0;
  font-size:.72rem
}

.csp-style-1fe8667280 {
  font-size:.82rem
}

.csp-style-2056554381 {
  color:#dc2626
}

.csp-style-20e271d7f5 {
  color:var(--txm)
}

.csp-style-220fbf208a {
  background:var(--surf2)
}

.csp-style-2285bd973e {
  padding:10px 12px
}

.csp-style-22d25962b4 {
  gap:8px;
  width:100%
}

.csp-style-23984e735d {
  width:15%
}

.csp-style-2566f90948 {
  color:#1e4976
}

.csp-style-2644ec3b50 {
  color:var(--dan);
  margin-right:6px
}

.csp-style-26c730a170 {
  font-size:14px;
  font-weight:600;
  display:block;
  margin-bottom:4px
}

.csp-style-26f025f1aa {
  cursor:pointer;
  font-size:.78rem;
  color:var(--txm)
}

.csp-style-2733d79d3d {
  padding:8px 12px;
  text-align:center
}

.csp-style-27aeb61711 {
  max-width:100%
}

.csp-style-27af8985f8 {
  max-width:220px
}

.csp-style-27dfa88b39 {
  margin-top:8px;
  color:var(--txm);
  font-size:.72rem
}

.csp-style-287f770e98 {
  padding:16px
}

.csp-style-288f722b07 {
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  align-items:center;
  margin-bottom:10px
}

.csp-style-28badaee55 {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  width:50%;
  margin-left:auto
}

.csp-style-2978688575 {
  color:var(--dan)
}

.csp-style-2b583d7389 {
  margin-bottom:14px
}

.csp-style-2e93a46111 {
  padding:6px 8px;
  border-radius:6px;
  cursor:pointer;
  transition:background var(--t);
  font-size:.78rem;
  font-family:inherit
}

.csp-style-2e9d0c7ee5 {
  border:1px solid var(--bdr);
  border-radius:var(--r);
  background:#fff
}

.csp-style-2f3f7d777c {
  max-width:280px
}

.csp-style-2f71882362 {
  width:52px;
  height:52px;
  border-radius:50%;
  background:rgba(255,255,255,.1);
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 14px
}

.csp-style-2f8d4500fd {
  padding:6px 12px;
  color:#dc2626;
  font-family:monospace
}

.csp-style-301704d292 {
  display:flex;
  gap:8px;
  align-items:center;
  width:100%;
  margin:0
}

.csp-style-330ce2f277 {
  max-width:860px
}

.csp-style-33e95ec3b4 {
  grid-template-columns:1fr 1fr
}

.csp-style-342b9e0d45 {
  margin:0;
  font-size:.84rem;
  line-height:1.5
}

.csp-style-34ed1fa149 {
  display:flex;
  gap:4px;
  justify-content:center
}

.csp-style-3763e9d68e {
  margin:0 0 12px;
  font-size:.84rem;
  line-height:1.5
}

.csp-style-3872989743 {
  width:36px
}

.csp-style-3922d32600 {
  min-width:0
}

.csp-style-39c00d774a {
  color:#b07d2a
}

.csp-style-3a4f63b7c2 {
  width:28%
}

.csp-style-3bbbe0970f {
  width:32%
}

.csp-style-3de8f987ba {
  display:flex;
  gap:8px;
  flex-wrap:wrap
}

.csp-style-44b21af70c {
  width:20%
}

.csp-style-46babdf7a2 {
  color:#0f172a
}

.csp-style-471df91d09 {
  margin-right:auto
}

.csp-style-477d664a08 {
  width:10%
}

.csp-style-4818c567c5 {
  grid-template-columns:1fr;
  gap:10px;
  flex:1
}

.csp-style-49a3bebb46 {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px
}

.csp-style-49f14f8f83 {
  margin-bottom:20px
}

.csp-style-4bb3c1b8a7 {
  color:rgba(255,255,255,.6);
  font-size:1.2rem
}

.csp-style-4bf397870e {
  width:37%
}

.csp-style-4c35a544f1 {
  flex:0 0 90px
}

.csp-style-4da12286cd {
  border:1px solid var(--bdr2);
  border-radius:var(--r);
  overflow:hidden
}

.csp-style-4de8ec37b6 {
  padding:8px 12px;
  white-space:nowrap;
  color:var(--tx)
}

.csp-style-500c68c77b {
  text-align:center;
  padding:24px 0;
  color:var(--dan);
  font-size:.82rem
}

.csp-style-51982fbf06 {
  display:none;
  font-weight:700;
  color:#16a34a;
  opacity:0;
  transition:opacity .35s ease
}

.csp-style-532b403970 {
  max-width:180px
}

.csp-style-539fa9a0bb {
  margin-right:8px
}

.csp-style-54473f3dfe {
  margin-bottom:1px
}

.csp-style-5461ab2228 {
  width:19%
}

.csp-style-55b2e17218 {
  width:18%
}

.csp-style-55ce965bcd {
  padding:8px 12px;
  text-align:right;
  font-weight:700;
  color:var(--tx);
  white-space:nowrap
}

.csp-style-5a5e368d47 {
  display:flex;
  gap:10px;
  align-items:center
}

.csp-style-5d40ff6d1e {
  padding:6px 12px;
  text-align:left;
  font-weight:700;
  color:#0c4a6e
}

.csp-style-5db8347ca2 {
  width:6%
}

.csp-style-5e7a406eac {
  background:#e0f2fe
}

.csp-style-5ea2dfa7f6 {
  display:none;
  font-size:12px;
  font-weight:600
}

.csp-style-5f12a8b0c1 {
  color:var(--suc)
}

.csp-style-60746827b0 {
  width:110px
}

.csp-style-6384e3671f {
  grid-template-columns:1fr
}

.csp-style-64d30e1d1b {
  display:none;
  color:var(--dan);
  font-size:.75rem
}

.csp-style-68c51288ad {
  font-size:.5rem
}

.csp-style-697f86dffa {
  display:flex;
  flex-direction:column;
  flex:1
}

.csp-style-69be375296 {
  display:flex;
  align-items:center;
  justify-content:space-between
}

.csp-style-6a3f305433 {
  display:grid;
  grid-template-columns:160px 1fr 1fr 60px;
  gap:8px;
  margin-top:4px
}

.csp-style-6ac1322bfa {
  width:42%
}

.csp-style-6b99de8b69 {
  display:none
}

.csp-style-6bbafabf21 {
  width:11%
}

.csp-style-6be0d8ba2c {
  text-align:left
}

.csp-style-6e70b82b2b {
  border-bottom:1px solid var(--bdr2)
}

.csp-style-6f68ac1972 {
  background:var(--pril)
}

.csp-style-70889fefca {
  width:32px;
  height:18px
}

.csp-style-7171988908 {
  font-size:.65rem
}

.csp-style-71dae4945f {
  padding:6px 12px;
  color:#0369a1
}

.csp-style-7238926958 {
  color:#16a34a
}

.csp-style-741eefcbea {
  text-align:center;
  margin-top:10px;
  margin-bottom:10px
}

.csp-style-748c1aa895 {
  cursor:pointer;
  font-size:.8rem
}

.csp-style-74ef800dec {
  max-width:130px
}

.csp-style-761d3addb2 {
  margin-bottom:10px
}

.csp-style-7624689853 {
  font-size:.6rem
}

.csp-style-769fed374b {
  padding:20px
}

.csp-style-76a183fb9b {
  display:flex;
  justify-content:space-between;
  gap:8px;
  flex-wrap:wrap
}

.csp-style-78f1f16cf6 {
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-bottom:14px
}

.csp-style-7abdf1c3ae {
  width:100%;
  table-layout:fixed
}

.csp-style-7eb191d29c {
  display:grid;
  grid-template-columns:220px 1fr;
  gap:18px;
  align-items:start
}

.csp-style-7ecbcd2153 {
  display:flex;
  flex-direction:column
}

.csp-style-83e984aed0 {
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:10px;
  font-size:13px;
  color:#334155;
  cursor:pointer;
  user-select:none
}

.csp-style-84a6e2a3bf {
  border-left:4px solid #b91c1c
}

.csp-style-84f4c591b0 {
  margin:6px 0 0
}

.csp-style-859ccb92fd {
  display:grid;
  grid-template-columns:180px 20px 1fr 130px;
  gap:8px;
  align-items:center;
  margin-top:4px
}

.csp-style-86abdab991 {
  white-space:nowrap
}

.csp-style-87c136dfd0 {
  margin-bottom:16px
}

.csp-style-893855c363 {
  padding:8px 12px;
  text-align:center;
  font-weight:700;
  color:var(--tx);
  white-space:nowrap
}

.csp-style-89427596cd {
  grid-template-columns:1fr;
  margin-top:10px
}

.csp-style-8c8f533b00 {
  width:8%
}

.csp-style-8db5008c7a {
  width:7%
}

.csp-style-8ebc43724d {
  padding:14px
}

.csp-style-90325b6852 {
  min-width:120px;
  color:#64748b
}

.csp-style-905d8b3da3 {
  margin-bottom:18px
}

.csp-style-90b69d98bb {
  color:var(--pri)
}

.csp-style-90e2675fdc {
  margin-top:5px;
  line-height:1.45
}

.csp-style-925bd2ec97 {
  font-size:.78rem;
  font-family:inherit;
  font-weight:600;
  color:var(--tx)
}

.csp-style-93ed7cb578 {
  grid-template-columns:1fr 1fr;
  margin-bottom:14px
}

.csp-style-95f28abeae {
  display:flex;
  gap:8px;
  margin-top:auto;
  padding-top:14px
}

.csp-style-96b67027e7 {
  font-size:1.05rem
}

.csp-style-9714b43b47 {
  display:none;
  margin-top:8px
}

.csp-style-97445a8d93 {
  flex:1
}

.csp-style-999058debd {
  padding:8px 12px;
  text-align:left;
  font-weight:700;
  color:var(--tx);
  white-space:nowrap
}

.csp-style-99a7846e86 {
  max-width:980px;
  margin:18px auto 0
}

.csp-style-9ce9ae9d43 {
  width:4%
}

.csp-style-9f3085c924 {
  color:var(--tx2);
  line-height:1.6
}

.csp-style-a484feb8c4 {
  text-transform:uppercase
}

.csp-style-a56c85e3df {
  display:flex;
  flex-direction:column;
  gap:10px
}

.csp-style-a6360918d2 {
  color:#2563eb;
  text-decoration:underline
}

.csp-style-a76d597a07 {
  display:flex;
  gap:8px
}

.csp-style-a83e45bd2d {
  font-size:.62rem;
  color:var(--txm);
  margin-right:3px
}

.csp-style-a8f367c6bf {
  display:none;
  margin-right:auto
}

.csp-style-a93cf286d3 {
  min-width:14px
}

.csp-style-ae125572d5 {
  display:contents
}

.csp-style-b3e343ffa4 {
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap
}

.csp-style-b444838407 {
  font-weight:600;
  color:var(--tx)
}

.csp-style-b4b4edeb7b {
  display:grid;
  grid-template-columns:160px 1fr 1fr 60px;
  gap:8px;
  align-items:center
}

.csp-style-b4e75f6caa {
  padding:8px 12px;
  text-align:right;
  white-space:nowrap
}

.csp-style-b514ddb6ed {
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-bottom:14px
}

.csp-style-b559c2d44f {
  display:flex;
  gap:8px;
  align-items:flex-end
}

.csp-style-b60a1ffa2b {
  width:26%
}

.csp-style-b80c6b958f {
  display:grid;
  grid-template-columns:180px 20px 1fr 130px;
  gap:8px;
  align-items:center
}

.csp-style-b85da4521e {
  display:flex;
  border:1px solid var(--bdr);
  border-radius:var(--r);
  overflow:hidden
}

.csp-style-b88d1817be {
  display:flex;
  align-items:center;
  gap:6px
}

.csp-style-bd01161bdb {
  display:none;
  gap:12px;
  align-items:center
}

.csp-style-c28f1b1511 {
  width:12%
}

.csp-style-c2e49e3456 {
  width:22%
}

.csp-style-c2f8b844b2 {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:6px
}

.csp-style-c446d5e5ea {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  white-space:nowrap
}

.csp-style-c6635e9ea1 {
  display:flex;
  align-items:center;
  justify-content:center
}

.csp-style-c66ff2c048 {
  width:30%
}

.csp-style-c6926f1dd7 {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px
}

.csp-style-c6b76b8577 {
  margin-right:4px
}

.csp-style-c772345dce {
  color:var(--bdr)
}

.csp-style-c79182b5b2 {
  flex-wrap:wrap;
  gap:14px
}

.csp-style-c8a2088fee {
  display:flex;
  gap:4px;
  align-items:center
}

.csp-style-ca87576933 {
  color:var(--txm);
  opacity:.4
}

.csp-style-cc3d4ed663 {
  margin-top:10px;
  border-radius:8px;
  overflow:hidden;
  border:1px solid #bae6fd;
  background:#f0f9ff
}

.csp-style-d020ed94d5 {
  grid-template-columns:1fr;
  gap:10px;
  margin-bottom:14px
}

.csp-style-d05de6127b {
  margin:0 4px;
  color:var(--bdr)
}

.csp-style-d23bf2f5e2 {
  margin-top:14px;
  padding:12px 14px;
  border:1px solid #e2e8f0;
  border-radius:12px;
  background:#f8fafc;
  color:#334155;
  line-height:1.4
}

.csp-style-d2c171b18b {
  margin-top:10px
}

.csp-style-d552fb3457 {
  margin-bottom:0px
}

.csp-style-d55f7cd4c5 {
  background:var(--danl);
  border:1px solid #f2c4bf;
  border-radius:var(--r);
  padding:10px 14px;
  margin-bottom:14px;
  font-size:.78rem;
  color:#7e2f26;
  line-height:1.5
}

.csp-style-d6f2af6e0a {
  margin-top:14px
}

.csp-style-db2f629c9d {
  margin-right:6px
}

.csp-style-dc39b8f5d6 {
  width:40%
}

.csp-style-dc714d6c57 {
  margin-left:16px
}

.csp-style-ddaf9ee36a {
  padding:24px
}

.csp-style-dfb2165234 {
  align-items:start
}

.csp-style-e0bbbd5390 {
  color:var(--wrn)
}

.csp-style-e2b01b0df3 {
  max-width:640px
}

.csp-style-e3bda251e8 {
  width:24%
}

.csp-style-e4ca9ef65c {
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  gap:12px
}

.csp-style-e7f9c2ec03 {
  border:2px solid var(--pril)
}

.csp-style-e995ee2fab {
  width:13%
}

.csp-style-eb3d076e4f {
  font-family:inherit
}

.csp-style-ebec249d0c {
  display:flex;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap
}

.csp-style-ec32d3a7f2 {
  margin-top:10px;
  margin-bottom:0
}

.csp-style-ec6626e1ed {
  width:70px
}

.csp-style-ee9cea306e {
  padding-left:210px;
  display:flex;
  align-items:center;
  gap:12px
}

.csp-style-eecbc87bcb {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  width:100%
}

.csp-style-ef0b7a1148 {
  margin-bottom:0
}

.csp-style-ef3809e728 {
  width:23%
}

.csp-style-efe9e8175a {
  width:31%
}

.csp-style-f0abc1db33 {
  gap:6px
}

.csp-style-f2c8ab842c {
  text-align:center;
  margin-top:16px
}

.csp-style-f305a88026 {
  text-align:center;
  padding:24px 0;
  color:var(--txm);
  font-size:.82rem
}

.csp-style-f61e10179b {
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:14px
}

.csp-style-f63147b2ed {
  font-size:.78rem
}

.csp-style-f71d06fc88 {
  max-width:560px;
  margin:26px auto;
  padding:14px
}

.csp-style-f756cc3308 {
  color:#64748b;
  font-size:13px
}

.csp-style-f8f979be6c {
  white-space:normal
}

.csp-style-f91f66a79b {
  width:34%
}

.csp-style-f9d75c4313 {
  display:none;
  margin-bottom:10px;
  color:#b91c1c;
  font-size:14px
}

.csp-style-f9d823f997 {
  display:flex;
  gap:24px;
  flex-wrap:wrap;
  align-items:center
}

.csp-style-fc2986e865 {
  padding:8px 12px;
  white-space:nowrap;
  text-align:right;
  color:var(--txm)
}

.csp-style-fd14ca83c7 {
  width:14%
}

.csp-style-fdf33f2304 {
  margin-bottom:8px
}

.csp-style-fe4c9dbbff {
  font-size:.77rem
}

.csp-style-fe7b4979fe {
  margin-top:6px
}

.csp-style-ffe23b7ae4 {
  width:16%
}

/* CSP strict helpers for former conditional inline styles. */
.is-hidden {
  display:none!important
}

.is-visible {
  display:block!important
}

.member-cert-sync-date {
  font-size:12px;
  color:#94a3b8
}

.input-width-90 {
  width:90px
}

.input-width-130 {
  width:130px
}

.cursor-pointer {
  cursor:pointer
}

.input-hidden {
  display:none
}

.label-no-margin {
  margin:0
}

.color-picker-compact {
  width:48px;
  height:36px;
  border:1px solid var(--bdr);
  border-radius:var(--r);
  padding:2px;
  cursor:pointer
}

.input-max-130 {
  max-width:130px
}

.text-uppercase {
  text-transform:uppercase
}

.readonly-muted {
  opacity:.6;
  pointer-events:none
}

.login-2fa-qr {
  border:1px solid rgba(255,255,255,.28);
  border-radius:14px;
  background:#fff;
  padding:8px
}

.fee-paid-pill {
  background:#dcfce7;
  color:#166534;
  border-color:#86efac;
  border-radius:999px;
  font-weight:700;
  letter-spacing:.04em;
  font-size:.7rem;
  padding:4px 12px
}

.fee-unpaid-pill {
  background:#fee2e2;
  color:#991b1b;
  border-color:#fca5a5;
  border-radius:999px;
  font-weight:700;
  letter-spacing:.04em;
  font-size:.7rem;
  padding:4px 12px
}

.standalone-center-body {
  background:var(--sb);
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center
}

.backup-row-striped {
  background:var(--surf2)
}

/* ────────────────────────────────────────────────────────────────
   Final tablet/mobile layout fixes after CSP conversion
   - Keep Kalender "Ny aktivitet" visible in tablet view.
   - Keep requested creation modal action buttons on one line on mobile.
   Scoped narrowly to avoid changing desktop layout or unrelated modals.
   ──────────────────────────────────────────────────────────────── */
@media (min-width: 701px) and (max-width: 1024px) {
  body.page-events .events-toolbar-actions {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    height: auto !important;
    overflow: visible !important;
    width: 100% !important;
    margin-left: 0 !important;
    flex: 1 1 100% !important;
  }

  body.page-events .events-toolbar-actions .btn {
    display: inline-flex !important;
    width: 100% !important;
    justify-content: center !important;
  }
}

@media (max-width: 700px) {
  #mo-event-new .event-create-footer, #mo-event-edit .event-create-footer, #mo-task > .mdl > .mf, #mo-support-ticket > .mdl > .mf {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    gap: 8px !important;
  }

  #mo-event-new .event-create-footer > .btn, #mo-event-edit .event-create-footer > .btn, #mo-event-new .event-create-footer-actions, #mo-event-edit .event-create-footer-actions, #mo-task > .mdl > .mf > .btn, #mo-support-ticket > .mdl > .mf > .btn {
    width: auto !important;
    flex: 1 1 0 !important;
    min-width: 0 !important;
  }

  #mo-event-new .event-create-footer-actions, #mo-event-edit .event-create-footer-actions {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    justify-content: stretch !important;
  }

  #mo-event-new .event-create-footer-actions .btn, #mo-event-edit .event-create-footer-actions .btn {
    width: 100% !important;
    flex: 1 1 0 !important;
    min-width: 0 !important;
  }

  #mo-event-new .event-create-footer .btn, #mo-event-edit .event-create-footer .btn, #mo-task > .mdl > .mf > .btn, #mo-support-ticket > .mdl > .mf > .btn {
    white-space: normal;
    line-height: 1.15;
    padding-left: 8px;
    padding-right: 8px;
  }
}

.settings-bank-grid {
  grid-template-columns:120px 1fr
}

@media (max-width:700px) {
  .settings-bank-grid {
    grid-template-columns:1fr
  }
}

/* ─── Accounting / Regnskab ───────────────────────────────────── */
.accounting-head .fsel {
  min-width: 128px;
}

.accounting-kpis {
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:12px;
  margin-bottom:14px;
}

.accounting-kpi {
  background:var(--surf);
  border:1px solid var(--bdr);
  border-radius:var(--rl);
  box-shadow:var(--sh0);
  padding:14px;
  display:flex;
  flex-direction:column;
  gap:5px;
  min-width:0;
}

.accounting-kpi span {
  width:34px;
  height:34px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--pril);
  color:var(--pri);
}

.accounting-kpi strong {
  font-size:1.08rem;
  line-height:1.1;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.accounting-kpi small {
  color:var(--txm);
  font-size:.68rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.accounting-kpi.income span {
  background:var(--sucl);
  color:var(--suc);
}

.accounting-kpi.expense span {
  background:var(--danl);
  color:var(--dan);
}

.accounting-kpi.result span {
  background:var(--accl);
  color:var(--acc);
}

.accounting-tabs {
  display:flex;
  flex-wrap:nowrap;
  gap:8px;
  width:100%;
  margin:0 0 22px;
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:thin;
  -webkit-overflow-scrolling:touch;
}

.accounting-tab {
  border:1px solid var(--bdr);
  background:var(--surf);
  color:var(--tx2);
  border-radius:999px;
  padding:8px 10px;
  font-size:.76rem;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  cursor:pointer;
  transition:var(--t);
  flex:1 0 max-content;
  width:auto;
  min-width:max-content;
  text-align:center;
}

.accounting-tab:hover {
  border-color:var(--pri);
  color:var(--pri);
}

.accounting-tab.on {
  background:var(--pri);
  color:#fff;
  border-color:var(--pri);
}

.accounting-panel {
  display:none;
}

.accounting-panel.on {
  display:block;
  animation:vu .18s ease;
}

.accounting-toolbar {
  margin-bottom:12px;
}

.accounting-table th, .accounting-table td {
  vertical-align:middle;
}

.accounting-main-cell {
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}

.accounting-main-cell small {
  color:var(--txm);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.tright {
  text-align:right;
}

.muted {
  color:var(--txm);
}

.accounting-status {
  display:inline-flex;
  align-items:center;
  gap:5px;
  border-radius:999px;
  padding:3px 8px;
  font-size:.66rem;
  font-weight:800;
  border:1px solid var(--bdr);
}

.accounting-status.posted {
  color:var(--suc);
  background:var(--sucl);
  border-color:rgba(45,106,79,.22);
}

.accounting-status.draft {
  color:var(--wrn);
  background:var(--wrnl);
  border-color:rgba(217,119,6,.25);
}

.accounting-posted-col, .accounting-posted-cell {
  text-align:center;
  white-space:nowrap;
}

.accounting-posted-check {
  width:18px;
  height:18px;
  accent-color:var(--suc);
  cursor:pointer;
  vertical-align:middle;
}

.accounting-posted-check:disabled {
  cursor:default;
  opacity:.85;
}

.accounting-modal {
  max-width:1120px;
  width:min(1120px,96vw);
}

.accounting-small-modal {
  max-width:680px;
  width:min(680px,94vw);
}

.accounting-send-modal {
  max-width:780px;
  width:min(780px,94vw);
}

.accounting-form-grid .s2 {
  grid-column:span 2;
}

.accounting-lines-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 0 8px;
  margin-top:6px;
}

.accounting-lines-wrap {
  border:1px solid var(--bdr);
  border-radius:var(--r);
  overflow:auto;
  background:var(--surf);
}

.accounting-lines-table {
  width:100%;
  border-collapse:collapse;
  min-width:760px;
}

.accounting-lines-table th, .accounting-lines-table td {
  padding:8px;
  border-bottom:1px solid var(--bdr2);
  text-align:left;
}

.accounting-lines-table th {
  background:var(--surf2);
  font-size:.7rem;
  color:var(--tx2);
}

.accounting-lines-table tfoot td {
  background:var(--surf2);
  font-weight:800;
}

.accounting-lines-table .fsel, .accounting-lines-table .fi {
  font-size:.74rem;
  padding:7px 9px;
}

.accounting-existing-title {
  font-size:.72rem;
  font-weight:800;
  color:var(--tx2);
  margin:10px 0 6px;
}

.accounting-existing-attachment {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  border:1px solid var(--bdr2);
  border-radius:var(--r);
  padding:7px 9px;
  margin-top:6px;
  background:var(--surf2);
}

.accounting-existing-attachment-preview {
  flex:1 1 auto;
  min-width:0;
  display:flex;
  align-items:center;
  gap:7px;
  border:0;
  background:transparent;
  color:var(--pri);
  font:inherit;
  font-size:.74rem;
  font-weight:700;
  text-align:left;
  cursor:pointer;
  padding:3px 0;
}

.accounting-existing-attachment-preview span {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.accounting-existing-attachment-preview:hover span {
  text-decoration:underline;
}

.accounting-error {
  display:none;
  margin-top:10px;
}

.accounting-check {
  display:flex;
  align-items:center;
  gap:8px;
  border:1px solid var(--bdr);
  border-radius:var(--r);
  padding:10px 12px;
  color:var(--tx2);
  font-size:.76rem;
  font-weight:700;
  background:var(--surf);
}

.accounting-check input {
  accent-color:var(--pri);
}

.accounting-help {
  color:var(--txm);
  font-size:.76rem;
  border-bottom:1px solid var(--bdr2);
}

.accounting-split {
  display:grid;
  grid-template-columns:minmax(320px,440px) 1fr;
  gap:14px;
  align-items:start;
}

.accounting-form-actions {
  display:flex;
  justify-content:flex-end;
  margin-top:12px;
}

.is-pos {
  color:var(--suc);
  font-weight:800;
}

.is-neg {
  color:var(--dan);
  font-weight:800;
}

.accounting-report-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin-bottom:14px;
}

.accounting-report-card {
  border:1px solid var(--bdr);
  background:var(--surf);
  border-radius:var(--rl);
  box-shadow:var(--sh0);
  padding:16px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-rows:auto 1fr;
  column-gap:12px;
  row-gap:8px;
  align-items:center;
  text-align:left;
  cursor:pointer;
  color:var(--tx);
  transition:var(--t);
}

.accounting-report-card:hover, .accounting-report-card.on {
  border-color:var(--pri);
  box-shadow:var(--sh);
  transform:translateY(-1px);
}

.accounting-report-card i {
  grid-column:2;
  grid-row:1;
  justify-self:end;
  width:34px;
  height:34px;
  border-radius:999px;
  background:var(--pril);
  color:var(--pri);
  display:flex;
  align-items:center;
  justify-content:center;
}

.accounting-report-card strong {
  grid-column:1;
  grid-row:1;
  min-width:0;
  font-size:.9rem;
}

.accounting-report-card span {
  grid-column:1 / -1;
  grid-row:2;
  color:var(--txm);
  font-size:.72rem;
  line-height:1.35;
}

.accounting-report-actions {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.accounting-report-preview {
  overflow:auto;
  background:linear-gradient(180deg,rgba(30,73,118,.035),rgba(176,125,42,.025));
  border-radius:var(--r);
}

.accounting-report-doc {
  --report-blue:#1e4976;
  --report-blue-dark:#163860;
  --report-gold:#b07d2a;
  --report-paper:#fffdf9;
  --report-cream:#faf8f4;
  --report-line:#e4ddd3;
  --report-ink:#172033;
  --report-muted:#667085;
  background:var(--report-paper);
  color:var(--report-ink);
  max-width:1060px;
  margin:0 auto;
  padding:0;
  border:1px solid rgba(30,73,118,.14);
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 18px 50px rgba(28,47,64,.12);
  font-size:.82rem;
  line-height:1.45;
}

.accounting-report-doc .report-cover {
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:flex-start;
  padding:28px 32px 24px;
  color:#fff;
  background:linear-gradient(135deg,var(--report-blue-dark),var(--report-blue) 62%,#2c638f);
  position:relative;
  overflow:hidden;
}

.accounting-report-doc .report-cover::after {
  content:"";
  position:absolute;
  right:-90px;
  top:-120px;
  width:280px;
  height:280px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  box-shadow:-78px 104px 0 rgba(176,125,42,.24);
}

.accounting-report-doc .report-cover-brand, .accounting-report-doc .report-cover-meta {
  position:relative;
  z-index:1;
}

.accounting-report-doc .report-cover-brand {
  display:flex;
  align-items:center;
  gap:42px;
  min-width:0;
}

.accounting-report-doc .report-mark {
  width:54px;
  height:54px;
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.28);
  color:#fff;
  font-family:var(--fd);
  font-size:1.45rem;
  font-weight:800;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2);
}

.accounting-report-doc .report-logo-wrap {
  width:170px;
  height:80px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:transparent;
  border:0;
  box-shadow:none;
  overflow:visible;
  flex:0 0 auto;
  padding:0;
}

.accounting-report-doc .report-logo {
  display:block;
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  object-fit:contain;
}

.accounting-report-doc .report-cover-brand span {
  display:block;
  color:rgba(255,255,255,.72);
  font-size:.7rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.accounting-report-doc .report-cover-brand strong {
  display:block;
  color:#fff;
  font-family:var(--fd);
  font-size:1.25rem;
  font-weight:800;
  line-height:1.15;
}

.accounting-report-doc .report-cover-meta {
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
  max-width:460px;
}

.accounting-report-doc .report-cover-meta span {
  display:inline-flex;
  align-items:center;
  min-height:27px;
  padding:5px 10px;
  border-radius:999px;
  color:#fff;
  background:rgba(255,255,255,.13);
  border:1px solid rgba(255,255,255,.2);
  font-size:.68rem;
  font-weight:800;
  white-space:nowrap;
}

.accounting-report-doc .report-title {
  display:flex;
  justify-content:space-between;
  gap:22px;
  align-items:flex-end;
  padding:28px 32px 8px;
  border-bottom:1px solid var(--report-line);
  background:linear-gradient(180deg,#fff,rgba(250,248,244,.74));
}

.accounting-report-doc .report-title h1 {
  font-family:var(--fd);
  font-size:2rem;
  line-height:1.04;
  letter-spacing:-.03em;
  margin:4px 0 0;
  color:var(--report-ink);
}

.accounting-report-doc .report-title p {
  max-width:360px;
  color:var(--report-muted);
  margin:0 0 5px;
  text-align:right;
  font-size:.76rem;
  line-height:1.45;
}

.accounting-report-doc .report-kicker {
  color:var(--report-gold);
  font-size:.7rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.13em;
}

.accounting-report-doc h2 {
  display:flex;
  align-items:center;
  gap:9px;
  font-family:var(--fd);
  font-size:1.02rem;
  margin:0 0 10px;
  color:var(--report-blue-dark);
  letter-spacing:-.01em;
}

.accounting-report-doc h2::before {
  content:"";
  width:7px;
  height:22px;
  border-radius:999px;
  background:var(--report-gold);
  box-shadow:0 0 0 4px rgba(176,125,42,.12);
}

.accounting-report-doc .report-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(148px,1fr));
  gap:12px;
  padding:22px 32px 10px;
}

.accounting-report-doc .report-metric {
  border:1px solid rgba(30,73,118,.11);
  border-radius:16px;
  padding:13px 14px 14px;
  background:#fff;
  box-shadow:0 10px 24px rgba(28,47,64,.065);
  border-top:4px solid var(--report-blue);
  min-width:0;
}

.accounting-report-doc .report-metric.accent {
  border-top-color:var(--report-gold);
}

.accounting-report-doc .report-metric.success {
  border-top-color:#2d6a4f;
}

.accounting-report-doc .report-metric.danger {
  border-top-color:#c0392b;
}

.accounting-report-doc .report-metric.neutral {
  border-top-color:#8a95a5;
}

.accounting-report-doc .report-metric strong {
  display:block;
  color:var(--report-muted);
  font-size:.67rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:900;
  margin-bottom:4px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.accounting-report-doc .report-metric span {
  display:block;
  font-family:var(--fd);
  font-size:1.15rem;
  font-weight:900;
  color:var(--report-ink);
  letter-spacing:-.02em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.accounting-report-doc .report-section {
  padding:18px 32px 2px;
  break-inside:avoid-page;
  page-break-inside:avoid;
}

.accounting-report-doc .report-keep-together {
  display:block;
  break-inside:avoid-page;
  page-break-inside:avoid;
  overflow:visible;
}

.accounting-report-doc .report-table-wrap {
  overflow:auto;
  border:1px solid var(--report-line);
  border-radius:14px;
  background:#fff;
  box-shadow:0 8px 24px rgba(28,47,64,.05);
}

.accounting-report-doc .report-table {
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  margin:0;
}

.accounting-report-doc .report-table th, .accounting-report-doc .report-table td {
  border-bottom:1px solid #ece6dc;
  padding:8px 10px;
  text-align:left;
  font-size:.76rem;
  vertical-align:top;
}

.accounting-report-doc .report-table th {
  background:linear-gradient(180deg,#f7f2e9,#eee6da);
  color:#344054;
  font-size:.66rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
  white-space:nowrap;
}

.accounting-report-doc .report-table tbody tr:nth-child(even) td {
  background:#fbfaf7;
}

.accounting-report-doc .report-table tr.report-row-section td {
  background:#eef4fb;
  color:var(--report-ink, var(--tx));
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
  border-top:2px solid rgba(30,73,118,.16);
  border-bottom:1px solid rgba(30,73,118,.12);
}

.accounting-report-doc .report-table tbody tr:last-child td {
  border-bottom:0;
}

.accounting-report-doc .report-cell-num {
  text-align:right;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}

.accounting-report-doc .report-cell-num.is-negative, .accounting-report-doc .is-negative {
  color:#b42318;
  font-weight:800;
}

.accounting-report-doc .report-cell-chip {
  font-weight:800;
  color:var(--report-blue);
  white-space:nowrap;
}

.accounting-report-doc .report-empty {
  color:var(--report-muted);
  font-weight:700;
  text-align:center;
  padding:20px !important;
  background:#fff !important;
}

.accounting-report-doc .report-footer {
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin:24px 32px 30px;
  padding-top:12px;
  border-top:1px solid var(--report-line);
  color:var(--report-muted);
  font-size:.68rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.accounting-send-recipient-box {
  border:1px solid var(--bdr);
  border-radius:var(--r);
  margin-top:12px;
  overflow:hidden;
  background:var(--surf);
}

.accounting-send-recipient-head {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  padding:11px 12px;
  background:var(--surf2);
  border-bottom:1px solid var(--bdr2);
}

.accounting-send-recipient-body {
  padding:12px;
}

.accounting-send-group-row {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.accounting-send-pvlist {
  min-height:34px;
  max-height:128px;
  overflow:auto;
  padding:6px;
  border:1px solid var(--bdr2);
  border-radius:var(--r);
  background:var(--bg);
}

.accounting-send-picker-list {
  max-height:390px;
  overflow-y:auto;
  border:1px solid var(--bdr);
  border-radius:var(--r);
  padding:8px;
  background:var(--surf);
}

.accounting-recipient-list {
  border:1px solid var(--bdr);
  border-radius:var(--r);
  margin-top:12px;
  overflow:hidden;
}

.accounting-recipient-head {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  padding:9px 10px;
  background:var(--surf2);
  border-bottom:1px solid var(--bdr2);
}

.accounting-recipient-scroll {
  max-height:300px;
  overflow:auto;
  padding:6px;
}

.accounting-recipient {
  display:flex;
  align-items:center;
  gap:9px;
  padding:8px;
  border-radius:var(--r);
  cursor:pointer;
}

.accounting-recipient:hover {
  background:var(--surf2);
}

.accounting-recipient input {
  accent-color:var(--pri);
}

.accounting-recipient span {
  display:flex;
  flex-direction:column;
  min-width:0;
}

.accounting-recipient small {
  color:var(--txm);
}

@media (min-width:701px) {
  body.page-accounting .accounting-tabs {
    margin-bottom: 34px;
  }

  body.page-accounting .accounting-toolbar {
    display: flex;
    align-items: center;
    gap: 9px;
  }

  body.page-accounting .accounting-toolbar #acc-refresh {
    margin-left: auto;
  }

  body.page-accounting .accounting-toolbar #acc-refresh, body.page-accounting .accounting-toolbar #accounting-new-voucher {
    flex: 0 0 auto;
  }
}

body.page-accounting .tw {
  max-width:100%;
  overflow:auto;
}

body.page-accounting .accounting-table {
  min-width:940px;
}

@media(max-width:1024px) {
  .accounting-kpis {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .accounting-tabs {
    flex-wrap:nowrap;
  }

  .accounting-report-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .accounting-split {
    grid-template-columns:1fr;
  }

  .accounting-form-grid .s2 {
    grid-column:span 1;
  }
}

@media(max-width:700px) {
  .accounting-kpis {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }

  .accounting-kpi {
    padding:11px;
  }

  .accounting-report-grid {
    grid-template-columns:1fr;
  }

  .accounting-tabs {
    flex-wrap:nowrap;
    overflow-x:auto;
    overflow-y:hidden;
    padding-bottom:4px;
  }

  .accounting-tab {
    min-height:40px;
  }

  .accounting-modal, .accounting-small-modal, .accounting-send-modal {
    width:100% !important;
    max-width:100% !important;
  }

  .accounting-head-actions {
    width:100%;
  }

  .accounting-head-actions .fsel, .accounting-head-actions .btn {
    flex:1 1 auto;
  }

  .accounting-report-doc {
    padding:0;
    border-radius:14px;
  }

  .accounting-report-doc .report-cover {
    flex-direction:column;
    padding:22px 18px 18px;
  }

  .accounting-report-doc .report-cover-meta {
    justify-content:flex-start;
  }

  .accounting-report-doc .report-title {
    flex-direction:column;
    align-items:flex-start;
    padding:20px 18px 8px;
  }

  .accounting-report-doc .report-title h1 {
    font-size:1.55rem;
  }

  .accounting-report-doc .report-title p {
    text-align:left;
    max-width:none;
  }

  .accounting-report-doc .report-grid {
    grid-template-columns:1fr 1fr;
    padding:16px 18px 6px;
  }

  .accounting-report-doc .report-section {
    padding:16px 18px 2px;
  }

  .accounting-report-doc .report-footer {
    flex-direction:column;
    margin-left:18px;
    margin-right:18px;
    gap:4px;
  }
}

@media (min-width:701px) {
  body.page-accounting .accounting-head {
    align-items: center;
  }

  body.page-accounting .accounting-head > div:first-child {
    flex: 1 1 auto;
    min-width: 0;
  }

  body.page-accounting .accounting-head-actions {
    display: flex;
    flex: 0 0 auto;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    margin-left: auto;
    width: auto;
  }

  body.page-accounting .accounting-head-actions .accounting-year-state {
    order: 1;
  }

  body.page-accounting .accounting-head-actions #accounting-new-year {
    order: 2;
  }

  body.page-accounting .accounting-head-actions #accounting-close-year {
    order: 3;
  }

  body.page-accounting .accounting-head-actions #accounting-reopen-year {
    order: 4;
  }

  body.page-accounting .accounting-head-actions #accounting-export-year {
    order: 5;
  }

  body.page-accounting .accounting-head-actions #accounting-year {
    order: 6;
    flex: 0 0 auto;
    width: auto;
    min-width: max-content;
    max-width: max-content;
  }
}

/* Accounting hardening / audit additions */
.accounting-year-state {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  border-radius:999px;
  padding:0 12px;
  font-size:.72rem;
  font-weight:900;
  border:1px solid var(--bdr);
  white-space:nowrap;
}

.accounting-year-state.open {
  color:var(--suc);
  background:var(--sucl);
  border-color:rgba(45,106,79,.22);
}

.accounting-year-state.closed {
  color:var(--dan);
  background:var(--danl);
  border-color:rgba(185,28,28,.25);
}

.accounting-status.reversed {
  color:var(--dan);
  background:var(--danl);
  border-color:rgba(185,28,28,.25);
}

.accounting-status.correction {
  color:var(--pri);
  background:var(--pril);
  border-color:rgba(37,99,235,.22);
}

.accounting-lock-note {
  display:none;
  margin:10px 0;
  border:1px solid rgba(217,119,6,.25);
  background:var(--wrnl);
  color:var(--wrn);
  border-radius:var(--r);
  padding:9px 11px;
  font-size:.76rem;
  font-weight:700;
  line-height:1.35;
}

.accounting-modal-help {
  border:1px solid var(--bdr2);
  background:var(--surf2);
  color:var(--tx2);
  border-radius:var(--r);
  padding:10px 12px;
  margin-bottom:12px;
  font-size:.76rem;
  line-height:1.45;
}

.accounting-line-ok {
  color:var(--suc);
  font-weight:900;
  font-size:.7rem;
}

.accounting-line-bad {
  color:var(--dan);
  font-weight:900;
  font-size:.7rem;
}

.accounting-report-doc .report-paragraph {
  white-space:normal;
  line-height:1.62;
  font-size:.82rem;
  color:#172033;
  margin:0;
  border:1px solid var(--report-line);
  border-radius:14px;
  background:#fff;
  padding:14px 16px;
}

.accounting-report-doc .report-signatures {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin:0;
}

.accounting-report-doc .report-signatures div {
  border:1px solid var(--report-line);
  border-radius:14px;
  padding:14px 16px;
  min-height:84px;
  background:#fff;
  box-shadow:0 8px 24px rgba(28,47,64,.05);
}

.accounting-report-doc .report-signatures strong {
  display:block;
  color:var(--report-muted);
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:12px;
}

.accounting-report-doc .report-signatures span {
  font-weight:900;
  color:var(--report-ink);
}

body.page-accounting .row-actions {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  justify-content:flex-end;
}

@media (max-width:700px) {
  .accounting-year-state {
    width:100%;
  }

  .accounting-report-doc .report-signatures {
    grid-template-columns:1fr;
  }
}

.accounting-edit-reason {
  display:none;
  margin:10px 0 0;
}

/* Regnskab: printmåling til placering nederst på A4-side */
.accounting-print-page-probe {
  position:fixed;
  left:-100000px;
  top:0;
  width:186mm;
  height:273mm;
  margin:0;
  padding:0;
  visibility:hidden;
  pointer-events:none;
  overflow:hidden;
}

.accounting-print-measure {
  position:fixed;
  left:-100000px;
  top:0;
  width:186mm;
  max-width:186mm;
  margin:0;
  padding:0;
  visibility:hidden;
  pointer-events:none;
  overflow:visible;
  background:#fff;
  color:#172033;
  z-index:-1;
}

.accounting-print-measure .accounting-report-doc {
  display:block !important;
  width:100% !important;
  max-width:none !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  background:#fff !important;
  color:#172033 !important;
  overflow:visible !important;
  font-size:.82rem !important;
  line-height:1.45 !important;
}

.accounting-print-measure .report-cover {
  border-radius:16px 16px 0 0 !important;
  padding:20px 22px 18px !important;
}

.accounting-print-measure .report-logo-wrap {
  width:144px !important;
  height:77px !important;
  border-radius:0 !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  overflow:visible !important;
}

.accounting-print-measure .report-logo {
  max-width:100% !important;
  max-height:100% !important;
  width:auto !important;
  height:auto !important;
  object-fit:contain !important;
}

.accounting-print-measure .report-title {
  padding:18px 0 9px !important;
  margin:0 0 8px !important;
}

.accounting-print-measure .report-grid {
  padding:10px 0 6px !important;
  gap:8px !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
}

.accounting-print-measure .report-metric {
  box-shadow:none !important;
  padding:9px 10px !important;
}

.accounting-print-measure .report-section {
  padding:12px 0 0 !important;
  overflow:visible !important;
}

.accounting-print-measure .report-keep-together {
  display:block !important;
  overflow:visible !important;
}

.accounting-print-measure .report-table-wrap {
  overflow:visible !important;
  box-shadow:none !important;
  border-radius:8px !important;
}

.accounting-print-measure .report-table {
  width:100% !important;
}

.accounting-print-measure .report-table th, .accounting-print-measure .report-table td {
  padding:5px 7px !important;
  font-size:9.2pt !important;
}

.accounting-print-measure .report-table tr.report-row-section td {
  background:#eef4fb !important;
  font-weight:900 !important;
  border-top:1px solid #dbe7f3 !important;
}

.accounting-print-measure .report-table tr.report-row-spaced-after td {
  padding-bottom:14px !important;
  border-bottom:8px solid #fff !important;
}

.accounting-print-measure .report-total-line, .accounting-print-measure .report-balance-check {
  border:1px solid #dbe7f3 !important;
  background:#f8fafc !important;
  color:#172033 !important;
  box-shadow:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
}

.accounting-print-measure .report-footer-annual {
  display:flex !important;
  flex-direction:column !important;
  gap:10px !important;
  margin:22px 0 0 !important;
  padding-top:10px !important;
  border-top:1px solid #dbe7f3 !important;
}

.accounting-print-measure .report-footer-annual .report-footer-meta {
  display:flex !important;
  justify-content:space-between !important;
  border-top:1px solid #dbe7f3 !important;
  padding-top:8px !important;
  font-size:8.5pt !important;
  text-transform:uppercase !important;
  letter-spacing:.04em !important;
}

/* Accounting same-page print: popup-free A4 print with explicit page wrappers and margins */
.accounting-print-root {
  display:none;
}

@page {
  size:A4 portrait;
  margin:0;
}

@media print {
  html {
    height:auto !important;
    min-height:0 !important;
    overflow:visible !important;
    margin:0 !important;
    padding:0 !important;
    background:#fff !important;
  }

  body.page-accounting.accounting-printing {
    display:block !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow:visible !important;
    margin:0 !important;
    padding:0 !important;
    background:#fff !important;
  }

  body.page-accounting.accounting-printing > *:not(#acc-print-root) {
    display:none !important;
  }

  body.page-accounting.accounting-printing #acc-print-root {
    display:block !important;
    position:static !important;
    width:210mm !important;
    max-width:210mm !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    margin:0 auto !important;
    padding:0 !important;
    background:#fff !important;
    color:#172033 !important;
    overflow:visible !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .accounting-print-page {
    display:block !important;
    width:210mm !important;
    min-height:297mm !important;
    height:auto !important;
    margin:0 auto !important;
    padding:12mm !important;
    box-sizing:border-box !important;
    background:#fff !important;
    overflow:visible !important;
    break-after:page !important;
    page-break-after:always !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .accounting-print-page:last-child {
    break-after:auto !important;
    page-break-after:auto !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .accounting-print-page-inner {
    display:block !important;
    width:186mm !important;
    max-width:186mm !important;
    min-height:273mm !important;
    height:auto !important;
    margin:0 auto !important;
    padding:0 !important;
    box-sizing:border-box !important;
    background:#fff !important;
    overflow:visible !important;
  }

  body.page-accounting.accounting-printing #acc-print-root, body.page-accounting.accounting-printing #acc-print-root * {
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .accounting-report-doc {
    display:block !important;
    width:186mm !important;
    max-width:186mm !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    margin:0 auto !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    background:#fff !important;
    color:#172033 !important;
    overflow:visible !important;
    font-size:.82rem !important;
    line-height:1.45 !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .report-cover {
    border-radius:16px 16px 0 0 !important;
    padding:20px 22px 18px !important;
    break-inside:avoid-page !important;
    page-break-inside:avoid !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .report-logo-wrap {
    width:144px !important;
    height:77px !important;
    border-radius:0 !important;
    padding:0 !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    overflow:visible !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .report-logo {
    max-width:100% !important;
    max-height:100% !important;
    width:auto !important;
    height:auto !important;
    object-fit:contain !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .report-title {
    padding:18px 0 9px !important;
    margin:0 0 8px !important;
    break-inside:avoid-page !important;
    page-break-inside:avoid !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .report-grid {
    padding:10px 0 6px !important;
    gap:8px !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    break-inside:avoid-page !important;
    page-break-inside:avoid !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .report-metric {
    box-shadow:none !important;
    padding:9px 10px !important;
    break-inside:avoid-page !important;
    page-break-inside:avoid !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .report-section {
    padding:12px 0 0 !important;
    break-inside:avoid-page !important;
    page-break-inside:avoid !important;
    overflow:visible !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .report-keep-together {
    display:block !important;
    break-inside:avoid-page !important;
    page-break-inside:avoid !important;
    overflow:visible !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .report-text-section, body.page-accounting.accounting-printing #acc-print-root .report-signature-section {
    break-inside:avoid-page !important;
    page-break-inside:avoid !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .report-table-wrap {
    overflow:visible !important;
    box-shadow:none !important;
    border-radius:8px !important;
    break-inside:auto !important;
    page-break-inside:auto !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .report-table {
    width:100% !important;
    break-inside:auto !important;
    page-break-inside:auto !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .report-table thead {
    display:table-header-group !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .report-table tfoot {
    display:table-footer-group !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .report-table tr {
    break-inside:avoid-page !important;
    page-break-inside:avoid !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .report-table th, body.page-accounting.accounting-printing #acc-print-root .report-table td {
    padding:5px 7px !important;
    font-size:9.2pt !important;
  }

  body.page-accounting.accounting-printing #acc-print-root h1, body.page-accounting.accounting-printing #acc-print-root h2 {
    break-after:avoid-page !important;
    page-break-after:avoid !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .report-keep-together, body.page-accounting.accounting-printing #acc-print-root .report-paragraph, body.page-accounting.accounting-printing #acc-print-root .report-signatures, body.page-accounting.accounting-printing #acc-print-root .report-signatures > div, body.page-accounting.accounting-printing #acc-print-root .report-total-line, body.page-accounting.accounting-printing #acc-print-root .report-balance-check, body.page-accounting.accounting-printing #acc-print-root .report-footer {
    break-inside:avoid-page !important;
    page-break-inside:avoid !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .report-footer {
    margin:14px 0 0 !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .accounting-print-page .accounting-report-doc {
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
  }
}

/* Regnskab: kontoplan uses project icon actions and clickable rows */
#accounting-accounts-table tbody tr.accounting-click-row {
  cursor: pointer;
}

#accounting-accounts-table tbody tr.accounting-click-row:hover {
  background: rgba(30,73,118,.045);
}

#accounting-accounts-table tbody tr.accounting-click-row:focus-visible {
  outline: 2px solid rgba(30,73,118,.35);
  outline-offset: -2px;
}

.accounting-icon-actions {
  justify-content: flex-end;
  gap: 4px;
}

.accounting-icon-actions .btt {
  flex: 0 0 30px;
}

/* Regnskab: rapportproces-opgradering */
.accounting-report-doc .report-total-line, .accounting-report-doc .report-balance-check {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  border:1px solid var(--report-line, var(--bdr2));
  border-radius:14px;
  padding:10px 14px;
  margin:-8px 32px 18px;
  background:#fff;
  color:var(--report-ink, var(--tx));
  box-shadow:0 8px 22px rgba(28,47,64,.05);
  font-size:.78rem;
  font-weight:900;
}

.accounting-report-doc .report-balance-check {
  margin:6px 32px 18px;
}

.accounting-report-doc .report-balance-check.ok {
  color:var(--suc);
  background:var(--sucl);
  border-color:rgba(45,106,79,.25);
}

.accounting-report-doc .report-balance-check.bad {
  color:var(--dan);
  background:var(--danl);
  border-color:rgba(185,28,28,.25);
}

.accounting-status.deleted {
  color:var(--dan);
  background:var(--danl);
  border-color:rgba(185,28,28,.25);
}

@media(max-width:700px) {
  .accounting-report-doc .report-total-line, .accounting-report-doc .report-balance-check {
    margin-left:18px;
    margin-right:18px;
  }
}

@media print {
  body.page-accounting.accounting-printing #acc-print-root .report-total-line, body.page-accounting.accounting-printing #acc-print-root .report-balance-check {
    border:1px solid #dbe7f3 !important;
    background:#f8fafc !important;
    color:#172033 !important;
    box-shadow:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }
}

/* Regnskab: årsregnskab layoutjusteringer */
.accounting-report-doc .report-table tr.report-row-total td {
  font-weight:900;
  background:#f8fafc;
  color:var(--report-ink, var(--tx));
  border-top:2px solid rgba(30,73,118,.14);
}

.accounting-report-doc .report-table tr.report-row-result td {
  font-weight:900;
  background:#f4efe6;
  color:var(--report-blue-dark, var(--tx));
  border-top:2px solid rgba(176,125,42,.22);
}

.accounting-report-doc .report-table tr.report-row-spaced-after td {
  padding-bottom:18px;
  border-bottom:10px solid #fff;
}

.accounting-report-doc .report-footer-annual {
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  gap:14px;
  margin-top:34px;
  text-transform:none;
  letter-spacing:normal;
  color:var(--report-ink, var(--tx));
  font-weight:700;
}

.accounting-report-doc .report-footer-signature-block {
  display:block;
  width:100%;
  break-inside:avoid-page;
  page-break-inside:avoid;
}

.accounting-report-doc .report-footer-signature-block h2 {
  margin-bottom:12px;
}

.accounting-report-doc .report-footer-annual .report-footer-meta {
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding-top:12px;
  border-top:1px solid var(--report-line);
  color:var(--report-muted);
  font-size:.68rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
}

@media(max-width:700px) {
  .accounting-report-doc .report-footer-annual .report-footer-meta {
    flex-direction:column;
    gap:4px;
  }
}

@media print {
  body.page-accounting.accounting-printing #acc-print-root .report-table tr.report-row-total td {
    font-weight:900 !important;
    background:#f8fafc !important;
    border-top:1px solid #dbe7f3 !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .report-table tr.report-row-result td {
    font-weight:900 !important;
    background:#f4efe6 !important;
    border-top:1px solid #d8c7aa !important;
  }


  body.page-accounting.accounting-printing #acc-print-root .report-table tr.report-row-section td {
    background:#eef4fb !important;
    font-weight:900 !important;
    border-top:1px solid #dbe7f3 !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .report-table tr.report-row-spaced-after td {
    padding-bottom:14px !important;
    border-bottom:8px solid #fff !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .report-footer-annual {
    display:flex !important;
    flex-direction:column !important;
    gap:10px !important;
    margin:var(--accounting-annual-footer-push, 22px) 0 0 !important;
    padding-top:10px !important;
    border-top:1px solid #dbe7f3 !important;
    break-inside:avoid-page !important;
    page-break-inside:avoid !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .report-footer-annual.report-footer-force-new-page {
    break-before:page !important;
    page-break-before:always !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .accounting-print-page .report-footer-annual.report-footer-force-new-page {
    break-before:auto !important;
    page-break-before:auto !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .report-footer-signature-block, body.page-accounting.accounting-printing #acc-print-root .report-footer-signature-block .report-signatures, body.page-accounting.accounting-printing #acc-print-root .report-footer-signature-block .report-signatures > div {
    break-inside:avoid-page !important;
    page-break-inside:avoid !important;
  }

  body.page-accounting.accounting-printing #acc-print-root .report-footer-annual .report-footer-meta {
    display:flex !important;
    justify-content:space-between !important;
    border-top:1px solid #dbe7f3 !important;
    padding-top:8px !important;
    font-size:8.5pt !important;
    text-transform:uppercase !important;
    letter-spacing:.04em !important;
  }
}

/* CSP-safe accounting UI helpers: former inline styles kept as named classes to preserve layout. */
.accounting-inline-actions {
  display:flex;
  gap:8px;
  align-items:center;
}

.acc-send-type-chip {
  cursor:pointer;
}

.accounting-chip-icon {
  font-size:.65rem;
}

.accounting-inline-chip-icon {
  font-size:.65rem;
  margin-right:4px;
}

.accounting-search-input {
  margin-bottom:10px;
}

.accounting-picker-empty {
  font-size:.76rem;
  color:var(--txm);
  padding:8px;
}

.accounting-picker-row {
  padding:5px 6px;
  border-radius:5px;
}

.accounting-picker-name {
  font-size:.8rem;
  font-weight:500;
  color:var(--tx);
}

.accounting-sponsor-status-group {
  margin-bottom:10px;
}

.accounting-sponsor-status-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:6px 8px;
  margin-bottom:4px;
  border-radius:8px;
  background:var(--surf2);
}

.accounting-sponsor-status-title {
  font-size:.72rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--txm);
}

.accounting-sponsor-row {
  padding:6px 8px;
  border-radius:6px;
}

/* Kommunikation: stabile mobilplaceringer for modtager-/beskedheader og chips. */
body.page-communication .comm-recipient-head-actions, body.page-communication .comm-message-head-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  min-width: 0;
}

body.page-communication .comm-group-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

body.page-communication #comm-group-row .chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 1.15;
  min-height: 30px;
}

body.page-communication #comm-group-row .chip i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  flex: 0 0 auto;
}

body.page-communication .comm-template-select, body.page-communication .comm-signature-select {
  font-size: .75rem;
  padding: 4px 8px;
  max-width: 200px;
}

@media (max-width: 700px) {
  body.page-communication .comm-recipient-card > .ch, body.page-communication .comm-message-card > .ch {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center !important;
    gap: 8px 10px !important;
    width: 100%;
  }

  body.page-communication .comm-recipient-card > .ch .ctitle, body.page-communication .comm-message-card > .ch .ctitle {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
  }

  body.page-communication .comm-recipient-head-actions {
    grid-column: 2;
    grid-row: 1;
    width: auto !important;
    justify-self: end;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-end !important;
  }

  body.page-communication .comm-message-head-actions {
    display: contents !important;
  }

  body.page-communication #btn-reset-rcpt, body.page-communication #btn-reset-msg, body.page-communication #btn-signatures {
    width: auto !important;
    min-width: 0 !important;
    white-space: nowrap;
    justify-content: center;
  }

  body.page-communication #btn-reset-msg {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
  }

  body.page-communication #signature-sel {
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100% !important;
    max-width: none !important;
    min-height: 42px;
  }

  body.page-communication #comm-group-row .chip {
    flex: 1 1 calc(50% - 6px);
    min-width: 0;
    min-height: 38px;
    padding-top: 7px;
    padding-bottom: 7px;
  }
}

body.page-communication .comm-chip-icon {
  font-size: .65rem;
}

body.page-communication .comm-chip-dynamic-icon {
  font-size: .65rem;
  margin-right: 4px;
}

/* Communication CSP-safe layout helpers. */
body.page-communication .comm-compose-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 290px;
  gap:16px;
  align-items:start
}

body.page-communication .comm-preview-list {
  min-height:28px
}

body.page-communication .comm-card-body-flush {
  padding-bottom:0
}

body.page-communication .comm-editor-shell {
  border-top:1px solid var(--bdr2)
}

body.page-communication .comm-recipient-selection {
  margin-bottom:16px
}

body.page-communication .comm-recipient-selection .fgrp {
  margin-bottom:0
}

body.page-communication .comm-subject-action-row {
  display:flex;
  align-items:stretch;
  gap:12px;
  min-width:0
}

body.page-communication .comm-subject-action-row .fi {
  flex:1 1 auto;
  min-width:0
}

body.page-communication .comm-subject-action-row #btn-send {
  flex:0 0 auto;
  min-height:42px;
  white-space:nowrap
}

body.page-communication .comm-option-card {
  min-width:0;
  overflow:hidden
}

body.page-communication .comm-attach-head-actions {
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end
}

body.page-communication .comm-hidden {
  display:none!important
}

body.page-communication .comm-primary-action {
  width:142px;
  min-height:42px;
  justify-content:center
}

body.page-communication .comm-template-list {
  min-height:60px
}

body.page-communication .comm-side-stack {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:16px;
  align-items:start;
  min-width:0
}

body.page-communication .comm-placeholders-summary {
  list-style:none;
  cursor:pointer;
  user-select:none;
  flex-direction:row!important;
  align-items:center!important;
  width:100%
}

body.page-communication .comm-placeholders-summary::-webkit-details-marker {
  display:none
}

body.page-communication .comm-placeholders-summary::marker {
  content:''
}

body.page-communication .comm-placeholders-summary .ctitle {
  display:flex;
  align-items:center;
  min-width:0
}

body.page-communication .comm-placeholders-chevron {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  border:1px solid var(--bdr);
  border-radius:999px;
  background:#fff;
  color:var(--txm);
  font-size:.72rem;
  transition:transform .16s ease,color .16s ease,border-color .16s ease
}

body.page-communication .comm-placeholders-card[open] .comm-placeholders-chevron {
  transform:rotate(180deg);
  color:var(--pri);
  border-color:rgba(2,72,115,.28)
}

body.page-communication .comm-placeholders-list {
  display:flex;
  flex-direction:column;
  gap:0;
  max-width:100%
}

body.page-communication .comm-placeholder-item {
  position:relative;
  cursor:help;
  outline:none
}

body.page-communication .comm-placeholder-item.tpi {
  padding-top:3px;
  padding-bottom:3px
}

body.page-communication .comm-placeholder-item:focus-visible {
  box-shadow:0 0 0 3px rgba(2,72,115,.18);
  z-index:5
}

body.page-communication .comm-placeholder-token {
  font-family:inherit;
  font-size:.78rem;
  font-weight:500;
  min-width:0;
  max-width:100%;
  overflow-wrap:anywhere
}

body.page-communication .comm-placeholder-actions {
  flex:0 0 auto
}

body.page-communication .comm-placeholder-item:focus-within .comm-placeholder-actions,body.page-communication .comm-placeholder-item:focus-visible .comm-placeholder-actions {
  opacity:1
}

body.page-communication .comm-placeholder-copy {
  width:28px;
  height:28px;
  min-width:28px;
  padding:0;
  justify-content:center
}

body.page-communication .comm-placeholder-copy.is-copied {
  color:var(--suc);
  border-color:rgba(22,101,52,.22);
  background:rgba(22,101,52,.08)
}

body.page-communication .comm-placeholder-item::after {
  content:attr(data-description);
  position:absolute;
  z-index:40;
  left:9px;
  top:calc(100% + 6px);
  width:max-content;
  max-width:calc(100% - 18px);
  padding:8px 10px;
  border:1px solid var(--bdr);
  border-radius:10px;
  background:var(--bg);
  color:var(--tx);
  box-shadow:var(--sh);
  font-size:.84rem;
  line-height:1.35;
  white-space:normal;
  opacity:0;
  visibility:hidden;
  transform:translateY(-4px);
  pointer-events:none;
  transition:opacity .14s ease,transform .14s ease,visibility .14s ease
}

body.page-communication .comm-placeholder-item::before {
  content:'';
  position:absolute;
  z-index:41;
  left:22px;
  top:calc(100% + 1px);
  width:10px;
  height:10px;
  border-left:1px solid var(--bdr);
  border-top:1px solid var(--bdr);
  background:var(--bg);
  transform:rotate(45deg);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .14s ease,visibility .14s ease
}

body.page-communication .comm-placeholder-item:hover::after,body.page-communication .comm-placeholder-item:focus-within::after,body.page-communication .comm-placeholder-item:focus-visible::after,body.page-communication .comm-placeholder-item:hover::before,body.page-communication .comm-placeholder-item:focus-within::before,body.page-communication .comm-placeholder-item:focus-visible::before {
  opacity:1;
  visibility:visible;
  transform:translateY(0)
}

body.page-communication .comm-placeholder-item:hover::before,body.page-communication .comm-placeholder-item:focus-within::before,body.page-communication .comm-placeholder-item:focus-visible::before {
  transform:rotate(45deg)
}

body.page-communication .comm-clipboard-fallback {
  position:fixed;
  left:-9999px;
  top:0;
  opacity:0;
  pointer-events:none
}

@media (max-width:700px) {
  body.page-communication .comm-placeholders-list {
    width:100%;
    max-width:100%
  }

  body.page-communication .comm-placeholder-item::after {
    max-width:calc(100vw - 64px)
  }
}

body.page-communication .comm-template-loading {
  padding:12px
}

body.page-communication .comm-modal-sm {
  max-width:480px
}

body.page-communication .comm-modal-md {
  max-width:640px
}

body.page-communication .comm-modal-lg {
  width:min(990px,calc(100vw - 32px));
  max-width:990px;
  height:min(96dvh,820px);
  max-height:96dvh
}

body.page-communication .comm-search-input {
  margin-bottom:10px
}

body.page-communication .comm-picker-list {
  max-height:340px;
  overflow-y:auto;
  border:1px solid var(--bdr);
  border-radius:var(--r);
  padding:6px
}

body.page-communication .comm-picker-list-lg {
  max-height:390px;
  padding:8px
}

body.page-communication .comm-external-add-group {
  margin-bottom:14px
}

body.page-communication .comm-external-add-row {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:center
}

body.page-communication .comm-external-add-row .btn {
  min-height:42px;
  white-space:nowrap
}

body.page-communication .comm-external-list-label {
  display:block;
  margin-bottom:6px
}

body.page-communication .comm-external-list {
  max-height:260px
}

body.page-communication .comm-external-recipient-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:7px 8px;
  border-radius:6px
}

body.page-communication .comm-external-recipient-row + .comm-external-recipient-row {
  border-top:1px solid var(--bdr2)
}

body.page-communication .comm-external-recipient-email {
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  overflow-wrap:anywhere
}

body.page-communication .comm-external-recipient-email i {
  color:var(--txm);
  flex:0 0 auto
}

body.page-communication .comm-external-recipient-remove {
  flex:0 0 auto
}

@media (max-width:700px) {
  body.page-communication .comm-external-add-row {
    grid-template-columns:1fr
  }

  body.page-communication .comm-external-add-row .btn {
    width:100%
  }
}

body.page-communication .comm-template-fields {
  grid-template-columns:1fr 1fr;
  margin-bottom:12px
}

body.page-communication .comm-template-editor-shell {
  border:1px solid var(--bdr);
  border-radius:var(--r);
  overflow:hidden
}

body.page-communication #mo-tpl .mb2 {
  display:flex;
  flex-direction:column;
  min-height:0
}

body.page-communication #mo-tpl .comm-template-editor-shell {
  flex:1 1 auto;
  min-height:260px;
  display:flex;
  flex-direction:column
}

body.page-communication #tpl-editor {
  flex:1 1 auto;
  min-height:0
}

body.page-communication #tpl-editor .ql-editor {
  min-height:216px
}

body.page-communication .comm-danger-title {
  color:var(--dan)
}

body.page-communication .comm-progress-wrap {
  background:var(--surf2);
  border-radius:6px;
  height:8px;
  margin-bottom:12px;
  overflow:hidden
}

body.page-communication .comm-progress-bar {
  height:100%;
  background:var(--pri);
  transition:width .3s;
  width:0%
}

body.page-communication .comm-progress-text {
  text-align:center
}

@media (max-width:900px) {
  body.page-communication .comm-compose-layout {
    grid-template-columns:1fr
  }

  body.page-communication .comm-template-fields {
    grid-template-columns:1fr
  }
}

@media (max-width:700px) {
  body.page-communication .comm-subject-action-row {
    flex-direction:column;
  }
}

body.page-communication .comm-template-empty {
  padding:12px;
  font-size:.76rem;
  color:var(--txm)
}

body.page-communication .comm-modal-title-icon {
  margin-right:6px
}

body.page-communication .comm-picker-empty {
  font-size:.76rem;
  color:var(--txm);
  padding:8px
}

body.page-communication .comm-picker-row {
  padding:5px 6px;
  border-radius:5px
}

body.page-communication .comm-picker-name {
  font-size:.8rem;
  font-weight:500;
  color:var(--tx)
}

body.page-communication .comm-sponsor-status-group {
  margin-bottom:10px
}

body.page-communication .comm-sponsor-status-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:6px 8px;
  margin-bottom:4px;
  border-radius:8px;
  background:var(--surf2)
}

body.page-communication .comm-sponsor-status-title {
  font-size:.72rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--txm)
}

body.page-communication .comm-sponsor-row {
  padding:6px 8px;
  border-radius:6px
}

body.page-communication .comm-attach-empty {
  padding:12px 16px
}

/* Kommunikation: Mailafsendelse dialog, samme visuelle struktur som member_new.php */
body.page-communication .comm-mail-modal {
  z-index: 1600;
  background: rgba(15, 23, 42, .46);
}

body.page-communication .comm-mail-dialog {
  width: min(560px, calc(100vw - 36px));
  overflow: hidden;
  border-radius: 16px;
  background: var(--bg);
  border: 1px solid #bfdbfe;
  box-shadow: 0 22px 65px rgba(15, 23, 42, .28);
  color: #1f2937;
  font-family: inherit;
}

body.page-communication .comm-mail-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px 20px;
  border-bottom: 1px solid #dbeafe;
  background: rgba(255, 255, 255, .58);
}

body.page-communication .comm-mail-header h3 {
  margin: 0;
  font-size: 22px;
  line-height: 1.15;
  color: #1f2937;
}

body.page-communication .comm-mail-content {
  padding: 18px 20px 16px;
}

body.page-communication .comm-mail-status {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 15px 16px;
  border: 1px solid #bfdbfe;
  border-radius: 12px;
  background: rgba(255, 255, 255, .72);
}

body.page-communication .comm-mail-icon {
  width: 38px;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  border-radius: 12px;
  background: #dbeafe;
  color: #1d4ed8;
  font-weight: 900;
}

body.page-communication .comm-mail-status-text strong {
  display: block;
  margin-bottom: 3px;
  color: #1f2937;
}

body.page-communication .comm-mail-status-text span {
  display: block;
  color: #64748b;
  font-size: 13px;
  line-height: 1.35;
}

body.page-communication .comm-mail-progress {
  margin-top: 14px;
  padding: 12px 14px;
  border: 1px solid #dbeafe;
  border-radius: 12px;
  background: #fff;
}

body.page-communication .comm-mail-progressbar {
  height: 10px;
  overflow: hidden;
  border-radius: 999px;
  background: #dbeafe;
}

body.page-communication .comm-mail-progressfill {
  height: 100%;
  width: 0%;
  border-radius: 999px;
  background: #2563eb;
  transition: width .28s ease;
}

body.page-communication .comm-mail-progressfill.is-working {
  width: 48%;
  animation: commMailPulse 1.1s ease-in-out infinite alternate;
}

body.page-communication .comm-mail-progressmeta {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-top: 10px;
  color: #64748b;
  font-size: 13px;
  font-weight: 700;
}

body.page-communication .comm-mail-resultgrid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin-top: 14px;
}

body.page-communication .comm-mail-resultgrid.has-failures {
  grid-template-columns: 1fr 1fr;
}

body.page-communication .comm-mail-resultbox {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid #bfdbfe;
  background: rgba(255, 255, 255, .74);
  font-weight: 700;
}

body.page-communication .comm-mail-resultbox.err {
  border-color: #fecaca;
  background: #fff7f7;
}

body.page-communication .comm-mail-resultbox[hidden] {
  display: none !important;
}

body.page-communication .comm-mail-resultbox .label {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #334155;
}

body.page-communication .comm-mail-resultbox .num {
  font-size: 18px;
  color: #111827;
}

body.page-communication .comm-mail-errors {
  display: none;
  margin-top: 12px;
  padding: 10px 12px;
  border: 1px solid #fecaca;
  border-radius: 12px;
  background: #fff7f7;
  color: #7f1d1d;
  font-size: 13px;
  line-height: 1.45;
  white-space: pre-wrap;
}

body.page-communication .comm-mail-actions {
  display: flex;
  justify-content: flex-end;
  padding: 14px 20px;
  border-top: 1px solid #dbeafe;
  background: rgba(255, 255, 255, .45);
}

body.page-communication .comm-mail-actions .btn {
  min-width: 118px;
  justify-content: center;
  border: 0;
  border-radius: 9px;
  padding: 10px 18px;
  font-weight: 800;
  cursor: pointer;
}

body.page-communication .comm-mail-actions .btn.primary {
  background: #6e8cb5;
  color: #fff;
}

body.page-communication .comm-mail-actions .btn:disabled {
  opacity: .55;
  cursor: not-allowed;
}

@keyframes commMailPulse {
  from {
    transform: translateX(-18%);
    opacity: .72;
  }

  to {
    transform: translateX(92%);
    opacity: 1;
  }
}

@media (max-width: 620px) {
  body.page-communication .comm-mail-resultgrid,
  body.page-communication .comm-mail-resultgrid.has-failures {
    grid-template-columns: 1fr;
  }

  body.page-communication .comm-mail-header h3 {
    font-size: 20px;
  }
}

@media (max-width: 700px) {
  body.page-communication .comm-mail-modal {
    align-items: flex-start;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: max(10px, env(safe-area-inset-top, 0px)) max(10px, env(safe-area-inset-right, 0px)) max(10px, env(safe-area-inset-bottom, 0px)) max(10px, env(safe-area-inset-left, 0px));
  }

  body.page-communication .comm-mail-dialog {
    width: calc(100vw - 20px);
    max-width: calc(100vw - 20px);
    margin: auto 0;
  }
}

/* Protected built-in communication templates. */
body.page-communication .comm-template-delete-disabled {
  color: var(--txm);
  opacity: .55;
  cursor: not-allowed;
}

body.page-communication .comm-template-delete-disabled:hover {
  background: transparent;
  color: var(--txm);
}

body.page-communication .comm-template-name-hint {
  margin-top: 6px;
  line-height: 1.35;
}

/* ─── Regnskab: mobil/tablet bilagsupload ───────────────────── */
.sidebar .nav-link[href*="accounting_receipts_upload.php"], body.theme-top-white .sidebar .nav-link[href*="accounting_receipts_upload.php"] {
  display: none !important;
}

@media (max-width: 1024px) {
  .sidebar .nav-link[href*="accounting_receipts_upload.php"], body.theme-top-white .sidebar .nav-link[href*="accounting_receipts_upload.php"] {
    display: flex !important;
  }
}

.receipt-upload-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .9fr);
  gap: 18px;
  align-items: start;
}

.receipt-upload-card .cb {
  display: grid;
  gap: 14px;
}

.receipt-upload-form {
  display: grid;
  gap: 14px;
}

.receipt-upload-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.receipt-upload-pick {
  border: 1px solid var(--bd);
  border-radius: 16px;
  background: #fff;
  padding: 18px;
  min-height: 108px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  text-align: center;
  color: var(--txt);
  cursor: pointer;
  transition: background .15s ease, border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}

.receipt-upload-pick:hover {
  border-color: var(--pri);
  background: var(--pril);
  transform: translateY(-1px);
  box-shadow: 0 14px 30px rgba(21, 43, 78, .10);
}

.receipt-upload-pick i {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  background: var(--pri);
  color: #fff;
  font-size: 1.2rem;
}

.receipt-upload-pick span {
  color: var(--mut);
  font-size: .95rem;
}

.receipt-hidden-file {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.accounting-voucher-upload-row {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.accounting-file-pick-btn {
  justify-content: center;
  min-height: 36px;
}

.accounting-file-pick-btn:focus-visible {
  outline: 2px solid var(--pri2);
  outline-offset: 2px;
}

.receipt-selected-files {
  border: 1px dashed var(--bd);
  border-radius: 14px;
  background: #fbfcff;
  padding: 12px 14px;
  color: var(--mut);
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.accounting-selected-receipts, .accounting-selected-voucher-files {
  display: none;
}

.receipt-selected-files.has-files {
  color: var(--txt);
}

.accounting-selected-receipts.has-files, .accounting-selected-voucher-files.has-files {
  display: flex;
}

.receipt-file-chip {
  display: inline-grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center;
  max-width: min(520px, 100%);
  min-width: 0;
  column-gap: 8px;
  padding: 7px 10px;
  border-radius: 999px;
  background: #eef3ff;
  color: var(--pri2);
  font-weight: 700;
  overflow: visible;
}

.receipt-file-chip-icon {
  grid-column: 1;
  width: 1.1em;
  min-width: 1.1em;
  max-width: 1.1em;
  line-height: 1;
  justify-self: center;
}

.receipt-file-chip-name {
  grid-column: 2;
  display: block;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  direction: ltr;
  unicode-bidi: plaintext;
}

.receipt-file-chip-size {
  grid-column: 3;
  color: var(--mut);
  font-weight: 600;
  white-space: nowrap;
}

.receipt-file-chip-preview {
  appearance: none;
  border: 0;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.receipt-file-chip-preview:hover, .receipt-file-chip-preview:focus-visible {
  background: #dfe8ff;
  color: var(--pri);
  outline: none;
  box-shadow: 0 0 0 2px rgba(2, 72, 115, .16);
}

.receipt-file-chip-preview-hint {
  grid-column: 4;
  display: inline-grid;
  place-items: center;
  color: var(--pri);
  line-height: 1;
}

.receipt-file-chip-preview-hint i {
  margin: 0;
}

.receipt-upload-preview-modal {
  width: min(1020px, 96vw);
  max-width: 1020px;
}

.receipt-upload-preview-body {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: min(72vh, 720px);
  height: min(72vh, 720px);
  overflow: auto;
  border: 1px solid var(--bd);
  border-radius: 16px;
  background: #f5f7fb;
  padding: 14px;
}

.receipt-upload-preview-img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 10px;
  box-shadow: 0 18px 48px rgba(15, 23, 42, .22);
  background: #fff;
}

.receipt-upload-preview-img[hidden], .receipt-upload-preview-fallback[hidden] {
  display: none !important;
}

.receipt-upload-preview-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  text-align: center;
  color: var(--mut);
  font-weight: 700;
}

.receipt-upload-preview-fallback i {
  color: var(--pri);
  font-size: 1.8rem;
}

.receipt-meta-grid {
  display: grid;
  width: 100%;
  min-width: 0;
  margin-top: 2px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 10px;
  row-gap: 10px;
  align-items: end;
}

.receipt-meta-grid .s2,
.receipt-meta-grid .receipt-meta-wide {
  grid-column: 1 / -1 !important;
}

.receipt-meta-grid > .fgrp,
.receipt-meta-grid > .receipt-meta-half {
  min-width: 0;
  max-width: 100%;
  width: 100%;
}

.receipt-meta-grid .fi {
  display: block;
  width: 100% !important;
  inline-size: 100% !important;
  min-width: 0 !important;
  min-inline-size: 0 !important;
  max-width: 100% !important;
  max-inline-size: 100% !important;
  height: 44px;
  min-height: 44px;
  box-sizing: border-box;
  margin: 0;
  line-height: 1.2;
}

.receipt-meta-grid input[type="date"].fi {
  -webkit-appearance: none;
  appearance: none;
  padding-right: 10px;
}

.receipt-meta-grid input[type="date"].fi::-webkit-date-and-time-value {
  min-width: 0;
  text-align: left;
}

@media (max-width: 340px) {
  .receipt-meta-grid {
    grid-template-columns: 1fr;
  }

  .receipt-meta-grid .s2,
  .receipt-meta-grid .receipt-meta-wide {
    grid-column: auto !important;
  }
}

.receipt-upload-progress {
  display: grid;
  gap: 8px;
  border: 1px solid var(--bd);
  border-radius: 14px;
  background: #f7f8fb;
  padding: 11px 12px;
}

.receipt-upload-progress[hidden] {
  display: none !important;
}

.receipt-upload-progress-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--txt);
  font-size: .86rem;
  font-weight: 800;
}

.receipt-upload-progress-head span {
  min-width: 0;
}

.receipt-upload-progress-head strong {
  color: var(--pri);
  white-space: nowrap;
}

.receipt-upload-progress progress {
  width: 100%;
  height: 12px;
  border: 0;
  border-radius: 999px;
  overflow: hidden;
  appearance: none;
  -webkit-appearance: none;
  background: #e7edf7;
}

.receipt-upload-progress progress::-webkit-progress-bar {
  background: #e7edf7;
  border-radius: 999px;
}

.receipt-upload-progress progress::-webkit-progress-value {
  background: var(--pri);
  border-radius: 999px;
  transition: width .18s ease;
}

.receipt-upload-progress progress::-moz-progress-bar {
  background: var(--pri);
  border-radius: 999px;
  transition: width .18s ease;
}

.receipt-upload-progress.is-complete {
  background: rgba(22, 163, 74, .08);
  border-color: rgba(22, 163, 74, .30);
}

.receipt-upload-progress.is-complete .receipt-upload-progress-head strong {
  color: var(--suc);
}

.receipt-upload-progress.is-complete progress::-webkit-progress-value {
  background: var(--suc);
}

.receipt-upload-progress.is-complete progress::-moz-progress-bar {
  background: var(--suc);
}

.receipt-upload-progress.is-error {
  background: var(--danl);
  border-color: rgba(185, 28, 28, .25);
}

.receipt-upload-progress.is-error .receipt-upload-progress-head strong {
  color: var(--dan);
}

.receipt-upload-progress.is-error progress::-webkit-progress-value {
  background: var(--dan);
}

.receipt-upload-progress.is-error progress::-moz-progress-bar {
  background: var(--dan);
}

.receipt-upload-submit-row {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}

.receipt-upload-submit-row .btn {
  justify-content: center;
  text-align: center;
}

.receipt-inbox-head {
  align-items: center;
}

.receipt-inbox-head-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.receipt-inbox-head-actions .btn {
  justify-content: center;
  text-align: center;
  white-space: nowrap;
}

.receipt-inbox-head-actions .btn[hidden], .receipt-inbox-card .cb[hidden] {
  display: none !important;
}

.receipt-inbox-card.is-collapsed .ch {
  border-bottom: 0;
}

.receipt-inbox-list, .accounting-receipt-inbox-list {
  display: grid;
  gap: 10px;
}

.receipt-inbox-item, .accounting-receipt-inbox-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  border: 1px solid var(--bd);
  border-radius: 14px;
  background: #fff;
  padding: 12px;
}

.accounting-receipt-inbox-item {
  grid-template-columns: auto 64px minmax(0, 1fr) auto;
}

.receipt-inbox-icon, .accounting-receipt-inbox-icon {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: var(--pril);
  color: var(--pri);
}

.accounting-receipt-inbox-preview {
  width: 64px;
  height: 64px;
  border: 1px solid var(--bd);
  border-radius: 14px;
  display: grid;
  place-items: center;
  background: var(--pril);
  color: var(--pri);
  overflow: hidden;
  cursor: zoom-in;
  padding: 0;
}

.accounting-receipt-inbox-preview i {
  font-size: 1.35rem;
}

.accounting-receipt-inbox-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.accounting-receipt-inbox-preview.has-image {
  background: #fff;
  border-color: rgba(30, 73, 118, .2);
}

.accounting-receipt-inbox-preview:hover, .accounting-receipt-eye:hover {
  border-color: var(--pri);
  box-shadow: 0 0 0 3px rgba(30, 73, 118, .08);
}

.receipt-inbox-open {
  color: inherit;
  text-decoration: none;
}

.receipt-inbox-open:hover .receipt-inbox-title {
  text-decoration: underline;
}

.receipt-inbox-open.receipt-inbox-icon:hover {
  border-color: var(--pri);
  box-shadow: 0 0 0 3px rgba(30, 73, 118, .08);
}

.receipt-inbox-main, .accounting-receipt-inbox-text {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.receipt-inbox-main .receipt-inbox-title, .accounting-receipt-inbox-text strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.receipt-inbox-main .receipt-inbox-title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  white-space: normal;
  font-weight: 400;
  color: inherit;
}

.receipt-inbox-main span:not(.receipt-inbox-title), .accounting-receipt-inbox-text small, .accounting-receipt-inbox-text em {
  color: var(--mut);
  font-style: normal;
}

.receipt-inbox-main p {
  margin: 4px 0 0;
  color: var(--txt);
}

.receipt-inbox-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.receipt-inbox-actions .btn {
  flex: 0 0 auto;
  white-space: nowrap;
}

.accounting-receipt-picker-field {
  margin-bottom: 2px;
}

.accounting-receipt-picker-row {
  display: flex;
  align-items: center;
  column-gap: 12px;
  row-gap: 8px;
  flex-wrap: wrap;
  min-width: 0;
}

.accounting-selected-receipts {
  margin-top: 0;
  width: 100%;
  min-width: 0;
}

.accounting-selected-receipt {
  padding-right: 7px;
}

.receipt-file-chip-remove {
  grid-column: 4;
  width: 22px;
  height: 22px;
  border: 0;
  border-radius: 999px;
  background: rgba(185, 28, 28, .12);
  color: var(--dan);
  display: inline-grid;
  place-items: center;
  cursor: pointer;
  font-size: .78rem;
  padding: 0;
}

.receipt-file-chip-remove:hover, .receipt-file-chip-remove:focus-visible {
  background: var(--dan);
  color: #fff;
  outline: none;
}

.accounting-receipt-inbox-modal {
  max-width: 780px;
}

.accounting-receipt-inbox-item input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: var(--pri);
}

.accounting-receipt-lightbox-modal {
  width: min(1120px, 96vw);
  max-width: 1120px;
}

.accounting-receipt-lightbox-body {
  position: relative;
  height: min(72vh, 760px);
  min-height: min(72vh, 760px);
  background: #f5f7fb;
  border-radius: 16px;
  border: 1px solid var(--bd);
  overflow: hidden;
}

.accounting-receipt-lightbox-viewport {
  position: absolute;
  inset: 0;
  overflow: auto;
  display: block;
  scroll-behavior: auto;
  cursor: grab;
  user-select: none;
  touch-action: none;
}

.accounting-receipt-lightbox-viewport[data-dragging="1"] {
  cursor: grabbing;
}

.accounting-receipt-lightbox-viewport[data-dragging="1"] .accounting-receipt-lightbox-img {
  cursor: grabbing;
}

.accounting-receipt-lightbox-zoom-content {
  box-sizing: border-box;
  min-width: 100%;
  width: max-content;
  min-height: 100%;
  padding: 18px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  margin: 0 auto;
}

.accounting-receipt-lightbox-viewport[data-kind="file"] .accounting-receipt-lightbox-zoom-content, .accounting-receipt-lightbox-viewport[data-kind="pdf"] .accounting-receipt-lightbox-zoom-content {
  align-items: flex-start;
}

.accounting-receipt-lightbox-viewport[data-kind="pdf"] .accounting-receipt-lightbox-zoom-content {
  justify-content: flex-start;
}

.accounting-receipt-lightbox-img {
  max-width: none;
  max-height: none;
  object-fit: contain;
  display: block;
  align-self: flex-start;
  cursor: grab;
  user-select: none;
  -webkit-user-drag: none;
  flex: 0 0 auto;
}

.accounting-receipt-lightbox-frame {
  max-width: none;
  max-height: none;
  min-height: 0;
  border: 0;
  display: block;
  background: #fff;
  flex: 0 0 auto;
  pointer-events: auto;
  transform-origin: top left;
}

.accounting-receipt-lightbox-viewport[data-kind="pdf"][data-pdf-ctrl-zoom="1"] .accounting-receipt-lightbox-frame {
  pointer-events: none;
}

.accounting-receipt-lightbox-img[hidden], .accounting-receipt-lightbox-frame[hidden], .accounting-receipt-lightbox-fallback[hidden] {
  display: none !important;
}

.accounting-receipt-lightbox-fallback {
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: center;
  color: var(--mut);
  font-weight: 700;
  text-align: center;
  padding: 28px;
}

.accounting-receipt-lightbox-fallback i {
  color: var(--pri);
  font-size: 1.8rem;
}

.accounting-receipt-zoom-controls {
  position: absolute;
  right: 14px;
  bottom: 14px;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px;
  border: 1px solid var(--bd);
  border-radius: 999px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 16px 34px rgba(15, 23, 42, .16);
}

.accounting-receipt-zoom-controls .btn {
  min-width: 36px;
  height: 36px;
  padding: 0;
  justify-content: center;
}

.accounting-receipt-zoom-controls .btn:disabled {
  opacity: .45;
  cursor: not-allowed;
}

.accounting-receipt-zoom-label {
  min-width: 46px;
  text-align: center;
  color: var(--ink);
  font-size: .85rem;
  font-weight: 800;
}

.receipt-scanner-modal {
  width: min(1180px, 96vw);
  max-width: 1180px;
}

.receipt-scanner-body {
  display: grid;
  gap: 14px;
}

.receipt-scanner-tools {
  display: grid;
  gap: 8px;
}

.receipt-scanner-action-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  width: 100%;
}

.receipt-scanner-tool-btn {
  width: 100%;
  min-width: 0;
  min-height: 40px;
  justify-content: center;
  text-align: center;
  padding-left: 10px;
  padding-right: 10px;
  font-size: .92rem;
}

.receipt-scanner-tool-btn i {
  margin: 0;
}

.receipt-scanner-workspace {
  border: 1px solid rgba(15, 23, 42, .18);
  border-radius: 18px;
  background: #172033;
  min-height: min(68vh, 690px);
  max-height: min(68vh, 690px);
  overflow: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04);
}

.receipt-scanner-stage {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
  width: 100%;
  max-width: 100%;
  min-height: 100%;
}

.receipt-scanner-stage canvas {
  display: block;
  max-width: 100%;
  max-height: calc(min(68vh, 690px) - 42px);
  width: auto;
  height: auto;
  border-radius: 8px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, .36);
  background: #fff;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
  cursor: default;
}

.receipt-scanner-stage canvas.is-dragging {
  cursor: grabbing;
}

.receipt-scanner-overlay {
  display: none;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  touch-action: none;
  pointer-events: none;
  cursor: default;
  user-select: none;
  -webkit-user-select: none;
}

.receipt-scanner-overlay[hidden], .receipt-scanner-overlay.is-disabled {
  display: none !important;
  pointer-events: none !important;
}

.receipt-scanner-overlay polygon {
  fill: rgba(75, 149, 255, .20);
  stroke: #7db5ff;
  stroke-width: 4;
  vector-effect: non-scaling-stroke;
  pointer-events: auto;
  filter: drop-shadow(0 2px 3px rgba(0, 0, 0, .38));
}

.receipt-scanner-overlay circle {
  fill: #fff;
  stroke: var(--pri);
  stroke-width: 5;
  vector-effect: non-scaling-stroke;
  pointer-events: auto;
  cursor: grab;
  filter: drop-shadow(0 3px 5px rgba(0, 0, 0, .42));
  transition: fill .12s ease, stroke-width .12s ease;
}

.receipt-scanner-overlay circle:active, .receipt-scanner-overlay circle.is-active, .receipt-scanner-overlay.is-dragging circle.is-active {
  fill: #dbeafe;
  stroke-width: 7;
  cursor: grabbing;
}

.receipt-scanner-overlay.is-dragging {
  cursor: grabbing;
}

.receipt-scanner-status {
  min-height: 22px;
  color: var(--mut);
  font-weight: 700;
  font-size: .92rem;
}

.receipt-scanner-status.is-ok {
  color: var(--suc);
}

.receipt-scanner-status.is-warn {
  color: var(--wrn);
}

.receipt-scanner-status.is-error {
  color: var(--dan);
}

.receipt-scanner-footer {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.receipt-scanner-footer .btn {
  width: 100%;
  min-width: 0;
  justify-content: center;
}

@media (max-width: 700px) {
  .receipt-scanner-modal {
    width: 96vw;
    max-width: 96vw;
  }

  .receipt-scanner-action-row {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
  }

  .receipt-scanner-tool-btn {
    min-height: 42px;
    padding-left: 8px;
    padding-right: 8px;
    font-size: .96rem;
  }

  .receipt-scanner-workspace {
    min-height: 60vh;
    max-height: 60vh;
    padding: 10px;
    border-radius: 14px;
  }

  .receipt-scanner-stage canvas {
    max-height: calc(60vh - 24px);
  }

  .receipt-scanner-footer {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 1024px) {
  .receipt-upload-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .receipt-upload-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .receipt-inbox-item {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 9px;
    padding: 10px;
  }

  .accounting-receipt-inbox-item {
    grid-template-columns: auto 56px minmax(0, 1fr) auto;
    gap: 9px;
    padding: 10px;
  }

  .accounting-receipt-inbox-preview {
    width: 56px;
    height: 56px;
    border-radius: 12px;
  }

  .receipt-inbox-actions {
    justify-content: flex-end;
  }

  .receipt-inbox-head {
    align-items: flex-start;
  }

  .receipt-inbox-head-actions {
    flex: 0 0 auto;
  }

  .receipt-upload-submit-row .btn {
    flex: 1 1 140px;
  }
}

/* Accounting simple voucher booking */
.accounting-voucher-type-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px
}

.accounting-voucher-type {
  display:block;
  cursor:pointer;
  min-width:0
}

.accounting-voucher-type input {
  position:absolute;
  opacity:0;
  pointer-events:none
}

.accounting-voucher-type span {
  min-height:74px;
  border:1px solid var(--bdr);
  border-radius:var(--r);
  background:var(--surf);
  display:flex;
  flex-direction:column;
  gap:4px;
  align-items:flex-start;
  justify-content:center;
  padding:11px 12px;
  color:var(--tx2);
  transition:var(--t)
}

.accounting-voucher-type i {
  color:var(--pri)
}

.accounting-voucher-type strong {
  font-size:.82rem;
  color:var(--tx)
}

.accounting-voucher-type small {
  font-size:.68rem;
  color:var(--txm);
  line-height:1.25
}

.accounting-voucher-type:hover span {
  border-color:var(--pri);
  box-shadow:var(--sh0)
}

.accounting-voucher-type input:focus-visible+span {
  outline:2px solid var(--pri);
  outline-offset:2px
}

.accounting-voucher-type input:checked+span {
  border-color:var(--pri);
  background:var(--pril);
  box-shadow:0 0 0 1px rgba(30,73,118,.12)
}

.accounting-form-grid .hide {
  display:none!important
}

#acc-lines-tbody tr[data-generated="1"] {
  background:rgba(30,73,118,.035)
}

#acc-lines-tbody tr[data-generated="1"] .fi:disabled,#acc-lines-tbody tr[data-generated="1"] .fsel:disabled {
  opacity:1;
  color:var(--tx);
  background:var(--surf2)
}

@media(max-width:1024px) {
  .accounting-voucher-type-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
}

@media(max-width:700px) {
  .accounting-voucher-type-grid {
    grid-template-columns:1fr
  }

  .accounting-voucher-type span {
    min-height:auto
  }
}


.accounting-voucher-meta-row {
  display:grid;
  grid-template-columns:minmax(0,16fr) minmax(0,42fr) minmax(0,42fr);
  gap:12px;
  align-items:end;
  min-width:0
}

.accounting-voucher-meta-row>.fgrp {
  min-width:0;
  margin:0
}

/* Accounting voucher modal: simple posting rows and collapsible manual posting preview */
.accounting-simple-fields-shell {
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  min-width:0
}

.accounting-posting-rows {
  display:grid;
  gap:9px;
  min-width:0
}

.accounting-posting-row {
  display:grid;
  grid-template-columns:minmax(0,16fr) minmax(0,42fr) minmax(0,42fr);
  gap:12px;
  align-items:end;
  min-width:0
}

.accounting-posting-row.has-actions {
  /* 16% + 42% preserve exact alignment with Dato and Bankkonto reference.
     The final 42% is shared by category (37%) and actions (5%). */
  grid-template-columns:minmax(0,16fr) minmax(0,42fr) minmax(0,37fr) minmax(0,5fr)
}

.accounting-posting-row-extra {
  margin-top:1px
}

.accounting-posting-total-row {
  display:grid;
  grid-template-columns:minmax(0,16fr) minmax(0,42fr) minmax(0,37fr) minmax(0,5fr);
  gap:12px;
  min-width:0
}

.accounting-posting-total-amount {
  grid-column:1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-height:32px;
  padding:6px 10px;
  border-top:1px solid var(--bdr);
  color:var(--tx2)
}

.accounting-posting-total-amount span {
  font-size:.78rem;
  font-weight:800
}

.accounting-posting-total-amount strong {
  color:var(--tx);
  font-size:.9rem;
  white-space:nowrap
}

.accounting-posting-row .fgrp {
  min-width:0;
  margin:0
}

.accounting-posting-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:0;
  min-width:0;
  min-height:42px
}

.accounting-posting-actions .acc-posting-delete,
.accounting-posting-actions .accounting-add-posting-line {
  flex:0 0 27px;
  width:27px;
  height:30px;
  border:0;
  background:transparent
}

.accounting-posting-rows.is-transfer .accounting-posting-category {
  display:none
}

.accounting-posting-rows:not(.is-transfer) .accounting-posting-transfer {
  display:none
}

.accounting-posting-rows.is-manual {
  display:none
}

@media(max-width:980px) {
  .accounting-voucher-meta-row {
    grid-template-columns:minmax(120px,16fr) minmax(0,42fr) minmax(0,42fr)
  }

  .accounting-posting-row,
  .accounting-posting-row.has-actions,
  .accounting-posting-total-row {
    grid-template-columns:minmax(120px,16fr) minmax(180px,42fr) minmax(54px,6fr)
  }

  .accounting-posting-row .accounting-posting-category,
  .accounting-posting-row .accounting-posting-transfer {
    grid-column:1 / 3
  }

  .accounting-posting-actions {
    grid-column:3;
    grid-row:1 / 3
  }
}

@media(max-width:620px) {
  .accounting-voucher-meta-row {
    grid-template-columns:1fr
  }

  .accounting-posting-row,
  .accounting-posting-row.has-actions {
    grid-template-columns:1fr auto
  }

  .accounting-posting-total-row {
    grid-template-columns:1fr auto
  }

  .accounting-posting-row .fgrp,
  .accounting-posting-row .accounting-posting-category,
  .accounting-posting-row .accounting-posting-transfer {
    grid-column:1
  }

  .accounting-posting-actions {
    grid-column:2;
    grid-row:1;
    align-self:end
  }
}

.accounting-lines-section {
  margin-top:10px;
  border:1px solid var(--bdr);
  border-radius:var(--r);
  background:var(--surf);
  overflow:hidden
}

.accounting-lines-section .accounting-lines-head {
  margin:0;
  padding:0;
  border-bottom:1px solid var(--bdr2);
  background:var(--surf2)
}

.accounting-lines-toggle {
  appearance:none;
  border:0;
  background:transparent;
  color:var(--tx);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
  min-width:0;
  padding:12px 14px;
  cursor:pointer;
  text-align:left;
  font:inherit
}

.accounting-lines-toggle>span {
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  font-weight:900
}

.accounting-lines-toggle>span i {
  color:var(--pri)
}

.accounting-lines-toggle small {
  margin-left:auto;
  color:var(--txm);
  font-size:.68rem;
  font-weight:800;
  white-space:nowrap
}

.accounting-lines-toggle-icon {
  color:var(--txm);
  transition:transform .18s ease
}

.accounting-lines-section.is-open .accounting-lines-toggle-icon {
  transform:rotate(180deg)
}

.accounting-lines-section #acc-add-line {
  margin-right:10px;
  flex:0 0 auto
}

.accounting-lines-content {
  padding:10px
}

.accounting-lines-section .accounting-lines-wrap {
  border-radius:calc(var(--r) - 2px)
}

@media(max-width:700px) {
  .accounting-lines-section .accounting-lines-head {
    align-items:stretch
  }

  .accounting-lines-toggle {
    padding:11px 12px
  }

  .accounting-lines-toggle small {
    display:none
  }

  .accounting-lines-section #acc-add-line {
    margin:8px 8px 8px 0
  }
}

/* Regnskab: bilag i ny fane og klik-redigering i Daglig bogføring */
#accounting-vouchers-table tbody tr.accounting-click-row {
  cursor: pointer;
}

#accounting-vouchers-table tbody tr.accounting-click-row:hover {
  background: rgba(30, 73, 118, .045);
}

#accounting-vouchers-table tbody tr.accounting-click-row:focus-visible {
  outline: 2px solid rgba(30, 73, 118, .35);
  outline-offset: -2px;
}

#accounting-vouchers-table tbody tr.accounting-click-row .row-actions {
  cursor: default;
}

.accounting-receipt-standalone {
  width: 100%;
  min-height: 100vh;
  background: #eef3fb;
  display: flex;
  flex-direction: column;
}

.accounting-receipt-standalone-header {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 22px;
  background: #fff;
  border-bottom: 1px solid var(--bd);
}

.accounting-receipt-standalone-title {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--ink);
}

.accounting-receipt-standalone-title i {
  color: var(--pri);
  font-size: 1.35rem;
}

.accounting-receipt-standalone-title h1 {
  margin: 0;
  font-size: 1.18rem;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.accounting-receipt-standalone-title p {
  margin: 2px 0 0;
  color: var(--mut);
  font-size: .9rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.accounting-receipt-standalone-stage {
  flex: 1 1 auto;
  min-height: 0;
  padding: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: auto;
}

.accounting-receipt-standalone-img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: calc(100vh - 122px);
  object-fit: contain;
  border-radius: 12px;
  box-shadow: 0 18px 46px rgba(15, 23, 42, .18);
  background: #fff;
}

.accounting-receipt-standalone-frame {
  width: min(1120px, 100%);
  height: calc(100vh - 122px);
  border: 1px solid var(--bd);
  border-radius: 12px;
  box-shadow: 0 18px 46px rgba(15, 23, 42, .18);
  background: #fff;
}

.accounting-receipt-standalone-fallback {
  max-width: 460px;
  display: grid;
  gap: 12px;
  justify-items: center;
  text-align: center;
  padding: 28px;
  border: 1px solid var(--bd);
  border-radius: 18px;
  background: #fff;
  box-shadow: var(--sh);
}

.accounting-receipt-standalone-fallback i {
  font-size: 2rem;
  color: var(--pri);
}

.accounting-receipt-standalone-fallback span {
  color: var(--mut);
}

@media (max-width: 700px) {
  .accounting-receipt-standalone-header {
    align-items: stretch;
    flex-direction: column;
    padding: 14px;
  }

  .accounting-receipt-standalone-stage {
    padding: 12px;
  }

  .accounting-receipt-standalone-img, .accounting-receipt-standalone-frame {
    max-height: calc(100vh - 170px);
  }

  .accounting-receipt-standalone-frame {
    height: calc(100vh - 170px);
  }
}

/* Kommunikation: intern Sendt-mappe */
body.page-communication .comm-sent-card {
  width:100%
}

body.page-communication .comm-sent-head {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(260px,1fr);
  grid-template-areas:'title toggle toolbar';
  align-items:center;
  gap:10px 14px;
  position:relative;
  min-height:34px
}

body.page-communication .comm-sent-title-block {
  grid-area:title;
  display:flex;
  flex-direction:column;
  gap:7px;
  min-width:0;
  padding-right:0
}

body.page-communication .comm-sent-toolbar {
  grid-area:toolbar;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:nowrap;
  width:auto;
  justify-self:end;
  align-self:center
}

body.page-communication .comm-sent-card.is-collapsed .comm-sent-toolbar {
  display:none
}

body.page-communication .comm-sent-toggle-top {
  grid-area:toggle;
  position:static;
  transform:none;
  justify-self:center;
  align-self:center;
  z-index:1;
  white-space:nowrap
}

body.page-communication .comm-sent-filter {
  min-width:150px;
  max-width:190px
}

body.page-communication .comm-sent-body {
  display:flex;
  flex-direction:column;
  gap:12px
}

body.page-communication .comm-sent-body[hidden] {
  display:none!important
}

body.page-communication .comm-sent-counts {
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap
}

body.page-communication .comm-sent-count-pill {
  display:inline-flex;
  align-items:center;
  gap:4px;
  border:1px solid var(--bdr);
  background:#fff;
  border-radius:999px;
  padding:5px 9px;
  font-size:.74rem;
  color:var(--txm)
}

body.page-communication .comm-sent-count-pill strong {
  color:var(--pri)
}

body.page-communication .comm-sent-count-pill.is-warn strong {
  color:var(--dan)
}

body.page-communication .comm-sent-table-wrap,body.page-communication .comm-sent-recipient-wrap {
  max-width:100%;
  overflow:auto;
  border:1px solid var(--bdr);
  border-radius:var(--r);
  background:#fff
}

/* Sendt mail: hold modtagerlisten lukket indtil den aktivt åbnes. */
body.page-communication .comm-sent-recipients {
  border:1px solid var(--bdr);
  border-radius:var(--r);
  background:#fff;
  overflow:hidden
}

body.page-communication .comm-sent-recipients-summary {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:10px;
  min-height:44px;
  padding:9px 12px;
  cursor:pointer;
  list-style:none;
  user-select:none;
  color:var(--pri)
}

body.page-communication .comm-sent-recipients-summary::-webkit-details-marker {
  display:none
}

body.page-communication .comm-sent-recipients-summary::marker {
  content:''
}

body.page-communication .comm-sent-recipients-title {
  min-width:0;
  font-size:.82rem;
  font-weight:800
}

body.page-communication .comm-sent-recipients-count {
  white-space:nowrap
}

body.page-communication .comm-sent-recipients-chevron {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border:1px solid var(--bdr);
  border-radius:999px;
  background:#fff;
  color:var(--txm);
  font-size:.7rem;
  transition:transform .16s ease,color .16s ease,border-color .16s ease
}

body.page-communication .comm-sent-recipients[open] .comm-sent-recipients-summary {
  border-bottom:1px solid var(--bdr)
}

body.page-communication .comm-sent-recipients[open] .comm-sent-recipients-chevron {
  transform:rotate(180deg);
  color:var(--pri);
  border-color:rgba(2,72,115,.28)
}

body.page-communication .comm-sent-recipients .comm-sent-recipient-wrap {
  max-height:240px;
  overflow:auto;
  overscroll-behavior:contain;
  border:0;
  border-radius:0
}

body.page-communication .comm-sent-recipients .comm-sent-recipient-table thead th {
  position:sticky;
  top:0;
  z-index:1
}

body.page-communication .comm-sent-recipients .comm-sent-recipient-wrap:focus-visible {
  outline:2px solid var(--pri);
  outline-offset:-2px
}

body.page-communication .comm-sent-table,body.page-communication .comm-sent-recipient-table {
  margin:0;
  min-width:780px
}

body.page-communication .comm-sent-table td,body.page-communication .comm-sent-recipient-table td {
  vertical-align:middle;
  overflow-wrap:anywhere
}

body.page-communication .comm-sent-table tbody tr.comm-sent-click-row {
  cursor:pointer
}

body.page-communication .comm-sent-table tbody tr.comm-sent-click-row:focus-visible {
  outline:2px solid var(--pri);
  outline-offset:-2px
}

body.page-communication .comm-sent-link {
  appearance:none;
  border:0;
  background:transparent;
  color:var(--pri);
  font:inherit;
  font-weight:700;
  text-align:left;
  padding:0;
  cursor:pointer;
  overflow-wrap:anywhere
}

body.page-communication .comm-sent-link:hover {
  text-decoration:underline
}

body.page-communication .comm-sent-from {
  display:block;
  font-weight:700;
  color:var(--tx)
}

body.page-communication .comm-sent-row-actions {
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap
}

body.page-communication .comm-sent-status {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  padding:4px 8px;
  font-size:.72rem;
  font-weight:800;
  line-height:1.1;
  white-space:nowrap;
  border:1px solid transparent
}

body.page-communication .comm-sent-status.is-sent {
  background:rgba(22,101,52,.08);
  border-color:rgba(22,101,52,.18);
  color:#166534
}

body.page-communication .comm-sent-status.is-pending {
  background:rgba(2,72,115,.08);
  border-color:rgba(2,72,115,.18);
  color:var(--pri)
}

body.page-communication .comm-sent-status.is-failed {
  background:rgba(187,28,28,.08);
  border-color:rgba(187,28,28,.18);
  color:var(--dan)
}

body.page-communication .comm-sent-error {
  color:var(--dan)
}

/* Sendt mail: lad modalen bruge op til 96 % af skærmhøjden, når mailpreviewet behøver pladsen. */
body.page-communication #mo-comm-sent-detail {
  padding-top:2dvh;
  padding-bottom:2dvh
}

body.page-communication .comm-sent-modal {
  width:min(1180px,calc(100vw - 28px));
  max-height:96dvh;
  display:flex;
  flex-direction:column
}

/* Kommunikation: attachment-preview skal ligge over Sendt mail-modalen, når preview åbnes indefra den. */
body.page-communication #mo-attachment-preview.open {
  z-index: 2600 !important;
}

body.page-communication .comm-sent-detail-body {
  display:flex;
  flex-direction:column;
  gap:14px;
  overflow:auto
}

body.page-communication .comm-sent-detail-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:start
}

body.page-communication .comm-sent-detail-meta {
  border:1px solid var(--bdr);
  border-radius:var(--r);
  background:#fff;
  padding:12px;
  display:grid;
  gap:7px
}

body.page-communication .comm-sent-detail-title {
  font-size:1rem;
  font-weight:800;
  color:var(--pri);
  overflow-wrap:anywhere
}

body.page-communication .comm-sent-detail-kv {
  display:grid;
  grid-template-columns:110px minmax(0,1fr);
  gap:8px;
  font-size:.82rem;
  color:var(--txm)
}

body.page-communication .comm-sent-detail-kv strong {
  color:var(--tx);
  font-weight:700;
  overflow-wrap:anywhere
}

body.page-communication .comm-sent-detail-actions {
  display:flex;
  align-items:stretch;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap
}

body.page-communication .comm-sent-attachments {
  display:block
}

body.page-communication .comm-sent-attach-preview-list {
  border:1px solid var(--bdr);
  border-radius:var(--r);
  background:#fff
}

body.page-communication .comm-sent-attach-row {
  padding-left:0;
  padding-right:0
}

body.page-communication .comm-attach-thumb:disabled,body.page-communication .comm-attach-actions .btn:disabled {
  cursor:not-allowed;
  opacity:.55
}

body.page-communication .comm-sent-attach-title {
  font-size:.78rem;
  font-weight:800;
  color:var(--pri);
  margin-bottom:7px
}

body.page-communication .comm-sent-attach-list {
  display:flex;
  gap:7px;
  flex-wrap:wrap
}

body.page-communication .comm-sent-attach-pill {
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:1px solid var(--bdr);
  background:#fff;
  border-radius:999px;
  padding:6px 9px;
  font-size:.76rem;
  color:var(--tx)
}

body.page-communication .comm-sent-attach-pill small {
  color:var(--txm)
}

body.page-communication .comm-sent-preview-panel {
  border:1px solid var(--bdr);
  border-radius:var(--r);
  background:#fff;
  overflow:hidden
}

body.page-communication .comm-sent-preview-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  border-bottom:1px solid var(--bdr);
  background:var(--pril);
  padding:10px 12px;
  color:var(--pri)
}

body.page-communication .comm-sent-preview-frame {
  --comm-sent-preview-base-height:360px;
  display:block;
  width:100%;
  height:var(--comm-sent-preview-base-height);
  min-height:var(--comm-sent-preview-base-height);
  border:0;
  background:#fff
}

body.page-communication .comm-sent-error-cell {
  max-width:320px;
  color:var(--dan);
  font-size:.75rem
}

@media (max-width:900px) {
  body.page-communication .comm-sent-head {
    grid-template-columns:minmax(0,1fr) auto minmax(210px,1fr);
    align-items:center
  }

  body.page-communication .comm-sent-title-block {
    padding-right:0
  }

  body.page-communication .comm-sent-toolbar {
    width:auto;
    justify-content:flex-end;
    flex-wrap:nowrap
  }

  body.page-communication .comm-sent-toolbar .btn,body.page-communication .comm-sent-toolbar .fsel {
    width:auto!important
  }

  body.page-communication .comm-sent-toolbar .btn,body.page-communication .comm-sent-filter {
    flex:0 0 auto
  }

  body.page-communication .comm-sent-detail-grid {
    grid-template-columns:1fr
  }

  body.page-communication .comm-sent-detail-actions {
    justify-content:stretch
  }

  body.page-communication .comm-sent-detail-actions .btn {
    flex:1 1 auto
  }

  body.page-communication .comm-sent-preview-frame {
    --comm-sent-preview-base-height:300px
  }
}

@media (max-width:620px) {
  body.page-communication .comm-sent-head {
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:'title toggle' 'toolbar toolbar';
    align-items:center
  }

  body.page-communication .comm-sent-toggle-top {
    justify-self:end
  }

  body.page-communication .comm-sent-toolbar {
    justify-self:end;
    margin-top:2px
  }

  body.page-communication .comm-sent-table,body.page-communication .comm-sent-recipient-table {
    min-width:720px
  }

  body.page-communication .comm-sent-detail-kv {
    grid-template-columns:1fr;
    gap:2px
  }

  body.page-communication .comm-sent-preview-frame {
    --comm-sent-preview-base-height:260px
  }
}

/* Upload bilag: slet-dialog med knapper på én linje */
.rchub-dlg.receipt-delete-confirm-modal .rchub-dlg-ft {
  display: flex !important;
  flex-direction: row !important;
  grid-template-columns: none !important;
  justify-content: center !important;
  align-items: stretch !important;
  gap: 10px !important;
}

.rchub-dlg.receipt-delete-confirm-modal .rchub-dlg-ft .btn {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  justify-content: center !important;
  text-align: center !important;
}

@media (max-width: 700px) {
  .rchub-dlg.receipt-delete-confirm-modal .rchub-dlg-ft {
    display: flex !important;
    flex-direction: row !important;
    grid-template-columns: none !important;
  }
}

/* Regnskab: mobiljusteringer for header, faner og bogførings-toolbar */
@media (max-width:700px) {
  body.page-accounting .fsel {
    text-align: center;
    text-align-last: center;
    padding-left: 28px;
  }

  body.page-accounting .accounting-head-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
    align-items: stretch;
  }

  body.page-accounting .accounting-head-actions .accounting-year-state, body.page-accounting .accounting-head-actions #accounting-year {
    grid-column: 1 / -1;
    width: 100%;
  }

  body.page-accounting .accounting-head-actions .accounting-year-state {
    order: 1;
  }

  body.page-accounting .accounting-head-actions #accounting-year {
    order: 7;
  }

  body.page-accounting .accounting-head-actions #accounting-export-year {
    order: 5;
  }

  body.page-accounting .accounting-head-actions .btn {
    width: 100%;
    min-width: 0;
    justify-content: center;
  }

  body.page-accounting .accounting-head-actions #accounting-new-year {
    grid-column: 1;
    order: 3;
  }

  body.page-accounting .accounting-head-actions #accounting-close-year {
    grid-column: 2;
    order: 4;
  }

  body.page-accounting .accounting-head-actions #accounting-reopen-year {
    grid-column: 1 / -1;
    order: 6;
  }

  body.page-accounting .accounting-tabs .accounting-tab[data-acc-tab="bookkeeping"] {
    grid-column: 1 / -1;
  }

  body.page-accounting .accounting-toolbar {
    display: flex;
    align-items: stretch;
    gap: 8px;
    padding: 0;
  }

  body.page-accounting .accounting-toolbar #acc-search-wrap {
    order: 1;
    flex: 1 1 100%;
    width: 100%;
    max-width: 100%;
  }

  body.page-accounting .accounting-toolbar #accounting-new-voucher, body.page-accounting .accounting-toolbar #acc-refresh {
    width: auto;
    min-width: 0;
    flex: 1 1 calc(50% - 4px);
    justify-content: center;
  }

  body.page-accounting .accounting-toolbar #accounting-new-voucher {
    order: 2;
  }

  body.page-accounting .accounting-toolbar #acc-refresh {
    order: 3;
  }
}

/* Regnskab: hold Kontoplan handling-symboler på én linje i mobilvisning */
#accounting-accounts-table th.cact, #accounting-accounts-table td.cact {
  min-width: 92px;
  width: 92px;
  padding-left: 8px;
  padding-right: 8px;
}

#accounting-accounts-table .accounting-icon-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: nowrap;
  gap: 4px;
  white-space: nowrap;
}

#accounting-accounts-table .accounting-icon-actions .btt {
  flex: 0 0 30px;
  width: 30px;
  min-width: 30px;
}

@media (max-width: 700px) {
  #accounting-accounts-table th.cact, #accounting-accounts-table td.cact {
    min-width: 88px;
    width: 88px;
  }
}

/* Extracted from twofactor.php to avoid inline CSS under CSP. */
.tf-wrap {
  width: 100%;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px 16px;
  box-sizing: border-box;
}

.tf-box {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  padding: 32px 28px 28px;
  box-shadow: 0 6px 24px rgba(0,0,0,.08);
  width: 100%;
  max-width: 420px;
}

.tf-box h2 {
  margin: 0 0 8px;
  font-size: 22px;
  font-weight: 700;
  color: #1e3a5f;
}

.tf-hint {
  margin: 0 0 22px;
  color: #475569;
  font-size: 15px;
  line-height: 1.5;
}

.tf-error {
  margin: 0 0 14px;
  color: #b91c1c;
  font-size: 14px;
}

.tf-input {
  display: block;
  width: 100%;
  box-sizing: border-box;
  font-size: 22px;
  letter-spacing: 6px;
  text-align: center;
  padding: 14px 12px;
  border: 2px solid #cbd5e1;
  border-radius: 10px;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color .15s;
  min-height: 56px;
}

.tf-input:focus {
  border-color: #6E8CB5;
}

.tf-btn {
  display: block;
  width: 100%;
  margin-top: 14px;
  padding: 15px 12px;
  border: 0;
  border-radius: 10px;
  background: #6E8CB5;
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  min-height: 52px;
  -webkit-appearance: none;
  transition: filter .15s;
}

.tf-btn:hover {
  filter: brightness(.95);
}

.tf-remember {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-top: 16px;
  color: #334155;
  font-size: 15px;
  cursor: pointer;
}

.tf-remember input[type="checkbox"] {
  width: 20px;
  height: 20px;
  min-width: 20px;
  cursor: pointer;
  accent-color: #6E8CB5;
}

.tf-cancel {
  margin-top: 16px;
  text-align: center;
}

.tf-cancel button {
  padding: 0;
  border: 0;
  background: transparent;
  color: #1d4ed8;
  text-decoration: underline;
  cursor: pointer;
  font-size: 15px;
}

.tf-qr {
  display:flex;
  justify-content:center;
  margin: 16px 0;
}

.tf-qr img {
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  background: #fff;
  padding: 10px;
}

.tf-secret {
  margin: 0 0 14px;
}

.tf-secret input {
  width: 100%;
  box-sizing: border-box;
  padding: 10px 12px;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}

.tf-details {
  margin: 0 0 14px;
  color: #334155;
  font-size: 14px;
}

.tf-details summary {
  cursor: pointer;
  font-weight: 700;
}

/* Extracted from change_password.php to avoid inline CSS under CSP. */
/* Modal styling (same as member.php/login.php) */
.modal-backdrop {
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.45);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:9999;
  padding:16px
}

.modal-backdrop.show {
  display:flex
}

.modal-overlay-close {
  position:absolute;
  inset:0;
  display:block;
  background:transparent;
  border:0;
  padding:0;
  margin:0
}

.modal {
  position:relative;
  z-index:1
}

.modal {
  width:100%;
  max-width:520px;
  background:#fff;
  border-radius:14px;
  border:1px solid #e2e8f0;
  box-shadow:0 20px 60px rgba(0,0,0,.2);
  padding:18px
}

.modal h3 {
  margin:0 0 10px 0;
  font-size:18px
}

.modal p {
  margin:0 0 12px 0;
  color:#334155
}

.modal-actions {
  display:flex;
  gap:10px;
  justify-content:flex-end;
  margin-top:14px
}

.modal-btn {
  padding:9px 12px;
  border-radius:10px;
  border:1px solid #cbd5e1;
  background:#fff;
  cursor:pointer
}

.modal-btn.primary {
  background:#6E8CB5;
  color:#fff;
  border-color:#6E8CB5
}

/* RCHub CSP/runtime helpers: static classes replace JS inline display/body-scroll/dialog styles. */
.rchub-hidden, .csp-style-6b99de8b69, .is-hidden {
  display: none !important;
}

.rchub-display-block {
  display: block !important;
}

.rchub-display-flex {
  display: flex !important;
}

.rchub-display-grid {
  display: grid !important;
}

.rchub-display-inline-flex {
  display: inline-flex !important;
}

body.rchub-body-scroll-locked {
  overflow: hidden !important;
}

.rchub-mobile-scroll-repair {
  overflow-y: auto !important;
  overflow-x: hidden !important;
  -webkit-overflow-scrolling: touch !important;
  touch-action: pan-y !important;
}

.rchub-dlg-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0,0,0,.45);
  align-items: center;
  justify-content: center;
}

.rchub-dlg-backdrop.open {
  display: flex;
}

.rchub-dlg {
  background: var(--surf,#fff);
  border-radius: 12px;
  box-shadow: 0 8px 40px rgba(0,0,0,.22);
  min-width: 320px;
  max-width: 440px;
  width: 90%;
  overflow: hidden;
}

.rchub-dlg-hd {
  padding: 16px 20px 0;
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.rchub-dlg-ico {
  font-size: 1.1rem;
  margin-top: 2px;
  flex-shrink: 0;
}

.rchub-dlg-ttl {
  font-size: .95rem;
  font-weight: 700;
  color: var(--tx,#111);
  line-height: 1.35;
  flex: 1;
}

.rchub-dlg-body {
  padding: 8px 20px 16px 50px;
  font-size: .82rem;
  color: var(--tx2,#555);
  line-height: 1.6;
}

.rchub-dlg-ft {
  padding: 10px 16px;
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  border-top: 1px solid var(--bdr2,#e8e4dc);
  background: var(--surf2,#f8f6f2);
}

.rchub-alert-ok-button {
  background: #16a34a !important;
}

/* Public member-request confirmation modal. */
body.member-mail-modal-open {
  overflow: hidden !important;
}

body.member-mail-modal-open > *:not(#memberMailModal) {
  filter: blur(6px) !important;
  transition: filter .18s ease !important;
}

.member-mail-modal[hidden] {
  display: none !important;
}

.member-mail-modal {
  position: fixed;
  inset: 0;
  z-index: 2147483647;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 22px;
  background: rgba(15,23,42,.46);
}

.member-mail-dialog {
  width: min(460px, calc(100vw - 36px));
  overflow: hidden;
  border: 1px solid #bfdbfe;
  border-radius: 16px;
  background: var(--bg);
  box-shadow: 0 22px 65px rgba(15,23,42,.28);
  color: #1f2937;
  font-family: inherit;
}

.member-mail-content {
  padding: 30px 24px;
}

.member-mail-message {
  margin: 0;
  color: #1f2937;
  font-size: 20px;
  font-weight: 800;
  line-height: 1.35;
  text-align: center;
}

.member-mail-message.is-error {
  color: #991b1b;
  font-size: 16px;
  font-weight: 700;
  text-align: left;
}

.member-mail-actions {
  display: flex;
  justify-content: flex-end;
  padding: 14px 20px;
  border-top: 1px solid #dbeafe;
  background: rgba(255,255,255,.45);
}

.member-mail-actions .btn {
  min-width: 118px;
  justify-content: center;
  border: 0;
  border-radius: 9px;
  padding: 10px 18px;
  font-weight: 800;
  cursor: pointer;
}

.member-mail-actions .btn.primary {
  background: #6e8cb5;
  color: #fff;
}

@media (max-width: 620px) {
  .member-mail-content {
    padding: 24px 18px;
  }

  .member-mail-message {
    font-size: 18px;
  }
}

.rchub-display-inline {
  display: inline !important;
}

.rchub-status-info {
  color: #2563eb !important;
}

.rchub-status-ok {
  color: #16a34a !important;
}

.rchub-status-error {
  color: #b91c1c !important;
}

/* Regnskab: modalflader følger samme modalpalette som projektets øvrige
   funktionsmodaler. Gælder både faste Regnskab-modaler og JS-genererede
   Regnskab alert/confirm-modaler. */
body.page-accounting .mo[id^="mo-acc-"] .mdl, body.page-accounting .mo[id^="acc-js-"] .mdl {
  background: var(--bg);
  color: var(--tx);
}

body.page-accounting .mo[id^="mo-acc-"] .mb2, body.page-accounting .mo[id^="acc-js-"] .mb2 {
  background: var(--bg);
}

body.page-accounting .mo[id^="mo-acc-"] .mh, body.page-accounting .mo[id^="acc-js-"] .mh {
  background: transparent;
}

body.page-accounting .mo[id^="mo-acc-"] .mf, body.page-accounting .mo[id^="acc-js-"] .mf {
  background: var(--bg);
  border-top: 0;
}

body.page-accounting #mo-acc-receipt-lightbox .accounting-receipt-lightbox-body, body.page-accounting #mo-acc-receipt-lightbox .accounting-receipt-lightbox-viewport {
  background: var(--bg);
  border-color: var(--bdr);
}

body.page-accounting #mo-acc-receipt-lightbox .accounting-receipt-lightbox-viewport {
  border-radius: 16px;
}

/* Kontingent: mobilvisning med fleksibel medlemskolonne og kompakt højrestillet statuskolonne. */
@media (max-width: 700px) {
  body.page-fees .tw {
    overflow-x: hidden !important;
  }

  body.page-fees #feesTable {
    width: 100% !important;
    min-width: 0 !important;
    table-layout: auto !important;
  }

  body.page-fees #feesTable thead tr, body.page-fees #feesTable tbody tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) max-content;
    align-items: center;
    width: 100%;
  }

  body.page-fees #feesTable th:nth-child(2), body.page-fees #feesTable td:nth-child(2), body.page-fees #feesTable th:nth-child(3), body.page-fees #feesTable td:nth-child(3), body.page-fees #feesTable th:nth-child(4), body.page-fees #feesTable td:nth-child(4) {
    display: none !important;
  }

  body.page-fees #feesTable th:nth-child(1), body.page-fees #feesTable td:nth-child(1) {
    grid-column: 1;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    overflow: hidden;
  }

  body.page-fees #feesTable th:nth-child(5), body.page-fees #feesTable td:nth-child(5) {
    grid-column: 2;
    justify-self: end;
    width: max-content !important;
    min-width: max-content !important;
    max-width: max-content !important;
    padding-left: 8px !important;
    padding-right: 10px !important;
    text-align: right !important;
    white-space: nowrap !important;
    overflow: visible;
  }

  body.page-fees #feesTable td:nth-child(1) > div {
    display: block;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.page-fees #feesTable tbody tr td[colspan] {
    grid-column: 1 / -1;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    text-align: center !important;
  }

  body.page-fees .fees-status-actions {
    display: inline-block !important;
    width: max-content !important;
    max-width: max-content !important;
  }

  body.page-fees .fees-status-form {
    display: inline-block !important;
    width: max-content !important;
    max-width: max-content !important;
  }

  body.page-fees .fees-status-form > button[id^="togglePaid-"] {
    width: auto !important;
    min-width: max-content !important;
  }
}

/* Kontingent: mobil - kompakt kontrolrække og fuldbredde handlinger. */
@media (max-width: 700px) {
  body.page-fees .csp-style-f61e10179b {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) max-content;
    align-items: center;
    gap: 8px;
    width: 100%;
  }

  body.page-fees .csp-style-b85da4521e {
    min-width: 0;
    max-width: 100%;
    justify-self: start;
  }

  body.page-fees .fees-seg-opt {
    padding-left: 10px;
    padding-right: 10px;
    white-space: nowrap;
  }

  body.page-fees .csp-style-b88d1817be {
    justify-self: end;
    justify-content: flex-end;
    flex-wrap: nowrap;
    gap: 4px;
    min-width: 0;
    max-width: 100%;
    margin-left: 0;
    white-space: nowrap;
  }

  body.page-fees .csp-style-b88d1817be .btn.bsm {
    padding-left: 8px;
    padding-right: 8px;
    flex: 0 0 auto;
  }

  body.page-fees .csp-style-b88d1817be .fees-year-input {
    width: calc(4ch + 12px);
    min-width: calc(4ch + 12px);
    max-width: calc(4ch + 12px);
    padding-left: 5px;
    padding-right: 5px;
    flex: 0 0 auto;
  }

  body.page-fees .csp-style-b88d1817be .muted {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  body.page-fees .fees-toolbar-danger-actions {
    grid-column: 1 / -1;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
    margin-left: 0;
    justify-content: stretch;
    align-items: stretch;
    flex-wrap: nowrap;
  }

  body.page-fees .fees-toolbar-danger-actions .fees-toolbar-danger-btn {
    width: 100%;
    min-width: 0;
    max-width: none;
    justify-content: center;
    padding-left: 8px;
    padding-right: 8px;
    white-space: normal;
    text-align: center;
    line-height: 1.15;
  }
}

@media (max-width: 380px) {
  body.page-fees .csp-style-f61e10179b {
    gap: 6px;
  }

  body.page-fees .fees-seg-opt {
    padding-left: 7px;
    padding-right: 7px;
    font-size: .74rem;
  }

  body.page-fees .csp-style-b88d1817be {
    gap: 3px;
  }

  body.page-fees .csp-style-b88d1817be .btn.bsm {
    padding-left: 7px;
    padding-right: 7px;
  }

  body.page-fees .csp-style-b88d1817be .fees-year-input {
    width: calc(4ch + 10px);
    min-width: calc(4ch + 10px);
    max-width: calc(4ch + 10px);
    padding-left: 4px;
    padding-right: 4px;
  }

  body.page-fees .fees-toolbar-danger-actions {
    gap: 6px;
  }

  body.page-fees .fees-toolbar-danger-actions .fees-toolbar-danger-btn {
    padding-left: 6px;
    padding-right: 6px;
    font-size: .7rem !important;
  }
}

/* Kalender/Oversigt: Redigér aktivitet - mobil/tablet layoutjusteringer. */
@media (max-width: 1024px) {
  body.page-events #mo-event-edit .event-date-time-row,
  #mo-event-edit[data-dashboard-event-modal="1"] .event-date-time-row {
    display: grid !important;
    grid-template-columns: minmax(0, 7fr) minmax(0, 3fr) !important;
    gap: 8px !important;
    align-items: end !important;
    flex-wrap: nowrap !important;
  }

  body.page-events #mo-event-edit .event-date-time-row .fi,
  body.page-events #mo-event-edit .event-date-time-row .event-time-input,
  #mo-event-edit[data-dashboard-event-modal="1"] .event-date-time-row .fi,
  #mo-event-edit[data-dashboard-event-modal="1"] .event-date-time-row .event-time-input {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    flex: 0 1 auto !important;
  }

  body.page-events #mo-event-edit .event-create-footer,
  #mo-event-edit[data-dashboard-event-modal="1"] .event-create-footer {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    align-items: stretch !important;
    gap: 8px !important;
  }

  body.page-events #mo-event-edit .event-create-footer-actions,
  #mo-event-edit[data-dashboard-event-modal="1"] .event-create-footer-actions {
    display: contents !important;
  }

  body.page-events #mo-event-edit .event-create-footer .btn,
  body.page-events #mo-event-edit .event-create-footer-actions .btn,
  #mo-event-edit[data-dashboard-event-modal="1"] .event-create-footer .btn,
  #mo-event-edit[data-dashboard-event-modal="1"] .event-create-footer-actions .btn {
    width: 100% !important;
    height: 100% !important;
    min-height: 44px !important;
    justify-content: center !important;
    align-items: center !important;
    white-space: nowrap !important;
    line-height: 1.15 !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
}

/* ────────────────────────────────────────────────────────────────
   Kommunikation: personlige signaturer
   ──────────────────────────────────────────────────────────────── */
body.page-communication .comm-signature-select {
  font-size:.75rem;
  padding:4px 8px;
  max-width:220px;
  min-width:160px;
}

body.page-communication .comm-email-signature-block {
  color:var(--tx);
}

body.page-communication .comm-email-signature-block.comm-email-signature-first {
  margin-top:0;
  padding-top:0;
  border-top:0;
}

body.page-communication .comm-email-signature-spacer {
  margin-top:0;
  margin-bottom:0;
}

body.page-communication .comm-signature-modal {
  width:min(1118px, calc(100vw - 32px))!important;
  max-width:calc(100vw - 32px)!important;
  height:min(83.375dvh, 759px)!important;
  max-height:83.375dvh!important;
}

body.page-communication .comm-signature-modal-body {
  overflow:hidden!important;
  max-height:none!important;
  min-height:0;
  padding:18px 22px;
}

body.page-communication .comm-signature-modal-layout {
  display:grid;
  grid-template-columns:minmax(165px,217px) minmax(0,1fr);
  gap:16px;
  height:100%;
  min-height:0;
}

body.page-communication .comm-signature-list-panel,
body.page-communication .comm-signature-editor-panel,
body.page-communication .comm-signature-editor-card {
  min-width:0;
  min-height:0;
}

body.page-communication .comm-signature-list-panel {
  display:flex;
  flex-direction:column;
  border:1px solid var(--bdr);
  border-radius:var(--r);
  background:var(--surf2);
  overflow:hidden;
}

body.page-communication .comm-signature-list-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:14px;
  border-bottom:1px solid var(--bdr);
  background:var(--surf);
}

body.page-communication .comm-signature-list {
  flex:1 1 auto;
  overflow:auto;
  padding:10px;
  display:flex;
  flex-direction:column;
  gap:8px;
}

body.page-communication .comm-signature-row {
  width:100%;
  border:1px solid var(--bdr);
  background:var(--surf);
  border-radius:12px;
  padding:10px 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  text-align:left;
  cursor:pointer;
  color:var(--tx);
  transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

body.page-communication .comm-signature-row:hover,
body.page-communication .comm-signature-row:focus-visible,
body.page-communication .comm-signature-row.is-active {
  border-color:rgba(2,72,115,.35);
  box-shadow:0 8px 24px rgba(15,23,42,.08);
  outline:none;
}

body.page-communication .comm-signature-row.is-active {
  background:linear-gradient(180deg, rgba(2,72,115,.08), rgba(2,72,115,.03));
}

body.page-communication .comm-signature-row-main {
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0;
}

body.page-communication .comm-signature-row-name {
  font-weight:800;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

body.page-communication .comm-signature-standard-star {
  display:inline-block;
  margin-left:4px;
  color:#b7791f;
  font-size:.78rem;
  line-height:1;
  vertical-align:baseline;
}

body.page-communication .comm-signature-row-arrow {
  color:var(--txm);
  flex:0 0 auto;
}

body.page-communication .comm-signature-empty {
  min-height:180px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  text-align:center;
  color:var(--txm);
  padding:24px;
  border:1px dashed var(--bdr);
  border-radius:14px;
  background:var(--surf);
}

body.page-communication .comm-signature-empty i {
  font-size:2rem;
  color:var(--pri);
}

body.page-communication .comm-signature-editor-panel {
  display:flex;
  flex-direction:column;
}

body.page-communication .comm-signature-editor-card {
  display:flex;
  flex-direction:column;
  height:100%;
  border:1px solid var(--bdr);
  border-radius:var(--r);
  background:var(--surf);
  overflow:hidden;
  padding:16px;
}

body.page-communication .comm-signature-editor-top {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px;
  align-items:end;
  margin-bottom:12px;
}

body.page-communication .comm-signature-default-toggle {
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:42px;
  padding:0 12px;
  border:1px solid var(--bdr);
  border-radius:999px;
  background:var(--surf2);
  white-space:nowrap;
}

body.page-communication .comm-signature-default-toggle span {
  font-size:.71rem;
  font-weight:600;
  color:var(--tx2);
}

body.page-communication .comm-signature-tools {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  padding:10px 12px;
  margin-bottom:12px;
  border:1px solid var(--bdr2);
  border-radius:12px;
  background:var(--surf2);
}

body.page-communication .comm-signature-editor-shell {
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
  border:1px solid var(--bdr);
  border-radius:var(--r);
  overflow:hidden;
}

body.page-communication .comm-signature-editor-shell .ql-toolbar {
  flex:0 0 auto;
}

body.page-communication #signature-editor,
body.page-communication #signature-editor.ql-container {
  flex:1 1 auto;
  min-height:0;
}

body.page-communication #signature-editor .ql-editor {
  min-height:0;
}

body.page-communication .comm-signature-footer {
  gap:10px;
}

body.page-communication .comm-signature-footer-spacer {
  flex:1 1 auto;
}

@media (max-width:900px) {
  body.page-communication .comm-signature-modal-layout {
    grid-template-columns:1fr;
    grid-template-rows:minmax(160px,30dvh) minmax(0,1fr);
  }
}

@media (max-width:700px) {
  body.page-communication .comm-signature-select {
    grid-column:1 / -1;
    grid-row:2;
    width:100%!important;
    max-width:none!important;
    min-height:42px;
  }

  body.page-communication #btn-signatures {
    grid-column:1;
    grid-row:3;
    width:100%!important;
  }

  body.page-communication #btn-reset-msg {
    grid-column:2;
    grid-row:3;
    width:100%!important;
  }

  body.page-communication .comm-signature-modal {
    width:min(92vw, calc(100vw - 22px))!important;
    max-width:calc(100vw - 22px)!important;
    height:min(65dvh, 620px)!important;
    max-height:65dvh!important;
  }

  body.page-communication .comm-signature-modal-body {
    padding:14px;
  }

  body.page-communication .comm-signature-editor-top {
    grid-template-columns:1fr;
    align-items:stretch;
  }

  body.page-communication .comm-signature-tools .btn {
    width:100%;
  }
}

/* ────────────────────────────────────────────────────────────────
   Kommunikation: skabelonmodal 3:2 med integrerede pladsholdere
   ──────────────────────────────────────────────────────────────── */
body.page-communication #mo-tpl .comm-template-modal {
  width:min(135dvh, calc(100vw - 32px))!important;
  max-width:calc(100vw - 32px)!important;
  height:90dvh!important;
  max-height:90dvh!important;
  aspect-ratio:3/2;
}

body.page-communication #mo-tpl .comm-template-modal-body {
  overflow:hidden!important;
  max-height:none!important;
  min-height:0;
  padding:18px 22px;
}

body.page-communication #mo-tpl .comm-template-modal-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(250px,320px);
  gap:16px;
  height:100%;
  min-height:0;
}

body.page-communication #mo-tpl .comm-template-editor-column {
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:0;
}

body.page-communication #mo-tpl .comm-template-fields {
  flex:0 0 auto;
}

body.page-communication #mo-tpl .comm-template-editor-shell {
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
}

body.page-communication #mo-tpl .comm-template-editor-shell .ql-toolbar {
  flex:0 0 auto;
}

body.page-communication #mo-tpl #tpl-editor, body.page-communication #mo-tpl #tpl-editor.ql-container {
  flex:1 1 auto;
  min-height:0;
}

body.page-communication #mo-tpl #tpl-editor .ql-editor {
  min-height:0;
}

body.page-communication #mo-tpl .comm-template-placeholder-panel {
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:0;
  border:1px solid var(--bdr);
  border-radius:var(--r);
  background:var(--surf2);
  overflow:hidden;
}

body.page-communication #mo-tpl .comm-template-placeholder-head {
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:8px;
  padding:12px 14px;
  border-bottom:1px solid var(--bdr);
  color:var(--tx);
  font-weight:800;
}

body.page-communication #mo-tpl .comm-template-placeholder-head i {
  color:var(--pri);
}

body.page-communication #mo-tpl .comm-template-placeholder-list {
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  background:var(--surf);
}

body.page-communication #mo-tpl .comm-template-placeholder-list .comm-placeholder-item::after {
  left:auto;
  right:9px;
  max-width:calc(100% - 18px);
}

body.page-communication #mo-tpl .comm-template-placeholder-list .comm-placeholder-item::before {
  left:auto;
  right:22px;
}

@media (max-width:700px) {
  body.page-communication #mo-tpl .comm-template-modal {
    width:calc(100vw - 22px)!important;
    max-width:calc(100vw - 22px)!important;
    height:90dvh!important;
    max-height:90dvh!important;
    aspect-ratio:auto;
  }

  body.page-communication #mo-tpl .comm-template-modal-body {
    padding:16px;
  }

  body.page-communication #mo-tpl .comm-template-modal-layout {
    grid-template-columns:1fr;
    grid-template-rows:minmax(0,1fr) minmax(170px,28dvh);
    gap:14px;
  }

  body.page-communication #mo-tpl .comm-template-fields {
    grid-template-columns:1fr;
  }
}

.accounting-selected-voucher-files {
  margin-top: 8px;
}

.accounting-selected-file-remove {
  margin-left: 0;
}

.tf-help-row {
  margin: -10px 0 18px;
}

.tf-help-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #1d4ed8;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
}

.tf-help-link:hover, .tf-help-link:focus-visible {
  text-decoration: underline;
}

/* Kontingent: inline redigering af beløb i Kontingentoversigt. */
body.page-fees .fee-amount-cell {
  white-space: nowrap;
}

body.page-fees .fee-amount-inline-trigger {
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  padding: 0;
  margin: 0;
  cursor: pointer;
  text-align: inherit;
}

body.page-fees .fee-amount-inline-trigger:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 3px;
  border-radius: 8px;
}

body.page-fees .fee-amount-cell.is-editing,
body.page-fees .fee-amount-cell.is-saving {
  padding-top: 8px;
  padding-bottom: 8px;
}

body.page-fees .fee-amount-inline-input {
  width: 96px;
  min-width: 84px;
  max-width: 120px;
  text-align: right;
}

/* ─── Dokumentarkiv ───────────────────────────────────────────── */
.doc-landing{min-height:calc(100vh - 96px);display:flex;flex-direction:column;gap:18px}.doc-hero-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.95fr);gap:26px;align-items:center;background:linear-gradient(135deg,#fff 0%,#faf8f4 100%);border:1px solid var(--bdr);border-radius:22px;box-shadow:var(--sh);padding:30px;overflow:hidden}.doc-kicker{display:inline-flex;align-items:center;gap:8px;color:var(--pri);font-weight:700;background:var(--pril);border:1px solid #d7e2f0;border-radius:999px;padding:7px 12px;margin-bottom:16px}.doc-hero-copy h1{font-size:clamp(1.8rem,3.2vw,3rem);line-height:1.02;margin:0 0 14px;color:var(--tx)}.doc-hero-copy p{color:var(--tx2);font-size:1.04rem;line-height:1.55;max-width:760px}.doc-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.doc-hero-primary{min-width:140px;justify-content:center;text-align:center}.doc-device-stage{position:relative;min-height:350px}.doc-device{background:rgba(255,255,255,.94);border:1px solid var(--bdr);border-radius:20px;box-shadow:0 18px 60px rgba(28,47,64,.16);overflow:hidden}.doc-device-desktop{width:92%;min-height:280px;margin-left:auto}.doc-device-bar{height:34px;background:#1c2f40;display:flex;gap:7px;align-items:center;padding:0 13px}.doc-device-bar span{width:10px;height:10px;border-radius:999px;background:rgba(255,255,255,.52)}.doc-device-toolbar{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--bdr2);color:var(--pri)}.doc-device-toolbar em{font-style:normal;color:var(--txm);font-size:.9rem}.doc-device-table{padding:8px 12px}.doc-device-table div{display:grid;grid-template-columns:26px 1fr auto;gap:10px;align-items:center;padding:11px 9px;border-radius:10px;color:var(--tx2)}.doc-device-table div:nth-child(even){background:var(--surf2)}.doc-device-table i{color:var(--pri)}.doc-device-table small{color:var(--txm)}.doc-device-tablet,.doc-device-mobile{position:absolute;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--txm);background:#f8f5ef}.doc-device-tablet{left:0;bottom:8px;width:190px;height:142px}.doc-device-mobile{right:18px;bottom:-10px;width:94px;height:162px;border-radius:24px}.doc-device-tablet i,.doc-device-mobile i{display:block;font-size:42px;color:#a0a7b2;margin-bottom:9px}.doc-spec-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.doc-spec-card{background:var(--surf);border:1px solid var(--bdr);border-radius:16px;box-shadow:var(--sh0);padding:18px;display:grid;gap:8px}.doc-spec-card i{font-size:26px;color:var(--pri)}.doc-spec-card strong{font-size:1.15rem}.doc-spec-card span{color:var(--txm);font-size:.92rem}.doc-manager{display:flex;flex-direction:column;gap:14px}.doc-usage-card{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;background:var(--surf);border:1px solid var(--bdr);border-radius:14px;box-shadow:var(--sh0);padding:14px 16px}.doc-usage-card div:first-child{display:flex;gap:6px;align-items:baseline}.doc-usage-card span{color:var(--txm)}.doc-usage-bar{height:10px;background:var(--surf2);border:1px solid var(--bdr2);border-radius:999px;overflow:hidden}.doc-usage-bar span{display:block;height:100%;background:var(--pri);border-radius:999px;width:0}.doc-browser-head{align-items:flex-start}.doc-breadcrumbs{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:8px;color:var(--txm)}.doc-crumb{border:0;background:transparent;color:var(--pri);font-weight:700;cursor:pointer;padding:2px 0}.doc-crumb.active{color:var(--tx2);cursor:default}.doc-toolbar{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.doc-table-wrap{position:relative;min-height:420px;overflow:auto;padding-bottom:110px}.doc-table{width:100%;border-collapse:collapse}.doc-table tbody tr:nth-child(even){background:var(--surf2)}.doc-table td,.doc-table th{vertical-align:middle}.doc-type-chip{display:inline-flex;align-items:center;gap:8px;color:var(--tx2)}.doc-type-chip i{color:var(--pri);min-width:20px}.doc-name-btn{border:0;background:transparent;color:var(--tx);font-weight:400;cursor:pointer;text-align:left}.doc-name-btn:hover{color:var(--pri);text-decoration:underline}.doc-row-actions{display:flex;gap:6px;flex-wrap:wrap}.doc-drop-empty{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#a0a7b2;pointer-events:none}.doc-drop-empty i{font-size:50px;width:50px;height:50px;margin-bottom:8px}.doc-drop-empty span{font-weight:700}.doc-preview-modal{width:auto;max-width:96vw;max-height:96vh}.doc-preview-body{max-width:96vw;max-height:calc(96vh - 150px);display:flex;align-items:center;justify-content:center;overflow:auto;background:#f8f8f8;border-radius:12px}.doc-preview-image{max-width:96vw;max-height:calc(96vh - 170px);object-fit:contain}.doc-preview-frame{width:92vw;height:calc(96vh - 170px);border:0;background:#fff;border-radius:10px}.doc-preview-unsupported{display:grid;place-items:center;gap:12px;min-width:min(560px,90vw);min-height:260px;color:var(--tx2);text-align:center}.doc-preview-unsupported i{font-size:60px;color:var(--pri)}.doc-buy-summary{display:grid;grid-template-columns:auto 1fr;gap:10px 18px;background:var(--surf2);border:1px solid var(--bdr);border-radius:12px;padding:14px;margin-top:14px}.doc-buy-summary span{color:var(--txm)}
@media (max-width:1024px){.doc-hero-card{grid-template-columns:1fr}.doc-device-stage{min-height:300px}.doc-spec-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.doc-table-wrap{min-height:360px}}
@media (max-width:700px){.doc-hero-card{padding:20px;border-radius:18px}.doc-device-stage{min-height:250px}.doc-device-desktop{width:100%;min-height:230px}.doc-device-tablet{width:150px;height:112px}.doc-device-mobile{display:none}.doc-spec-grid{grid-template-columns:1fr}.doc-usage-card{grid-template-columns:1fr}.doc-browser-head{gap:12px}.doc-toolbar{width:100%;justify-content:stretch}.doc-toolbar .btn{flex:1 1 auto}.doc-table-wrap{min-height:330px}.doc-table{min-width:760px}.doc-preview-frame{width:94vw}.doc-preview-modal{width:96vw}}


/* Dokumenter landing page: forklarende indhold */
.doc-landing-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  gap: 14px;
}

.doc-info-card {
  background: var(--surf);
  border: 1px solid var(--bdr);
  border-radius: 18px;
  box-shadow: var(--sh0);
  padding: 20px;
}

.doc-info-head {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 16px;
}

.doc-info-icon {
  display: inline-grid;
  width: 42px;
  height: 42px;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 14px;
  background: var(--pril);
  color: var(--pri);
  font-size: 20px;
}

.doc-info-card h2 {
  margin: 0 0 5px;
  color: var(--tx);
  font-size: 1.18rem;
  line-height: 1.2;
}

.doc-info-card p {
  margin: 0;
  color: var(--txm);
  line-height: 1.45;
}

.doc-flow-list {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.doc-flow-list li {
  display: grid;
  grid-template-columns: 32px 1fr;
  gap: 12px;
  align-items: start;
  padding: 12px;
  border: 1px solid var(--bdr2);
  border-radius: 14px;
  background: var(--surf2);
}

.doc-flow-list li > span {
  display: inline-grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border-radius: 999px;
  background: var(--pri);
  color: #fff;
  font-weight: 800;
  font-size: .88rem;
}

.doc-flow-list strong {
  display: block;
  margin-bottom: 3px;
  color: var(--tx);
  line-height: 1.2;
}

.doc-flow-list p {
  font-size: .92rem;
}

.doc-example-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.doc-example-grid span,
.doc-included-list span {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  border: 1px solid var(--bdr2);
  border-radius: 999px;
  background: var(--surf2);
  color: var(--tx2);
  font-weight: 700;
}

.doc-example-grid span {
  padding: 10px 12px;
}

.doc-example-grid i,
.doc-included-list i {
  color: var(--pri);
  flex: 0 0 auto;
}

.doc-included-card {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 20px;
  align-items: center;
  background: linear-gradient(135deg, var(--surf) 0%, #faf8f4 100%);
}

.doc-included-copy {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

.doc-included-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.doc-included-list span {
  padding: 11px 13px;
}

@media (max-width: 1024px) {
  .doc-landing-grid,
  .doc-included-card {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .doc-info-card {
    padding: 16px;
    border-radius: 16px;
  }

  .doc-info-head,
  .doc-included-copy {
    gap: 11px;
  }

  .doc-info-icon {
    width: 38px;
    height: 38px;
    border-radius: 12px;
    font-size: 18px;
  }

  .doc-example-grid,
  .doc-included-list {
    grid-template-columns: 1fr;
  }

  .doc-flow-list li {
    grid-template-columns: 30px 1fr;
    padding: 11px;
  }

  .doc-flow-list li > span {
    width: 30px;
    height: 30px;
  }
}


/* Dokumentarkiv: fuldhøjde og drag/drop-feedback */
body.page-document-archive .vc {
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
  padding-bottom: 22px;
}

body.page-document-archive .doc-manager {
  flex: 1 1 auto;
  min-height: 0;
}

body.page-document-archive .doc-browser-card {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

body.page-document-archive .doc-table-wrap {
  flex: 1 1 auto;
  min-height: 0;
  padding-bottom: 98px;
}

body.page-document-archive .doc-table-wrap.is-dragging {
  overflow: hidden;
}

.doc-drag-overlay {
  position: absolute;
  inset: 10px;
  z-index: 12;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  opacity: 0;
  transform: scale(.985);
  transition: opacity .18s ease, transform .18s ease;
}

.doc-drag-overlay::before {
  content: "";
  position: absolute;
  inset: 0;
  border: 3px dashed rgba(30,73,118,.62);
  border-radius: 18px;
  background: rgba(232,238,247,.88);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.86), 0 18px 54px rgba(28,47,64,.16);
  animation: docDropBorderPulse 1.25s ease-in-out infinite;
}

.doc-drag-overlay-box {
  position: relative;
  z-index: 1;
  display: flex;
  min-width: min(420px, calc(100% - 48px));
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 28px 34px;
  border: 1px solid rgba(30,73,118,.18);
  border-radius: 18px;
  background: rgba(255,255,255,.92);
  color: var(--tx);
  text-align: center;
  box-shadow: 0 20px 60px rgba(28,47,64,.16);
  animation: docDropFloat 1.25s ease-in-out infinite;
}

.doc-drag-overlay-box i {
  display: grid;
  width: 62px;
  height: 62px;
  place-items: center;
  border-radius: 999px;
  background: var(--pri);
  color: #fff;
  font-size: 30px;
  box-shadow: 0 10px 28px rgba(30,73,118,.26);
}

.doc-drag-overlay-box strong {
  font-size: 1.18rem;
  line-height: 1.1;
}

.doc-drag-overlay-box span {
  color: var(--txm);
  font-weight: 700;
}

.doc-table-wrap.is-dragging .doc-drag-overlay {
  opacity: 1;
  transform: scale(1);
}

.doc-table-wrap.is-dragging .doc-drop-empty {
  opacity: 0;
}

@keyframes docDropFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-7px); }
}

@keyframes docDropBorderPulse {
  0%, 100% { border-color: rgba(30,73,118,.42); }
  50% { border-color: rgba(30,73,118,.92); }
}

@media (max-width: 700px) {
  body.page-document-archive .vc {
    padding-bottom: 14px;
  }

  body.page-document-archive .doc-table-wrap {
    padding-bottom: 86px;
  }

  .doc-drag-overlay {
    inset: 8px;
  }

  .doc-drag-overlay-box {
    min-width: min(320px, calc(100% - 28px));
    padding: 22px 20px;
  }

  .doc-drag-overlay-box i {
    width: 54px;
    height: 54px;
    font-size: 26px;
  }
}

/* Dokumentarkiv: preview-vindue med fil-header og værktøjslinje */
body.page-documents .mo-box,
body.page-document-archive .mo-box {
  width: min(620px, 96vw);
  max-height: 92vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--surf);
  border: 1px solid rgba(28,47,64,.12);
  border-radius: 18px;
  box-shadow: 0 26px 80px rgba(28,47,64,.28);
}

body.page-documents .mo-head,
body.page-document-archive .mo-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 16px 18px;
  border-bottom: 1px solid var(--bdr);
}

body.page-documents .mo-head h3,
body.page-document-archive .mo-head h3 {
  margin: 0;
  font-size: 1.08rem;
  color: var(--tx);
}

body.page-documents .mo-body,
body.page-document-archive .mo-body {
  padding: 18px;
  overflow: auto;
}

body.page-documents .mo-foot,
body.page-document-archive .mo-foot {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 14px 18px;
  border-top: 1px solid var(--bdr);
  background: var(--surf2);
}

body.page-documents .mo-close,
body.page-document-archive .mo-close {
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--txm);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: var(--t);
}

body.page-documents .mo-close:hover,
body.page-document-archive .mo-close:hover {
  background: var(--bg);
  color: var(--tx);
}

/* Dokumentarkiv: konfliktliste i overskrivningsmodal */
body.page-document-archive #doc-overwrite-list {
  display: grid;
  gap: 8px;
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
}

body.page-document-archive #doc-overwrite-list li {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  color: var(--tx);
  font-weight: 700;
  line-height: 1.35;
}

body.page-document-archive #doc-overwrite-list li i {
  flex: 0 0 auto;
  width: 18px;
  color: var(--txm);
  text-align: center;
}

body.page-document-archive #doc-overwrite-list li span {
  min-width: 0;
  overflow-wrap: anywhere;
}

/* Dokumentarkiv: hele filrækken åbner preview */
body.page-document-archive #documents-table tbody tr[data-kind="file"] {
  cursor: pointer;
}

body.page-document-archive #documents-table tbody tr[data-kind="file"]:hover {
  background: rgba(30, 73, 118, .06);
}

body.page-document-archive #documents-table tbody tr[data-kind="file"]:focus-visible {
  outline: 2px solid rgba(30, 73, 118, .58);
  outline-offset: -2px;
}

body.page-document-archive .doc-preview-modal {
  width: auto;
  min-width: min(520px, 96vw);
  max-width: 96vw;
  max-height: 96vh;
  border-radius: 14px;
}

.doc-preview-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-width: 0;
  padding: 12px 14px 12px 16px;
  border-bottom: 1px solid var(--bdr);
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(250,250,250,.96));
}

.doc-preview-file-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.doc-preview-type-icon {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: var(--pri);
  flex: 0 0 auto;
  box-shadow: 0 8px 18px rgba(28,47,64,.14);
}

.doc-preview-kind-image { background: #5b91c8; }
.doc-preview-kind-pdf { background: #e65045; }
.doc-preview-kind-text { background: #4d7fc6; }
.doc-preview-kind-other { background: #6f7782; }

.doc-preview-title-wrap {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.doc-preview-title-wrap h3 {
  margin: 0;
  max-width: min(56vw, 680px);
  color: var(--tx);
  font-size: 1rem;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.doc-preview-title-wrap span {
  color: var(--txm);
  font-size: .82rem;
  font-weight: 700;
}

.doc-preview-head-actions {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
}

.doc-preview-size {
  color: var(--txm);
  font-size: .82rem;
  font-weight: 700;
  white-space: nowrap;
}

.doc-preview-close {
  width: 34px;
  height: 34px;
  font-size: .95rem;
}

.doc-preview-body {
  position: relative;
  max-width: 96vw;
  max-height: calc(96vh - 128px);
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: #f4f6f8;
  border-radius: 0;
}

body.page-document-archive .doc-preview-modal.doc-preview-modal-image {
  width: fit-content;
  min-width: min(420px, 96vw);
  max-width: 96vw;
}

.doc-preview-modal-image .doc-preview-body {
  width: auto;
  height: auto;
  max-width: calc(96vw - 2px);
  max-height: calc(96vh - 128px);
  background: #fff;
}

.doc-preview-body-image {
  width: auto;
  height: auto;
  max-width: calc(96vw - 2px);
  max-height: calc(96vh - 128px);
  padding: 0;
  background: #fff;
}

.doc-preview-body-pdf,
.doc-preview-body-text,
.doc-preview-body-other {
  width: min(1080px, calc(96vw - 2px));
  min-height: min(680px, calc(96vh - 142px));
}

.doc-preview-image {
  display: block;
  width: auto;
  height: auto;
  max-width: min(100%, calc(96vw - 2px));
  max-height: calc(96vh - 128px);
  object-fit: contain;
}

.doc-preview-nav {
  position: absolute;
  top: 50%;
  z-index: 4;
  width: 46px;
  height: 58px;
  border: 1px solid rgba(30, 73, 118, .14);
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transform: translateY(-50%);
  background: rgba(255,255,255,.93);
  color: var(--pri);
  box-shadow: 0 12px 26px rgba(28,47,64,.18);
  cursor: pointer;
  transition: transform .16s ease, background .16s ease, opacity .16s ease, box-shadow .16s ease;
}

.doc-preview-nav:hover,
.doc-preview-nav:focus-visible {
  background: #fff;
  transform: translateY(-50%) scale(1.04);
  box-shadow: 0 16px 32px rgba(28,47,64,.22);
  outline: none;
}

.doc-preview-nav-prev {
  left: 14px;
}

.doc-preview-nav-next {
  right: 14px;
}

.doc-preview-nav[disabled] {
  opacity: .34;
  cursor: default;
  transform: translateY(-50%);
  box-shadow: 0 6px 14px rgba(28,47,64,.10);
}

.doc-preview-nav[hidden] {
  display: none;
}

.doc-preview-frame {
  width: 100%;
  height: calc(96vh - 142px);
  min-height: 420px;
  border: 0;
  background: #fff;
}

.doc-preview-frame-text {
  background: #fff;
}

.doc-preview-unsupported {
  display: grid;
  place-items: center;
  gap: 12px;
  max-width: min(560px, 90vw);
  min-height: 280px;
  margin: auto;
  padding: 34px 22px;
  color: var(--tx2);
  text-align: center;
}

.doc-preview-unsupported-icon {
  width: 72px;
  height: 72px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 18px;
  background: var(--pril);
  color: var(--pri);
  font-size: 34px;
}

.doc-preview-toolbar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 54px;
  padding: 9px 14px;
  border-top: 1px solid var(--bdr);
  background: rgba(255,255,255,.98);
}

.doc-preview-tool {
  min-width: 42px;
  min-height: 36px;
  border: 0;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 12px;
  background: transparent;
  color: var(--pri);
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: var(--t);
}

.doc-preview-tool:hover {
  background: var(--pril);
  color: var(--pri);
  text-decoration: none;
}

.doc-preview-tool[hidden] {
  display: none;
}

@media (max-width: 700px) {
  body.page-document-archive .doc-preview-modal {
    width: 96vw;
    min-width: 0;
  }

  .doc-preview-head {
    padding: 10px 10px 10px 12px;
    gap: 10px;
  }

  .doc-preview-type-icon {
    width: 30px;
    height: 30px;
  }

  .doc-preview-title-wrap h3 {
    max-width: calc(96vw - 150px);
    font-size: .94rem;
  }

  .doc-preview-head-actions {
    gap: 8px;
  }

  .doc-preview-size {
    display: none;
  }

  .doc-preview-toolbar {
    justify-content: space-between;
    gap: 4px;
  }

  .doc-preview-tool {
    flex: 1 1 auto;
    padding: 8px 6px;
    font-size: .86rem;
  }

  .doc-preview-frame {
    min-height: 340px;
    height: calc(96vh - 132px);
  }

  body.page-document-archive .doc-preview-modal.doc-preview-modal-image {
    width: fit-content;
    min-width: min(320px, 96vw);
    max-width: 96vw;
  }

  .doc-preview-body-image {
    width: auto;
    height: auto;
    max-width: calc(96vw - 2px);
    max-height: calc(96vh - 124px);
  }

  .doc-preview-modal-image .doc-preview-image {
    max-height: calc(96vh - 124px);
  }


  .doc-preview-nav {
    width: 40px;
    height: 50px;
    font-size: .92rem;
  }

  .doc-preview-nav-prev {
    left: 8px;
  }

  .doc-preview-nav-next {
    right: 8px;
  }
}

/* Dokumentarkiv: markeringskolonne, fælles handlinger og højrekliksmenu */
body.page-document-archive #documents-table th.doc-select-col,
body.page-document-archive #documents-table td.doc-select-cell {
  width: 58px;
  min-width: 58px;
  max-width: 58px;
  text-align: center;
}

body.page-document-archive #documents-table th,
body.page-document-archive #documents-table td {
  padding-top: 8px;
  padding-bottom: 8px;
}

body.page-document-archive #documents-table td.doc-select-cell {
  padding: 0;
  cursor: pointer;
}

body.page-document-archive .doc-select-hit {
  width: 100%;
  min-height: 100%;
  padding: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  cursor: pointer;
}

body.page-document-archive .doc-file-check,
body.page-document-archive .doc-select-all-check {
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: var(--pri);
  cursor: pointer;
  vertical-align: middle;
}

body.page-document-archive .doc-select-all-check:disabled {
  cursor: not-allowed;
  opacity: .45;
}

body.page-document-archive #documents-table tbody tr.is-selected td {
  background: var(--pril);
}

body.page-document-archive #documents-table tbody tr.is-selected:hover td {
  background: #dfe8f4;
}

body.page-document-archive .doc-selection-action[disabled] {
  opacity: .48;
  cursor: not-allowed;
  pointer-events: none;
}

body.page-document-archive .doc-context-menu {
  position: fixed;
  z-index: 5000;
  min-width: 180px;
  display: grid;
  gap: 2px;
  padding: 7px;
  border: 1px solid var(--bdr);
  border-radius: 12px;
  background: var(--surf);
  box-shadow: 0 18px 50px rgba(28,47,64,.22);
}

body.page-document-archive .doc-context-menu[hidden] {
  display: none;
}

body.page-document-archive .doc-context-menu button {
  width: 100%;
  border: 0;
  border-radius: 9px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  background: transparent;
  color: var(--tx);
  font-weight: 700;
  text-align: left;
  cursor: pointer;
}

body.page-document-archive .doc-context-menu button:hover,
body.page-document-archive .doc-context-menu button:focus-visible {
  background: var(--bg);
  outline: none;
}

body.page-document-archive .doc-context-menu button i {
  width: 18px;
  color: var(--pri);
  text-align: center;
}

body.page-document-archive .doc-context-menu button.danger,
body.page-document-archive .doc-context-menu button.danger i {
  color: var(--dan);
}

body.page-document-archive .doc-delete-list {
  display: grid;
  gap: 8px;
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
}

body.page-document-archive .doc-delete-list li {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  color: var(--tx);
  font-weight: 700;
}

body.page-document-archive .doc-delete-list li i {
  flex: 0 0 auto;
  width: 18px;
  color: var(--txm);
  text-align: center;
}

body.page-document-archive .doc-delete-list li span {
  min-width: 0;
  overflow-wrap: anywhere;
}

body.page-document-archive .doc-delete-note,
body.page-document-archive .doc-delete-counts {
  margin: 10px 0 0;
  color: var(--txm);
  font-weight: 700;
}

@media (max-width: 700px) {
  body.page-document-archive #documents-table th.doc-select-col,
  body.page-document-archive #documents-table td.doc-select-cell {
    width: 54px;
    min-width: 54px;
    max-width: 54px;
  }

  body.page-document-archive .doc-context-menu {
    min-width: 168px;
  }
}

/* Dokumentarkiv: download og drag-out */
body.page-document-archive #documents-table tbody tr[draggable="true"] {
  cursor: grab;
}

body.page-document-archive #documents-table tbody tr[draggable="true"]:active {
  cursor: grabbing;
}

/* Dokumentarkiv: intern drag/drop og kompakt drag-symbol */
body.page-document-archive #documents-table tbody tr.is-drag-source td {
  opacity: .72;
}

body.page-document-archive #documents-table tbody tr.is-drop-target td {
  background: #dfe8f4 !important;
  box-shadow: inset 0 0 0 2px rgba(30,73,118,.38);
}

body.page-document-archive #documents-table tbody tr.is-drop-target .doc-name-btn::after {
  content: "  Slip her";
  color: var(--pri);
  font-size: .86rem;
  font-weight: 800;
}

body.page-document-archive #documents-table tbody tr.is-drop-denied td {
  background: #f7e7e2 !important;
  box-shadow: inset 0 0 0 2px rgba(180,70,43,.34);
}

body.page-document-archive #documents-table tbody tr.is-drop-denied .doc-name-btn::after {
  content: "  Kan ikke flyttes hertil";
  color: var(--dan);
  font-size: .86rem;
  font-weight: 800;
}

.doc-drag-image {
  position: fixed;
  top: -120px;
  left: -120px;
  z-index: 99999;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 13px;
  border: 1px solid rgba(30,73,118,.26);
  border-radius: 999px;
  background: var(--pri);
  color: #fff;
  box-shadow: 0 14px 34px rgba(28,47,64,.24);
  font-weight: 800;
  white-space: nowrap;
  pointer-events: none;
}

.doc-drag-image i {
  font-size: 16px;
}

.doc-drag-image span {
  font-size: .9rem;
}

/* Dokumentarkiv: Windows-lignende højrekliksmenu og udklipsholder */
body.page-document-archive .doc-context-separator {
  height: 1px;
  margin: 4px 2px;
  background: var(--bdr2);
}

body.page-document-archive .doc-context-menu button:disabled,
body.page-document-archive .doc-context-menu button[aria-disabled="true"] {
  opacity: .45;
  cursor: not-allowed;
}

body.page-document-archive .doc-context-menu button:disabled:hover,
body.page-document-archive .doc-context-menu button[aria-disabled="true"]:hover,
body.page-document-archive .doc-context-menu button:disabled:focus-visible,
body.page-document-archive .doc-context-menu button[aria-disabled="true"]:focus-visible {
  background: transparent;
}

body.page-document-archive #documents-table tbody tr.is-cut td {
  opacity: .55;
}

body.page-document-archive #documents-table tbody tr.is-cut .doc-name-btn {
  font-style: italic;
}

/* Dokumentarkiv: markering med trækrude som i filhåndtering */
body.page-document-archive .doc-table-wrap.is-marquee-selecting {
  cursor: crosshair;
  user-select: none;
}

body.page-document-archive .doc-table-wrap.is-marquee-selecting #documents-table,
body.page-document-archive .doc-table-wrap.is-marquee-selecting #documents-table * {
  user-select: none;
}

body.page-document-archive .doc-selection-marquee {
  position: absolute;
  z-index: 30;
  display: block;
  box-sizing: border-box;
  border: 1px solid rgba(30, 73, 118, .72);
  border-radius: 4px;
  background: rgba(30, 73, 118, .16);
  box-shadow: 0 0 0 1px rgba(255,255,255,.42) inset;
  pointer-events: none;
}

body.page-document-archive .doc-selection-marquee[hidden] {
  display: none;
}

body.is-doc-marquee-selecting {
  cursor: crosshair;
  user-select: none;
}

/* Dokumentarkiv - Stifinder-lignende udvidelser */
body.page-document-archive .doc-browser-layout {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 14px;
  align-items: stretch;
}
body.page-document-archive .doc-browser-main { min-width: 0; }
body.page-document-archive .doc-folder-panel {
  border: 1px solid #d7e0ec;
  border-radius: 14px;
  background: #f8fbff;
  padding: 10px;
  min-height: 520px;
  overflow: auto;
}
body.page-document-archive .doc-folder-panel-head,
body.page-document-archive .doc-pinned-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  color: #2c405b;
  margin: 4px 4px 10px;
}
body.page-document-archive .doc-pinned-title {
  margin-top: 14px;
  font-size: .85rem;
  color: #66788f;
}
body.page-document-archive .doc-tree-item {
  width: 100%;
  min-height: 34px;
  display: flex;
  align-items: center;
  gap: 8px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  padding: 7px 8px 7px calc(8px + (var(--doc-tree-depth, 0) * 14px));
  color: #26384f;
  cursor: pointer;
  text-align: left;
}
body.page-document-archive .doc-tree-item:hover,
body.page-document-archive .doc-tree-item.active,
body.page-document-archive .doc-tree-item.is-drop-target {
  background: #e8f1ff;
  color: #174d93;
}
body.page-document-archive .doc-tree-item.is-drop-denied { background: #fff0f0; color: #a13232; }
body.page-document-archive .doc-tree-item i { width: 18px; text-align: center; }
body.page-document-archive .doc-search-box {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-width: 230px;
  min-height: 34px;
  padding: 0 10px;
  border: 1px solid #c8d5e5;
  border-radius: 999px;
  background: #fff;
}
body.page-document-archive .doc-search-box input {
  border: 0;
  outline: 0;
  background: transparent;
  min-width: 0;
  width: 190px;
}
body.page-document-archive .doc-name-favorite,
body.page-document-archive .doc-version-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 6px;
  color: #dfaa16;
  font-size: .76rem;
}
body.page-document-archive .doc-version-badge { color: #426ea8; }
body.page-document-archive .doc-upload-queue {
  margin: 10px 12px;
  padding: 10px;
  border: 1px solid #d7e0ec;
  border-radius: 12px;
  background: #f8fbff;
}
body.page-document-archive .doc-upload-queue-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  color: #2c405b;
}
body.page-document-archive .doc-upload-queue-row {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 8px;
  align-items: center;
  padding: 6px 0;
}
body.page-document-archive .doc-upload-queue-row span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.page-document-archive .doc-upload-queue-row small { color: #66788f; }
body.page-document-archive .doc-upload-progress {
  grid-column: 1 / -1;
  height: 5px;
  border-radius: 999px;
  background: #dce7f5;
  overflow: hidden;
}
body.page-document-archive .doc-upload-progress i {
  display: block;
  height: 100%;
  background: #2f80d0;
}
body.page-document-archive .doc-kv {
  display: grid;
  gap: 8px;
  margin: 0;
}
body.page-document-archive .doc-kv div {
  display: grid;
  grid-template-columns: 150px minmax(0,1fr);
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px solid #edf1f6;
}
body.page-document-archive .doc-kv dt { font-weight: 700; color: #40536d; }
body.page-document-archive .doc-kv dd { margin: 0; overflow-wrap: anywhere; }
body.page-document-archive .doc-modal-list {
  display: grid;
  gap: 8px;
}
body.page-document-archive .doc-modal-list-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 10px;
  border: 1px solid #e0e7f1;
  border-radius: 10px;
  background: #fff;
}
body.page-document-archive .doc-modal-list-row small {
  display: block;
  margin-top: 3px;
  color: #718198;
}
body.page-document-archive .doc-pill {
  display: inline-flex;
  margin-left: 6px;
  padding: 2px 7px;
  border-radius: 999px;
  background: #e8f1ff;
  color: #1d5d9c;
  font-size: .75rem;
}
body.page-document-archive .doc-trash-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 12px;
}
body.page-document-archive .doc-trash-modal,
body.page-document-archive .doc-activity-modal { max-width: min(760px, 94vw); }
@media (max-width: 1024px) {
  body.page-document-archive .doc-browser-layout { grid-template-columns: 1fr; }
  body.page-document-archive .doc-folder-panel { min-height: auto; max-height: 280px; }
  body.page-document-archive .doc-search-box { width: 100%; min-width: 0; }
  body.page-document-archive .doc-search-box input { width: 100%; }
}
@media (max-width: 700px) {
  body.page-document-archive .doc-kv div { grid-template-columns: 1fr; gap: 4px; }
  body.page-document-archive .doc-modal-list-row { align-items: flex-start; flex-direction: column; }
}
body.page-document-archive .doc-tree-depth-0 { padding-left: 8px; }
body.page-document-archive .doc-tree-depth-1 { padding-left: 22px; }
body.page-document-archive .doc-tree-depth-2 { padding-left: 36px; }
body.page-document-archive .doc-tree-depth-3 { padding-left: 50px; }
body.page-document-archive .doc-tree-depth-4 { padding-left: 64px; }
body.page-document-archive .doc-tree-depth-5 { padding-left: 78px; }
body.page-document-archive .doc-tree-depth-6 { padding-left: 92px; }
body.page-document-archive .doc-tree-depth-7 { padding-left: 106px; }
body.page-document-archive .doc-tree-depth-8 { padding-left: 120px; }

/* Kommunikation: Dokumentarkiv-knappen skal have samme indvendige luft som Vælg filer. */
body.page-communication #btn-pick-archive-files {
  width: auto;
  min-width: max-content;
  white-space: nowrap;
  padding-left: 14px;
  padding-right: 14px;
}

/* Dokumentarkiv: centrér tom-område upload-hint i den ledige plads under filerne. */
body.page-document-archive .doc-drop-empty {
  top: var(--doc-drop-empty-y, 50%);
  bottom: auto;
  left: 50%;
  width: max-content;
  max-width: calc(100% - 40px);
  min-height: 76px;
  transform: translate(-50%, -50%);
  text-align: center;
  z-index: 1;
}

body.page-document-archive .doc-drop-empty.is-hidden {
  display: none;
}

/* Dokumentarkiv: venstre mappetræ skal følge hele arkivvinduets højde på desktop. */
body.page-document-archive .doc-browser-layout {
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
}

body.page-document-archive .doc-browser-main {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

body.page-document-archive .doc-folder-panel {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}

body.page-document-archive .doc-pinned-folders {
  flex: 0 0 auto;
}

body.page-document-archive .doc-folder-tree {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}

@media (max-width: 1024px) {
  body.page-document-archive .doc-browser-layout {
    height: auto;
  }

  body.page-document-archive .doc-folder-panel {
    overflow: auto;
  }
}

/* Dokumentarkiv picker in Email: same file-browser layout as Dokumenter, without archive toolbar/drop prompt */
body.page-communication .comm-archive-modal {
  width: min(1320px, calc(100vw - 32px));
  max-width: 1320px;
  height: min(96dvh, 900px);
  max-height: 96dvh;
}

body.page-communication .comm-archive-modal-body {
  display: flex;
  min-height: 0;
  overflow: hidden;
  padding: 14px;
}

body.page-communication .comm-archive-browser {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 14px;
  width: 100%;
  min-height: 0;
}

body.page-communication .comm-archive-folder-panel {
  min-height: 0;
  overflow: auto;
  border: 1px solid #d7e0ec;
  border-radius: 14px;
  background: #f8fbff;
  padding: 10px;
}

body.page-communication .comm-archive-folder-panel-head,
body.page-communication .comm-archive-pinned-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  color: #2c405b;
  margin: 4px 4px 10px;
}

body.page-communication .comm-archive-pinned-title {
  margin-top: 14px;
  font-size: .85rem;
  color: #66788f;
}

body.page-communication .comm-archive-tree-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

body.page-communication .comm-archive-tree-list .comm-archive-tree-list {
  margin-left: 14px;
}

body.page-communication .comm-archive-tree-list li {
  margin: 0;
  padding: 0;
}

body.page-communication .comm-archive-tree-item {
  width: 100%;
  min-height: 34px;
  display: flex;
  align-items: center;
  gap: 8px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  padding: 7px 8px;
  color: #26384f;
  cursor: pointer;
  text-align: left;
}

body.page-communication .comm-archive-tree-item:hover,
body.page-communication .comm-archive-tree-item.active {
  background: #e8f1ff;
  color: #174d93;
}

body.page-communication .comm-archive-tree-item i {
  width: 18px;
  text-align: center;
}

body.page-communication .comm-archive-tree-item span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.page-communication .comm-archive-empty-note {
  padding: 8px 6px;
}

body.page-communication .comm-archive-main {
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

body.page-communication .comm-archive-crumbs {
  flex-shrink: 0;
  min-height: 30px;
  margin: 0;
  padding: 2px 2px 0;
}

body.page-communication .comm-archive-table-wrap {
  flex: 1;
  min-height: 0;
  overflow: auto;
  border: 1px solid var(--bdr);
  border-radius: 14px;
  background: var(--surf);
}

body.page-communication .comm-archive-table {
  width: 100%;
  border-collapse: collapse;
}

body.page-communication .comm-archive-table th,
body.page-communication .comm-archive-table td {
  vertical-align: middle;
}

body.page-communication .comm-archive-select-col,
body.page-communication .comm-archive-select-cell {
  width: 44px;
  min-width: 44px;
  max-width: 44px;
  text-align: center;
}

body.page-communication .comm-archive-select-hit {
  min-height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

body.page-communication .comm-archive-file-check,
body.page-communication #comm-archive-select-all {
  width: 16px;
  height: 16px;
  accent-color: var(--pri);
  cursor: pointer;
}

body.page-communication .comm-archive-file-name {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-weight: 400;
  color: var(--tx);
}

body.page-communication .comm-archive-file-name i,
body.page-communication .comm-archive-table .doc-type-chip i {
  color: var(--pri);
}

body.page-communication .comm-archive-row[data-kind="folder"] {
  cursor: pointer;
}

body.page-communication .comm-archive-row[data-kind="folder"]:hover td,
body.page-communication .comm-archive-row[data-kind="file"]:hover td {
  background: #f5f8fc;
}

body.page-communication .comm-archive-row.is-selected td {
  background: #e8f1ff;
}

body.page-communication .comm-archive-footer #comm-archive-selected-count {
  margin-right: auto;
}

body.page-communication .comm-archive-footer .btn {
  min-width: 120px;
  justify-content: center;
}

@media (max-width: 900px) {
  body.page-communication .comm-archive-modal {
    width: calc(100vw - 18px);
    height: calc(100dvh - 18px);
    max-height: calc(100dvh - 18px);
  }

  body.page-communication .comm-archive-modal-body {
    padding: 10px;
  }

  body.page-communication .comm-archive-browser {
    grid-template-columns: 1fr;
  }

  body.page-communication .comm-archive-folder-panel {
    max-height: 190px;
  }

  body.page-communication .comm-archive-table-wrap {
    min-height: 280px;
  }
}

/* ─── Dokumentarkiv landing page: professionel hero med produktvisual ───── */
.docp {
  min-height: calc(100vh - 120px);
  display: flex;
  flex-direction: column;
  gap: 18px;
  overflow: hidden;
}

.docp *,
.docp *::before,
.docp *::after {
  box-sizing: border-box;
}

.docp h1 {
  margin: 0;
  color: var(--tx);
  font-size: clamp(2rem, 4.2vw, 4.2rem);
  line-height: .98;
  letter-spacing: -.055em;
}

.docp p {
  margin: 0;
  color: var(--txm);
  font-size: clamp(.98rem, 1.25vw, 1.12rem);
  line-height: 1.58;
}

.docp figure {
  margin: 0;
}

.docp-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: max-content;
  max-width: 100%;
  padding: 7px 12px;
  color: var(--pri);
  background: var(--pril);
  border: 1px solid rgba(47, 75, 116, .16);
  border-radius: 999px;
  font-weight: 850;
  line-height: 1.15;
}

.docp-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
  min-width: 0;
}

.docp-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 8px;
}

.docp-action {
  min-width: 132px;
  justify-content: center;
  text-align: center;
}

.docp-demo-action-form {
  display: inline-flex;
  margin: 0;
}

.docp-hero {
  position: relative;
  display: grid;
  gap: 28px;
  align-items: center;
  border: 1px solid var(--bdr);
  border-radius: 28px;
  box-shadow: var(--sh);
  overflow: hidden;
}

.docp-hero--split {
  grid-template-columns: minmax(0, .82fr) minmax(440px, 1.18fr);
  padding: clamp(24px, 4vw, 52px);
  background:
    radial-gradient(circle at 84% 12%, rgba(47, 75, 116, .14), transparent 34%),
    linear-gradient(135deg, #fff 0%, #faf8f4 100%);
}

.docp-visual {
  min-width: 0;
}

.docp-visual--float {
  position: relative;
  min-height: 420px;
}

.docp-laptop {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  min-width: 0;
}

.docp-laptop img {
  display: block;
  width: min(80%, 688px);
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 24px 48px rgba(28, 47, 64, .2));
}

.docp-visual--float .docp-laptop {
  position: absolute;
  inset: -34px -76px -42px -20px;
}

.docp-benefits {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr);
  gap: 42px;
  padding: clamp(28px, 3.6vw, 42px);
  background:
    radial-gradient(circle at 91% -12%, rgba(70, 104, 190, .13), transparent 36%),
    linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(246, 249, 255, .98));
  border: 1px solid rgba(47, 75, 116, .12);
  border-radius: 30px;
  box-shadow: var(--sh);
  overflow: hidden;
}

.docp-benefits-copy,
.docp-benefits-details {
  position: relative;
  z-index: 1;
  min-width: 0;
}

.docp-benefits h2 {
  margin: 0 0 26px;
  color: var(--tx);
  font-size: clamp(1.35rem, 2.1vw, 1.9rem);
  line-height: 1.16;
  letter-spacing: -.025em;
}

.docp-benefit-list {
  display: grid;
  gap: 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.docp-benefit-list li {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}

.docp-benefit-list i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  margin-top: 1px;
  color: #fff;
  background: var(--tx);
  border-radius: 999px;
  font-size: .8rem;
}

.docp-benefit-list strong {
  display: block;
  margin-bottom: 5px;
  color: var(--tx);
  font-size: 1.08rem;
}

.docp-benefit-list span {
  display: block;
  color: var(--txm);
  font-size: 1rem;
  line-height: 1.55;
}

.docp-benefit-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.docp-benefit-grid article {
  min-width: 0;
  min-height: 145px;
  padding: 24px;
  background: rgba(255, 255, 255, .74);
  border: 1px solid rgba(47, 75, 116, .12);
  border-radius: 26px;
  box-shadow: 0 12px 30px rgba(29, 49, 92, .04);
}

.docp-benefit-grid h3 {
  margin: 0 0 12px;
  color: var(--tx);
  font-size: 1.08rem;
  line-height: 1.25;
}

.docp-benefit-grid p {
  color: var(--txm);
  font-size: 1rem;
  line-height: 1.58;
}

.docp-benefit-grid p strong {
  color: var(--tx);
  font-weight: 800;
}

.docp-benefit-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}

.docp-benefit-pills span {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 44px;
  padding: 10px 16px;
  color: #485477;
  background: rgba(255, 255, 255, .82);
  border: 1px solid rgba(47, 75, 116, .12);
  border-radius: 999px;
  box-shadow: 0 8px 20px rgba(29, 49, 92, .04);
  font-weight: 750;
  line-height: 1.1;
}

.docp-benefit-pills i {
  color: var(--tx);
  font-size: 1.05rem;
}

@media (max-width: 1024px) {
  .docp {
    min-height: 0;
  }

  .docp-hero--split {
    grid-template-columns: 1fr;
  }

  .docp-visual--float {
    min-height: 360px;
  }

  .docp-visual--float .docp-laptop {
    inset: -22px -36px -30px;
  }

  .docp-benefits {
    grid-template-columns: 1fr;
    gap: 26px;
  }
}

@media (max-width: 700px) {
  .docp {
    gap: 14px;
  }

  .docp h1 {
    font-size: clamp(2rem, 11vw, 2.75rem);
  }

  .docp-hero {
    border-radius: 22px;
  }

  .docp-hero--split {
    padding: 20px;
  }

  .docp-visual--float {
    min-height: 230px;
  }

  .docp-visual--float .docp-laptop {
    inset: -4px -22px -18px;
  }

  .docp-benefits {
    padding: 20px;
    border-radius: 20px;
  }

  .docp-benefit-list {
    gap: 18px;
  }

  .docp-benefit-list li {
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 12px;
  }

  .docp-benefit-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .docp-benefit-grid article {
    min-height: 0;
    padding: 18px;
    border-radius: 18px;
  }

  .docp-benefit-pills {
    gap: 9px;
    margin-top: 18px;
  }

  .docp-benefit-pills span {
    min-height: 40px;
    padding: 9px 12px;
  }

  .docp-action {
    width: 100%;
  }

  .docp-demo-action-form {
    width: 100%;
  }
}

/* Dokumentarkiv: Papirkurv bruger samme browser-base som Dokumentarkiv og Email-vælgeren. */
body.page-document-archive .doc-trash-modal {
  width: min(1320px, calc(100vw - 32px));
  max-width: 1320px;
  height: min(96dvh, 900px);
  max-height: min(96dvh, 900px);
  gap: 14px;
  align-items: stretch;
  min-height: 0;
}

body.page-document-archive .doc-trash-body {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

body.page-document-archive .doc-trash-browser {
  flex: 1 1 auto;
  min-height: 0;
}

body.page-document-archive .doc-trash-browser .doc-folder-panel {
  min-height: 0;
}

body.page-document-archive .doc-trash-browser .doc-table-wrap {
  border: 1px solid var(--bdr);
  border-radius: 14px;
  background: var(--surf);
  padding-bottom: 0;
}

body.page-document-archive .doc-trash-table {
  min-width: 760px;
}

body.page-document-archive .doc-trash-table td.doc-select-cell {
  padding: 0;
  cursor: pointer;
}

body.page-document-archive .doc-trash-table tbody tr.is-selected td {
  background: var(--pril);
}

body.page-document-archive .doc-trash-table tbody tr.is-selected:hover td {
  background: #dfe8f4;
}

body.page-document-archive .doc-trash-name {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  max-width: 100%;
  color: var(--tx);
  font-weight: 400;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.page-document-archive .doc-trash-name i {
  flex: 0 0 auto;
  color: var(--pri);
  min-width: 20px;
  text-align: center;
}

body.page-document-archive .doc-trash-footer {
  gap: 10px;
  align-items: center;
}

body.page-document-archive .doc-trash-footer #doc-trash-selected-count {
  margin-right: auto;
}

body.page-document-archive .doc-trash-footer .btn:disabled,
body.page-document-archive .doc-trash-footer .btn[aria-disabled="true"] {
  opacity: .48;
  cursor: not-allowed;
  pointer-events: none;
}

@media (max-width: 1024px) {
  body.page-document-archive .doc-trash-browser {
    grid-template-columns: 1fr;
  }

  body.page-document-archive .doc-trash-browser .doc-folder-panel {
    max-height: 190px;
  }
}

@media (max-width: 700px) {
  body.page-document-archive .doc-trash-modal {
    width: calc(100vw - 18px);
    max-width: calc(100vw - 18px);
    height: calc(100dvh - 18px);
  }

  body.page-document-archive .doc-trash-footer {
    justify-content: stretch;
  }

  body.page-document-archive .doc-trash-footer #doc-trash-selected-count {
    flex: 1 0 100%;
  }

  body.page-document-archive .doc-trash-footer .btn {
    flex: 1 1 auto;
  }
}


/* Dokumentarkiv: sammenfoldeligt mappetræ og samlet uploadprogress. */
body.page-document-archive .doc-tree-node {
  display: flex;
  align-items: center;
  gap: 2px;
  min-width: 0;
}

body.page-document-archive .doc-tree-node .doc-tree-item {
  flex: 1 1 auto;
  min-width: 0;
  padding-left: 6px;
}

body.page-document-archive .doc-tree-item span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.page-document-archive .doc-tree-toggle {
  flex: 0 0 26px;
  width: 26px;
  min-height: 34px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #66788f;
  cursor: pointer;
}

body.page-document-archive .doc-tree-toggle:hover,
body.page-document-archive .doc-tree-toggle:focus-visible {
  background: #e8f1ff;
  color: #174d93;
  outline: 0;
}

body.page-document-archive .doc-tree-toggle-spacer {
  cursor: default;
  pointer-events: none;
}

body.page-document-archive .doc-upload-queue-head {
  justify-content: space-between;
}

body.page-document-archive .doc-browser-main > .doc-upload-queue {
  flex: 0 0 auto;
  margin: 10px 0 0;
  box-shadow: 0 16px 34px rgba(28, 47, 64, .12);
}

body.page-document-archive .doc-browser-main > .doc-upload-queue[hidden] {
  display: none;
}

body.page-document-archive .doc-browser-main > .doc-table-wrap {
  min-height: 0;
}


body.page-document-archive .doc-upload-queue-title,
body.page-document-archive .doc-upload-queue-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

body.page-document-archive .doc-upload-queue-actions {
  margin-left: auto;
  justify-content: flex-end;
}

body.page-document-archive .doc-upload-queue-head .doc-upload-queue-actions small {
  margin-left: 0;
}

body.page-document-archive .doc-upload-cancel {
  width: auto;
  min-height: 32px;
  padding: 6px 10px;
  white-space: nowrap;
}

body.page-document-archive .doc-upload-cancel,
body.page-document-archive .doc-upload-cancel:focus-visible {
  background: var(--dan);
  border-color: var(--dan);
  color: #fff;
}

body.page-document-archive .doc-upload-cancel:hover {
  background: #a93226;
  border-color: #a93226;
  color: #fff;
}

body.page-document-archive .doc-upload-queue-head small {
  margin-left: auto;
  color: #66788f;
  font-weight: 700;
}

body.page-document-archive .doc-upload-queue-row-single {
  grid-template-columns: minmax(0, 1fr) auto;
}

body.page-document-archive .doc-upload-progress-bar {
  grid-column: 1 / -1;
  height: 10px;
}

body.page-document-archive .doc-upload-progress-bar.is-uploading span {
  background: var(--suc);
}

/* Dokumentarkiv: fælles browser-base for fuld Dokumentarkivside og Email-vedhæftningsmodal. */
.doc-archive-browser-base {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 14px;
  align-items: stretch;
  min-height: 0;
}

.doc-archive-browser-base .doc-browser-main {
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.doc-archive-browser-base .doc-folder-panel {
  border: 1px solid #d7e0ec;
  border-radius: 14px;
  background: #f8fbff;
  padding: 10px;
  min-height: 0;
  overflow: hidden;
}

.doc-archive-browser-base .doc-folder-panel-head,
.doc-archive-browser-base .doc-pinned-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  color: #2c405b;
  margin: 4px 4px 10px;
}

.doc-archive-browser-base .doc-pinned-title {
  margin-top: 14px;
  font-size: .85rem;
  color: #66788f;
}

.doc-archive-browser-base .doc-pinned-folders {
  flex: 0 0 auto;
}

.doc-archive-browser-base .doc-folder-tree {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}

.doc-archive-browser-base .doc-tree-node {
  display: flex;
  align-items: center;
  gap: 2px;
  min-width: 0;
}

.doc-archive-browser-base .doc-tree-node .doc-tree-item {
  flex: 1 1 auto;
  min-width: 0;
  padding-left: 6px;
}

.doc-archive-browser-base .doc-tree-item {
  width: 100%;
  min-height: 34px;
  display: flex;
  align-items: center;
  gap: 8px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  padding: 7px 8px;
  color: #26384f;
  cursor: pointer;
  text-align: left;
}

.doc-archive-browser-base .doc-tree-item:hover,
.doc-archive-browser-base .doc-tree-item.active,
.doc-archive-browser-base .doc-tree-item.is-drop-target {
  background: #e8f1ff;
  color: #174d93;
}

.doc-archive-browser-base .doc-tree-item.is-drop-denied {
  background: #fff0f0;
  color: #a13232;
}

.doc-archive-browser-base .doc-tree-item i {
  width: 18px;
  text-align: center;
}

.doc-archive-browser-base .doc-tree-item span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.doc-archive-browser-base .doc-tree-toggle {
  flex: 0 0 26px;
  width: 26px;
  min-height: 34px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #66788f;
  cursor: pointer;
}

.doc-archive-browser-base .doc-tree-toggle:hover,
.doc-archive-browser-base .doc-tree-toggle:focus-visible {
  background: #e8f1ff;
  color: #174d93;
  outline: 0;
}

.doc-archive-browser-base .doc-tree-toggle-spacer {
  cursor: default;
  pointer-events: none;
}

.doc-archive-browser-base .doc-tree-depth-0 { padding-left: 8px; }
.doc-archive-browser-base .doc-tree-depth-1 { padding-left: 22px; }
.doc-archive-browser-base .doc-tree-depth-2 { padding-left: 36px; }
.doc-archive-browser-base .doc-tree-depth-3 { padding-left: 50px; }
.doc-archive-browser-base .doc-tree-depth-4 { padding-left: 64px; }
.doc-archive-browser-base .doc-tree-depth-5 { padding-left: 78px; }
.doc-archive-browser-base .doc-tree-depth-6 { padding-left: 92px; }
.doc-archive-browser-base .doc-tree-depth-7 { padding-left: 106px; }
.doc-archive-browser-base .doc-tree-depth-8 { padding-left: 120px; }

.doc-archive-browser-base .doc-table-wrap {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}

.doc-archive-browser-base .doc-table {
  width: 100%;
  border-collapse: collapse;
}

.doc-archive-browser-base .doc-table th,
.doc-archive-browser-base .doc-table td {
  vertical-align: middle;
}

.doc-archive-browser-base .doc-select-col,
.doc-archive-browser-base .doc-select-cell,
.doc-archive-browser-base .comm-archive-select-col,
.doc-archive-browser-base .comm-archive-select-cell {
  width: 44px;
  min-width: 44px;
  max-width: 44px;
  text-align: center;
}

.doc-archive-browser-base .doc-name-btn,
.doc-archive-browser-base .comm-archive-file-name {
  font-weight: 400;
}

body.page-communication .doc-archive-browser-picker .doc-browser-main {
  gap: 10px;
}

body.page-communication .doc-archive-browser-picker .doc-folder-panel {
  display: flex;
  flex-direction: column;
}

body.page-communication .doc-archive-browser-picker .doc-table-wrap {
  border: 1px solid var(--bdr);
  border-radius: 14px;
  background: var(--surf);
}

@media (max-width: 900px) {
  body.page-communication .doc-archive-browser-base,
  body.page-communication .comm-archive-browser {
    grid-template-columns: 1fr;
  }

  body.page-communication .doc-archive-browser-picker .doc-folder-panel {
    max-height: 190px;
  }
}

@media (max-width: 1024px) {
  .doc-archive-browser-base {
    grid-template-columns: 1fr;
  }
}

body.page-document-archive .doc-conflict-modal,
body.page-documents .doc-conflict-modal {
  max-width: min(760px, calc(100vw - 28px));
}

body.page-document-archive .doc-conflict-card,
body.page-documents .doc-conflict-card {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  padding: 16px;
  border: 1px solid rgba(185, 99, 38, .22);
  border-radius: 18px;
  background: rgba(185, 99, 38, .08);
}

body.page-document-archive .doc-conflict-icon,
body.page-documents .doc-conflict-icon {
  width: 48px;
  height: 48px;
  border-radius: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--wrn);
  color: #fff;
  font-size: 1.25rem;
}

body.page-document-archive .doc-conflict-content,
body.page-documents .doc-conflict-content {
  min-width: 0;
}

body.page-document-archive .doc-conflict-content p,
body.page-documents .doc-conflict-content p {
  margin: 0 0 8px;
  color: var(--tx2);
}

body.page-document-archive #doc-conflict-current-name,
body.page-documents #doc-conflict-current-name {
  display: block;
  color: var(--tx);
  font-size: 1rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

body.page-document-archive #doc-conflict-counter,
body.page-documents #doc-conflict-counter {
  display: block;
  margin-top: 7px;
  color: var(--txm);
}

body.page-document-archive .doc-conflict-foot,
body.page-documents .doc-conflict-foot {
  align-items: stretch;
  justify-content: flex-end;
  gap: 0;
}

body.page-document-archive .doc-conflict-actions,
body.page-documents .doc-conflict-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  width: 100%;
  overflow-x: auto;
  padding-bottom: 2px;
}

body.page-document-archive .doc-conflict-btn,
body.page-documents .doc-conflict-btn {
  flex: 0 0 auto;
  color: #fff;
  border-color: transparent;
  white-space: nowrap;
}

body.page-document-archive .doc-conflict-skip-one,
body.page-documents .doc-conflict-skip-one,
body.page-document-archive .doc-conflict-skip-all,
body.page-documents .doc-conflict-skip-all {
  background: var(--tx2);
}

body.page-document-archive .doc-conflict-skip-one:hover,
body.page-documents .doc-conflict-skip-one:hover,
body.page-document-archive .doc-conflict-skip-all:hover,
body.page-documents .doc-conflict-skip-all:hover {
  background: var(--tx);
}

body.page-document-archive .doc-conflict-replace-one,
body.page-documents .doc-conflict-replace-one,
body.page-document-archive .doc-conflict-replace-all,
body.page-documents .doc-conflict-replace-all {
  background: var(--dan);
}

body.page-document-archive .doc-conflict-replace-one:hover,
body.page-documents .doc-conflict-replace-one:hover,
body.page-document-archive .doc-conflict-replace-all:hover,
body.page-documents .doc-conflict-replace-all:hover {
  background: #a93226;
}

@media (max-width: 700px) {
  body.page-document-archive .doc-conflict-card,
  body.page-documents .doc-conflict-card {
    grid-template-columns: 1fr;
  }

  body.page-document-archive .doc-conflict-actions,
  body.page-documents .doc-conflict-actions {
    justify-content: flex-start;
  }
}

/* Dokumentarkiv: fælles rækkehøjde/layout for Dokumentarkiv, Papirkurv og Email-vælger.
   Dokumentarkiv-browserens base er eneste styrende visuelle udgangspunkt for tabeller og mappetræ. */
.doc-archive-browser-base {
  --doc-browser-cell-padding-y: 8px;
  --doc-browser-cell-padding-x: 14px;
  --doc-browser-cell-line-height: 1.2;
  --doc-browser-select-col-width: 58px;
  --doc-browser-tree-row-height: 34px;
}

.doc-archive-browser-base .doc-table th,
.doc-archive-browser-base .doc-table td {
  padding: var(--doc-browser-cell-padding-y) var(--doc-browser-cell-padding-x);
  line-height: var(--doc-browser-cell-line-height);
  vertical-align: middle;
}

.doc-archive-browser-base .doc-table tbody tr,
.doc-archive-browser-base .comm-archive-row,
.doc-archive-browser-base .doc-trash-table tbody tr {
  height: auto;
}

.doc-archive-browser-base .doc-select-col,
.doc-archive-browser-base .doc-select-cell,
.doc-archive-browser-base .comm-archive-select-col,
.doc-archive-browser-base .comm-archive-select-cell {
  width: var(--doc-browser-select-col-width);
  min-width: var(--doc-browser-select-col-width);
  max-width: var(--doc-browser-select-col-width);
  text-align: center;
}

.doc-archive-browser-base .doc-select-cell,
.doc-archive-browser-base .comm-archive-select-cell {
  padding: 0;
}

.doc-archive-browser-base .doc-select-hit,
.doc-archive-browser-base .comm-archive-select-hit {
  width: 100%;
  min-height: 100%;
  padding: var(--doc-browser-cell-padding-y);
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  cursor: pointer;
}

.doc-archive-browser-base .doc-name-btn,
.doc-archive-browser-base .comm-archive-file-name,
.doc-archive-browser-base .doc-trash-name {
  line-height: var(--doc-browser-cell-line-height);
}

.doc-archive-browser-base .doc-tree-item,
.doc-archive-browser-base .comm-archive-tree-item {
  min-height: var(--doc-browser-tree-row-height);
  line-height: var(--doc-browser-cell-line-height);
  padding: 7px 8px;
}

.doc-archive-browser-base .doc-tree-toggle,
.doc-archive-browser-base .comm-archive-tree-toggle {
  min-height: var(--doc-browser-tree-row-height);
}


.doc-archive-error-card {
  padding: 24px;
}

.doc-archive-error-state {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 18px;
  border: 1px solid rgba(185, 28, 28, .22);
  border-radius: 16px;
  background: rgba(254, 242, 242, .86);
  color: #1f2937;
}

.doc-archive-error-state > i {
  color: #b91c1c;
  font-size: 24px;
  line-height: 1.2;
  margin-top: 2px;
}

.doc-archive-error-state h3 {
  margin: 0 0 6px;
  color: #111827;
  font-size: 20px;
}

.doc-archive-error-state p {
  margin: 0 0 6px;
}

/* ────────────────────────────────────────────────────────────────
   Dokumenter: tablet/mobil-optimering af landing page og arkiv
   ──────────────────────────────────────────────────────────────── */
body.page-document-archive .doc-name-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: 100%;
  min-width: 0;
  line-height: 1.2;
  vertical-align: middle;
}

body.page-document-archive .doc-name-icon {
  flex: 0 0 auto;
  width: 20px;
  color: var(--pri);
  text-align: center;
}

body.page-document-archive .doc-name-text {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.page-document-archive .doc-browser-head > div:first-child {
  min-width: 0;
}

body.page-document-archive .doc-toolbar .btn {
  align-items: center;
  justify-content: center;
}

@media (max-width: 1024px) {
  body.page-documents .vc {
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  body.page-documents .docp {
    min-height: 0;
    overflow: visible;
  }

  body.page-documents .docp-hero--split {
    gap: 20px;
  }

  body.page-documents .docp-visual--float {
    min-height: clamp(250px, 39vw, 360px);
  }

  body.page-documents .docp-laptop img {
    width: min(92%, 640px);
  }

  body.page-document-archive .vc {
    gap: 10px;
    padding-bottom: max(12px, env(safe-area-inset-bottom, 0px));
  }

  body.page-document-archive .doc-manager {
    gap: 10px;
  }

  body.page-document-archive .doc-usage-card {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    padding: 12px 14px;
  }

  body.page-document-archive .doc-usage-card div:first-child {
    min-width: 0;
    flex-wrap: wrap;
    justify-content: space-between;
  }

  body.page-document-archive .doc-browser-card {
    border-radius: 16px;
  }

  body.page-document-archive .doc-archive-browser-base,
  body.page-document-archive .doc-browser-layout {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  body.page-document-archive .doc-folder-panel {
    max-height: 210px;
    padding: 8px;
  }

  body.page-document-archive .doc-folder-tree,
  body.page-document-archive .doc-pinned-folders {
    -webkit-overflow-scrolling: touch;
  }

  body.page-document-archive .doc-tree-item,
  body.page-document-archive .doc-tree-toggle {
    min-height: 40px;
  }

  body.page-document-archive .doc-browser-head {
    align-items: stretch;
    flex-direction: column;
    gap: 10px;
    padding: 12px;
  }

  body.page-document-archive .doc-browser-head .ctitle {
    font-size: .92rem;
  }

  body.page-document-archive .doc-breadcrumbs {
    gap: 6px;
    margin-top: 6px;
    overflow-x: auto;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
  }

  body.page-document-archive .doc-crumb {
    flex: 0 0 auto;
    max-width: min(42vw, 260px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.page-document-archive .doc-toolbar {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
  }

  body.page-document-archive .doc-search-box {
    grid-column: 1 / -1;
    min-height: 42px;
  }

  body.page-document-archive .doc-toolbar .btn {
    width: 100%;
    min-height: 42px;
    min-width: 0;
    padding-left: 8px;
    padding-right: 8px;
    white-space: nowrap;
  }

  body.page-document-archive .doc-table-wrap {
    min-height: min(46dvh, 430px);
    padding-bottom: 78px;
    -webkit-overflow-scrolling: touch;
  }

  body.page-document-archive .doc-table {
    min-width: 680px;
  }

  body.page-document-archive .doc-drop-empty {
    max-width: calc(100% - 28px);
  }

  body.page-document-archive .doc-upload-queue {
    margin: 8px 0 0;
  }

  body.page-document-archive .doc-trash-modal,
  body.page-document-archive .doc-activity-modal {
    width: calc(100vw - 24px);
    max-width: calc(100vw - 24px);
    max-height: calc(100dvh - 24px);
  }

  body.page-document-archive .doc-trash-browser {
    grid-template-columns: 1fr;
  }

  body.page-document-archive .doc-trash-browser .doc-folder-panel {
    max-height: 170px;
  }
}

@media (max-width: 700px) {
  body.page-documents .docp {
    gap: 12px;
  }

  body.page-documents .docp h1 {
    font-size: clamp(1.7rem, 9vw, 2.35rem);
    letter-spacing: -.04em;
  }

  body.page-documents .docp p {
    font-size: .96rem;
    line-height: 1.5;
  }

  body.page-documents .docp-hero--split {
    padding: 18px;
    border-radius: 18px;
  }

  body.page-documents .docp-copy {
    gap: 12px;
  }

  body.page-documents .docp-visual--float {
    min-height: 190px;
  }

  body.page-documents .docp-visual--float .docp-laptop {
    inset: 0 -12px -10px;
  }

  body.page-documents .docp-laptop img {
    width: min(100%, 440px);
  }

  body.page-documents .docp-benefits {
    gap: 18px;
  }

  body.page-documents .doc-buy-summary {
    grid-template-columns: 1fr;
    gap: 5px;
  }

  body.page-documents .mo-foot,
  body.page-document-archive .mo-foot {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
  }

  body.page-documents .mo-foot .btn,
  body.page-document-archive .mo-foot .btn {
    width: 100%;
    justify-content: center;
  }

  body.page-document-archive .vc {
    overflow: hidden;
    padding-left: 10px;
    padding-right: 10px;
  }

  body.page-document-archive .ptitle {
    font-size: 1.16rem;
    line-height: 1.15;
  }

  body.page-document-archive .doc-usage-card {
    padding: 10px 12px;
    border-radius: 14px;
  }

  body.page-document-archive .doc-usage-card div:first-child {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 2px;
    align-items: start;
  }

  body.page-document-archive .doc-usage-card strong,
  body.page-document-archive .doc-usage-card span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.page-document-archive .doc-browser-card {
    min-height: 0;
    border-radius: 14px;
  }

  body.page-document-archive .doc-folder-panel {
    max-height: 138px;
    border-radius: 12px;
  }

  body.page-document-archive .doc-folder-panel-head,
  body.page-document-archive .doc-pinned-title {
    margin: 2px 4px 6px;
    font-size: .82rem;
  }

  body.page-document-archive .doc-tree-node {
    min-width: 0;
  }

  body.page-document-archive .doc-tree-item,
  body.page-document-archive .doc-tree-toggle {
    min-height: 38px;
  }

  body.page-document-archive .doc-tree-item {
    font-size: .9rem;
  }

  body.page-document-archive .doc-browser-head {
    padding: 10px;
  }

  body.page-document-archive .doc-browser-head .ctitle {
    font-size: .9rem;
  }

  body.page-document-archive .doc-toolbar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
  }

  body.page-document-archive .doc-toolbar .btn {
    min-height: 40px;
    font-size: .74rem !important;
    line-height: 1.12;
    white-space: normal;
  }

  body.page-document-archive .doc-search-box {
    min-height: 40px;
    border-radius: 13px;
  }

  body.page-document-archive .doc-search-box input {
    font-size: 16px;
  }

  body.page-document-archive .doc-breadcrumbs {
    min-height: 30px;
    padding-bottom: 2px;
  }

  body.page-document-archive .doc-table-wrap {
    min-height: 0;
    padding: 0 0 72px;
    overflow-y: auto;
    overflow-x: hidden;
    background: #f7f9fc;
  }

  body.page-document-archive #documents-table,
  body.page-document-archive .doc-trash-table {
    display: block;
    width: 100% !important;
    min-width: 0 !important;
    table-layout: auto;
    border-collapse: separate;
    border-spacing: 0;
  }

  body.page-document-archive #documents-table thead,
  body.page-document-archive .doc-trash-table thead {
    display: none;
  }

  body.page-document-archive #documents-table tbody,
  body.page-document-archive .doc-trash-table tbody {
    display: grid;
    gap: 8px;
    padding: 8px;
  }

  body.page-document-archive #documents-table tbody tr,
  body.page-document-archive .doc-trash-table tbody tr {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    grid-template-rows: auto auto auto;
    align-items: center;
    gap: 2px 8px;
    width: 100% !important;
    min-width: 0 !important;
    padding: 10px;
    border: 1px solid var(--bdr);
    border-radius: 14px;
    background: var(--surf);
    box-shadow: 0 8px 22px rgba(28, 47, 64, .07);
  }

  body.page-document-archive #documents-table tbody tr:nth-child(even),
  body.page-document-archive .doc-trash-table tbody tr:nth-child(even) {
    background: var(--surf);
  }

  body.page-document-archive #documents-table tbody tr:hover,
  body.page-document-archive .doc-trash-table tbody tr:hover {
    background: var(--surf);
  }

  body.page-document-archive #documents-table tbody tr:hover td,
  body.page-document-archive .doc-trash-table tbody tr:hover td {
    background: transparent;
  }

  body.page-document-archive #documents-table tbody tr.is-selected,
  body.page-document-archive .doc-trash-table tbody tr.is-selected {
    border-color: rgba(30, 73, 118, .34);
    background: var(--pril);
  }

  body.page-document-archive #documents-table tbody tr.is-selected td,
  body.page-document-archive .doc-trash-table tbody tr.is-selected td {
    background: transparent !important;
  }

  body.page-document-archive #documents-table td,
  body.page-document-archive .doc-trash-table td {
    display: block;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
  }

  body.page-document-archive #documents-table td.doc-select-cell,
  body.page-document-archive .doc-trash-table td.doc-select-cell {
    grid-column: 1;
    grid-row: 1 / 4;
    align-self: stretch;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  body.page-document-archive .doc-select-hit {
    min-height: 100%;
    padding: 0;
  }

  body.page-document-archive .doc-file-check,
  body.page-document-archive .doc-select-all-check {
    width: 18px;
    height: 18px;
  }

  body.page-document-archive #documents-table td.doc-name-cell,
  body.page-document-archive .doc-trash-table td.doc-name-cell {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
  }

  body.page-document-archive #documents-table td.doc-size-cell,
  body.page-document-archive .doc-trash-table td.doc-size-cell {
    grid-column: 2;
    grid-row: 2;
  }

  body.page-document-archive #documents-table td.doc-updated-cell,
  body.page-document-archive .doc-trash-table td.doc-updated-cell {
    grid-column: 2;
    grid-row: 3;
  }

  body.page-document-archive #documents-table td.doc-size-cell,
  body.page-document-archive #documents-table td.doc-updated-cell,
  body.page-document-archive .doc-trash-table td.doc-size-cell,
  body.page-document-archive .doc-trash-table td.doc-updated-cell {
    color: var(--txm);
    font-size: .78rem;
    line-height: 1.25;
  }

  body.page-document-archive #documents-table td.doc-size-cell:empty,
  body.page-document-archive .doc-trash-table td.doc-size-cell:empty {
    display: none !important;
  }

  body.page-document-archive #documents-table td.doc-size-cell::before,
  body.page-document-archive #documents-table td.doc-updated-cell::before,
  body.page-document-archive .doc-trash-table td.doc-size-cell::before,
  body.page-document-archive .doc-trash-table td.doc-updated-cell::before {
    content: attr(data-label) ": ";
    color: var(--txm);
    font-weight: 700;
  }

  body.page-document-archive .doc-name-btn,
  body.page-document-archive .doc-trash-name {
    width: 100%;
    min-height: 32px;
    font-size: .95rem;
    text-decoration: none;
  }

  body.page-document-archive .doc-name-btn:hover,
  body.page-document-archive .doc-trash-name:hover {
    text-decoration: none;
  }

  body.page-document-archive .doc-name-icon {
    width: 22px;
  }

  body.page-document-archive .doc-name-text,
  body.page-document-archive .doc-trash-name span {
    white-space: normal;
    overflow-wrap: anywhere;
  }

  body.page-document-archive .doc-drop-empty {
    min-height: 62px;
  }

  body.page-document-archive .doc-drop-empty i {
    width: 42px;
    height: 42px;
    font-size: 42px;
  }

  body.page-document-archive .doc-drag-overlay {
    inset: 8px;
  }

  body.page-document-archive .doc-drag-overlay::before {
    border-radius: 14px;
  }

  body.page-document-archive .doc-drag-overlay-box {
    width: min(86%, 320px);
    min-width: 0;
    padding: 20px 16px;
    border-radius: 16px;
  }

  body.page-document-archive .doc-upload-queue {
    padding: 9px;
    border-radius: 12px;
  }

  body.page-document-archive .doc-upload-queue-head {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
  }

  body.page-document-archive .doc-upload-queue-actions {
    width: 100%;
    margin-left: 0;
    justify-content: space-between;
  }

  body.page-document-archive .doc-upload-queue-row,
  body.page-document-archive .doc-upload-queue-row-single {
    grid-template-columns: minmax(0, 1fr);
  }

  body.page-document-archive .doc-context-menu {
    max-width: calc(100vw - 18px);
  }

  body.page-document-archive .doc-preview-modal {
    width: calc(100vw - 12px) !important;
    min-width: 0 !important;
    max-width: calc(100vw - 12px) !important;
    max-height: calc(100dvh - 12px) !important;
    border-radius: 14px;
  }

  body.page-document-archive .doc-preview-head {
    padding: 9px 10px;
  }

  body.page-document-archive .doc-preview-file-meta {
    gap: 8px;
  }

  body.page-document-archive .doc-preview-title-wrap h3 {
    max-width: calc(100vw - 132px);
    font-size: .9rem;
  }

  body.page-document-archive .doc-preview-body,
  body.page-document-archive .doc-preview-body-pdf,
  body.page-document-archive .doc-preview-body-text,
  body.page-document-archive .doc-preview-body-other {
    width: 100%;
    max-width: 100%;
    min-height: min(56dvh, 430px);
    max-height: calc(100dvh - 124px);
  }

  body.page-document-archive .doc-preview-modal-image .doc-preview-body,
  body.page-document-archive .doc-preview-body-image {
    width: 100%;
    max-width: 100%;
    max-height: calc(100dvh - 124px);
  }

  body.page-document-archive .doc-preview-image {
    max-width: 100%;
    max-height: calc(100dvh - 124px);
  }

  body.page-document-archive .doc-preview-frame {
    min-height: min(56dvh, 430px);
    height: calc(100dvh - 138px);
  }

  body.page-document-archive .doc-preview-toolbar {
    min-height: 52px;
    padding: 8px;
  }

  body.page-document-archive .doc-preview-tool {
    min-height: 38px;
    font-size: .82rem;
  }

  body.page-document-archive .doc-trash-modal,
  body.page-document-archive .doc-activity-modal {
    width: calc(100vw - 12px);
    max-width: calc(100vw - 12px);
    height: calc(100dvh - 12px);
    max-height: calc(100dvh - 12px);
  }

  body.page-document-archive .doc-trash-body {
    padding: 10px;
  }

  body.page-document-archive .doc-trash-browser .doc-folder-panel {
    max-height: 126px;
  }

  body.page-document-archive .doc-trash-table-wrap {
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
  }

  body.page-document-archive .doc-trash-footer {
    grid-template-columns: 1fr 1fr;
  }

  body.page-document-archive .doc-trash-footer #doc-trash-selected-count {
    grid-column: 1 / -1;
  }

  body.page-document-archive .doc-conflict-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    overflow: visible;
  }

  body.page-document-archive .doc-conflict-btn {
    width: 100%;
    justify-content: center;
    white-space: normal;
  }
}

@media (max-width: 380px) {
  body.page-document-archive .doc-toolbar {
    gap: 6px;
  }

  body.page-document-archive .doc-toolbar .btn {
    padding-left: 6px;
    padding-right: 6px;
    font-size: .69rem !important;
  }

  body.page-document-archive #documents-table tbody,
  body.page-document-archive .doc-trash-table tbody {
    gap: 7px;
    padding: 7px;
  }

  body.page-document-archive #documents-table tbody tr,
  body.page-document-archive .doc-trash-table tbody tr {
    grid-template-columns: 38px minmax(0, 1fr);
    padding: 9px;
  }
}

/* Dokumentarkiv: mappekort skal vise hele mappetræet på tablet og mobil. */
@media (max-width: 1024px) {
  body.page-document-archive .vc {
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
  }

  body.page-document-archive .doc-manager,
  body.page-document-archive .doc-browser-card {
    flex: 0 0 auto;
  }

  body.page-document-archive .doc-archive-browser-base,
  body.page-document-archive .doc-browser-layout {
    height: auto;
    align-items: start;
  }

  body.page-document-archive .doc-folder-panel {
    height: auto;
    max-height: none;
    overflow: visible;
  }

  body.page-document-archive .doc-folder-tree,
  body.page-document-archive .doc-pinned-folders {
    flex: 0 0 auto;
    min-height: 0;
    overflow: visible;
  }

  body.page-document-archive .doc-trash-body {
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }

  body.page-document-archive .doc-trash-browser .doc-folder-panel {
    max-height: none;
  }
}

@media (max-width: 700px) {
  body.page-document-archive .vc {
    overflow-y: auto;
    overflow-x: hidden;
  }

  body.page-document-archive .doc-folder-panel {
    max-height: none;
  }

  body.page-document-archive .doc-trash-browser .doc-folder-panel {
    max-height: none;
  }
}

/* Dokumentarkiv: justerbar bredde mellem Mapper og Dokumentarkiv. */
@media (min-width: 1025px) {
  body.page-document-archive .doc-browser-layout.doc-split-resizable {
    position: relative;
    grid-template-columns: var(--doc-folder-panel-width, 260px) minmax(0, 1fr);
    gap: 0;
  }

  body.page-document-archive .doc-browser-layout.doc-split-resizable > .doc-folder-panel {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
  }

  body.page-document-archive .doc-browser-layout.doc-split-resizable .doc-browser-splitter {
    position: absolute;
    z-index: 12;
    top: 0;
    bottom: 0;
    left: var(--doc-folder-panel-width, 260px);
    display: flex;
    align-items: stretch;
    justify-content: center;
    width: 18px;
    min-width: 18px;
    min-height: 100%;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    cursor: col-resize;
    touch-action: none;
    transform: translateX(-50%);
  }

  body.page-document-archive .doc-browser-layout.doc-split-resizable .doc-browser-splitter::before {
    content: '';
    display: block;
    width: 3px;
    min-height: 100%;
    border-radius: 999px;
    background: #d7e0ec;
    transition: background .15s ease, box-shadow .15s ease;
  }

  body.page-document-archive .doc-browser-layout.doc-split-resizable .doc-browser-splitter:hover::before,
  body.page-document-archive .doc-browser-layout.doc-split-resizable .doc-browser-splitter:focus-visible::before,
  body.page-document-archive .doc-browser-layout.doc-split-resizable.is-split-resizing .doc-browser-splitter::before {
    background: var(--pri);
    box-shadow: 0 0 0 3px rgba(30, 73, 118, .12);
  }

  body.page-document-archive .doc-browser-layout.doc-split-resizable .doc-browser-splitter:focus-visible {
    outline: 0;
  }
}

@media (max-width: 1024px) {
  body.page-document-archive .doc-browser-layout.doc-split-resizable .doc-browser-splitter {
    display: none;
  }
}

body.is-doc-split-resizing,
body.is-doc-split-resizing * {
  cursor: col-resize !important;
  user-select: none !important;
}

/* Dokumentarkiv: WebDAV adgang */
body.page-document-archive .doc-manager-titlebar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
body.page-document-archive .doc-manager-titlebar .ptitle{
  min-width:0;
}
body.page-document-archive .doc-webdav-open-btn{
  flex:0 0 auto;
  min-height:36px;
}
body.page-document-archive .doc-webdav-modal{
  width:min(760px, calc(100vw - 28px));
  max-height:min(760px, calc(100vh - 28px));
}
body.page-document-archive .doc-webdav-modal-head h3{
  display:flex;
  align-items:center;
}
body.page-document-archive .doc-webdav-modal-body{
  display:grid;
  gap:16px;
  padding:20px;
}
body.page-document-archive .doc-webdav-intro{
  display:flex;
  align-items:flex-start;
  gap:14px;
  padding:14px;
  border:1px solid #dbe7f6;
  border-radius:16px;
  background:linear-gradient(135deg, rgba(37,99,235,.08), rgba(255,255,255,.96));
}
body.page-document-archive .doc-webdav-icon{
  width:44px;
  height:44px;
  border-radius:15px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(37,99,235,.12);
  color:#1d4ed8;
  flex:0 0 auto;
  font-size:1.05rem;
}
body.page-document-archive .doc-webdav-lead{
  margin:0 0 4px;
  color:var(--tx);
  font-weight:700;
  line-height:1.4;
}
body.page-document-archive .doc-webdav-intro .muted{
  margin:0;
  line-height:1.45;
}
body.page-document-archive .doc-webdav-grid{
  display:grid;
  grid-template-columns:minmax(260px,1.45fr) minmax(210px,.75fr);
  gap:12px;
}
body.page-document-archive .doc-webdav-grid label,
body.page-document-archive .doc-webdav-token label{
  display:flex;
  flex-direction:column;
  gap:6px;
  font-size:.86rem;
  color:#475569;
  font-weight:700;
}
body.page-document-archive .doc-webdav-copy-field{
  position:relative;
  display:flex;
  align-items:center;
  width:100%;
}
body.page-document-archive .doc-webdav-grid input,
body.page-document-archive .doc-webdav-token input{
  width:100%;
  min-height:40px;
  border:1px solid #dbe3ef;
  border-radius:11px;
  padding:8px 44px 8px 10px;
  background:#f8fafc;
  color:#0f172a;
  font:inherit;
  font-weight:500;
}
body.page-document-archive .doc-webdav-copy-btn{
  position:absolute;
  right:5px;
  top:50%;
  transform:translateY(-50%);
  width:31px;
  height:31px;
  border:0;
  border-radius:9px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:transparent;
  color:#64748b;
  cursor:pointer;
  transition:background .15s ease, color .15s ease, transform .15s ease;
}
body.page-document-archive .doc-webdav-copy-btn:hover,
body.page-document-archive .doc-webdav-copy-btn:focus-visible{
  background:rgba(30,73,118,.10);
  color:var(--pri);
  outline:0;
}
body.page-document-archive .doc-webdav-copy-btn.is-copied{
  background:rgba(22,163,74,.12);
  color:#15803d;
}
body.page-document-archive .doc-webdav-copy-btn.is-copy-error{
  background:rgba(220,38,38,.12);
  color:#b91c1c;
}
body.page-document-archive .doc-webdav-grid input:focus,
body.page-document-archive .doc-webdav-token input:focus{
  outline:0;
  border-color:var(--pri);
  box-shadow:0 0 0 3px rgba(30,73,118,.12);
}
body.page-document-archive .doc-webdav-token{
  display:grid;
  gap:7px;
  padding:12px;
  border:1px solid #e2e8f0;
  border-radius:14px;
  background:#fff7ed;
}
body.page-document-archive .doc-webdav-token input{
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;
}
body.page-document-archive .doc-webdav-token p{
  margin:0;
}
body.page-document-archive .doc-webdav-meta{
  min-height:20px;
  padding:10px 12px;
  border-radius:12px;
  background:var(--surf2);
  border:1px solid var(--bdr2);
}
body.page-document-archive .doc-webdav-modal .doc-webdav-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:8px;
}
@media (max-width:1024px){
  body.page-document-archive .doc-webdav-grid{
    grid-template-columns:1fr;
  }
}
@media (max-width:700px){
  body.page-document-archive .doc-manager-titlebar{
    align-items:flex-start;
  }
  body.page-document-archive .doc-webdav-open-btn{
    min-height:34px;
    padding-left:10px;
    padding-right:10px;
  }
  body.page-document-archive .doc-webdav-modal-body{
    padding:14px;
    gap:12px;
  }
  body.page-document-archive .doc-webdav-intro{
    gap:10px;
    padding:12px;
  }
  body.page-document-archive .doc-webdav-icon{
    width:36px;
    height:36px;
    border-radius:12px;
  }
  body.page-document-archive .doc-webdav-modal .doc-webdav-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  body.page-document-archive .doc-webdav-modal .doc-webdav-actions .btn{
    width:100%;
    justify-content:center;
  }
}

/* Kontingent: kompakt Kontingentoversigt, så rækkernes højde matcher Medlemmer-oversigten bedre. */
body.page-fees #feesTable td {
  padding-top: 6px;
  padding-bottom: 6px;
}

body.page-fees #feesTable .paid-date-form {
  margin: 0;
}

body.page-fees #feesTable .paid-date,
body.page-fees #feesTable .fee-amount-inline-input {
  height: 28px;
  min-height: 28px;
  padding: 3px 8px;
  line-height: 1.2;
  border-radius: 8px;
}

body.page-fees #feesTable .fees-status-form > button[id^="togglePaid-"],
body.page-fees #feesTable .fee-paid-pill,
body.page-fees #feesTable .fee-unpaid-pill {
  min-height: 28px;
  padding: 3px 10px;
  line-height: 1.2;
}

body.page-fees #feesTable .fee-payment-chip {
  height: 22px;
}

body.page-fees .fee-amount-cell.is-editing,
body.page-fees .fee-amount-cell.is-saving {
  padding-top: 6px;
  padding-bottom: 6px;
}


/* Dokumenter: live upload status and refresh feedback */
body.page-document-archive .doc-upload-current {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 14px;
  margin: 4px 0 8px;
  padding: 10px 12px;
  border: 1px solid rgba(60, 105, 216, .16);
  border-radius: 12px;
  background: rgba(255, 255, 255, .82);
}
body.page-document-archive .doc-upload-current div {
  min-width: 0;
}
body.page-document-archive .doc-upload-current-label {
  display: block;
  margin-bottom: 2px;
  color: var(--txm);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .01em;
}
body.page-document-archive .doc-upload-current strong {
  display: block;
  overflow: hidden;
  color: var(--tx);
  font-size: .95rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
body.page-document-archive .doc-upload-current small {
  color: var(--tx2);
  font-weight: 800;
  white-space: nowrap;
}
body.page-document-archive #doc-refresh {
  transition: transform .16s ease, box-shadow .16s ease, filter .16s ease, opacity .16s ease;
}
body.page-document-archive #doc-refresh.is-pressed {
  transform: translateY(1px) scale(.975);
  filter: brightness(.96);
}
body.page-document-archive #doc-refresh.is-loading {
  opacity: .88;
  cursor: progress;
}
body.page-document-archive #doc-refresh.is-loading i,
body.page-document-archive #doc-refresh.is-loading svg {
  animation: doc-refresh-spin .78s linear infinite;
  transform-origin: center;
}
@keyframes doc-refresh-spin {
  to { transform: rotate(360deg); }
}
@media (max-width: 700px) {
  body.page-document-archive .doc-upload-current {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 6px;
  }
}

/* ─── Oversigt: personlig kort-rækkefølge / drag-drop ─────────── */
.dashboard-layout-status {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 11px;
  border-radius: 999px;
  border: 1px solid rgba(30,73,118,.14);
  background: var(--pril);
  color: var(--pri);
  font-size: .7rem;
  font-weight: 800;
}

.dashboard-layout-status:empty {
  display: none;
}

.dashboard-sort-help {
  display: none;
  align-items: center;
  gap: 9px;
  margin: 0 0 14px;
  padding: 11px 13px;
  border: 1px dashed rgba(30,73,118,.32);
  border-radius: var(--rl);
  background: rgba(232,241,252,.72);
  color: var(--pri);
  font-size: .76rem;
  font-weight: 750;
}

.dashboard-sort-help i {
  opacity: .86;
}

body.dashboard-edit-mode .dashboard-sort-help {
  display: flex;
}

.dashboard-card-drag-handle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  border: 1px solid rgba(30,73,118,.18);
  border-radius: 12px;
  background: rgba(255,255,255,.86);
  color: var(--pri);
  cursor: grab;
  box-shadow: none;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease;
}

.dashboard-kpi-card .dashboard-card-drag-handle {
  position: absolute;
  z-index: 2;
  top: 10px;
  right: 10px;
}

body.dashboard-edit-mode .dashboard-card-drag-handle {
  display: inline-flex;
}

.dashboard-card-drag-handle:hover, .dashboard-card-drag-handle:focus-visible {
  border-color: rgba(30,73,118,.36);
  background: #fff;
  box-shadow: var(--sh0);
  transform: translateY(-1px);
  outline: none;
}

.dashboard-card-drag-handle:active {
  cursor: grabbing;
  transform: translateY(0);
}

body.dashboard-edit-mode [data-dashboard-sort-container] {
  position: relative;
  border-radius: var(--rl);
}

body.dashboard-edit-mode [data-dashboard-draggable-card] {
  outline: 1px dashed rgba(30,73,118,.22);
  outline-offset: 3px;
  transition: transform .18s ease, box-shadow .18s ease, outline-color .18s ease, opacity .14s ease;
}

body.dashboard-edit-mode [data-dashboard-draggable-card]:has(.dashboard-card-drag-handle:hover),
body.dashboard-edit-mode [data-dashboard-draggable-card]:has(.dashboard-card-drag-handle:focus-visible) {
  outline-color: rgba(30,73,118,.44);
}

.dashboard-card-placeholder {
  min-height: 92px;
  border: 2px dashed rgba(30,73,118,.48);
  border-radius: var(--rl);
  background: linear-gradient(135deg, rgba(232,241,252,.78), rgba(255,255,255,.46));
  box-shadow: inset 0 0 0 4px rgba(255,255,255,.38);
}

.dashboard-kpis .dashboard-card-placeholder {
  min-height: 108px;
  border-radius: var(--rxl);
}

.dashboard-main-grid .dashboard-card-placeholder {
  min-height: calc(50px + var(--dashboard-card-body-height));
}

.dashboard-card-dragging {
  position: fixed !important;
  z-index: 1500;
  pointer-events: none;
  opacity: .96;
  box-shadow: 0 20px 46px rgba(15,23,42,.22), 0 7px 18px rgba(15,23,42,.14);
  cursor: grabbing;
  transform-origin: top left;
}

body.dashboard-drag-active, body.dashboard-drag-active * {
  user-select: none !important;
}

body.dashboard-drag-active [data-dashboard-sort-container] {
  scroll-margin: 80px;
}

@media (prefers-reduced-motion: reduce) {
  body.dashboard-edit-mode [data-dashboard-draggable-card],
  .dashboard-card-drag-handle,
  .dashboard-action {
    transition: none;
  }
}

@media (max-width: 700px) {
  .dashboard-sort-help {
    align-items: flex-start;
    font-size: .72rem;
  }

  .dashboard-card-drag-handle {
    width: 38px;
    height: 38px;
  }
}

/* Kommunikation: opgave-vedhæftning */
body.page-communication .comm-task-attach-thumb {
  background: rgba(30, 73, 118, .08);
  color: var(--pri);
  font-size: 1.25rem;
}

body.page-communication .comm-task-modal-body,
body.page-communication .comm-task-preview-only {
  min-height: 0;
  overflow: hidden;
}

body.page-communication .comm-task-picker-layout {
  display: grid;
  grid-template-columns: minmax(280px, .9fr) minmax(0, 1.1fr);
  gap: 16px;
  min-height: 0;
  height: 100%;
}

body.page-communication .comm-task-picker-panel,
body.page-communication .comm-task-preview-panel {
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

body.page-communication .comm-task-list {
  border: 1px solid var(--bdr);
  border-radius: var(--r);
  background: #fff;
  overflow-y: auto;
  padding: 8px;
  min-height: 0;
  flex: 1 1 auto;
}

body.page-communication .comm-task-row {
  width: 100%;
  border: 1px solid transparent;
  border-radius: 12px;
  background: transparent;
  color: var(--tx);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 11px;
  text-align: left;
  cursor: pointer;
  transition: var(--t);
}

body.page-communication .comm-task-row:hover,
body.page-communication .comm-task-row.active {
  border-color: rgba(30, 73, 118, .22);
  background: rgba(30, 73, 118, .07);
}

body.page-communication .comm-task-row-main {
  min-width: 0;
  display: grid;
  gap: 4px;
}

body.page-communication .comm-task-row-title {
  font-size: .86rem;
  font-weight: 800;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.page-communication .comm-task-row-meta {
  font-size: .74rem;
  color: var(--txm);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.page-communication .comm-task-row-side {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--txm);
}

body.page-communication .comm-task-state {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 4px 8px;
  font-size: .68rem;
  font-weight: 800;
  line-height: 1;
}

body.page-communication .comm-task-state-warn {
  color: #92400e;
  background: #fef3c7;
  border: 1px solid #fde68a;
}

body.page-communication .comm-task-state-bad {
  color: #991b1b;
  background: #fee2e2;
  border: 1px solid #fecaca;
}

body.page-communication .comm-task-preview-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 0 0 10px;
  font-size: .82rem;
  font-weight: 800;
  color: var(--pri);
}

body.page-communication .comm-task-preview,
body.page-communication .comm-task-preview-only {
  border: 1px solid var(--bdr);
  border-radius: var(--r);
  background: #fff;
  overflow: auto;
  padding: 14px;
  flex: 1 1 auto;
}

body.page-communication .comm-task-preview > div,
body.page-communication .comm-task-preview-only > div {
  max-width: 100%;
}

body.page-communication .comm-task-empty {
  padding: 14px;
}

body.page-communication .comm-task-footer {
  gap: 10px;
}

@media (max-width: 900px) {
  body.page-communication .comm-task-picker-layout {
    grid-template-columns: 1fr;
  }

  body.page-communication .comm-task-list {
    max-height: 260px;
  }
}

@media (max-width: 700px) {
  body.page-communication .comm-task-row {
    align-items: flex-start;
  }

  body.page-communication .comm-task-row-side {
    padding-top: 2px;
  }

  body.page-communication .comm-task-preview,
  body.page-communication .comm-task-preview-only {
    padding: 10px;
  }
}

/* ──────────────────────────────────────────────────────────────────
   Klassisk sidebar: stabil initial rendering ved sidenavigation
   app.js gendanner den gemte sammenfoldede tilstand. Disse regler bruger
   den samme tilstand allerede før første paint, så sidebaren ikke når at
   folde ud og sammen igen ved skift mellem sider.
   ────────────────────────────────────────────────────────────────── */
html.rchub-nav-initializing body.theme-classic-sidebar .sidebar,
html.rchub-nav-initializing body.theme-classic-sidebar .main {
  transition: none !important;
}

@media (min-width: 1025px) {
  html.rchub-sidebar-collapsed body.theme-classic-sidebar .sidebar {
    width: 60px;
  }

  html.rchub-sidebar-collapsed body.theme-classic-sidebar .main {
    margin-left: 60px;
  }

  html.rchub-sidebar-collapsed body.theme-classic-sidebar .sidebar .sorg,
  html.rchub-sidebar-collapsed body.theme-classic-sidebar .sidebar .snsl,
  html.rchub-sidebar-collapsed body.theme-classic-sidebar .sidebar .nav-link span,
  html.rchub-sidebar-collapsed body.theme-classic-sidebar .sidebar .sfv,
  html.rchub-sidebar-collapsed body.theme-classic-sidebar .sidebar .slogout span {
    display: none;
  }

  html.rchub-sidebar-collapsed body.theme-classic-sidebar .sidebar .nav-link {
    justify-content: center;
    padding: 10px;
  }

  html.rchub-sidebar-collapsed body.theme-classic-sidebar .sidebar .shd {
    padding: 10px 6px;
    align-items: center;
  }

  html.rchub-sidebar-collapsed body.theme-classic-sidebar .sidebar .slogo {
    justify-content: center;
  }

  html.rchub-sidebar-collapsed body.theme-classic-sidebar .sidebar .slogo img {
    max-width: 32px;
  }

  html.rchub-sidebar-collapsed body.theme-classic-sidebar .sidebar .shd-bot {
    justify-content: center;
  }

  html.rchub-sidebar-collapsed body.theme-classic-sidebar .sidebar .stog {
    margin: 0;
  }

  html.rchub-sidebar-collapsed body.theme-classic-sidebar .sidebar .slogout {
    justify-content: center;
    padding: 9px;
  }
}


/* ──────────────────────────────────────────────────────────────────
   Kalender: Redigér aktivitet – indholdsbaseret modalhøjde.
   Dialogen vokser kun med beskrivelsen, indtil dens effektive maksimum
   er nået. Derefter får alene beskrivelsesfeltet sin egen scrollbar.
   ────────────────────────────────────────────────────────────────── */
#mo-event-edit {
  padding-top: 2vh;
  padding-bottom: 2vh;
}

#mo-event-edit .event-edit-modal {
  height: auto;
  max-height: 96vh !important;
  max-height: min(96dvh, calc(100dvh - var(--app-modal-top-offset, 0px) - var(--app-safe-bottom, 0px) - 26px)) !important;
}

#mo-event-edit .event-create-form,
#mo-event-edit .event-create-body {
  flex: 0 1 auto;
  min-height: 0;
}

#mo-event-edit .event-description-autosize {
  box-sizing: border-box;
  min-height: 72px;
  overflow-y: hidden;
  resize: none;
}

#mo-event-edit .event-description-autosize.event-description-scrollable {
  overflow-y: auto;
}


/* ─── Sidebar navigation badges ────────────────────────────────────────
   Metadata-driven badges such as Dokumenter → BETA. The badge remains part
   of the accessible link label, but is hidden together with text in the
   compact icon-only sidebar to prevent clipped or ambiguous status text. */
.nav-link .nav-link-label {
  min-width: 0;
}

.nav-link .nav-item-badge {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-height: 18px;
  padding: 1px 6px;
  border: 1px solid rgba(255, 255, 255, .34);
  border-radius: 999px;
  color: #fff;
  background: rgba(255, 255, 255, .14);
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .08em;
  line-height: 1;
}

.nav-link.active .nav-item-badge,
.nav-link:hover .nav-item-badge {
  border-color: currentColor;
}

html.rchub-sidebar-collapsed body.theme-classic-sidebar .sidebar .nav-link .nav-item-badge,
.sidebar.col .nav-link .nav-item-badge {
  display: none !important;
}

body.theme-top-white .nav-link .nav-item-badge {
  margin-left: 2px;
  border-color: rgba(30, 73, 118, .28);
  color: var(--pri);
  background: rgba(30, 73, 118, .09);
}

@media (max-width: 700px) {
  body.theme-classic-sidebar .sidebar .nav-link .nav-item-badge,
  body.theme-top-white .sidebar.mob-open .nav-link .nav-item-badge {
    margin-left: auto;
  }
}

/* Medlemmer: progressindikator for AJAX-opdatering og MDK-check.
   Font Awesome er konfigureret i SVG+JS-tilstand og udskifter <i class="fa …">
   med <svg class="svg-inline--fa …">. Klassen sættes derfor på det ikon,
   der faktisk er renderet, så animationen virker i begge tilstande. */
body.page-members #btn-members-refresh.is-loading,
body.page-members #btn-check-mdk.is-loading {
  cursor: progress;
}
body.page-members .members-action-icon.members-action-icon--spinning {
  display: inline-block;
  animation: members-action-icon-spin .78s linear infinite;
  transform-box: fill-box;
  transform-origin: 50% 50%;
  will-change: transform;
}
@keyframes members-action-icon-spin {
  to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
  /* The user explicitly requested this feedback on these two action buttons. */
  body.page-members .members-action-icon.members-action-icon--spinning {
    animation-duration: 1.2s;
  }
}

/* Indstillinger → Links: handlinger til tokenbeskyttet kalenderfeed. */
.settings-public-link-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}
.settings-public-link-actions form { margin: 0; }
@media (max-width: 700px) {
  body.page-settings .settings-public-link-actions,
  body.page-settings .settings-public-link-actions form,
  body.page-settings .settings-public-link-actions .btn { width: 100%; }
}


/* Public calendar publication state in the activity editor. */
.event-publication-control{align-items:flex-start;padding:10px 12px;border:1px solid var(--line,rgba(148,163,184,.35));border-radius:10px;background:var(--surface-2,rgba(255,255,255,.03));}
.event-publication-control input[type=checkbox]{flex:0 0 auto;margin-top:3px;}
.event-publication-control span{display:grid;gap:3px;}
.event-publication-control small{color:var(--muted);line-height:1.35;}

/* Centrale passwordkrav: genbruges på oprettelse, ændring og nulstilling. */
.password-requirements {
  display: grid;
  gap: 8px;
  margin: 4px 0 2px;
  padding: 12px 14px;
  border: 1px solid color-mix(in srgb, var(--pri) 24%, var(--bdr));
  border-radius: var(--r);
  background: color-mix(in srgb, var(--pri) 6%, var(--surf));
  color: var(--tx);
  line-height: 1.4;
}
.password-requirements-head {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--pri);
  font-size: .78rem;
}
.password-requirements ul {
  display: grid;
  gap: 4px;
  margin: 0;
  padding-left: 0;
  list-style: none;
  font-size: .73rem;
  color: var(--tx2);
}
.password-requirements li::marker { color: var(--pri); }
.password-policy-context-note {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  margin: 7px 2px 0;
  color: var(--muted);
  font-size: .72rem;
  line-height: 1.4;
}
.password-policy-context-note i { color: var(--pri); margin-top: 2px; }

/* Password-reset: hjælperegler skal visuelt høre til passwordfelterne,
   uden at ændre passwordkrav på øvrige sider. */

.password-requirements-live ul {
  list-style: none;
  padding-left: 0;
}
.password-requirements-live .password-requirement-item {
  display: grid;
  grid-template-columns: 16px minmax(0, 1fr);
  column-gap: 7px;
  align-items: start;
}
.password-requirements-live .password-requirement-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 16px;
  min-height: 1.25em;
  color: rgba(255,255,255,.92);
  font-family: Arial, Helvetica, sans-serif;
  font-size: .98rem;
  font-weight: 700;
  line-height: 1.2;
}
.password-requirements-live .password-requirement-item.is-met .password-requirement-status {
  color: #2db35b;
  font-size: 1.02rem;
  font-weight: 800;
}
body.reset-password-page .password-requirements {
  margin-top: 14px;
  background: #506479;
  border-color: rgba(255,255,255,.13);
  border-radius: 8px;
  color: #fff;
}
body.reset-password-page .password-requirements-head {
  color: #fff;
}
body.reset-password-page .password-requirements ul {
  color: rgba(255,255,255,.82);
}
body.reset-password-page .password-requirements li::marker {
  color: rgba(255,255,255,.92);
}

/* ─── Sponsorer: enkel aftale-, faktura- og betalingsoversigt ─── */
.sponsor-agreement-card {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  position: relative;
  margin: 0;
  padding: 16px 14px 12px;
  border: 1px solid rgba(30,73,118,.14) !important;
  border-radius: 14px !important;
  background: rgba(255,255,255,.72) !important;
}

.sponsor-agreement-card + .sponsor-agreement-card {
  margin-top: 10px;
}

.sponsor-agreement-card legend {
  width: auto;
  padding: 0 6px;
  margin-left: 2px;
  color: var(--tx2);
  font-size: .74rem;
  font-weight: 700;
}

.sponsor-agreement-card .s2 {
  grid-column: span 2;
}

/* Each sponsorship is edited as a self-contained agreement card. The general
   sponsorship-list rule visually hides labels on wide screens, but that rule
   makes this card difficult to use. Keep every field label visible here. */
.sponsor-agreement-card .fgrp {
  min-width: 0;
}

.sponsor-agreement-card .fl:not(.sponsor-sponsorship-action-label) {
  position: static;
  display: block;
  width: auto;
  height: auto;
  margin: 0 0 6px;
  overflow: visible;
  clip: auto;
  clip-path: none;
  white-space: normal;
  color: var(--tx2);
  font-size: .74rem;
  font-weight: 700;
  line-height: 1.25;
}

.sponsor-agreement-card .sponsor-sponsorship-actions {
  grid-column: 3;
  grid-row: auto;
  min-height: 42px;
  justify-content: flex-end;
}

.sponsor-agreement-card .sponsor-sponsorship-actions .btt {
  min-width: 42px;
  min-height: 42px;
}

.sponsor-invoice-cell {
  display: grid;
  gap: 5px;
  align-items: start;
}

.sponsor-invoice-cell .btn {
  justify-self: start;
  margin-top: 2px;
}

/* Payment is a secondary follow-up action in the invoice cell. Keep it visibly
   primary, but no taller than its label requires. */
.sponsor-invoice-cell .sponsor-list-payment-button {
  min-height: 0;
  padding: 4px 8px;
  font-size: .69rem;
  line-height: 1.1;
  gap: 5px;
}

.sponsor-benefits-preview {
  max-width: 250px;
  white-space: pre-line;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}

.sponsor-attention {
  color: #9a5e00 !important;
  font-weight: 700;
}

.sponsor-invoice-footer {
  flex-wrap: wrap;
  justify-content: flex-end;
}

.sponsor-payment-help {
  margin: 14px 0 0;
}

#mo-sponsor-invoice .mdl {
  max-width: 760px;
}

#mo-sponsor-payment .mdl {
  max-width: 620px;
}

@media (max-width: 1024px) {
  .sponsor-agreement-card {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sponsor-agreement-card .s2,
  .sponsor-agreement-card .sponsor-sponsorship-actions {
    grid-column: span 2;
  }

  .sponsor-agreement-card .sponsor-sponsorship-actions {
    justify-content: flex-end;
  }
}

@media (max-width: 700px) {
  body.page-sponsors #sponsors-table thead {
    display: none !important;
  }

  body.page-sponsors #sponsors-table tbody tr[data-sponsor-id] {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0 !important;
    align-items: start !important;
  }

  body.page-sponsors #sponsors-table tbody tr[data-sponsor-id] td,
  body.page-sponsors #sponsors-table tbody tr[data-sponsor-id] td:nth-child(n) {
    display: block !important;
    grid-column: auto !important;
    order: initial !important;
    text-align: left !important;
    padding: 10px 8px !important;
  }

  body.page-sponsors #sponsors-table tbody tr[data-sponsor-id] td:nth-child(2),
  body.page-sponsors #sponsors-table tbody tr[data-sponsor-id] td:nth-child(3),
  body.page-sponsors #sponsors-table tbody tr[data-sponsor-id] td:nth-child(5),
  body.page-sponsors #sponsors-table tbody tr[data-sponsor-id] td:nth-child(6) {
    grid-column: 1 / -1 !important;
  }

  body.page-sponsors #sponsors-table tbody tr[data-sponsor-id] td:nth-child(8) {
    grid-column: 1 / -1 !important;
    text-align: right !important;
  }

  body.page-sponsors #sponsors-table tbody tr[data-sponsor-id] td:nth-child(8) .abs {
    justify-content: flex-end;
  }

  .sponsor-agreement-card,
  .sponsor-agreement-card .s2,
  .sponsor-agreement-card .sponsor-sponsorship-actions {
    grid-column: auto;
  }

  .sponsor-agreement-card {
    grid-template-columns: minmax(0, 1fr);
  }

  .sponsor-agreement-card .sponsor-sponsorship-actions {
    justify-content: flex-end;
  }

  #mo-sponsor-invoice .mdl,
  #mo-sponsor-payment .mdl {
    width: calc(100vw - 20px) !important;
    max-width: calc(100vw - 20px) !important;
  }
}

/* Sponsor agreement editor: card-based, type-aware layout.
   This intentionally overrides the former spreadsheet-like sponsorship grid. */
.sponsor-sponsorship-list {
  gap: 12px;
  padding: 12px;
}

.sponsor-agreement-card {
  display: block !important;
  min-width: 0;
  margin: 0;
  padding: 0 !important;
  border: 1px solid rgba(30, 73, 118, .16) !important;
  border-radius: 14px !important;
  background: #fff !important;
  box-shadow: 0 8px 18px rgba(15, 23, 42, .045) !important;
  overflow: clip;
}

.sponsor-agreement-card + .sponsor-agreement-card {
  margin-top: 0;
  border-top: 1px solid rgba(30, 73, 118, .16) !important;
}

.sponsor-agreement-card > legend {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.sponsor-agreement-card-head {
  display: flex;
  align-items: stretch;
  gap: 0;
  min-height: 58px;
  padding: 0;
  background: linear-gradient(180deg, rgba(246, 250, 255, .95), rgba(238, 245, 253, .9));
  border-bottom: 1px solid rgba(30, 73, 118, .12);
}

.sponsor-agreement-card:not(.is-expanded) .sponsor-agreement-card-head {
  border-bottom-color: transparent;
}

.sponsor-agreement-toggle {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
  padding: 11px 14px;
  border: 0;
  border-radius: 13px 0 0 0;
  color: var(--tx);
  background: transparent;
  cursor: pointer;
  text-align: left;
}

.sponsor-agreement-toggle:hover {
  background: rgba(255, 255, 255, .45);
}

.sponsor-agreement-toggle:focus-visible {
  outline: 3px solid rgba(31, 112, 178, .34);
  outline-offset: -3px;
}

.sponsor-agreement-card-heading {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.sponsor-agreement-card-kicker {
  overflow: hidden;
  color: var(--tx);
  font-family: var(--fd);
  font-size: .88rem;
  font-weight: 750;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sponsor-agreement-header-details {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
}

.sponsor-agreement-type-preview {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 2px 7px;
  border: 1px solid rgba(30, 73, 118, .15);
  border-radius: 999px;
  color: var(--tx2);
  background: rgba(255, 255, 255, .72);
  font-size: .68rem;
  font-weight: 700;
  line-height: 1.2;
}

.sponsor-agreement-card-meta {
  min-width: 0;
  overflow: hidden;
  color: var(--txm);
  font-size: .7rem;
  font-weight: 650;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sponsor-agreement-toggle-icon {
  flex: 0 0 auto;
  color: var(--txm);
  font-size: .82rem;
  transition: transform .16s ease;
}

.sponsor-agreement-card.is-expanded .sponsor-agreement-toggle-icon {
  transform: rotate(180deg);
}

.sponsor-agreement-card-head .sponsor-remove-sponsorship {
  align-self: center;
  flex: 0 0 auto;
  min-height: 34px;
  margin: 0 12px 0 0;
  white-space: nowrap;
}

.sponsor-agreement-card-body[hidden] {
  display: none !important;
}

.sponsor-agreement-section {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 12px;
  padding: 15px 16px 16px;
  border-top: 1px solid rgba(30, 73, 118, .1);
}

.sponsor-agreement-card-body > .sponsor-agreement-section:first-child {
  border-top: 0;
}

.sponsor-agreement-section-title {
  grid-column: 1 / -1;
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin: 0 0 2px;
  color: var(--tx);
}

.sponsor-agreement-section-title > i {
  width: 24px;
  padding-top: 1px;
  color: var(--pri);
  text-align: center;
}

.sponsor-agreement-section-title > div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.sponsor-agreement-section-title strong {
  font-family: var(--fd);
  font-size: .8rem;
  font-weight: 750;
  line-height: 1.25;
}

.sponsor-agreement-section-title span {
  color: var(--txm);
  font-size: .72rem;
  line-height: 1.35;
}

.sponsor-agreement-card .fgrp,
.sponsor-agreement-card .fgrp.s2 {
  min-width: 0;
  margin: 0;
}

.sponsor-agreement-card .fl:not(.sponsor-sponsorship-action-label) {
  position: static;
  display: block;
  width: auto;
  height: auto;
  margin: 0 0 6px;
  overflow: visible;
  clip: auto;
  clip-path: none;
  white-space: normal;
  color: var(--tx2);
  font-size: .74rem;
  font-weight: 700;
  line-height: 1.25;
}

.sponsor-agreement-card [hidden] {
  display: none !important;
}

.sponsor-agreement-field--name { grid-column: span 6; }
.sponsor-agreement-field--type { grid-column: span 3; }
.sponsor-agreement-field--status { grid-column: span 3; }
.sponsor-agreement-field--start { grid-column: span 3; }
.sponsor-agreement-field--end { grid-column: span 3; }
.sponsor-agreement-field--responsible { grid-column: span 6; }
.sponsor-agreement-field--contribution { grid-column: 1 / -1; }
.sponsor-agreement-field--cash { grid-column: span 6; }
.sponsor-agreement-field--payment { grid-column: span 6; }
.sponsor-agreement-field--estimated { grid-column: span 6; }
.sponsor-agreement-field--benefits { grid-column: span 8; }
.sponsor-agreement-field--benefits-status { grid-column: span 4; }

.sponsor-field-help {
  margin-top: 5px;
  color: var(--txm);
  font-size: .68rem;
  line-height: 1.32;
}

.sponsor-agreement-card .fta {
  min-height: 90px;
  resize: vertical;
}

.sponsor-agreement-field--benefits-status .fsel {
  min-height: 42px;
}

.sponsor-contribution-preview {
  max-width: 250px;
  margin-top: 3px;
  white-space: pre-line;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

@media (max-width: 1024px) {
  .sponsor-agreement-section {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sponsor-agreement-field--name,
  .sponsor-agreement-field--responsible,
  .sponsor-agreement-field--contribution,
  .sponsor-agreement-field--benefits,
  .sponsor-agreement-field--benefits-status {
    grid-column: 1 / -1;
  }

  .sponsor-agreement-field--type,
  .sponsor-agreement-field--status,
  .sponsor-agreement-field--start,
  .sponsor-agreement-field--end,
  .sponsor-agreement-field--cash,
  .sponsor-agreement-field--payment,
  .sponsor-agreement-field--estimated {
    grid-column: auto;
  }
}

@media (max-width: 700px) {
  .sponsor-sponsorship-list {
    padding: 8px;
  }

  .sponsor-agreement-card-head {
    min-height: 56px;
  }

  .sponsor-agreement-toggle {
    align-items: flex-start;
    padding: 10px 12px;
  }

  .sponsor-agreement-card-head .sponsor-remove-sponsorship span {
    display: none;
  }

  .sponsor-agreement-card-head .sponsor-remove-sponsorship {
    min-width: 38px;
    margin-right: 8px;
    padding: 7px 9px;
  }

  .sponsor-agreement-card-meta {
    max-width: 210px;
  }

  .sponsor-agreement-section {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    padding: 14px 12px;
  }

  .sponsor-agreement-field--name,
  .sponsor-agreement-field--type,
  .sponsor-agreement-field--status,
  .sponsor-agreement-field--start,
  .sponsor-agreement-field--end,
  .sponsor-agreement-field--responsible,
  .sponsor-agreement-field--contribution,
  .sponsor-agreement-field--cash,
  .sponsor-agreement-field--payment,
  .sponsor-agreement-field--estimated,
  .sponsor-agreement-field--benefits,
  .sponsor-agreement-field--benefits-status {
    grid-column: 1 / -1;
  }
}


/* Sponsor editor: only one working section is open at a time.
   General details remain available without forcing a tall modal. */
.sponsor-details-card {
  grid-column: span 2;
  min-width: 0;
  overflow: clip;
  border: 1px solid rgba(30, 73, 118, .16);
  border-radius: 14px;
  background: rgba(255, 255, 255, .8);
  box-shadow: 0 8px 18px rgba(15, 23, 42, .04);
}

.sponsor-details-card-head {
  min-height: 54px;
  background: linear-gradient(180deg, rgba(246, 250, 255, .95), rgba(238, 245, 253, .9));
  border-bottom: 1px solid rgba(30, 73, 118, .12);
}

.sponsor-details-card:not(.is-expanded) .sponsor-details-card-head {
  border-bottom-color: transparent;
}

.sponsor-details-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 54px;
  padding: 12px 15px;
  border: 0;
  border-radius: 13px;
  color: var(--tx);
  background: transparent;
  cursor: pointer;
  font-family: var(--fd);
  font-size: .88rem;
  font-weight: 750;
  text-align: left;
}

.sponsor-details-toggle:hover {
  background: rgba(255, 255, 255, .45);
}

.sponsor-details-toggle:focus-visible {
  outline: 3px solid rgba(31, 112, 178, .34);
  outline-offset: -3px;
}

.sponsor-details-toggle-icon {
  flex: 0 0 auto;
  color: var(--txm);
  font-size: .82rem;
  transition: transform .16s ease;
}

.sponsor-details-card.is-expanded .sponsor-details-toggle-icon {
  transform: rotate(180deg);
}

.sponsor-details-body[hidden] {
  display: none !important;
}

.sponsor-details-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 18px;
  padding: 16px;
}

.sponsor-details-grid .fgrp {
  min-width: 0;
  margin: 0;
}

.sponsor-details-grid .s2,
.sponsor-details-grid .sponsor-note-field {
  grid-column: 1 / -1;
}

/* The last content card must never visually touch the modal action footer. */
#mo-sponsor .sponsor-sponsorship-list {
  margin-bottom: 22px;
}

@media (max-width: 700px) {
  body.page-sponsors #mo-sponsor .sponsor-details-card {
    grid-column: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .sponsor-details-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    padding: 14px 12px;
  }

  .sponsor-details-grid .s2,
  .sponsor-details-grid .sponsor-note-field {
    grid-column: auto;
  }

  #mo-sponsor .sponsor-sponsorship-list {
    margin-bottom: 18px;
  }
}

/* Sponsorer: betalingshandling på den åbne aftale */
@media (max-width: 700px) {
  body.page-sponsors #mo-sponsor .mf .sponsor-modal-payment-action:not([hidden]) {
    grid-column: 1 / -1;
    margin-right: 0;
  }
}

/* Kalender: offentlig tilmelding til den enkelte aktivitet. */
.event-public-registration-section {
  display: grid;
  gap: 10px;
}
.event-public-registration-control {
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--pri) 28%, var(--line, rgba(148,163,184,.35)));
  border-radius: 10px;
  background: color-mix(in srgb, var(--pri) 5%, var(--surface-2, rgba(255,255,255,.03)));
}
.event-public-registration-control > .event-publication-control {
  border: 0;
  border-radius: 0;
  background: transparent;
}
.event-public-registration-link-slot {
  padding: 0 12px 12px;
}
.event-public-registration-pending,
.event-public-registration-help {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  margin: 0;
  color: var(--muted);
  font-size: .78rem;
  line-height: 1.45;
}
.event-public-registration-pending i { color: var(--pri); margin-top: 2px; }
.event-public-registration-link-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 8px;
  align-items: center;
}
.event-public-registration-link-row .fi { min-width: 0; }
.event-public-registration-list {
  display: block;
  margin-top: 4px;
  border: 1px solid var(--line, rgba(148,163,184,.35));
  border-radius: 10px;
  overflow: hidden;
}
.event-public-registration-list-title {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 10px 12px;
  cursor: pointer;
  list-style: none;
  color: var(--tx);
  font-size: .86rem;
  font-weight: 750;
  background: var(--surface-2, rgba(255,255,255,.03));
}
.event-public-registration-list-title::-webkit-details-marker { display: none; }
.event-public-registration-list-title::marker { content: ''; }
.event-public-registration-list-title i:first-child { color: var(--pri); }
.event-public-registration-list-title strong {
  display: inline-flex;
  min-width: 20px;
  min-height: 20px;
  align-items: center;
  justify-content: center;
  padding: 0 6px;
  color: #fff;
  font-size: .72rem;
  background: var(--pri);
  border-radius: 999px;
}
.event-public-registration-list-chevron {
  margin-left: auto;
  color: var(--muted);
  transition: transform var(--t);
}
.event-public-registration-list[open] .event-public-registration-list-chevron { transform: rotate(180deg); }
.event-public-registration-list-actions {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  border-top:1px solid var(--line, rgba(148,163,184,.35));
  background:var(--surface-2, rgba(255,255,255,.03))
}
.event-public-registration-recipient-summary {
  display:inline-flex;
  align-items:center;
  min-width:0;
  gap:6px;
  color:var(--muted);
  font-size:.78rem;
  line-height:1.4
}
.event-public-registration-recipient-summary i { color:var(--pri); }
.event-public-registration-recipient-summary strong { color:var(--tx); }
.event-public-registration-email-open-button,
.event-public-registration-email-send-button {
  width:fit-content;
  inline-size:fit-content;
  flex:0 0 auto;
  white-space:nowrap
}
.event-public-registration-email-send-button {
  justify-self:end
}
.event-public-registration-list .tw { border-top: 1px solid var(--line, rgba(148,163,184,.35)); }
.event-public-registration-list .dt { font-size: .79rem; }
.event-public-registration-list .dt td { vertical-align: middle; }
.event-public-registration-table { table-layout:fixed; }
.event-public-registration-table th.event-public-registration-name-column { width:25%; }
.event-public-registration-table th.event-public-registration-affiliation-column { width:24%; }
.event-public-registration-table th.event-public-registration-phone-column { width:17%; }
.event-public-registration-table th.event-public-registration-email-column { width:27%; }
.event-public-registration-table th.event-public-registration-action-column { width:7%; }
.event-public-registration-table th:not(.event-public-registration-action-column),
.event-public-registration-table td:not(.event-public-registration-action-column) {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.event-public-registration-table tbody td:not(.event-public-registration-action-column),
.event-public-registration-table tbody td:not(.event-public-registration-action-column) strong {
  color:var(--tx2);
  font-family:inherit;
  font-size:inherit;
  font-weight:400;
}
.event-public-registration-table th.event-public-registration-action-column,
.event-public-registration-table td.event-public-registration-action-column {
  padding-right:10px;
  padding-left:8px;
  text-align:right;
}
.event-public-registration-delete-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-left:auto
}
.event-public-registration-delete-btn:disabled {
  cursor:wait;
  opacity:.62
}
.event-public-registration-row.is-removing {
  opacity:.45;
  pointer-events:none;
  transition:opacity .14s ease
}
.event-public-registration-row { cursor: pointer; }
.event-public-registration-row:hover { background: color-mix(in srgb, var(--pri) 6%, transparent); }
.event-public-registration-row:focus-visible { outline: 2px solid color-mix(in srgb, var(--pri) 60%, transparent); outline-offset: -2px; }
#mo-public-event-registration-preview,
#mo-public-event-registration-email {
  z-index:1010
}
#mo-public-event-registration-preview .event-public-registration-preview-modal,
#mo-public-event-registration-email .event-public-registration-preview-modal {
  position:relative;
  width:min(816px, 100%);
  max-height:calc(100dvh - 32px);
  overflow:hidden;
  background:transparent;
  border-radius:20px;
  box-shadow:none
}
#mo-public-event-registration-preview .event-public-registration-preview-scroll,
#mo-public-event-registration-email .event-public-registration-preview-scroll {
  max-height:calc(100dvh - 32px);
  overflow:auto;
  border-radius:20px;
  background:#f4f7fb
}
#mo-public-event-registration-preview .event-public-registration-preview-close,
#mo-public-event-registration-email .event-public-registration-preview-close {
  position:absolute;
  z-index:2;
  top:20px;
  right:clamp(22px, 5vw, 36px);
  box-sizing:border-box;
  flex:0 0 34px;
  width:34px;
  height:34px;
  padding:0;
  line-height:1;
  transform:none;
  color:#172033;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(23,32,51,.14);
  border-radius:50%;
  box-shadow:0 3px 12px rgba(15,23,42,.18)
}
#mo-public-event-registration-preview .event-public-registration-preview-close:hover,
#mo-public-event-registration-preview .event-public-registration-preview-close:focus-visible,
#mo-public-event-registration-email .event-public-registration-preview-close:hover,
#mo-public-event-registration-email .event-public-registration-preview-close:focus-visible {
  color:#fff;
  background:var(--pri);
  border-color:var(--pri)
}
#mo-public-event-registration-preview .event-public-registration-page-canvas,
#mo-public-event-registration-email .event-public-registration-page-canvas {
  min-width:0
}
#mo-public-event-registration-preview .public-event-registration-shell,
#mo-public-event-registration-email .public-event-registration-shell {
  width:min(100%, 780px)
}
.event-public-registration-row.is-loading {
  cursor:progress;
  opacity:.58;
  pointer-events:none
}
@media (max-width: 700px) {
  .event-public-registration-link-row { grid-template-columns: 1fr; }
  .event-public-registration-link-row .btn { width: 100%; }
  .event-public-registration-list-actions {
    align-items:flex-start;
    flex-direction:column
  }
  .event-public-registration-email-open-button,
  .event-public-registration-email-send-button {
    width:fit-content;
    inline-size:fit-content
  }
  .event-public-registration-table th.event-public-registration-name-column { width:24%; }
  .event-public-registration-table th.event-public-registration-affiliation-column { width:25%; }
  .event-public-registration-table th.event-public-registration-phone-column { width:18%; }
  .event-public-registration-table th.event-public-registration-email-column { width:25%; }
  .event-public-registration-table th.event-public-registration-action-column { width:8%; }
  #mo-public-event-registration-preview,
  #mo-public-event-registration-email { padding:8px; }
  #mo-public-event-registration-preview .event-public-registration-preview-modal,
  #mo-public-event-registration-email .event-public-registration-preview-modal {
    width:min(816px, 100%);
    max-height:calc(100dvh - 16px)
  }
  #mo-public-event-registration-preview .event-public-registration-preview-scroll,
  #mo-public-event-registration-email .event-public-registration-preview-scroll {
    max-height:calc(100dvh - 16px)
  }
  #mo-public-event-registration-preview .event-public-registration-preview-close,
  #mo-public-event-registration-email .event-public-registration-preview-close {
    top:18px;
    right:clamp(18px, 5vw, 26px)
  }
}

body.page-settings .settings-season-form {
  display: block;
}

body.page-settings .settings-season-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 14px;
}

body.page-settings .settings-season-months {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.membership-fee-member-hint {
  margin-bottom: 12px;
  line-height: 1.45;
}

body.page-settings .settings-indoor-season-card {
  grid-column: 1 / -1;
}

body.page-settings .settings-season-inclusive-hint {
  margin: 2px 0 14px;
  line-height: 1.45;
}

body.page-settings .settings-card-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 14px;
}

/* Settings: Roller and Certifikater structured grid headers */
body.page-settings .settings-roles-grid,
body.page-settings .settings-certificates-grid {
  display: grid;
  align-items: center;
  width: 100%;
  margin-bottom: 14px;
  column-gap: 10px;
  row-gap: 9px;
}

body.page-settings .settings-roles-grid {
  grid-template-columns: minmax(220px, max-content) 28px minmax(280px, 3fr) minmax(170px, 1fr);
}

body.page-settings .settings-certificates-grid {
  grid-template-columns: max-content max-content minmax(260px, 1fr) minmax(260px, 1fr);
}

/* Certifikat og Certifikatfarve følger bredeste indhold i hver kolonne + 40 px.
   Samme grid tracks deles af header og alle rækker via display: contents. */
body.page-settings .settings-certificates-row > :nth-child(-n + 2) {
  box-sizing: border-box;
  padding-inline: 20px;
  white-space: nowrap;
}

body.page-settings .settings-roles-header,
body.page-settings .settings-roles-row,
body.page-settings .settings-certificates-header,
body.page-settings .settings-certificates-row {
  display: contents;
}

body.page-settings .settings-roles-header > div,
body.page-settings .settings-certificates-header > div {
  color: var(--txm);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .01em;
  min-width: 0;
  padding: 0 0 4px;
  white-space: nowrap;
}

body.page-settings .settings-certificates-header > :nth-child(-n + 2) {
  box-sizing: border-box;
  padding: 0 20px 4px;
}

body.page-settings .settings-roles-row > *,
body.page-settings .settings-certificates-row > * {
  min-width: 0;
}

body.page-settings .settings-role-label,
body.page-settings .settings-roles-role-heading {
  box-sizing: border-box;
  padding-right: 100px;
  white-space: nowrap;
}

body.page-settings .settings-certificate-label,
body.page-settings .settings-certificates-cert-heading {
  box-sizing: border-box;
  width: 100%;
  padding-right: 0;
  white-space: nowrap;
}

body.page-settings .settings-role-name-input {
  width: 100%;
  min-width: 220px;
  max-width: 360px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--tx2);
  font-family: inherit;
  font-size: .71rem;
  font-weight: 600;
  line-height: 1.2;
  margin: 0;
  padding: 0;
}

body.page-settings .settings-role-name-input:focus {
  outline: none;
}

body.page-settings .settings-role-name-input:focus-visible {
  outline: 2px solid var(--pri);
  outline-offset: 3px;
}

body.page-settings .settings-role-name-cell {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-width: 220px;
  max-width: 390px;
}

body.page-settings .settings-role-name-cell .settings-role-name-input {
  flex: 1 1 auto;
  min-width: 0;
  max-width: none;
}

body.page-settings .settings-role-delete-marker {
  display: none;
  align-items: center;
  justify-content: center;
  flex: 0 0 24px;
  width: 24px;
  height: 34px;
  cursor: pointer;
}

body.page-settings .roles-form.is-role-delete-mode .settings-role-delete-marker {
  display: inline-flex;
}

body.page-settings .settings-role-delete-check {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

body.page-settings .settings-role-delete-box {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border: 1px solid var(--bdr);
  border-radius: 6px;
  background: var(--surf);
  color: #fff;
  transition: var(--t);
}

body.page-settings .settings-role-delete-box .fa {
  font-size: .72rem;
  line-height: 1;
  opacity: 0;
}

body.page-settings .settings-role-delete-check:focus-visible + .settings-role-delete-box {
  outline: 2px solid var(--pri);
  outline-offset: 2px;
}

body.page-settings .settings-role-delete-check:checked + .settings-role-delete-box {
  border-color: var(--dan);
  background: var(--dan);
}

body.page-settings .settings-role-delete-check:checked + .settings-role-delete-box .fa {
  opacity: 1;
}

body.page-settings .settings-role-election-cell,
body.page-settings .settings-roles-election-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  min-width: 28px;
  max-width: 28px;
  justify-self: center;
}

body.page-settings .settings-role-renewal-cell {
  display: flex;
  align-items: center;
}

body.page-settings .settings-role-renewal-cell .fsel,
body.page-settings .settings-roles-row > select,
body.page-settings .settings-certificates-row > select {
  width: 100%;
  max-width: none;
}

body.page-settings .settings-role-election-cell .election-icon {
  flex: 0 0 auto;
}

body.page-settings .settings-roles-custom-row.is-selected > .settings-role-name-input,
body.page-settings .settings-roles-custom-row.is-selected > select,
body.page-settings .settings-roles-custom-row.is-selected > .settings-role-renewal-cell .fsel {
  border-color: var(--pri);
  box-shadow: 0 0 0 2px var(--pril);
}

body.page-settings .settings-roles-row-new .settings-role-name-input {
  color: var(--tx2);
}

body.page-settings .settings-certificates-color-heading {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-right: 0;
  text-align: center;
  white-space: nowrap;
  justify-self: stretch;
}

body.page-settings .settings-cert-color-cell {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 0;
  padding-right: 0;
  justify-self: stretch;
}

body.page-settings .settings-cert-color-cell .color-picker-compact {
  flex: 0 0 auto;
}

body.page-settings .settings-roles-actions,
body.page-settings .settings-certificates-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 4px;
}

body.page-settings .settings-roles-actions {
  justify-content: space-between;
  align-items: center;
}

body.page-settings .settings-roles-actions-left,
body.page-settings .settings-roles-actions-right {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

@media (max-width: 1024px) {
  body.page-settings .settings-roles-card .roles-form {
    min-width:720px;
  }

  body.page-settings .settings-certificates-card .settings-certificates-form {
    min-width:890px;
  }

  body.page-settings .settings-roles-grid {
    grid-template-columns:minmax(220px, max-content) 28px minmax(260px, 3fr) minmax(160px, 1fr);
    min-width:720px;
  }

  body.page-settings .settings-certificates-grid {
    grid-template-columns:max-content max-content minmax(240px, 1fr) minmax(240px, 1fr);
    min-width:890px;
  }
}

/* Indstillinger: ensartet højrestillede kort-handlinger */
body.page-settings .settings-form-actions-right,
body.page-settings .settings-membertype-actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

body.page-settings .settings-form-actions-right {
  margin-top: 14px;
}

body.page-settings .settings-membertype-actions {
  margin-top: auto;
  padding-top: 14px;
}

/* Kalender: kompakte og entydige handlingsikoner i aktivitetslisten. */
body.page-events #eventsTable th[data-col="handling"],
body.page-events #eventsTable td.event-actions-cell {
  width: 116px;
  min-width: 116px;
}

body.page-events #eventsTable td.event-actions-cell {
  text-align: right;
}

body.page-events .event-action-buttons {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
  white-space: nowrap;
}

body.page-events .event-action-buttons .btt {
  flex: 0 0 auto;
}

body.page-events .event-task-icon-stack {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.45em;
  height: 1.35em;
  line-height: 1;
}

body.page-events .event-task-icon-main {
  font-size: 1.05em;
}

body.page-events .event-task-icon-modifier {
  position: absolute;
  right: -.18em;
  bottom: -.16em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.15em;
  height: 1.15em;
  border-radius: 999px;
  background: var(--surf);
  box-shadow: 0 0 0 1px var(--bdr);
  color: inherit;
  font-size: .54em;
}

/* Support: ticket-level attachments belong to the description area, not the comment thread. */
.support-description-detail .support-comment-attachments {
  flex: 0 0 auto;
  margin-top: 12px;
}

/* Support: ticket-level attachments use the same visual pattern as Email attachments. */
.support-existing-attachments-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.support-existing-attachments-head strong {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--tx);
  font-size: .78rem;
  font-weight: 800;
}

.support-email-like-attachments {
  padding: 0;
}

.support-email-like-attachments .support-attach-row,
.support-email-like-attachments .support-existing-attachment-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  border: 0;
  border-bottom: 1px solid var(--bdr2);
  border-radius: 0;
  background: transparent;
}

.support-email-like-attachments .support-attach-row:last-child,
.support-email-like-attachments .support-existing-attachment-row:last-child {
  border-bottom: 0;
}

.support-attach-thumb {
  width: 80px;
  height: 56px;
}

.support-attach-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.support-existing-attachments {
  margin-top: 14px;
}

#mo-support-attachment-preview.open {
  z-index: 10000;
}

/* Support: collapsible attachment sections with count badge. */
.support-attachments-collapsible .support-attachment-head,
.support-existing-attachments .support-existing-attachments-head {
  align-items: center;
}
.support-attachment-toggle {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  border: 0;
  padding: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
  text-align: left;
}
.support-attachment-toggle strong {
  min-width: 0;
}
.support-attachment-toggle:focus-visible {
  outline: 2px solid rgba(30,73,118,.38);
  outline-offset: 4px;
  border-radius: 10px;
}
.support-attachment-chevron {
  width: 14px;
  color: var(--txm);
  font-size: .78rem;
  text-align: center;
}
.support-attachment-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  margin-left: 5px;
  padding: 0 7px;
  border-radius: 999px;
  background: rgba(47, 88, 145, .13);
  color: var(--pri);
  font-size: .72rem;
  font-weight: 900;
  line-height: 1;
}
.support-attachment-badge[hidden] {
  display: none !important;
}
.support-attachments-collapsible [data-support-attachments-body][hidden],
.support-existing-attachments [data-support-attachments-body][hidden] {
  display: none !important;
}

.support-closed-table-card {
  margin-top: 50px;
}

.support-file-count {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 800;
  color: var(--tx);
}

.support-file-count i {
  color: var(--pri);
  opacity: .88;
}

/* Support: attachment sections are open by default but stay compact with many files. */
.support-attachment-list[data-support-attachments-body],
.support-existing-attachments [data-support-attachments-body] {
  max-height: 178px;
  overflow-y: auto;
  scrollbar-gutter: stable;
  padding-right: 4px;
}

.support-attachment-list[data-support-attachments-body] .support-attach-list-inner,
.support-existing-attachments [data-support-attachments-body].support-email-like-attachments {
  min-height: 0;
}

/* Support: drag/drop upload target for Vedhæft filer sections. */
.support-attachment-box[data-support-attachment-section],
.support-existing-attachments[data-support-attachment-section] {
  position: relative;
}
.support-attachment-box.is-drag-over,
.support-existing-attachments.is-drag-over {
  border-color: rgba(30, 73, 118, .46);
  background: rgba(47, 88, 145, .08);
  box-shadow: inset 0 0 0 1px rgba(47, 88, 145, .18), 0 8px 24px rgba(30, 73, 118, .10);
}
.support-attachment-box.is-drag-over::after,
.support-existing-attachments.is-drag-over::after {
  content: 'Slip filerne her';
  position: absolute;
  inset: 8px;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px dashed rgba(30, 73, 118, .42);
  border-radius: calc(var(--rl) - 2px);
  background: rgba(255, 255, 255, .82);
  color: var(--pri);
  font-size: .9rem;
  font-weight: 900;
  pointer-events: none;
}
.support-attachment-box.is-drop-denied,
.support-existing-attachments.is-drop-denied {
  border-color: rgba(150, 40, 40, .48);
  background: rgba(150, 40, 40, .07);
}
.support-attachment-box.is-drop-denied::after,
.support-existing-attachments.is-drop-denied::after {
  content: 'Ticketen er lukket';
  border-color: rgba(150, 40, 40, .45);
  color: #8f2c2c;
}

/* Mailstatus: samlet historik over systemgenererede mails. */
.mailq-history-card{width:100%}
.mailq-history-head{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(260px,1fr);grid-template-areas:'title toggle toolbar';align-items:center;gap:10px 14px}
.mailq-history-head>.ctitle{grid-area:title}
.mailq-history-head>#mailq-history-toggle{grid-area:toggle;justify-self:center;white-space:nowrap}
.mailq-history-toolbar{grid-area:toolbar;display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}
.mailq-history-toolbar .fsel{min-width:150px;max-width:190px}
.mailq-history-card.is-collapsed .mailq-history-toolbar{display:none}
.mailq-history-body{display:flex;flex-direction:column;gap:12px}
.mailq-history-body[hidden]{display:none!important}
.mailq-history-counts{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mailq-history-count-pill{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--bdr);background:#fff;border-radius:999px;padding:5px 9px;font-size:.74rem;color:var(--txm)}
.mailq-history-count-pill strong{color:var(--pri)}
.mailq-history-table-wrap{overflow:auto}
.mailq-history-table{min-width:840px}
.mailq-history-row{cursor:pointer}
.mailq-history-row:focus-visible{outline:2px solid var(--pri);outline-offset:-2px}
.mailq-history-status{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:.76rem;font-weight:700;background:var(--surf2);color:var(--txm);white-space:nowrap}
.mailq-history-status.ok{background:#edf7ef;color:#28653b}
.mailq-history-status.bad{background:#fff0ef;color:#a2342a}
.mailq-history-status.warn{background:#fff6df;color:#825e10}
.mailq-history-status.open{background:#edf3fb;color:#335d91}
.mailq-history-modal{width:min(1180px,calc(100vw - 28px));max-width:96vw;max-height:96dvh;display:flex;flex-direction:column}
#mo-mailq-history{padding-top:2dvh;padding-bottom:2dvh}
.mailq-history-detail{display:flex;flex-direction:column;gap:14px;overflow:auto;min-height:0}
.mailq-history-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.mailq-history-detail-grid>div{display:flex;flex-direction:column;gap:4px;border:1px solid var(--bdr);background:var(--surf2);border-radius:10px;padding:10px 12px;min-width:0}
.mailq-history-detail-grid span{font-size:.75rem;color:var(--txm)}
.mailq-history-detail-grid strong{overflow-wrap:anywhere}
.mailq-history-preview-panel{border:1px solid var(--bdr);border-radius:var(--r);background:#fff;overflow:hidden;flex:0 0 auto}
.mailq-history-preview-head{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--bdr);background:var(--pril);padding:10px 12px;color:var(--pri)}
.mailq-history-preview{--mailq-history-preview-base-height:360px;display:block;width:100%;height:var(--mailq-history-preview-base-height);min-height:var(--mailq-history-preview-base-height);border:0;background:#fff}
.mailq-history-recipients{border:1px solid var(--bdr);border-radius:var(--r);background:#fff;overflow:hidden;flex:0 0 auto}
.mailq-history-recipients-summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;min-height:44px;padding:9px 12px;cursor:pointer;list-style:none;user-select:none;color:var(--pri)}
.mailq-history-recipients-summary::-webkit-details-marker{display:none}
.mailq-history-recipients-summary::marker{content:''}
.mailq-history-recipients-title{min-width:0;font-size:.82rem;font-weight:800}
.mailq-history-recipients-count{white-space:nowrap}
.mailq-history-recipients-chevron{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--bdr);border-radius:999px;background:#fff;color:var(--txm);font-size:.7rem;transition:transform .16s ease,color .16s ease,border-color .16s ease}
.mailq-history-recipients[open] .mailq-history-recipients-summary{border-bottom:1px solid var(--bdr)}
.mailq-history-recipients[open] .mailq-history-recipients-chevron{transform:rotate(180deg);color:var(--pri);border-color:rgba(2,72,115,.28)}
.mailq-history-recipients-body{max-height:240px;overflow:auto;overscroll-behavior:contain}
.mailq-history-recipients-body .mailq-rec-table{border:0;border-radius:0}
.mailq-history-recipients-body .mailq-rec-table thead th{position:sticky;top:0;z-index:1}
@media(max-width:900px){.mailq-history-preview{--mailq-history-preview-base-height:300px}}
@media(max-width:760px){
  .mailq-history-head{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'title toggle' 'toolbar toolbar'}
  .mailq-history-toolbar{justify-content:stretch;flex-wrap:wrap}
  .mailq-history-toolbar .fsel{flex:1;max-width:none}
  .mailq-history-detail-grid{grid-template-columns:1fr}
  .mailq-history-preview{--mailq-history-preview-base-height:260px}
}

/* Mailstatus: Mailjobs er sammenfoldet som standard. */
.mailq-jobs-card{width:100%}
.mailq-jobs-head{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(260px,1fr);grid-template-areas:'title toggle filters';align-items:center;gap:10px 14px}
.mailq-jobs-head>.ctitle{grid-area:title}
.mailq-jobs-head>#mailq-jobs-toggle{grid-area:toggle;justify-self:center;white-space:nowrap}
.mailq-jobs-head>.mailq-filter-row{grid-area:filters;justify-content:flex-end}
.mailq-jobs-card.is-collapsed .mailq-filter-row{display:none}
.mailq-jobs-body[hidden]{display:none!important}
@media(max-width:760px){
  .mailq-jobs-head{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'title toggle' 'filters filters'}
  .mailq-jobs-head>.mailq-filter-row{justify-content:flex-start;flex-wrap:wrap}
}


/* Mailstatus Mailhistorik: genbrug præcis samme modal-, preview- og modtagerlayout som Email > Mailhistorik. */
#mo-mailq-history{padding-top:2dvh;padding-bottom:2dvh}
.mailq-page .comm-sent-modal{width:min(1180px,calc(100vw - 28px));max-height:96dvh;display:flex;flex-direction:column}
.mailq-page .comm-sent-detail-body{display:flex;flex-direction:column;gap:14px;overflow:auto;min-height:0}
.mailq-page .comm-sent-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}
.mailq-page .comm-sent-detail-meta{border:1px solid var(--bdr);border-radius:var(--r);background:#fff;padding:12px;display:grid;gap:7px}
.mailq-page .comm-sent-detail-title{font-size:1rem;font-weight:800;color:var(--pri);overflow-wrap:anywhere}
.mailq-page .comm-sent-detail-kv{display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px;font-size:.82rem;color:var(--txm)}
.mailq-page .comm-sent-detail-kv strong{color:var(--tx);font-weight:700;overflow-wrap:anywhere}
.mailq-page .comm-sent-preview-panel{border:1px solid var(--bdr);border-radius:var(--r);background:#fff;overflow:hidden}
.mailq-page .comm-sent-preview-head{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--bdr);background:var(--pril);padding:10px 12px;color:var(--pri)}
.mailq-page .comm-sent-preview-frame{--comm-sent-preview-base-height:360px;display:block;width:100%;height:var(--comm-sent-preview-base-height);min-height:var(--comm-sent-preview-base-height);border:0;background:#fff}
.mailq-page .comm-sent-recipients{border:1px solid var(--bdr);border-radius:var(--r);background:#fff;overflow:hidden}
.mailq-page .comm-sent-recipients-summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;min-height:44px;padding:9px 12px;cursor:pointer;list-style:none;user-select:none;color:var(--pri)}
.mailq-page .comm-sent-recipients-summary::-webkit-details-marker{display:none}
.mailq-page .comm-sent-recipients-summary::marker{content:''}
.mailq-page .comm-sent-recipients-title{min-width:0;font-size:.82rem;font-weight:800}
.mailq-page .comm-sent-recipients-count{white-space:nowrap}
.mailq-page .comm-sent-recipients-chevron{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--bdr);border-radius:999px;background:#fff;color:var(--txm);font-size:.7rem;transition:transform .16s ease,color .16s ease,border-color .16s ease}
.mailq-page .comm-sent-recipients[open] .comm-sent-recipients-summary{border-bottom:1px solid var(--bdr)}
.mailq-page .comm-sent-recipients[open] .comm-sent-recipients-chevron{transform:rotate(180deg);color:var(--pri);border-color:rgba(2,72,115,.28)}
.mailq-page .comm-sent-recipients .comm-sent-recipient-wrap{max-height:240px;max-width:100%;overflow:auto;overscroll-behavior:contain;border:0;border-radius:0;background:#fff}
.mailq-page .comm-sent-recipients .comm-sent-recipient-table thead th{position:sticky;top:0;z-index:1}
.mailq-page .comm-sent-recipients .comm-sent-recipient-wrap:focus-visible{outline:2px solid var(--pri);outline-offset:-2px}
.mailq-page .comm-sent-recipient-table{margin:0;min-width:780px}
.mailq-page .comm-sent-recipient-table td{vertical-align:middle;overflow-wrap:anywhere}
.mailq-page .comm-sent-status{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:4px 8px;font-size:.72rem;font-weight:800;line-height:1.1;white-space:nowrap;border:1px solid transparent}
.mailq-page .comm-sent-status.ok{background:rgba(22,101,52,.08);border-color:rgba(22,101,52,.18);color:#166534}
.mailq-page .comm-sent-status.open{background:rgba(2,72,115,.08);border-color:rgba(2,72,115,.18);color:var(--pri)}
.mailq-page .comm-sent-status.warn{background:rgba(130,94,16,.08);border-color:rgba(130,94,16,.18);color:#825e10}
.mailq-page .comm-sent-status.bad{background:rgba(187,28,28,.08);border-color:rgba(187,28,28,.18);color:var(--dan)}
.mailq-page .comm-sent-error-cell{max-width:320px;color:var(--dan);font-size:.75rem}
@media(max-width:900px){.mailq-page .comm-sent-detail-grid{grid-template-columns:1fr}.mailq-page .comm-sent-preview-frame{--comm-sent-preview-base-height:300px}}
@media(max-width:620px){.mailq-page .comm-sent-recipient-table{min-width:720px}.mailq-page .comm-sent-preview-frame{--comm-sent-preview-base-height:260px}}
@media(max-width:760px){#mo-mailq-history .comm-sent-modal{max-height:min(96dvh,calc(100dvh - 20px))!important}}

/* Mailstatus > Mailhistorik: brug samme modal- og previewlayout som Email > Mailhistorik. */
#mo-mailq-history {
  padding-top:2dvh;
  padding-bottom:2dvh;
}
#mo-mailq-history .comm-sent-modal {
  width:min(1180px,calc(100vw - 28px));
  max-width:96vw;
  max-height:96dvh;
  display:flex;
  flex-direction:column;
}
#mo-mailq-history .comm-sent-detail-body {
  display:flex;
  flex-direction:column;
  gap:14px;
  overflow:auto;
  min-height:0;
}
#mo-mailq-history .comm-sent-detail-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:start;
}
#mo-mailq-history .comm-sent-detail-meta {
  border:1px solid var(--bdr);
  border-radius:var(--r);
  background:#fff;
  padding:12px;
  display:grid;
  gap:7px;
  min-width:0;
}
#mo-mailq-history .comm-sent-detail-title {
  font-size:1rem;
  font-weight:800;
  color:var(--pri);
  overflow-wrap:anywhere;
}
#mo-mailq-history .comm-sent-detail-kv {
  display:grid;
  grid-template-columns:110px minmax(0,1fr);
  gap:8px;
  font-size:.82rem;
  color:var(--txm);
}
#mo-mailq-history .comm-sent-detail-kv strong {
  color:var(--tx);
  font-weight:700;
  overflow-wrap:anywhere;
}
#mo-mailq-history .comm-sent-preview-panel {
  border:1px solid var(--bdr);
  border-radius:var(--r);
  background:#fff;
  overflow:hidden;
  flex:0 0 auto;
  min-width:0;
}
#mo-mailq-history .comm-sent-preview-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  border-bottom:1px solid var(--bdr);
  background:var(--pril);
  padding:10px 12px;
  color:var(--pri);
  min-width:0;
}
#mo-mailq-history .comm-sent-preview-head > * {
  min-width:0;
}
#mo-mailq-history .comm-sent-preview-head .muted {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#mo-mailq-history .comm-sent-preview-frame {
  --comm-sent-preview-base-height:360px;
  display:block;
  width:100%;
  height:var(--comm-sent-preview-base-height);
  min-height:var(--comm-sent-preview-base-height);
  border:0;
  background:#fff;
}
#mo-mailq-history .comm-sent-recipients {
  border:1px solid var(--bdr);
  border-radius:var(--r);
  background:#fff;
  overflow:hidden;
  flex:0 0 auto;
}
#mo-mailq-history .comm-sent-recipients-summary {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:10px;
  min-height:44px;
  padding:9px 12px;
  cursor:pointer;
  list-style:none;
  user-select:none;
  color:var(--pri);
}
#mo-mailq-history .comm-sent-recipients-summary::-webkit-details-marker { display:none; }
#mo-mailq-history .comm-sent-recipients-summary::marker { content:''; }
#mo-mailq-history .comm-sent-recipients-title {
  min-width:0;
  font-size:.82rem;
  font-weight:800;
}
#mo-mailq-history .comm-sent-recipients-count { white-space:nowrap; }
#mo-mailq-history .comm-sent-recipients-chevron {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border:1px solid var(--bdr);
  border-radius:999px;
  background:#fff;
  color:var(--txm);
  font-size:.7rem;
  transition:transform .16s ease,color .16s ease,border-color .16s ease;
}
#mo-mailq-history .comm-sent-recipients[open] .comm-sent-recipients-summary { border-bottom:1px solid var(--bdr); }
#mo-mailq-history .comm-sent-recipients[open] .comm-sent-recipients-chevron {
  transform:rotate(180deg);
  color:var(--pri);
  border-color:rgba(2,72,115,.28);
}
#mo-mailq-history .comm-sent-recipient-wrap {
  overflow:auto;
  overscroll-behavior:contain;
}
#mo-mailq-history .comm-sent-recipient-table {
  min-width:720px;
}
#mo-mailq-history .comm-sent-recipient-table thead th {
  position:sticky;
  top:0;
  z-index:1;
}
#mo-mailq-history .comm-sent-status {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  padding:4px 8px;
  font-size:.72rem;
  font-weight:800;
  line-height:1.1;
  white-space:nowrap;
  border:1px solid transparent;
}
#mo-mailq-history .comm-sent-status.is-sent {
  background:rgba(22,101,52,.08);
  border-color:rgba(22,101,52,.18);
  color:#166534;
}
#mo-mailq-history .comm-sent-status.is-pending {
  background:rgba(2,72,115,.08);
  border-color:rgba(2,72,115,.18);
  color:var(--pri);
}
#mo-mailq-history .comm-sent-status.is-failed {
  background:rgba(187,28,28,.08);
  border-color:rgba(187,28,28,.18);
  color:var(--dan);
}
#mo-mailq-history .comm-sent-error-cell {
  max-width:320px;
  color:var(--dan);
  font-size:.75rem;
}
@media (max-width:900px) {
  #mo-mailq-history .comm-sent-detail-grid { grid-template-columns:1fr; }
  #mo-mailq-history .comm-sent-preview-frame { --comm-sent-preview-base-height:300px; }
}
@media (max-width:620px) {
  #mo-mailq-history .comm-sent-detail-kv { grid-template-columns:1fr; gap:2px; }
  #mo-mailq-history .comm-sent-preview-frame { --comm-sent-preview-base-height:260px; }
}




/* Header button for the contextual member-system guide. */
.member-guide-header-button{
  width:38px;
  min-width:38px;
  height:38px;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  font-size:1rem;
  line-height:1;
  text-decoration:none;
}
.member-guide-header-button:hover,
.member-guide-header-button:focus-visible{
  text-decoration:none;
}
.member-guide-actions{margin-left:auto;}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}

.member-guide-standalone-header{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  min-height:38px;
  margin:0 0 12px;
}
.member-guide-standalone-header .member-guide-header-button{
  background:#fff;
}


/* Indstillinger: placér vejledningsknappen i samme række som faneknapperne. */
body.page-settings .settings-server-tabs > .member-guide-header-button{
  flex:0 0 38px;
  margin-left:auto;
  margin-bottom:3px;
}

/* Regnskab: bilagsnummer i header */
.accounting-voucher-header-actions {
  display:flex;
  align-items:center;
  gap:10px;
  margin-left:auto;
}

.accounting-voucher-no-badge {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:5px 11px;
  border:1px solid rgba(30,73,118,.18);
  border-radius:999px;
  background:rgba(30,73,118,.08);
  color:var(--pri);
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.02em;
  white-space:nowrap;
}

@media(max-width:620px) {
  .accounting-voucher-header-actions {
    gap:7px;
  }

  .accounting-voucher-no-badge {
    min-height:28px;
    padding:4px 9px;
  }
}

/* Regnskab: Bilagsindbakke */
.accounting-receipt-library-card{overflow:hidden}
.accounting-receipt-dropzone{margin:0 18px 18px;min-height:150px;border:2px dashed var(--bdr);border-radius:14px;background:var(--surf2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:var(--txm);cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .16s ease;outline:0}
.accounting-receipt-dropzone>i{font-size:34px;color:var(--pri)}
.accounting-receipt-dropzone>strong{color:var(--tx);font-size:1rem}
.accounting-receipt-dropzone:hover,.accounting-receipt-dropzone:focus-visible,.accounting-receipt-dropzone.is-dragging{border-color:var(--pri);background:var(--pril)}
.accounting-receipt-dropzone.is-dragging{transform:scale(1.005)}
.accounting-receipt-dropzone.is-uploading{pointer-events:none;opacity:.65}
.accounting-receipt-library-status{min-height:20px;margin:-8px 18px 10px;color:var(--txm);font-size:.9rem}
.accounting-receipt-library-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,128px),224px));justify-content:start;align-items:start;gap:clamp(8px,1.1vw,14px);padding:0 18px 18px}
.accounting-receipt-library-item{width:100%;min-width:0;max-width:224px;border:1px solid var(--bdr);border-radius:13px;background:var(--surf);box-shadow:var(--sh0);overflow:hidden;display:grid;grid-template-rows:auto auto auto}
.accounting-receipt-library-preview{width:100%;height:auto;aspect-ratio:32/15;border:0;border-bottom:1px solid var(--bdr2);background:#f6f4ef;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;overflow:hidden}
.accounting-receipt-library-preview img{width:100%;height:100%;object-fit:cover;display:block}
.accounting-receipt-library-preview>i{font-size:54px;color:var(--pri)}
.accounting-receipt-library-preview:hover img{transform:scale(1.02)}
.accounting-receipt-library-preview img{transition:transform .16s ease}
.accounting-receipt-library-info{min-width:0;padding:12px 12px 8px;display:grid;gap:4px}
.accounting-receipt-library-info strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--tx)}
.accounting-receipt-library-info small{color:var(--txm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.accounting-receipt-library-actions{display:flex;justify-content:flex-end;gap:4px;padding:0 9px 10px}
.accounting-receipt-library-empty{margin:10px 18px 22px}
.accounting-receipt-library-empty[hidden]{display:none!important}
@media (max-width:700px){
  .accounting-receipt-library-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,128px),224px));gap:8px;padding:0 12px 14px}
  .accounting-receipt-dropzone{margin:0 12px 14px;min-height:125px}
}
@media (max-width:430px){
  .accounting-receipt-library-grid{justify-content:center}
}


/* Regnskab: revisorgodkendelse */
.accounting-auditor-approved-col,
.accounting-auditor-approved-cell { text-align:center; }
.accounting-auditor-approved-check,
.accounting-posted-check { width:1.05rem; height:1.05rem; cursor:pointer; }
.accounting-auditor-approved-check:disabled,
.accounting-posted-check:disabled { cursor:default; }
.accounting-voucher-footer { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.accounting-voucher-footer-actions { display:flex; align-items:center; gap:.65rem; margin-left:auto; }
.accounting-footer-check { display:inline-flex; align-items:center; gap:.55rem; font-weight:700; cursor:pointer; }
.accounting-footer-check input { width:1.05rem; height:1.05rem; }
.accounting-footer-check:has(input:disabled) { cursor:default; opacity:.72; }
@media (max-width:640px) {
  .accounting-voucher-footer { align-items:stretch; flex-direction:column; }
  .accounting-voucher-footer-actions { width:100%; margin-left:0; }
  .accounting-voucher-footer-actions .btn { flex:1; }
}

/* Regnskab: Bilagsindbakke headerhandlinger */
.accounting-receipt-library-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}
.accounting-receipt-library-header-actions .btn:disabled{opacity:.5;cursor:not-allowed}
@media (max-width:560px){
  .accounting-receipt-library-card>.ch{align-items:flex-start}
  .accounting-receipt-library-header-actions{flex-wrap:wrap}
}

/* Regnskab: kontoposteringer fra Kontoplan */
.accounting-account-postings-modal{width:min(1180px,calc(100vw - 32px));}
.accounting-account-postings-header-actions{display:flex;align-items:center;gap:10px;}
.accounting-year-badge{display:inline-flex;align-items:center;justify-content:center;min-width:64px;padding:6px 10px;border:1px solid var(--border,#d9dee7);border-radius:999px;background:var(--surface-soft,#f5f7fa);font-size:.86rem;font-weight:800;color:var(--text,#172033);}
.accounting-account-postings-account{margin-bottom:14px;font-size:1.05rem;color:var(--text,#172033);}
.accounting-account-postings-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px;}
.accounting-account-postings-summary>div{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid var(--border,#dfe3ea);border-radius:12px;background:var(--surface-soft,#f7f8fa);}
.accounting-account-postings-summary span{font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--muted,#758094);}
.accounting-account-postings-summary strong{font-size:1rem;color:var(--text,#172033);}
.accounting-account-postings-loading{display:flex;align-items:center;justify-content:center;gap:10px;min-height:150px;color:var(--muted,#758094);}
.accounting-account-postings-table-wrap{max-height:min(56vh,620px);overflow:auto;border:1px solid var(--border,#dfe3ea);border-radius:12px;}
#accounting-account-postings-table{margin:0;min-width:900px;}
#accounting-account-postings-table thead th{position:sticky;top:0;z-index:2;background:var(--surface,#fff);}
#accounting-account-postings-table td:nth-last-child(-n+3),#accounting-account-postings-table th:nth-last-child(-n+3){white-space:nowrap;}
.accounting-account-postings-empty{min-height:180px;}
@media (max-width:760px){
  .accounting-account-postings-modal{width:calc(100vw - 16px);}
  .accounting-account-postings-summary{grid-template-columns:repeat(2,minmax(0,1fr));}
  .accounting-account-postings-table-wrap{max-height:58vh;}
}

/* Member profile: compact, predictable certificate and contact-list controls */
body.page-members #member-editor .member-profile-certificates {
  min-width: 0;
}

body.page-members #member-editor .member-profile-cert-option input[type="checkbox"],
body.page-members #member-editor .member-profile-contact-consent input[type="checkbox"] {
  box-sizing: border-box;
  flex: 0 0 30px;
  width: 30px;
  min-width: 30px;
  max-width: 30px;
  height: 30px;
  min-height: 30px;
  max-height: 30px;
  margin: 0;
  padding: 0;
  aspect-ratio: 1 / 1;
}

body.page-members #member-editor .member-profile-contact-consent {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  width: 100%;
  min-width: 0;
  margin: 0;
  cursor: pointer;
}

body.page-members #member-editor .member-profile-contact-consent > span {
  min-width: 0;
  text-align: left;
}

@media (max-width: 700px) {
  body.page-members:not(.member-login-shell) #member-editor .member-profile-certificates {
    gap: 10px;
    overflow: visible;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-row {
    display: grid;
    grid-template-columns: minmax(78px, 1fr) repeat(5, minmax(30px, 38px));
    align-items: center;
    justify-content: space-between;
    gap: 5px;
    width: 100%;
    min-width: 0;
    margin: 0;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-row .cert-row-title {
    min-width: 0;
    padding-right: 2px;
    white-space: nowrap;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-option {
    display: grid;
    grid-template-columns: auto 28px;
    align-items: center;
    justify-content: end;
    gap: 3px;
    min-width: 0;
    margin: 0;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-option input[type="checkbox"],
  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent input[type="checkbox"] {
    flex-basis: 28px;
    width: 28px !important;
    min-width: 28px !important;
    max-width: 28px !important;
    height: 28px !important;
    min-height: 28px !important;
    max-height: 28px !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 28px;
    align-items: center;
    justify-content: stretch;
    gap: 12px;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent > span {
    justify-self: start;
    text-align: left;
  }
}


/* Member profile: shared checkbox design and precise contact-list interaction */
body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent {
  cursor: default;
}

body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent input[type="checkbox"] {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline-grid !important;
  place-content: center !important;
  box-sizing: border-box !important;
  flex: 0 0 30px !important;
  width: 30px !important;
  min-width: 30px !important;
  max-width: 30px !important;
  height: 30px !important;
  min-height: 30px !important;
  max-height: 30px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 2px solid #94a3b8 !important;
  border-radius: 5px !important;
  background: #fff !important;
  box-shadow: 0 1px 2px rgba(15,23,42,.12), inset 0 1px 1px rgba(15,23,42,.04) !important;
  cursor: pointer !important;
}

body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent input[type="checkbox"]:checked {
  background: var(--pri) !important;
  border-color: var(--pri) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb,var(--pri) 18%,transparent), 0 1px 2px rgba(15,23,42,.14) !important;
}

body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent input[type="checkbox"]:checked::before {
  content: "";
  width: 7px !important;
  height: 12px !important;
  border: solid #fff !important;
  border-width: 0 2px 2px 0 !important;
  transform: rotate(45deg) !important;
  margin-top: -2px !important;
}

@media (min-width: 701px) {
  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent {
    justify-content: flex-end;
  }
}

@media (max-width: 700px) {
  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent input[type="checkbox"] {
    flex-basis: 28px !important;
    width: 28px !important;
    min-width: 28px !important;
    max-width: 28px !important;
    height: 28px !important;
    min-height: 28px !important;
    max-height: 28px !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent input[type="checkbox"]:checked::before {
    width: 6px !important;
    height: 10px !important;
  }
}

/* Member profile: contact-list text left, checkbox right */
@media (min-width: 701px) {
  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 30px;
    align-items: center;
    justify-content: stretch;
    gap: 12px;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent > span {
    justify-self: start;
    text-align: left;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent input[type="checkbox"] {
    justify-self: end;
  }
}

/* Member profile mobile: stable certificate layout within the available width */
@media (max-width: 700px) {
  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-row {
    grid-template-columns: minmax(104px, 116px) repeat(5, minmax(0, 1fr));
    column-gap: 0;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-row .cert-row-title {
    width: auto;
    min-width: 0;
    padding-right: 8px;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-option {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100%;
    min-width: 0;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-option > span {
    display: inline-block;
    flex: 0 0 12px;
    width: 12px;
    min-width: 12px;
    text-align: center;
  }
}

/* Member profile mobile: consistent label spacing and right-edge alignment */
@media (max-width: 700px) {
  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-row {
    grid-template-columns: minmax(104px, 1fr) repeat(5, 46px);
    column-gap: 2px;
    justify-content: stretch;
    overflow: visible;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-option {
    display: grid;
    grid-template-columns: 10px 28px;
    align-items: center;
    justify-content: end;
    column-gap: 8px;
    width: 46px;
    min-width: 46px;
    max-width: 46px;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-option > span {
    width: 10px;
    min-width: 10px;
    text-align: center;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-row > .member-profile-cert-option:last-child {
    justify-self: end;
  }
}

/* Member profile mobile: definitive certificate grid.
   Each certificate occupies an explicit grid column so labels and checkboxes
   stay aligned and the final Stormodel checkbox shares the contact checkbox axis. */
@media (max-width: 700px) {
  body.page-members:not(.member-login-shell) #member-editor .member-profile-certificates {
    display: grid !important;
    gap: 10px !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: visible !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-row {
    display: grid !important;
    grid-template-columns: minmax(100px, 1fr) repeat(5, 45px) !important;
    column-gap: 3px !important;
    row-gap: 0 !important;
    align-items: center !important;
    justify-content: stretch !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    overflow: visible !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-row .cert-row-title {
    grid-column: 1 !important;
    min-width: 0 !important;
    padding-right: 10px !important;
    white-space: nowrap !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-option {
    display: grid !important;
    grid-template-columns: 10px 28px !important;
    column-gap: 7px !important;
    align-items: center !important;
    justify-content: start !important;
    width: 45px !important;
    min-width: 45px !important;
    max-width: 45px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-option > span {
    display: block !important;
    width: 10px !important;
    min-width: 10px !important;
    max-width: 10px !important;
    margin: 0 !important;
    text-align: center !important;
    line-height: 1 !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-option input[type="checkbox"] {
    justify-self: end !important;
    width: 28px !important;
    min-width: 28px !important;
    max-width: 28px !important;
    height: 28px !important;
    min-height: 28px !important;
    max-height: 28px !important;
    margin: 0 !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 28px !important;
    column-gap: 12px !important;
    align-items: center !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent > span {
    grid-column: 1 !important;
    grid-row: 1 !important;
    justify-self: start !important;
    min-width: 0 !important;
    text-align: left !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent input[type="checkbox"] {
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    width: 28px !important;
    min-width: 28px !important;
    max-width: 28px !important;
    height: 28px !important;
    min-height: 28px !important;
    max-height: 28px !important;
    margin: 0 !important;
  }
}

/* Narrow phones: preserve the same grid logic while reducing each fixed cell. */
@media (max-width: 420px) {
  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-row {
    grid-template-columns: minmax(88px, 1fr) repeat(5, 40px) !important;
    column-gap: 2px !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-option {
    grid-template-columns: 9px 26px !important;
    column-gap: 5px !important;
    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-option > span {
    width: 9px !important;
    min-width: 9px !important;
    max-width: 9px !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-option input[type="checkbox"],
  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent input[type="checkbox"] {
    width: 26px !important;
    min-width: 26px !important;
    max-width: 26px !important;
    height: 26px !important;
    min-height: 26px !important;
    max-height: 26px !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent {
    grid-template-columns: minmax(0, 1fr) 26px !important;
  }
}

/* Member profile mobile: equal-width certificate columns and compact title spacing. */
@media (max-width: 700px) {
  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-row {
    grid-template-columns: 92px repeat(5, minmax(0, 1fr)) !important;
    column-gap: 0 !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-row .cert-row-title {
    padding-right: 4px !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-option {
    grid-template-columns: 10px 28px !important;
    column-gap: 8px !important;
    justify-content: center !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent {
    grid-template-columns: 92px repeat(5, minmax(0, 1fr)) !important;
    column-gap: 0 !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent > span {
    grid-column: 1 / 6 !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent input[type="checkbox"] {
    grid-column: 6 !important;
    justify-self: center !important;
  }
}

@media (max-width: 420px) {
  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-row,
  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent {
    grid-template-columns: 84px repeat(5, minmax(0, 1fr)) !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-option {
    grid-template-columns: 9px 26px !important;
    column-gap: 7px !important;
  }
}

/* Member profile certificates/contact list: final alignment refinements
   - Mobile: contact-list checkbox centered under the rightmost certificate checkbox
   - Desktop: contact-list text aligned under the certificate row titles, checkbox right-aligned
   - Only the checkbox itself is interactive */
body.page-members:not(.member-login-shell) #member-editor {
  --member-profile-cert-title-col-mobile: 92px;
  --member-profile-cert-title-col-mobile-narrow: 84px;
  --member-profile-cert-box-mobile: 28px;
  --member-profile-cert-box-mobile-narrow: 26px;
  --member-profile-cert-letter-mobile: 10px;
  --member-profile-cert-letter-mobile-narrow: 9px;
  --member-profile-cert-label-gap-mobile: 8px;
  --member-profile-cert-label-gap-mobile-narrow: 7px;
  --member-profile-contact-desktop-indent: 112px;
}

@media (max-width: 700px) {
  body.page-members:not(.member-login-shell) #member-editor .member-profile-certificates {
    display: grid !important;
    row-gap: 10px !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-row,
  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent {
    display: grid !important;
    grid-template-columns: var(--member-profile-cert-title-col-mobile) repeat(5, minmax(0, 1fr)) !important;
    align-items: center !important;
    column-gap: 0 !important;
    row-gap: 0 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-row .cert-row-title {
    grid-column: 1 !important;
    min-width: 0 !important;
    padding-right: 4px !important;
    white-space: nowrap !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-option {
    display: grid !important;
    grid-template-columns: var(--member-profile-cert-letter-mobile) var(--member-profile-cert-box-mobile) !important;
    align-items: center !important;
    justify-content: center !important;
    column-gap: var(--member-profile-cert-label-gap-mobile) !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-option > span {
    display: block !important;
    width: var(--member-profile-cert-letter-mobile) !important;
    min-width: var(--member-profile-cert-letter-mobile) !important;
    max-width: var(--member-profile-cert-letter-mobile) !important;
    margin: 0 !important;
    text-align: center !important;
    line-height: 1 !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-option input[type="checkbox"],
  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent input[type="checkbox"] {
    width: var(--member-profile-cert-box-mobile) !important;
    min-width: var(--member-profile-cert-box-mobile) !important;
    max-width: var(--member-profile-cert-box-mobile) !important;
    height: var(--member-profile-cert-box-mobile) !important;
    min-height: var(--member-profile-cert-box-mobile) !important;
    max-height: var(--member-profile-cert-box-mobile) !important;
    margin: 0 !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent {
    cursor: default !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent > span {
    grid-column: 1 / 6 !important;
    grid-row: 1 !important;
    justify-self: start !important;
    min-width: 0 !important;
    text-align: left !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent input[type="checkbox"] {
    grid-column: 6 !important;
    grid-row: 1 !important;
    justify-self: center !important;
    align-self: center !important;
    pointer-events: auto !important;
  }
}

@media (max-width: 420px) {
  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-row,
  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent {
    grid-template-columns: var(--member-profile-cert-title-col-mobile-narrow) repeat(5, minmax(0, 1fr)) !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-option {
    grid-template-columns: var(--member-profile-cert-letter-mobile-narrow) var(--member-profile-cert-box-mobile-narrow) !important;
    column-gap: var(--member-profile-cert-label-gap-mobile-narrow) !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-option > span {
    width: var(--member-profile-cert-letter-mobile-narrow) !important;
    min-width: var(--member-profile-cert-letter-mobile-narrow) !important;
    max-width: var(--member-profile-cert-letter-mobile-narrow) !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-cert-option input[type="checkbox"],
  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent input[type="checkbox"] {
    width: var(--member-profile-cert-box-mobile-narrow) !important;
    min-width: var(--member-profile-cert-box-mobile-narrow) !important;
    max-width: var(--member-profile-cert-box-mobile-narrow) !important;
    height: var(--member-profile-cert-box-mobile-narrow) !important;
    min-height: var(--member-profile-cert-box-mobile-narrow) !important;
    max-height: var(--member-profile-cert-box-mobile-narrow) !important;
  }
}

@media (min-width: 701px) {
  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent {
    display: grid !important;
    grid-template-columns: var(--member-profile-contact-desktop-indent) minmax(0, 1fr) 30px !important;
    align-items: center !important;
    justify-content: stretch !important;
    column-gap: 12px !important;
    row-gap: 0 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    cursor: default !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent > span {
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-self: start !important;
    text-align: left !important;
    min-width: 0 !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent input[type="checkbox"] {
    grid-column: 3 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    align-self: center !important;
    pointer-events: auto !important;
  }
}

/* Member profile desktop: align contact-list text with certificate row titles. */
@media (min-width: 701px) {
  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent {
    grid-template-columns: minmax(0, 1fr) 30px !important;
    column-gap: 12px !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent > span {
    grid-column: 1 !important;
    justify-self: start !important;
    text-align: left !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-consent input[type="checkbox"] {
    grid-column: 2 !important;
    justify-self: end !important;
  }
}

/* Member profile desktop: add deliberate vertical separation around certificates. */
@media (min-width: 701px) {
  body.page-members:not(.member-login-shell) #member-editor .member-profile-certificates-row {
    margin-top: 12px !important;
  }

  body.page-members:not(.member-login-shell) #member-editor .member-profile-contact-row {
    margin-top: 12px !important;
  }
}

/* ────────────────────────────────────────────────────────────────
   Logout as the final System navigation item
   The form keeps POST + CSRF semantics while the button follows the
   same responsive sidebar styling as every other navigation item.
   ──────────────────────────────────────────────────────────────── */
.sidebar .snav > .slogout-form {
  width: 100%;
  margin: 0;
  padding: 0;
  flex: 0 0 auto;
}

.sidebar .snav > .slogout-form .nav-logout {
  margin: 0;
}

body.theme-top-white .sidebar .snav > .slogout-form {
  width: auto;
}

@media (max-width: 700px) {
  body.theme-top-white .sidebar.mob-open .snav > .slogout-form {
    width: 100%;
  }
}

/* Mobile: simplify Oversigt and Medlemmer page controls. */
@media (max-width: 700px) {
  body.page-dashboard .dashboard-head-actions {
    display: none !important;
  }
  body.page-members #member-guide-header-button,
  body.page-members .members-filter-controls {
    display: none !important;
  }
  body.page-members #btn-add-member {
    grid-column: 1 / -1;
    width: 100%;
  }
}

@media (max-width: 700px) {
  /* Events table: vis kun Dato, Tidspunkt og Titel. */
  body.page-events #eventsTable th:nth-child(4),
  body.page-events #eventsTable td:nth-child(4),
  body.page-events #eventsTable th:nth-child(5),
  body.page-events #eventsTable td:nth-child(5) {
    display: none !important;
  }
}

/* Mobile: hide contextual help on selected member-system pages and simplify accounting actions. */
@media (max-width: 700px) {
  body.page-fees #member-guide-header-button,
  body.page-events #member-guide-header-button,
  body.page-communication #member-guide-header-button,
  body.page-tasks #member-guide-header-button,
  body.page-sponsors #member-guide-header-button,
  body.page-accounting #member-guide-header-button,
  body.page-accounting-receipts-upload #member-guide-header-button,
  body.page-support #member-guide-header-button {
    display: none !important;
  }

  body.page-accounting #accounting-new-year,
  body.page-accounting #accounting-close-year,
  body.page-accounting #accounting-export-year {
    display: none !important;
  }

  body.page-events #eventsTable .event-date-full {
    display: none !important;
  }

  body.page-events #eventsTable .event-date-mobile {
    display: inline !important;
  }
}

@media (min-width: 701px) {
  body.page-events #eventsTable .event-date-mobile {
    display: none !important;
  }
}

/* Mobile: simplify Mailstatus header actions. */
@media (max-width: 700px) {
  body.page-mail-queue .mailq-hero .member-guide-header-button {
    display: none !important;
  }

  body.page-mail-queue .mailq-hero {
    flex-direction: column;
    align-items: stretch;
  }

  body.page-mail-queue .mailq-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 8px;
    width: 100%;
  }

  body.page-mail-queue .mailq-actions #mailq-refresh,
  body.page-mail-queue .mailq-actions #mailq-dispatch-now,
  body.page-mail-queue .mailq-actions #mailq-retry-all {
    width: 100%;
    min-width: 0;
    margin: 0;
  }

  body.page-mail-queue .mailq-actions #mailq-retry-all {
    grid-column: 1 / -1;
  }
}

/* Accounting add-on landing page */
.accounting-addon-landing .docp-copy h1{font-size:clamp(3rem,6vw,6.5rem);line-height:.95;margin:.2rem 0 1.2rem}.accounting-trial-badge{display:inline-flex;align-items:center;gap:.75rem;padding:.85rem 1.25rem;margin:1rem 0;border:1px solid #dfc57d;border-radius:12px;background:#fbf4df;color:#6b5214}.accounting-price-card{display:flex;align-items:flex-start;gap:1rem;max-width:520px;padding:1rem 1.15rem;margin:.25rem 0 1rem;border:1px solid var(--line,#d8dce3);border-radius:14px;background:#fff}.accounting-price-card>i{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:50%;background:#12294f;color:#fff}.accounting-price-card div{display:grid;gap:.2rem}.accounting-price-card span,.accounting-price-card small{color:var(--muted,#718096)}.accounting-mini-benefits{display:grid;gap:.55rem;margin:1rem 0 0;padding:0;list-style:none}.accounting-mini-benefits i{margin-right:.6rem;color:#b58a22}.accounting-laptop{width:min(100%,900px);margin:0 auto}.accounting-laptop-screen{position:relative;padding:18px 18px 24px;border:8px solid #15171b;border-radius:22px;background:#07090c;box-shadow:0 24px 55px rgba(14,26,48,.25)}.accounting-laptop-screen img{display:block;width:100%;height:auto;border-radius:5px}.accounting-laptop-base{width:108%;height:24px;margin:-4px -4% 0;border-radius:4px 4px 50% 50%;background:linear-gradient(#d7d9dc,#8f949a);box-shadow:0 12px 18px rgba(0,0,0,.18)}@media(max-width:900px){.accounting-addon-landing .docp-copy h1{font-size:3.4rem}.accounting-laptop{margin-top:1rem}.accounting-price-card{max-width:none}}
