:root {
  --paper: #fffdf9;
  --ink: #1f1d1a;
  --muted: #736b61;
  --line: rgba(31, 29, 26, 0.14);
  --gold: #cdb38a;
  --gold-soft: rgba(205, 179, 138, 0.18);
  --white-glass: rgba(255, 255, 255, 0.62);
  --paper-glass: rgba(255, 253, 249, 0.74);
  --success: #52715a;
  --danger: #a25045;
  --warning: #9b7347;
  --radius: 1.5rem;
  --radius-small: 1rem;
  --font-serif: Georgia, "Times New Roman", serif;
  --font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --shadow: 0 20px 60px rgba(31,29,26,0.08), inset 0 1px 0 rgba(255,255,255,0.55);
}

* { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  max-width: 100%;
  overflow-x: hidden;
  background:
    radial-gradient(circle at 18% 9%, rgba(205,179,138,0.18), transparent 23rem),
    linear-gradient(180deg, rgba(255,253,249,1), rgba(255,253,249,0.96));
  color: var(--ink);
  font-family: var(--font-sans);
  line-height: 1.6;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background:
    radial-gradient(circle at 82% 14%, rgba(31,29,26,0.035), transparent 22rem),
    linear-gradient(90deg, rgba(205,179,138,0.08), rgba(205,179,138,0));
}

body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(31,29,26,0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(31,29,26,0.025) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(180deg, rgba(0,0,0,0.45), transparent 72%);
}

body.admin-body::before,
body.admin-body::after { display: none; }

a { color: inherit; }

.site-header {
  position: fixed;
  z-index: 20;
  top: 0;
  left: 0;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(2rem, 12vw, 11rem);
  padding: 1.35rem clamp(1.25rem, 5vw, 5rem);
  color: var(--ink);
  background: rgba(255,253,249,0.58);
  border-bottom: 1px solid rgba(31,29,26,0.08);
  backdrop-filter: blur(20px) saturate(160%);
  -webkit-backdrop-filter: blur(20px) saturate(160%);
}

.brand {
  display: flex;
  align-items: center;
  gap: 1rem;
  color: inherit;
  text-decoration: none;
  font-family: var(--font-serif);
  line-height: 1;
}

.brand-a,
.brand-m {
  font-size: clamp(2.75rem, 4vw, 4rem);
  line-height: 1;
  font-weight: 400;
}

.brand-divider {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.8rem;
  height: clamp(3.2rem, 4.5vw, 4.5rem);
}

.brand-divider::before,
.brand-divider::after {
  content: "";
  position: absolute;
  width: 1px;
  background: currentColor;
  opacity: 0.6;
}

.brand-divider::before { top: 0; height: calc(50% - 0.7rem); }
.brand-divider::after { bottom: 0; height: calc(50% - 0.7rem); }
.brand-divider span { position: relative; font-size: 1.05rem; }

.nav {
  display: flex;
  gap: clamp(1rem, 2vw, 2rem);
  align-items: center;
  justify-content: flex-end;
}

.nav a {
  position: relative;
  color: inherit;
  text-decoration: none;
  font-size: 0.86rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 600;
  white-space: nowrap;
}

.nav a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -0.35rem;
  width: 100%;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 280ms ease;
}

.nav a:hover::after,
.nav a.active::after {
  transform: scaleX(1);
  transform-origin: left;
}

.site-shell {
  width: min(84vw, 980px);
  margin: 0 auto;
  padding: clamp(8rem, 12vw, 11rem) 0 3rem;
  position: relative;
}

.rsvp-hero {
  position: relative;
  min-height: 42vh;
  display: grid;
  place-items: center;
  text-align: center;
  padding: clamp(2rem, 6vw, 5rem) 0 clamp(2.5rem, 5vw, 4rem);
}

.rsvp-hero::after {
  content: "";
  display: block;
  width: min(18rem, 46vw);
  height: 1px;
  margin: clamp(1.5rem, 4vw, 3rem) auto 0;
  background: linear-gradient(90deg, rgba(205,179,138,0), rgba(205,179,138,0.55), rgba(205,179,138,0));
}

.eyebrow,
.date,
.section-number {
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.24em;
  color: var(--muted);
  font-size: clamp(0.75rem, 1vw, 0.9rem);
}

.rsvp-hero h1,
.card h1,
.card h2,
.card h3,
.admin-titlebar h2,
.admin-sidebar h1,
.login-card h1 {
  margin: 0;
  font-family: var(--font-serif);
  font-weight: 400;
  line-height: 0.98;
  letter-spacing: -0.05em;
}

.rsvp-hero h1 {
  margin-top: 1rem;
  font-size: clamp(4rem, 11vw, 9rem);
}

.date {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.85rem;
  width: fit-content;
  margin: 1.4rem auto 0;
  color: rgba(31,29,26,0.78);
  font-size: clamp(0.95rem, 1.25vw, 1.2rem);
  font-weight: 600;
  letter-spacing: 0.22em;
}

.date::before,
.date::after {
  content: "";
  width: 2.1rem;
  height: 1px;
  background: linear-gradient(90deg, rgba(205,179,138,0), rgba(205,179,138,0.65));
}
.date::after { transform: scaleX(-1); }

.hero-location {
  display: block;
  width: 100%;
  margin-top: 0.85rem;
  text-align: center;
  color: rgba(31,29,26,0.54);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.card {
  position: relative;
  margin: clamp(1.25rem, 3vw, 2rem) 0;
  padding: clamp(1.25rem, 4vw, 2.6rem);
  border: 1px solid rgba(31,29,26,0.075);
  border-radius: var(--radius);
  background: linear-gradient(180deg, rgba(255,255,255,0.72), rgba(255,255,255,0.48));
  backdrop-filter: blur(18px) saturate(150%);
  -webkit-backdrop-filter: blur(18px) saturate(150%);
  box-shadow: var(--shadow);

}

.card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.62);
}

.intro-card { text-align: center; }
.narrow-card { max-width: 680px; margin-left: auto; margin-right: auto; }
.confirmation-card { text-align: center; }
.login-card { margin-top: clamp(6rem, 12vw, 10rem); }

.card h1 { font-size: clamp(2.8rem, 8vw, 5.5rem); }
.card h2 { font-size: clamp(2.35rem, 6vw, 4.2rem); }
.card h3 { font-size: clamp(1.6rem, 3vw, 2.55rem); }

.card h2 + p,
.card h3 + p,
.card p,
.hero-text,
.footer-note,
.privacy-note {
  color: rgba(31,29,26,0.62);
}

.card p {
  font-size: clamp(1rem, 1.25vw, 1.12rem);
  line-height: 1.7;
}

.action-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.85rem;
  margin-top: 1.5rem;
}

.button,
button.button,
.map-link,
.contact-details summary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: 3rem;
  border: 1px solid var(--ink);
  border-radius: 999px;
  padding: 0.9rem 1.35rem;
  background: var(--ink);
  color: var(--paper);
  font: inherit;
  font-size: 0.82rem;
  font-weight: 600;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  cursor: pointer;
  transition: background 250ms ease, color 250ms ease, transform 250ms ease, box-shadow 250ms ease;
}

.button:hover,
.map-link:hover,
button.button:hover {
  background: transparent;
  color: var(--ink);
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(31,29,26,0.06);
}

.button-secondary {
  background: transparent;
  color: var(--ink);
}

.button-secondary:hover {
  background: var(--ink);
  color: var(--paper);
}

.danger-button {
  border-color: var(--danger);
  background: var(--danger);
  color: white;
}

.danger-button:hover {
  color: var(--danger);
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1rem, 2.6vw, 1.6rem);
  margin-top: clamp(1.4rem, 3vw, 2.2rem);
}

.compact-form { grid-template-columns: 1fr; }
.full-width { grid-column: 1 / -1; }

.form-section {
  display: grid;
  gap: 1rem;
  align-content: start;
}

.form-section h3 {
  position: relative;
  margin-bottom: 0.2rem;
  padding-bottom: 0.85rem;
}

.form-section h3::after {
  content: "";
  display: block;
  width: min(18rem, 100%);
  height: 1px;
  margin-top: 0.8rem;
  background: linear-gradient(90deg, rgba(205,179,138,0.55), rgba(205,179,138,0.08));
}

label {
  display: grid;
  gap: 0.45rem;
  color: var(--muted);
  font-size: 0.9rem;
  letter-spacing: 0.04em;
}

input,
select,
textarea {
  width: 100%;
  border: 1px solid var(--line);
  background: rgba(255,253,249,0.86);
  color: var(--ink);
  font: inherit;
  padding: 0.95rem 1rem;
  border-radius: 999px;
  outline: none;
  transition: border-color 220ms ease, box-shadow 220ms ease, background 220ms ease;
}

select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 2.6rem;
  background-image:
    linear-gradient(45deg, transparent 50%, rgba(31,29,26,0.62) 50%),
    linear-gradient(135deg, rgba(31,29,26,0.62) 50%, transparent 50%);
  background-position:
    calc(100% - 1.35rem) calc(50% - 0.16rem),
    calc(100% - 1rem) calc(50% - 0.16rem);
  background-size: 0.36rem 0.36rem, 0.36rem 0.36rem;
  background-repeat: no-repeat;
}

textarea {
  border-radius: 1.2rem;
  resize: vertical;
  min-height: 7.5rem;
}

input:focus,
select:focus,
textarea:focus {
  border-color: rgba(31,29,26,0.42);
  background: white;
  box-shadow: 0 0 0 4px rgba(205,179,138,0.14);
}

.privacy-note {
  margin: 0;
  padding: 1rem 1.1rem;
  border-radius: 1rem;
  background: rgba(31,29,26,0.035);
  font-size: 0.95rem !important;
  font-style: italic;
}

.alert {
  border-radius: 1rem;
  padding: 1rem 1.1rem;
  margin: 1rem 0;
  border: 1px solid transparent;
  line-height: 1.65;
}

.alert-success {
  background: rgba(82,113,90,.11);
  border-color: rgba(82,113,90,.22);
  color: #36513d;
}

.alert-error {
  background: rgba(162,80,69,.11);
  border-color: rgba(162,80,69,.22);
  color: #75352e;
}

.reservation-code {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  margin: 1.25rem auto;
  padding: 0.85rem 1.2rem;
  border-radius: 1.2rem;
  border: 1px dashed rgba(205,179,138,0.8);
  background: rgba(255,253,249,0.78);
  color: var(--ink);
  font-family: var(--font-serif);
  font-size: clamp(2rem, 8vw, 4.8rem);
  line-height: 1;
  letter-spacing: -0.02em;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.8);
}

.summary-list {
  position: relative;
  margin-top: 1.5rem;
  padding-top: 1.2rem;
  text-align: left;
}

.summary-list::before,
.notice-footline {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  margin-bottom: 0.85rem;
  background: linear-gradient(90deg, rgba(205,179,138,0), rgba(205,179,138,0.42) 18%, rgba(205,179,138,0.42) 82%, rgba(205,179,138,0));
}

code {
  background: rgba(31,29,26,0.05);
  border: 1px solid var(--line);
  border-radius: 0.55rem;
  padding: 0.15rem 0.4rem;
}

.site-footer {
  margin-top: clamp(2rem, 5vw, 4rem);
  background: rgba(255,253,249,0.72);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-top: 1px solid rgba(31,29,26,0.08);
}

.site-footer-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 1.35rem 0;
  color: var(--muted);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
}

.reveal {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity 900ms ease, transform 900ms ease;
}
.reveal.in-view {
  opacity: 1;
  transform: translateY(0);
}

/* Admin */
.admin-body {
  min-height: 100vh;
  background: var(--paper);
  color: var(--ink);
}

.admin-shell {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  min-height: 100vh;
}

.admin-sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  padding: 1.6rem 1.3rem;
  color: var(--ink);
  background: rgba(255,253,249,0.72);
  border-right: 1px solid rgba(31,29,26,0.08);
  backdrop-filter: blur(20px) saturate(160%);
  -webkit-backdrop-filter: blur(20px) saturate(160%);
}

.admin-brand-block {
  padding: 0.35rem 0.35rem 1.5rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid var(--line);
}

.admin-sidebar .brand {
  justify-content: flex-start;
  gap: 0.75rem;
  margin-bottom: 1rem;
}
.admin-sidebar .brand-a,
.admin-sidebar .brand-m { font-size: 2.6rem; }
.admin-sidebar .brand-divider { height: 3rem; width: 1.3rem; }
.admin-sidebar .brand-divider span { font-size: 0.9rem; }

.admin-sidebar h1 {
  margin-top: 0.65rem;
  font-size: clamp(2.3rem, 4vw, 3.4rem);
}

.admin-nav {
  display: grid;
  gap: 0.45rem;
}

.admin-nav a {
  display: flex;
  align-items: center;
  min-height: 2.8rem;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 0.7rem 1rem;
  color: rgba(31,29,26,0.74);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.76rem;
  font-weight: 650;
  transition: background 220ms ease, color 220ms ease, border-color 220ms ease, transform 220ms ease;
}

.admin-nav a:hover {
  color: var(--ink);
  background: rgba(31,29,26,0.045);
  border-color: rgba(31,29,26,0.06);
  transform: translateX(2px);
}

.admin-content {
  min-width: 0;
  padding: clamp(1.25rem, 4vw, 3rem);
}

.admin-titlebar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.admin-titlebar h2 {
  margin-top: 0.5rem;
  font-size: clamp(2.5rem, 6vw, 5.4rem);
}

.admin-titlebar span {
  color: rgba(31,29,26,0.56);
  font-size: 0.85rem;
  letter-spacing: 0.04em;
}

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

.kpi-card {
  margin: 0;
  padding: 1.25rem;
}

.kpi-card span,
.response-rate span {
  display: block;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.kpi-card strong,
.response-rate strong {
  display: block;
  margin-top: 0.65rem;
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: clamp(2.5rem, 5vw, 4.5rem);
  line-height: 1;
  letter-spacing: -0.05em;
}

.two-column {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 1rem;
}

.pie-wrap {
  display: flex;
  align-items: center;
  gap: 1.6rem;
  flex-wrap: wrap;
}

.css-pie {
  width: min(190px, 55vw);
  aspect-ratio: 1;
  border-radius: 50%;
  background: conic-gradient(
    var(--success) 0 calc(var(--yes) * 1%),
    var(--danger) calc(var(--yes) * 1%) calc((var(--yes) + var(--no)) * 1%),
    var(--warning) calc((var(--yes) + var(--no)) * 1%) 100%
  );
  box-shadow: inset 0 0 0 18px rgba(255,253,249,0.88), 0 12px 36px rgba(31,29,26,0.08);
}

.legend {
  display: grid;
  gap: 0.6rem;
  color: rgba(31,29,26,0.68);
}

.dot {
  display: inline-block;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  margin-right: 7px;
}
.dot.yes { background: var(--success); }
.dot.no { background: var(--danger); }
.dot.unsure { background: var(--warning); }

.response-rate {
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid rgba(31,29,26,0.075);
  border-radius: 1rem;
  background: rgba(31,29,26,0.035);
}

.toolbar-form {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 190px auto auto;
  gap: 0.75rem;
  align-items: end;
}

.table-card { padding: 0; overflow: hidden; }
.table-responsive { overflow-x: auto; }

table {
  width: 100%;
  min-width: 900px;
  border-collapse: collapse;
}

th,
td {
  text-align: left;
  padding: 1rem;
  border-bottom: 1px solid rgba(31,29,26,0.08);
  vertical-align: top;
}

th {
  background: rgba(31,29,26,0.035);
  color: rgba(31,29,26,0.58);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.16em;
}

td small { color: var(--muted); }

.text-link {
  color: rgba(168,143,104,0.95);
  font-weight: 750;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2rem;
}

.pill {
  display: inline-flex;
  border-radius: 999px;
  padding: 0.35rem 0.65rem;
  font-size: 0.76rem;
  font-weight: 750;
  line-height: 1;
}
.pill-yes { background: rgba(82,113,90,.13); color: #36513d; }
.pill-no { background: rgba(162,80,69,.13); color: #75352e; }
.pill-unsure { background: rgba(155,115,71,.14); color: #6a4a25; }
.pill-not_applicable { background: rgba(31,29,26,.08); color: var(--muted); }

.danger-form {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}

@media (max-width: 1100px) {
  .dashboard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .toolbar-form { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 900px) {
  .site-header {
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
  }

  .nav {
    gap: 0.8rem;
    overflow-x: auto;
    max-width: 72vw;
    padding-bottom: 0.25rem;
  }

  .nav a {
    font-size: 0.72rem;
    letter-spacing: 0.14em;
  }

  .brand-a,
  .brand-m { font-size: 2.8rem; }
  .brand-divider { height: 3.1rem; }
  .brand-divider span { font-size: 0.95rem; }

  .form-grid,
  .two-column,
  .admin-shell {
    grid-template-columns: 1fr;
  }

  .admin-sidebar {
    position: static;
    height: auto;
    border-right: 0;
    border-bottom: 1px solid rgba(31,29,26,0.08);
  }

  .admin-brand-block {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding-bottom: 1rem;
  }

  .admin-brand-block .eyebrow,
  .admin-brand-block h1 { margin: 0; }

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

  .admin-titlebar {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 780px) {
  html, body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    touch-action: pan-y;
  }

  .site-header {
    justify-content: center;
    min-height: 72px;
    background: rgba(255,253,249,0.68);
  }

  .site-header .nav { display: none; }

  .site-header .brand {
    position: absolute;
    left: 50%;
    top: 0.75rem;
    transform: translateX(-50%);
  }

  .site-shell {
    width: min(100% - 2rem, 980px);
    padding-top: 6.25rem;
  }

  .rsvp-hero {
    min-height: auto;
    padding: 2.5rem 0 1rem;
  }

  .rsvp-hero h1 {
    font-size: clamp(3.2rem, 16vw, 5.2rem);
  }

  .card {
    border-radius: 1.35rem;
    padding: 1rem;
    background: rgba(255,255,255,0.50);
    box-shadow: 0 8px 22px rgba(31,29,26,0.04);
  }

  .card h2 { font-size: clamp(2rem, 11vw, 3.25rem); }
  .card h3 { font-size: clamp(1.55rem, 8vw, 2.2rem); }

  .button,
  button.button {
    width: 100%;
    min-height: 3.15rem;
    font-size: 0.76rem;
  }

  .action-row { display: grid; grid-template-columns: 1fr; }

  input,
  select,
  textarea { font-size: 1rem; }

  .site-footer-inner {
    flex-direction: column;
    text-align: center;
    padding: 1.6rem 0;
  }

  .dashboard-grid,
  .admin-nav,
  .toolbar-form {
    grid-template-columns: 1fr;
  }

  .admin-content,
  .admin-sidebar { padding: 1rem; }

  .admin-brand-block {
    display: block;
  }

  .admin-nav a { justify-content: center; }

  .reservation-code {
    width: 100%;
    justify-content: center;
    font-size: clamp(1.75rem, 11vw, 2.7rem);
  }
}

/* ==========================================================================
   RSVP PUBLIC – ryddet seksjonsoppsett
   Gjelder forsiden/index.php med body-class: rsvp-section-page rsvp-onepage
   ========================================================================== */

body.rsvp-public {
  min-height: 100svh;
  display: flex;
  flex-direction: column;
}

body.rsvp-public .site-shell {
  flex: 1 0 auto;
}

body.rsvp-public .site-footer {
  width: 100%;
  flex-shrink: 0;
  margin-top: auto;
}

.rsvp-footer {
  background: rgba(255, 253, 249, 0.92);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-top: 1px solid rgba(31, 29, 26, 0.08);
}

.rsvp-footer .site-footer-inner {
  width: min(84vw, 900px);
  margin: 0 auto;
  padding: 2rem 0;
  color: var(--muted);
  font-size: 0.85rem;
  letter-spacing: 0.08em;
}

.rsvp-footer .footer-logout {
  border: 0;
  background: none;
  color: var(--muted);
  font: inherit;
  text-decoration: none;
  cursor: pointer;
  transition: color 250ms ease;
}

.rsvp-footer .footer-logout:hover {
  color: var(--ink);
}

/* Original seksjonsstruktur */
.content-section {
  display: grid;
  place-items: center;
  padding: clamp(2rem, 7vw, 7rem);
  background: white;
}

.section-inner {
  width: min(84vw, 900px);
  max-width: 900px;
  margin: 0 auto;
  padding-top: clamp(2rem, 5vw, 4rem);
}

h2.tittel {
  margin: 0;
  margin-top: 1rem;
  font-family: var(--font-serif);
  font-weight: 400;
  line-height: 0.96;
  font-size: clamp(3rem, 8vw, 7rem);
  letter-spacing: -0.05em;
}

.program-intro {
  margin-top: 1.5rem;
  max-width: 44rem;
  color: var(--muted);
  font-size: 1.05rem;
  line-height: 1.8;
  font-style: italic;
}

body.rsvp-section-page,
body.rsvp-onepage {
  background: white;
}

body.rsvp-section-page::before,
body.rsvp-section-page::after,
body.rsvp-onepage::before,
body.rsvp-onepage::after {
  display: none;
}

body.rsvp-section-page .site-shell,
body.rsvp-onepage .site-shell,
body.rsvp-section-page .rsvp-main,
body.rsvp-onepage .rsvp-main {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  overflow: visible;
}

body.rsvp-section-page .rsvp-hero,
body.rsvp-onepage .rsvp-hero {
  display: none;
}

@supports selector(:has(*)) {
  html:has(body.rsvp-onepage) {
    scroll-snap-type: y proximity;
  }
}

body.rsvp-onepage .rsvp-page-section,
body.rsvp-section-page .rsvp-page-section {
  display: grid;
  place-items: center;
  min-height: 100vh;
  min-height: 100svh;
  scroll-snap-align: start;
  scroll-snap-stop: normal;
  padding:
    clamp(11rem, 14vw, 13rem)
    clamp(2rem, 7vw, 7rem)
    clamp(5rem, 9vw, 8rem);
  background: white;
}

body.rsvp-onepage .section-inner,
body.rsvp-section-page .section-inner {
  width: min(84vw, 900px);
  max-width: 900px;
  padding-top: clamp(2rem, 5vw, 4rem);
}

/* Infoboks fra original nettside */
body.rsvp-section-page .notice,
body.rsvp-onepage .notice {
  margin-top: 1.25rem;
  padding: 1rem 1.1rem;
  border-radius: 1rem;
  background: rgba(31,29,26,0.035);
  line-height: 1.65;
}

body.rsvp-section-page .notice-wide,
body.rsvp-onepage .notice-wide {
  width: 100%;
  max-width: 100% !important;
}

body.rsvp-section-page .notice-label,
body.rsvp-onepage .notice-label {
  display: block;
  margin-bottom: 0.45rem;
  color: var(--muted);
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

body.rsvp-section-page .notice p,
body.rsvp-onepage .notice p {
  margin: 0;
}

body.rsvp-section-page .notice-footnote,
body.rsvp-onepage .notice-footnote {
  margin-top: 0.85rem !important;
  padding-top: 0.5rem;
  color: rgba(31,29,26,0.42);
  font-size: 0.8rem;
  line-height: 1.75;
  font-style: italic;
}

body.rsvp-section-page .notice-footnote::before,
body.rsvp-onepage .notice-footnote::before {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  margin-bottom: 0.85rem;
  background:
    linear-gradient(
      90deg,
      rgba(205,179,138,0),
      rgba(205,179,138,0.42) 18%,
      rgba(205,179,138,0.42) 82%,
      rgba(205,179,138,0)
    );
}

/* RSVP form */
body.rsvp-section-page .rsvp-section-form,
body.rsvp-onepage .rsvp-section-form {
  width: 100%;
  max-width: none;
  margin-top: clamp(3rem, 6vw, 5rem);
  padding-top: 0;
  border-top: 0;
  display: grid;
  gap: clamp(1.5rem, 3vw, 2.25rem);
}

body.rsvp-section-page .rsvp-form-layout,
body.rsvp-onepage .rsvp-form-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(1.5rem, 4vw, 3rem);
  row-gap: clamp(2.25rem, 5vw, 4rem);
  align-items: start;
}

body.rsvp-section-page .rsvp-form-group,
body.rsvp-onepage .rsvp-form-group {
  display: grid;
  gap: 1rem;
  align-content: start;
  min-width: 0;
}

body.rsvp-section-page .rsvp-form-wide,
body.rsvp-onepage .rsvp-form-wide {
  grid-column: 1 / -1;
}

body.rsvp-section-page .rsvp-decision-block,
body.rsvp-onepage .rsvp-decision-block {
  max-width: 680px;
}

/* RSVP course-label – tydeligere underoverskrifter */

body.rsvp-section-page .rsvp-section-form .course-label,
body.rsvp-onepage .rsvp-section-form .course-label {
  position: relative;

  margin: 0 0 1rem !important;

  color: rgba(31,29,26,0.72) !important;

  font-size: 1rem !important;
  font-weight: 750 !important;
  letter-spacing: 0.16em !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
}

body.rsvp-section-page .rsvp-section-form .course-label::after,
body.rsvp-onepage .rsvp-section-form .course-label::after {
  content: "";

  display: block;

  width: min(20rem, 100%);
  height: 1px;

  margin-top: 0.95rem;

  background:
    linear-gradient(
      90deg,
      rgba(205,179,138,0.72),
      rgba(205,179,138,0.18),
      rgba(205,179,138,0)
    );
}

@media (max-width: 780px) {
  body.rsvp-section-page .rsvp-section-form .course-label,
  body.rsvp-onepage .rsvp-section-form .course-label {
    font-size: 0.92rem !important;
    letter-spacing: 0.14em !important;
  }
}

body.rsvp-section-page .rsvp-section-form label,
body.rsvp-onepage .rsvp-section-form label {
  display: grid;
  gap: 0.45rem;
  color: var(--muted);
  font-size: 0.9rem;
  letter-spacing: 0.04em;
}

body.rsvp-section-page .rsvp-section-form input,
body.rsvp-section-page .rsvp-section-form textarea,
body.rsvp-onepage .rsvp-section-form input,
body.rsvp-onepage .rsvp-section-form textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255,253,249,0.75);
  color: var(--ink);
  font: inherit;
  padding: 0.9rem 1rem;
  outline: none;
}

body.rsvp-section-page .rsvp-section-form textarea,
body.rsvp-onepage .rsvp-section-form textarea {
  min-height: 8rem;
  border-radius: 1.2rem;
  resize: vertical;
}

body.rsvp-section-page .rsvp-section-form input:focus,
body.rsvp-section-page .rsvp-section-form textarea:focus,
body.rsvp-onepage .rsvp-section-form input:focus,
body.rsvp-onepage .rsvp-section-form textarea:focus {
  border-color: rgba(31,29,26,0.38);
  background: white;
}

body.rsvp-section-page .rsvp-form-note,
body.rsvp-onepage .rsvp-form-note {
  max-width: 42rem;
  margin: 0;
  padding: 1rem 1.1rem;
  border-radius: 1rem;
  background: rgba(31,29,26,0.035);
  color: var(--muted);
  font-size: 0.95rem !important;
  line-height: 1.8;
  font-style: italic;
}

body.rsvp-section-page .rsvp-submit-button,
body.rsvp-onepage .rsvp-submit-button {
  width: fit-content;
  justify-self: end;
  margin-top: 0.5rem;
  margin-left: auto;
  margin-right: 0;
}

/* 3-delt RSVP-toggle */
body.rsvp-section-page .rsvp-toggle-field,
body.rsvp-onepage .rsvp-toggle-field {
  display: grid;
  gap: 0.85rem;
  margin: 0;
  padding: 0;
  border: 0;
}

body.rsvp-section-page .rsvp-toggle-field legend,
body.rsvp-onepage .rsvp-toggle-field legend {
  padding: 0;
  color: var(--muted);
  font-size: 0.9rem;
  letter-spacing: 0.04em;
}

body.rsvp-section-page .rsvp-segmented,
body.rsvp-onepage .rsvp-segmented {
  --rsvp-active-index: 0;
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: min(100%, 520px);
  padding: 0.28rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(31,29,26,0.035);
  overflow: hidden;
  transition: border-color 250ms ease, box-shadow 250ms ease;
}

@supports selector(:has(*)) {
  body.rsvp-section-page .rsvp-segmented:has(input:nth-of-type(2):checked),
  body.rsvp-onepage .rsvp-segmented:has(input:nth-of-type(2):checked) {
    --rsvp-active-index: 1;
  }

  body.rsvp-section-page .rsvp-segmented:has(input:nth-of-type(3):checked),
  body.rsvp-onepage .rsvp-segmented:has(input:nth-of-type(3):checked) {
    --rsvp-active-index: 2;
  }
}

body.rsvp-section-page .rsvp-segmented:hover,
body.rsvp-onepage .rsvp-segmented:hover {
  border-color: rgba(31,29,26,0.24);
  box-shadow: 0 8px 24px rgba(31,29,26,0.045);
}

body.rsvp-section-page .rsvp-segmented::before,
body.rsvp-onepage .rsvp-segmented::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0.28rem;
  left: 0.28rem;
  width: calc((100% - 0.56rem) / 3);
  height: calc(100% - 0.56rem);
  border-radius: 999px;
  background: var(--ink);
  box-shadow:
    0 8px 20px rgba(31,29,26,0.12),
    inset 0 1px 0 rgba(255,255,255,0.18);
  transform: translateX(calc(var(--rsvp-active-index) * 100%));
  transition:
    transform 320ms cubic-bezier(.22,1,.36,1),
    box-shadow 320ms ease;
}

body.rsvp-section-page .rsvp-segmented input,
body.rsvp-onepage .rsvp-segmented input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

body.rsvp-section-page .rsvp-segmented label,
body.rsvp-onepage .rsvp-segmented label {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 2.9rem;
  padding: 0.75rem 0.8rem;
  border-radius: 999px;
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  line-height: 1;
  text-transform: uppercase;
  cursor: pointer;
  user-select: none;
  transition: color 260ms ease, transform 260ms cubic-bezier(.22,1,.36,1);
}

body.rsvp-section-page .rsvp-segmented input:checked + label,
body.rsvp-onepage .rsvp-segmented input:checked + label {
  color: var(--paper);
}

body.rsvp-section-page .rsvp-segmented label:hover,
body.rsvp-onepage .rsvp-segmented label:hover {
  color: var(--ink);
}

body.rsvp-section-page .rsvp-segmented input:checked + label:hover,
body.rsvp-onepage .rsvp-segmented input:checked + label:hover {
  color: var(--paper);
}

body.rsvp-section-page .rsvp-segmented label:active,
body.rsvp-onepage .rsvp-segmented label:active {
  transform: scale(0.97);
}

/* Fredag-note */
body.rsvp-section-page .rsvp-context-note,
body.rsvp-onepage .rsvp-context-note {
  position: relative;
  max-width: 42rem;
  margin: -0.15rem 0 0.4rem;
  padding: 0.95rem 1.1rem 0.95rem 1.25rem;
  border-radius: 1rem;
  background: rgba(31,29,26,0.028);
  color: rgba(31,29,26,0.62);
  font-size: 0.95rem;
  line-height: 1.75;
  overflow: hidden;
}

body.rsvp-section-page .rsvp-context-note::before,
body.rsvp-onepage .rsvp-context-note::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.9rem;
  bottom: 0.9rem;
  width: 1px;
  background:
    linear-gradient(
      180deg,
      rgba(205,179,138,0),
      rgba(205,179,138,0.48) 22%,
      rgba(205,179,138,0.48) 78%,
      rgba(205,179,138,0)
    );
}

body.rsvp-section-page .rsvp-context-note span,
body.rsvp-onepage .rsvp-context-note span {
  display: block;
  margin-bottom: 0.35rem;
  color: rgba(168,143,104,0.9);
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

body.rsvp-section-page .rsvp-context-note p,
body.rsvp-onepage .rsvp-context-note p {
  margin: 0;
}

/* Endre RSVP */
body.rsvp-onepage .rsvp-edit-section .rsvp-lookup-form,
body.rsvp-section-page .rsvp-edit-section .rsvp-lookup-form {
  width: min(100%, 520px);
  max-width: 520px;
  margin-left: auto;
  margin-right: auto;
  justify-items: stretch;
}

body.rsvp-onepage .rsvp-edit-section .rsvp-lookup-form .rsvp-form-group,
body.rsvp-section-page .rsvp-edit-section .rsvp-lookup-form .rsvp-form-group {
  width: 100%;
  max-width: 520px;
}

body.rsvp-onepage .rsvp-edit-section .rsvp-submit-button,
body.rsvp-section-page .rsvp-edit-section .rsvp-submit-button {
  justify-self: end;
}

/* Mobil-scroll-nav */
.mobile-scroll-nav,
.mobile-scroll-label {
  display: none;
}

@media (min-width: 781px) and (max-width: 1280px) {
  body.rsvp-onepage .rsvp-page-section,
  body.rsvp-section-page .rsvp-page-section {
    padding:
      clamp(9rem, 12vw, 11rem)
      clamp(4rem, 6vw, 5.5rem)
      clamp(4rem, 6vw, 5.5rem);
  }

  body.rsvp-onepage .section-inner,
  body.rsvp-section-page .section-inner {
    width: min(82vw, 760px);
    max-width: 760px;
    padding-top: 2.6rem;
  }

  body.rsvp-onepage h2.tittel,
  body.rsvp-section-page h2.tittel {
    font-size: clamp(3rem, 6.5vw, 5.4rem);
  }

  body.rsvp-onepage .rsvp-form-layout,
  body.rsvp-section-page .rsvp-form-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 780px) {
  @supports selector(:has(*)) {
    html:has(body.rsvp-onepage) {
      scroll-snap-type: y proximity;
    }
  }

  body.rsvp-onepage .site-header,
  body.rsvp-section-page .site-header {
    justify-content: center;
    min-height: 72px;
    padding: 1.25rem;
    color: var(--ink);
    background: rgba(255,253,249,0.72);
    border-bottom: 1px solid rgba(31,29,26,0.08);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
  }

  body.rsvp-onepage .site-header .nav,
  body.rsvp-section-page .site-header .nav {
    display: none;
  }

  body.rsvp-onepage .site-header .brand,
  body.rsvp-section-page .site-header .brand {
    position: absolute;
    left: 50%;
    top: 0.75rem;
    transform: translateX(-50%);
  }

  body.rsvp-onepage .rsvp-page-section,
  body.rsvp-section-page .rsvp-page-section {
    min-height: 100svh;
    padding: 7rem 1rem 4.5rem;
    scroll-snap-align: start;
  }

  body.rsvp-onepage .section-inner,
  body.rsvp-section-page .section-inner {
    width: 100%;
    max-width: none;
    padding-top: 1.5rem;
  }

  body.rsvp-onepage .section-number,
  body.rsvp-section-page .section-number {
    font-size: 0.72rem;
    letter-spacing: 0.22em;
  }

  body.rsvp-onepage h2.tittel,
  body.rsvp-section-page h2.tittel {
    margin-top: 0.85rem;
    font-size: clamp(2.7rem, 13vw, 4.15rem);
    line-height: 0.98;
  }

  body.rsvp-onepage .rsvp-section-form,
  body.rsvp-section-page .rsvp-section-form {
    margin-top: 2.5rem;
  }

  body.rsvp-onepage .rsvp-form-layout,
  body.rsvp-section-page .rsvp-form-layout {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  body.rsvp-onepage .rsvp-decision-block,
  body.rsvp-section-page .rsvp-decision-block {
    max-width: none;
  }

  body.rsvp-onepage .rsvp-segmented,
  body.rsvp-section-page .rsvp-segmented {
    width: 100%;
  }

  body.rsvp-onepage .rsvp-segmented label,
  body.rsvp-section-page .rsvp-segmented label {
    min-height: 3.05rem;
    padding: 0.85rem 0.55rem;
    font-size: 0.7rem;
    letter-spacing: 0.13em;
  }

  body.rsvp-onepage .rsvp-submit-button,
  body.rsvp-section-page .rsvp-submit-button,
  body.rsvp-onepage .button,
  body.rsvp-section-page .button {
    width: 100%;
    justify-self: stretch;
    margin-left: 0;
    margin-right: 0;
  }

  body.rsvp-onepage .site-footer-inner,
  body.rsvp-section-page .site-footer-inner {
    width: min(90vw, 900px);
    flex-direction: column;
    gap: 1rem;
    text-align: center;
    padding: 2rem 0;
  }

  body.rsvp-onepage .rsvp-mobile-scroll-nav {
    position: fixed;
    z-index: 100;
    right: 0.85rem;
    top: 50%;
    display: flex;
    flex-direction: column;
    width: 52px;
    height: 132px;
    padding: 0.35rem;
    gap: 0.25rem;
    border-radius: 999px;
    background: rgba(255,255,255,0.34);
    backdrop-filter: blur(12px) saturate(130%);
    -webkit-backdrop-filter: blur(12px) saturate(130%);
    border: 1px solid rgba(31,29,26,0.055);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,0.38),
      0 5px 18px rgba(31,29,26,0.045);
    opacity: 0;
    pointer-events: none;
    transform: translateY(-50%) translateX(10px);
    transition: opacity 300ms ease, transform 300ms cubic-bezier(.22,1,.36,1);
  }

  body.rsvp-onepage .rsvp-mobile-scroll-nav.visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(-50%) translateX(0);
  }

  body.rsvp-onepage .rsvp-mobile-scroll-nav button {
    flex: 1;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    appearance: none;
    -webkit-appearance: none;
  }

  body.rsvp-onepage .rsvp-mobile-scroll-nav button::after {
    content: "";
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: rgba(31,29,26,0.16);
    border: 1px solid rgba(255,255,255,0.42);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,0.45),
      0 2px 7px rgba(31,29,26,0.045);
    transition:
      width 260ms cubic-bezier(.22,1,.36,1),
      height 260ms cubic-bezier(.22,1,.36,1),
      background 260ms ease,
      box-shadow 260ms ease,
      transform 260ms cubic-bezier(.22,1,.36,1);
  }

  body.rsvp-onepage .rsvp-mobile-scroll-nav button.active::after {
    width: 24px;
    height: 24px;
    background: #cdb38a;
    border: 1px solid rgba(255,255,255,0.65);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,0.62),
      0 0 0 5px rgba(205,179,138,0.18),
      0 5px 16px rgba(31,29,26,0.09);
    transform: scale(1.08);
  }

  body.rsvp-onepage .mobile-scroll-label {
    display: block;
    position: fixed;
    z-index: 101;
    right: 4.25rem;
    top: 50%;
    opacity: 0;
    pointer-events: none;
    white-space: nowrap;
    transform: translateY(-50%) translateX(12px);
    padding: 0.7rem 1rem;
    border-radius: 999px;
    background:
      linear-gradient(
        180deg,
        rgba(255,255,255,0.9),
        rgba(255,255,255,0.74)
      );
    backdrop-filter: blur(24px) saturate(160%);
    -webkit-backdrop-filter: blur(24px) saturate(160%);
    border: 1px solid rgba(255,255,255,0.6);
    box-shadow: 0 12px 30px rgba(31,29,26,0.14);
    color: var(--ink);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    transition: opacity 160ms ease, transform 160ms ease;
  }

  body.rsvp-onepage .mobile-scroll-label.visible {
    opacity: 1;
    transform: translateY(-50%) translateX(0);
  }
}
/* RSVP dato/sted – kopiert fra original hero-meta */

body.rsvp-section-page .rsvp-hero-meta,
body.rsvp-onepage .rsvp-hero-meta {
  margin-top: 1.4rem;
  text-align: center;
}

body.rsvp-section-page .rsvp-hero-meta .date,
body.rsvp-onepage .rsvp-hero-meta .date {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.85rem;

  width: fit-content;

  margin: 0;

  color: rgba(31,29,26,0.78);

  font-size: clamp(0.95rem, 1.25vw, 1.2rem);
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

body.rsvp-section-page .rsvp-hero-meta .date::before,
body.rsvp-section-page .rsvp-hero-meta .date::after,
body.rsvp-onepage .rsvp-hero-meta .date::before,
body.rsvp-onepage .rsvp-hero-meta .date::after {
  content: "";

  width: 2.1rem;
  height: 1px;

  background:
    linear-gradient(
      90deg,
      rgba(205,179,138,0),
      rgba(205,179,138,0.65)
    );
}

body.rsvp-section-page .rsvp-hero-meta .date::after,
body.rsvp-onepage .rsvp-hero-meta .date::after {
  transform: scaleX(-1);
}

body.rsvp-section-page .rsvp-hero-meta .hero-location,
body.rsvp-onepage .rsvp-hero-meta .hero-location {
  display: block;

  width: 100%;

  margin: 0.85rem 0 0;

  color: rgba(31,29,26,0.54);

  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  line-height: 1.4;
  text-transform: uppercase;
}

/* Seksjonsnummer til venstre, resten sentrert under tittelen */

body.rsvp-section-page .rsvp-title-stack,
body.rsvp-onepage .rsvp-title-stack {
  justify-items: center;
  margin-left: 0;
  margin-right: auto;
}

body.rsvp-section-page .rsvp-title-stack .section-number,
body.rsvp-onepage .rsvp-title-stack .section-number {
  justify-self: start;
  text-align: left;
}
/* Header – brand på linje med seksjonsinnhold */

@media (min-width: 781px) {
  body.rsvp-public .site-header {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    justify-content: initial;

    gap: clamp(2rem, 6vw, 5rem);

    padding-left: max(8vw, calc((100vw - 900px) / 2));
    padding-right: max(8vw, calc((100vw - 900px) / 2));
  }

  body.rsvp-public .site-header .brand {
    justify-self: start;
  }

  body.rsvp-public .site-header .nav {
    justify-self: end;
    transform: none !important;
  }
}

/* Mellomstor skjerm – matcher section-inner på 760px */
@media (min-width: 781px) and (max-width: 1280px) {
  body.rsvp-public .site-header {
    padding-left: max(9vw, calc((100vw - 760px) / 2));
    padding-right: max(9vw, calc((100vw - 760px) / 2));
  }
}
/* RSVP scroll snap – av på desktop, beholdes kun på mobil */

@supports selector(:has(*)) {
  html:has(body.rsvp-onepage) {
    scroll-snap-type: none !important;
  }
}

body.rsvp-onepage .rsvp-page-section {
  scroll-snap-align: none !important;
  scroll-snap-stop: normal !important;
}

/* Kun mobil får lett snap-følelse */
@media (max-width: 780px) {
  @supports selector(:has(*)) {
    html:has(body.rsvp-onepage) {
      scroll-snap-type: y proximity !important;
    }
  }

  body.rsvp-onepage .rsvp-page-section {
    scroll-snap-align: start !important;
  }
}
/* RSVP mobil – samle skjemagrupper i elegante blocks */

@media (max-width: 780px) {
  body.rsvp-section-page .rsvp-section-form,
  body.rsvp-onepage .rsvp-section-form {
    gap: 1.2rem;
  }

  body.rsvp-section-page .rsvp-form-layout,
  body.rsvp-onepage .rsvp-form-layout {
    gap: 1.15rem;
  }

  body.rsvp-section-page .rsvp-section-form .rsvp-form-group,
  body.rsvp-onepage .rsvp-section-form .rsvp-form-group {
    position: relative;

    padding: 1.15rem 1rem 1.2rem;

    border: 1px solid rgba(31,29,26,0.065);
    border-radius: 1.25rem;

    background:
      linear-gradient(
        180deg,
        rgba(255,255,255,0.78),
        rgba(255,253,249,0.56)
      );

    box-shadow:
      0 10px 28px rgba(31,29,26,0.045),
      inset 0 1px 0 rgba(255,255,255,0.7);

    overflow: hidden;
  }

  body.rsvp-section-page .rsvp-section-form .rsvp-form-group::before,
  body.rsvp-onepage .rsvp-section-form .rsvp-form-group::before {
    content: "";

    position: absolute;

    left: 0;
    top: 1rem;
    bottom: 1rem;

    width: 1px;

    background:
      linear-gradient(
        180deg,
        rgba(205,179,138,0),
        rgba(205,179,138,0.5) 22%,
        rgba(205,179,138,0.5) 78%,
        rgba(205,179,138,0)
      );
  }

  body.rsvp-section-page .rsvp-section-form .course-label,
  body.rsvp-onepage .rsvp-section-form .course-label {
    margin-bottom: 1rem !important;
  }

  body.rsvp-section-page .rsvp-section-form .course-label::after,
  body.rsvp-onepage .rsvp-section-form .course-label::after {
    width: 100%;
    max-width: none;
  }

  body.rsvp-section-page .rsvp-section-form label,
  body.rsvp-onepage .rsvp-section-form label {
    gap: 0.5rem;
  }

  body.rsvp-section-page .rsvp-section-form input,
  body.rsvp-section-page .rsvp-section-form textarea,
  body.rsvp-onepage .rsvp-section-form input,
  body.rsvp-onepage .rsvp-section-form textarea {
    background: rgba(255,253,249,0.88);
  }

  body.rsvp-section-page .rsvp-segmented,
  body.rsvp-onepage .rsvp-segmented {
    background: rgba(31,29,26,0.04);
  }

  body.rsvp-section-page .rsvp-inline-note,
  body.rsvp-onepage .rsvp-inline-note {
    margin-top: -0.15rem;
  }
}
/* Skjul RSVP mobilnavigasjon */

@media (max-width: 780px) {
  body.rsvp-onepage .rsvp-mobile-scroll-nav,
  body.rsvp-onepage .mobile-scroll-label {
    display: none !important;
  }
}
/* RSVP mobil – original-inspirert assist snap, ikke hard CSS snap */

@media (max-width: 780px) {
  html:has(body.rsvp-onepage),
  body.rsvp-onepage {
    scroll-snap-type: none !important;
    overscroll-behavior-x: none;
    touch-action: pan-y;
  }

  body.rsvp-onepage .rsvp-page-section {
    scroll-snap-align: none !important;
    scroll-snap-stop: normal !important;
  }
}
/* Edit.php – flytt knapperekken til høyre */

body.rsvp-edit-page .rsvp-edit-actions {
  justify-self: end;

  width: fit-content;
  max-width: 100%;

  margin-left: auto;
  margin-right: 0;

  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 0.85rem;
}

/* Hindrer at tidligere knapperegler skyver knappene rart inni action-raden */
body.rsvp-edit-page .rsvp-edit-actions .button,
body.rsvp-edit-page .rsvp-edit-actions .rsvp-submit-button {
  margin-left: 0;
  margin-right: 0;
  justify-self: auto;
}

/* Mobil: behold full bredde */
@media (max-width: 780px) {
  body.rsvp-edit-page .rsvp-edit-actions {
    justify-self: stretch;

    width: 100%;

    display: grid;
    grid-template-columns: 1fr;
  }

  body.rsvp-edit-page .rsvp-edit-actions .button {
    width: 100%;
  }
}
/* RSVP deadline / låst deltakelse */

body.rsvp-edit-page .rsvp-deadline-note {
  margin-top: 1.4rem;
  margin-bottom: 0;
}

body.rsvp-edit-page .rsvp-lock-note {
  background: rgba(155,115,71,0.075);
}

body.rsvp-edit-page .rsvp-lock-note::before {
  background:
    linear-gradient(
      180deg,
      rgba(155,115,71,0),
      rgba(155,115,71,0.52) 22%,
      rgba(155,115,71,0.52) 78%,
      rgba(155,115,71,0)
    );
}

body.rsvp-edit-page .rsvp-decision-block.is-locked {
  opacity: 0.82;
}

body.rsvp-edit-page .rsvp-decision-block.is-locked .rsvp-segmented {
  cursor: not-allowed;
  background: rgba(31,29,26,0.045);
}

body.rsvp-edit-page .rsvp-decision-block.is-locked .rsvp-segmented label {
  cursor: not-allowed;
}

body.rsvp-edit-page .rsvp-decision-block.is-locked .rsvp-segmented input:not(:checked) + label {
  color: rgba(31,29,26,0.32);
}

body.rsvp-edit-page .rsvp-decision-block.is-locked .rsvp-toggle-field legend::after {
  content: " · låst etter svarfrist";
  color: rgba(155,115,71,0.85);
  font-style: italic;
}

@media (max-width: 780px) {
  body.rsvp-edit-page .rsvp-toggle-field legend::after {
    display: block;
    margin-top: 0.25rem;
  }
}
/* RSVP context-note – full bredde og litt mer luft over */

body.rsvp-section-page .rsvp-context-note,
body.rsvp-onepage .rsvp-context-note {
  width: 100%;
  max-width: none;

  margin-top: 1.1rem;
  margin-bottom: 0.4rem;
}
body.rsvp-edit-page .rsvp-deadline-note {
  width: 100%;
  max-width: none;

  margin-top: 1.6rem;
}
/* Index – elegant svarfrist under dato/sted */

body.rsvp-onepage .rsvp-deadline-meta,
body.rsvp-section-page .rsvp-deadline-meta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;

  width: fit-content;
  max-width: 100%;

  margin-top: 1.25rem;
  padding: 0.72rem 1rem;

  border: 1px solid rgba(205,179,138,0.42);
  border-radius: 999px;

  background:
    linear-gradient(
      180deg,
      rgba(255,253,249,0.86),
      rgba(255,253,249,0.58)
    );

  box-shadow:
    0 8px 24px rgba(31,29,26,0.045),
    inset 0 1px 0 rgba(255,255,255,0.72);

  color: var(--ink);
}

body.rsvp-onepage .rsvp-deadline-meta span,
body.rsvp-section-page .rsvp-deadline-meta span {
  color: rgba(31,29,26,0.48);

  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  line-height: 1;
  text-transform: uppercase;
}

body.rsvp-onepage .rsvp-deadline-meta strong,
body.rsvp-section-page .rsvp-deadline-meta strong {
  color: rgba(31,29,26,0.78);

  font-family: var(--font-serif);
  font-size: 1.05rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.02em;
}

body.rsvp-onepage .rsvp-deadline-meta.is-passed,
body.rsvp-section-page .rsvp-deadline-meta.is-passed {
  border-color: rgba(155,115,71,0.42);
  background: rgba(155,115,71,0.075);
}

body.rsvp-onepage .rsvp-deadline-meta.is-passed span,
body.rsvp-section-page .rsvp-deadline-meta.is-passed span {
  color: rgba(155,115,71,0.9);
}

@media (max-width: 780px) {
  body.rsvp-onepage .rsvp-deadline-meta,
  body.rsvp-section-page .rsvp-deadline-meta {
    margin-top: 1.1rem;
    padding: 0.72rem 0.9rem;
    gap: 0.6rem;
  }

  body.rsvp-onepage .rsvp-deadline-meta span,
  body.rsvp-section-page .rsvp-deadline-meta span {
    font-size: 0.6rem;
    letter-spacing: 0.15em;
  }

  body.rsvp-onepage .rsvp-deadline-meta strong,
  body.rsvp-section-page .rsvp-deadline-meta strong {
    font-size: 1rem;
  }
}
/* Footer admin-lenker */

.rsvp-footer .footer-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;

  color: var(--muted);
}

.rsvp-footer .footer-link {
  border: 0;
  background: none;

  color: var(--muted);

  font: inherit;
  text-decoration: none;
  cursor: pointer;

  transition: color 250ms ease;
}

.rsvp-footer .footer-link:hover {
  color: var(--ink);
}

@media (max-width: 780px) {
  .rsvp-footer .footer-actions {
    justify-content: center;
  }
}
/* Fredag-note – mindre luft over boksen */

body.rsvp-section-page .rsvp-form-group:has(.rsvp-friday-note),
body.rsvp-onepage .rsvp-form-group:has(.rsvp-friday-note) {
  gap: 0.65rem;
}

body.rsvp-section-page .rsvp-friday-note,
body.rsvp-onepage .rsvp-friday-note {
  margin-top: 0;
  margin-bottom: 0.55rem;
}
/* Index – stengt RSVP etter svarfrist */

body.rsvp-onepage .rsvp-submit-closed-note,
body.rsvp-section-page .rsvp-submit-closed-note {
  width: 100%;
  max-width: none;

  margin-top: clamp(2.5rem, 5vw, 4rem);
}

body.rsvp-onepage .rsvp-closed-actions,
body.rsvp-section-page .rsvp-closed-actions {
  display: flex;
  justify-content: flex-end;

  margin-top: 1.2rem;
}

@media (max-width: 780px) {
  body.rsvp-onepage .rsvp-closed-actions,
  body.rsvp-section-page .rsvp-closed-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  body.rsvp-onepage .rsvp-closed-actions .button,
  body.rsvp-section-page .rsvp-closed-actions .button {
    width: 100%;
  }
}
/* RSVP / Endre RSVP – mer elegante labels og inputfelt */

body.rsvp-section-page .rsvp-section-form label,
body.rsvp-onepage .rsvp-section-form label,
body.rsvp-edit-page .rsvp-section-form label {
  display: grid;
  gap: 0.55rem;

  color: rgba(31,29,26,0.56);

  font-size: 0.76rem;
  font-weight: 650;
  letter-spacing: 0.12em;
  line-height: 1.3;
  text-transform: uppercase;
}

body.rsvp-section-page .rsvp-section-form input,
body.rsvp-section-page .rsvp-section-form textarea,
body.rsvp-onepage .rsvp-section-form input,
body.rsvp-onepage .rsvp-section-form textarea,
body.rsvp-edit-page .rsvp-section-form input,
body.rsvp-edit-page .rsvp-section-form textarea {
  width: 100%;

  border: 1px solid rgba(31,29,26,0.11);
  border-radius: 1.05rem;

  background:
    linear-gradient(
      180deg,
      rgba(255,253,249,0.96),
      rgba(255,253,249,0.78)
    );

  color: var(--ink);

  font: inherit;
  font-size: 1rem;
  line-height: 1.45;

  padding: 1.05rem 1.05rem;

  outline: none;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.72),
    0 6px 18px rgba(31,29,26,0.025);

  transition:
    border-color 220ms ease,
    background 220ms ease,
    box-shadow 220ms ease,
    transform 220ms ease;
}

body.rsvp-section-page .rsvp-section-form input:hover,
body.rsvp-section-page .rsvp-section-form textarea:hover,
body.rsvp-onepage .rsvp-section-form input:hover,
body.rsvp-onepage .rsvp-section-form textarea:hover,
body.rsvp-edit-page .rsvp-section-form input:hover,
body.rsvp-edit-page .rsvp-section-form textarea:hover {
  border-color: rgba(31,29,26,0.2);
  background: rgba(255,253,249,0.98);
}

body.rsvp-section-page .rsvp-section-form input:focus,
body.rsvp-section-page .rsvp-section-form textarea:focus,
body.rsvp-onepage .rsvp-section-form input:focus,
body.rsvp-onepage .rsvp-section-form textarea:focus,
body.rsvp-edit-page .rsvp-section-form input:focus,
body.rsvp-edit-page .rsvp-section-form textarea:focus {
  border-color: rgba(205,179,138,0.82);

  background: white;

  box-shadow:
    0 0 0 4px rgba(205,179,138,0.13),
    0 12px 28px rgba(31,29,26,0.055),
    inset 0 1px 0 rgba(255,255,255,0.8);
}

body.rsvp-section-page .rsvp-section-form textarea,
body.rsvp-onepage .rsvp-section-form textarea,
body.rsvp-edit-page .rsvp-section-form textarea {
  min-height: 8.5rem;
  resize: vertical;
  border-radius: 1.15rem;
}

body.rsvp-section-page .rsvp-section-form input::placeholder,
body.rsvp-section-page .rsvp-section-form textarea::placeholder,
body.rsvp-onepage .rsvp-section-form input::placeholder,
body.rsvp-onepage .rsvp-section-form textarea::placeholder,
body.rsvp-edit-page .rsvp-section-form input::placeholder,
body.rsvp-edit-page .rsvp-section-form textarea::placeholder {
  color: rgba(31,29,26,0.34);
  font-style: italic;
}

/* Label får litt mer liv når feltet er aktivt */
body.rsvp-section-page .rsvp-section-form label:has(input:focus),
body.rsvp-section-page .rsvp-section-form label:has(textarea:focus),
body.rsvp-onepage .rsvp-section-form label:has(input:focus),
body.rsvp-onepage .rsvp-section-form label:has(textarea:focus),
body.rsvp-edit-page .rsvp-section-form label:has(input:focus),
body.rsvp-edit-page .rsvp-section-form label:has(textarea:focus) {
  color: rgba(168,143,104,0.95);
}

/* Chrome autofill – hindrer blå/gul autofill-look */
body.rsvp-section-page .rsvp-section-form input:-webkit-autofill,
body.rsvp-onepage .rsvp-section-form input:-webkit-autofill,
body.rsvp-edit-page .rsvp-section-form input:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px #fffdf9 inset;
  -webkit-text-fill-color: var(--ink);
}
/* Edit.php – juster Tilbake og Lagre endringer på samme linje */

body.rsvp-edit-page .rsvp-edit-actions {
  align-items: center;
}

body.rsvp-edit-page .rsvp-edit-actions .button,
body.rsvp-edit-page .rsvp-edit-actions button.button,
body.rsvp-edit-page .rsvp-edit-actions a.button {
  height: 3rem;
  min-height: 3rem;

  margin-top: 0 !important;
  margin-bottom: 0 !important;

  padding-top: 0;
  padding-bottom: 0;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  line-height: 1;
  vertical-align: middle;
}
/* Reservasjonskode – mer lesbar og alle tegn på linje */

.reservation-code,
body.rsvp-confirmation-page .reservation-code {
  font-family:
    "SFMono-Regular",
    Consolas,
    "Liberation Mono",
    Menlo,
    monospace;

  font-variant-numeric: tabular-nums;
  letter-spacing: 0.08em;

  font-size: clamp(1.8rem, 6vw, 3.8rem);
  font-weight: 600;

  line-height: 1.15;
  text-align: center;
}
/* Midtstill reservasjonskode på bekreftelsessiden */

body.rsvp-confirmation-page .reservation-code,
.reservation-code {
  display: flex;
  align-items: center;
  justify-content: center;

  width: fit-content;
  max-width: 100%;

  margin-left: auto;
  margin-right: auto;

  text-align: center;
}
/* Confirmation.php – mer kompakt og elegant bekreftelsesside */

body.rsvp-confirmation-page .site-shell {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

body.rsvp-confirmation-page .rsvp-confirmation-section {
  min-height: auto;

  display: grid;
  place-items: center;

  padding:
    clamp(8.5rem, 12vw, 10.5rem)
    clamp(1.25rem, 7vw, 7rem)
    clamp(3rem, 6vw, 4.5rem);

  background: white;
}

body.rsvp-confirmation-page .rsvp-confirmation-inner {
  width: min(84vw, 680px);
  max-width: 680px;

  padding-top: 0;

  display: grid;
  justify-items: center;

  text-align: center;
}

body.rsvp-confirmation-page .rsvp-confirmation-title {
  margin-left: auto;
  margin-right: auto;
}

body.rsvp-confirmation-page .rsvp-confirmation-title .section-number {
  justify-self: center;
  text-align: center;
}

body.rsvp-confirmation-page .rsvp-confirmation-title h2.tittel {
  font-size: clamp(3rem, 7vw, 5.8rem);
}

body.rsvp-confirmation-page .rsvp-confirmation-intro {
  max-width: 34rem;

  margin-top: 1.4rem;
  margin-bottom: 0;

  text-align: center;
}

body.rsvp-confirmation-page .rsvp-code-panel {
  width: 100%;

  margin-top: clamp(2rem, 4vw, 3rem);
  padding: clamp(1.25rem, 3vw, 1.8rem);

  border: 1px solid rgba(205,179,138,0.34);
  border-radius: 1.35rem;

  background:
    linear-gradient(
      180deg,
      rgba(255,253,249,0.92),
      rgba(255,253,249,0.62)
    );

  box-shadow:
    0 14px 36px rgba(31,29,26,0.055),
    inset 0 1px 0 rgba(255,255,255,0.74);
}

body.rsvp-confirmation-page .rsvp-code-panel > span {
  display: block;

  margin-bottom: 0.95rem;

  color: rgba(31,29,26,0.48);

  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  line-height: 1;
  text-transform: uppercase;
}

body.rsvp-confirmation-page .reservation-code {
  display: flex;
  align-items: center;
  justify-content: center;

  width: fit-content;
  max-width: 100%;

  margin: 0 auto;

  font-family:
    "SFMono-Regular",
    Consolas,
    "Liberation Mono",
    Menlo,
    monospace;

  font-size: clamp(1.8rem, 6vw, 3.6rem);
  font-weight: 650;
  letter-spacing: 0.08em;
  line-height: 1.1;
  text-align: center;
}

body.rsvp-confirmation-page .rsvp-code-panel p {
  max-width: 32rem;

  margin: 1.15rem auto 0;

  color: rgba(31,29,26,0.56);

  font-size: 0.92rem;
  line-height: 1.7;
  font-style: italic;
}

body.rsvp-confirmation-page .rsvp-confirmation-alert {
  width: 100%;

  margin: 1.1rem 0 0;

  text-align: center;
}

body.rsvp-confirmation-page .rsvp-confirmation-actions {
  margin-top: 1.35rem;

  justify-content: center;
}

body.rsvp-confirmation-page .site-footer {
  margin-top: 0;
}

@media (max-width: 780px) {
  body.rsvp-confirmation-page .rsvp-confirmation-section {
    padding: 7rem 1rem 2.5rem;
  }

  body.rsvp-confirmation-page .rsvp-confirmation-inner {
    width: 100%;
  }

  body.rsvp-confirmation-page .rsvp-code-panel {
    padding: 1.15rem 1rem;
    border-radius: 1.2rem;
  }

  body.rsvp-confirmation-page .reservation-code {
    width: 100%;
    font-size: clamp(1.55rem, 9vw, 2.55rem);
  }

  body.rsvp-confirmation-page .rsvp-confirmation-actions {
    display: grid;
    grid-template-columns: 1fr;

    width: 100%;
  }

  body.rsvp-confirmation-page .rsvp-confirmation-actions .button {
    width: 100%;
  }
}
/* RSVP 2-delt toggle */

body.rsvp-section-page .rsvp-segmented-2,
body.rsvp-onepage .rsvp-segmented-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: min(100%, 420px);
}

body.rsvp-section-page .rsvp-segmented-2::before,
body.rsvp-onepage .rsvp-segmented-2::before {
  width: calc((100% - 0.56rem) / 2);
}

/* Skjul slider når ingen valg er valgt, f.eks. fredag før gjesten svarer */
body.rsvp-section-page .rsvp-segmented:not(:has(input:checked))::before,
body.rsvp-onepage .rsvp-segmented:not(:has(input:checked))::before {
  opacity: 0;
}

body.rsvp-section-page .rsvp-segmented:has(input:checked)::before,
body.rsvp-onepage .rsvp-segmented:has(input:checked)::before {
  opacity: 1;
}
/* RSVP toggle – smooth hover-animasjon på desktop */

body.rsvp-section-page .rsvp-segmented label,
body.rsvp-onepage .rsvp-segmented label,
body.rsvp-edit-page .rsvp-segmented label {
  transition:
    color 260ms ease,
    background 260ms ease,
    box-shadow 260ms ease,
    transform 260ms cubic-bezier(.22,1,.36,1);
}

body.rsvp-section-page .rsvp-segmented,
body.rsvp-onepage .rsvp-segmented,
body.rsvp-edit-page .rsvp-segmented {
  transition:
    border-color 260ms ease,
    background 260ms ease,
    box-shadow 320ms ease;
}

/* Hover på ikke-valgt valg – samme farge som aktiv */
@media (min-width: 781px) and (hover: hover) {
  body.rsvp-section-page .rsvp-segmented input:not(:checked):not(:disabled) + label:hover,
  body.rsvp-onepage .rsvp-segmented input:not(:checked):not(:disabled) + label:hover,
  body.rsvp-edit-page .rsvp-segmented input:not(:checked):not(:disabled) + label:hover {
    background: var(--ink);

    color: var(--paper);

    box-shadow:
      0 8px 20px rgba(31,29,26,0.10),
      inset 0 1px 0 rgba(255,255,255,0.16);

    transform: translateY(-1px);
  }

  body.rsvp-section-page .rsvp-segmented input:not(:checked):not(:disabled) + label:active,
  body.rsvp-onepage .rsvp-segmented input:not(:checked):not(:disabled) + label:active,
  body.rsvp-edit-page .rsvp-segmented input:not(:checked):not(:disabled) + label:active {
    transform: translateY(0) scale(0.985);
  }
}

/* RSVP toggle – roligere sliderbevegelse */

body.rsvp-section-page .rsvp-segmented::before,
body.rsvp-onepage .rsvp-segmented::before,
body.rsvp-edit-page .rsvp-segmented::before {
  transition:
    transform 420ms cubic-bezier(.16,1,.3,1),
    opacity 220ms ease,
    box-shadow 320ms ease;
}
/* RSVP input – normal tekst og mer elegant placeholder */

body.rsvp-section-page .rsvp-section-form input,
body.rsvp-section-page .rsvp-section-form textarea,
body.rsvp-onepage .rsvp-section-form input,
body.rsvp-onepage .rsvp-section-form textarea,
body.rsvp-edit-page .rsvp-section-form input,
body.rsvp-edit-page .rsvp-section-form textarea {
  font-weight: 400;
  letter-spacing: 0.01em;
  text-transform: none;
}

body.rsvp-section-page .rsvp-section-form input::placeholder,
body.rsvp-section-page .rsvp-section-form textarea::placeholder,
body.rsvp-onepage .rsvp-section-form input::placeholder,
body.rsvp-onepage .rsvp-section-form textarea::placeholder,
body.rsvp-edit-page .rsvp-section-form input::placeholder,
body.rsvp-edit-page .rsvp-section-form textarea::placeholder {
  color: rgba(31,29,26,0.34);

  font-weight: 300;
  font-style: italic;
  letter-spacing: 0.01em;
  text-transform: none;
}
/* RSVP – Jeg kommer + svarfrist på linje med toggle */

body.rsvp-section-page .rsvp-toggle-field-with-meta,
body.rsvp-onepage .rsvp-toggle-field-with-meta,
body.rsvp-edit-page .rsvp-toggle-field-with-meta {
  display: grid;
  gap: 0.7rem;

  width: min(100%, 420px);

  margin: 0;
  padding: 0;

  border: 0;
}

/* Legend har samme bredde som toggle-boksen */
body.rsvp-section-page .rsvp-toggle-legend,
body.rsvp-onepage .rsvp-toggle-legend,
body.rsvp-edit-page .rsvp-toggle-legend {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 0.85rem;

  width: 100%;

  margin: 0;
  padding: 0;

  color: inherit;
}

/* Tittelen oppfører seg som vanlig course-label */
body.rsvp-section-page .rsvp-toggle-title,
body.rsvp-onepage .rsvp-toggle-title,
body.rsvp-edit-page .rsvp-toggle-title {
  display: block;

  width: 100%;
  min-width: 0;

  margin: 0 !important;
}

/* Behold normal lengde på gull-linjen under "Jeg kommer" */
body.rsvp-section-page .rsvp-toggle-title::after,
body.rsvp-onepage .rsvp-toggle-title::after,
body.rsvp-edit-page .rsvp-toggle-title::after {
  width: min(20rem, 100%);
  max-width: none;
}

/* Svarfrist-badgen legges helt til høyre i samme bredde som toggle */
body.rsvp-section-page .rsvp-deadline-label,
body.rsvp-onepage .rsvp-deadline-label,
body.rsvp-edit-page .rsvp-deadline-label {
  justify-self: end;
  align-self: start;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;

  width: fit-content;
  max-width: 100%;

  margin-top: -0.32rem;
  padding: 0.38rem 0.58rem;

  border: 1px solid rgba(205,179,138,0.42);
  border-radius: 999px;

  background:
    linear-gradient(
      180deg,
      rgba(255,253,249,0.92),
      rgba(255,253,249,0.66)
    );

  color: rgba(31,29,26,0.48);

  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;

  box-shadow:
    0 5px 14px rgba(31,29,26,0.035),
    inset 0 1px 0 rgba(255,255,255,0.72);

  position: relative;
  z-index: 2;
}

body.rsvp-section-page .rsvp-deadline-label strong,
body.rsvp-onepage .rsvp-deadline-label strong,
body.rsvp-edit-page .rsvp-deadline-label strong {
  color: rgba(31,29,26,0.76);

  font-family:
    "SFMono-Regular",
    Consolas,
    "Liberation Mono",
    Menlo,
    monospace;

  font-variant-numeric: tabular-nums;

  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1;
  text-transform: none;
}

body.rsvp-section-page .rsvp-deadline-label.is-passed,
body.rsvp-onepage .rsvp-deadline-label.is-passed,
body.rsvp-edit-page .rsvp-deadline-label.is-passed {
  border-color: rgba(155,115,71,0.42);
  background: rgba(155,115,71,0.075);
  color: rgba(155,115,71,0.9);
}

body.rsvp-section-page .rsvp-deadline-label.is-passed strong,
body.rsvp-onepage .rsvp-deadline-label.is-passed strong,
body.rsvp-edit-page .rsvp-deadline-label.is-passed strong {
  color: rgba(155,115,71,0.92);
}

/* Mobil: fortsatt inline, og høyrekant matcher Nei-knappen */
@media (max-width: 780px) {
  body.rsvp-section-page .rsvp-toggle-field-with-meta,
  body.rsvp-onepage .rsvp-toggle-field-with-meta,
  body.rsvp-edit-page .rsvp-toggle-field-with-meta {
    width: 100%;
  }

  body.rsvp-section-page .rsvp-toggle-legend,
  body.rsvp-onepage .rsvp-toggle-legend,
  body.rsvp-edit-page .rsvp-toggle-legend {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.55rem;
    width: 100%;
  }

  body.rsvp-section-page .rsvp-deadline-label,
  body.rsvp-onepage .rsvp-deadline-label,
  body.rsvp-edit-page .rsvp-deadline-label {
    margin-top: -0.24rem;
    padding: 0.34rem 0.48rem;

    font-size: 0.5rem;
    letter-spacing: 0.11em;
  }

  body.rsvp-section-page .rsvp-deadline-label strong,
  body.rsvp-onepage .rsvp-deadline-label strong,
  body.rsvp-edit-page .rsvp-deadline-label strong {
    font-size: 0.72rem;
    letter-spacing: 0.04em;
  }
}
/* RSVP – fornavn/etternavn på samme rad */

body.rsvp-section-page .rsvp-name-row,
body.rsvp-onepage .rsvp-name-row,
body.rsvp-edit-page .rsvp-name-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}

@media (max-width: 780px) {
  body.rsvp-section-page .rsvp-name-row,
  body.rsvp-onepage .rsvp-name-row,
  body.rsvp-edit-page .rsvp-name-row {
    grid-template-columns: 1fr;
  }
}
/* RSVP inline-note – samme uttrykk som context-note, men riktig bredde i gruppen */

body.rsvp-section-page .rsvp-inline-note,
body.rsvp-onepage .rsvp-inline-note,
body.rsvp-edit-page .rsvp-inline-note {
  position: relative;

  width: 100%;
  max-width: none;

  margin: 0.15rem 0 0;
  padding: 0.85rem 1rem 0.85rem 1.15rem;

  border-radius: 1rem;

  background: rgba(31,29,26,0.028);

  color: rgba(31,29,26,0.58);

  font-size: 0.88rem;
  line-height: 1.65;
  font-style: italic;

  overflow: hidden;
}

body.rsvp-section-page .rsvp-inline-note::before,
body.rsvp-onepage .rsvp-inline-note::before,
body.rsvp-edit-page .rsvp-inline-note::before {
  content: "";

  position: absolute;

  left: 0;
  top: 0.8rem;
  bottom: 0.8rem;

  width: 1px;

  background:
    linear-gradient(
      180deg,
      rgba(205,179,138,0),
      rgba(205,179,138,0.48) 22%,
      rgba(205,179,138,0.48) 78%,
      rgba(205,179,138,0)
    );
}

@media (max-width: 780px) {
  body.rsvp-section-page .rsvp-inline-note,
  body.rsvp-onepage .rsvp-inline-note,
  body.rsvp-edit-page .rsvp-inline-note {
    padding: 0.8rem 0.9rem 0.8rem 1rem;
    font-size: 0.84rem;
    line-height: 1.6;
  }
}
/* Admin login – ryddig bredde + riktig plassering av meldinger */

body.rsvp-admin-login-page {
  background: var(--paper);
  color: var(--ink);
}

body.rsvp-admin-login-page main,
body.rsvp-admin-login-page .rsvp-admin-login-section {
  width: 100%;
  max-width: none;
}

body.rsvp-admin-login-page .rsvp-admin-login-section {
  min-height: 100svh;
  padding-top: clamp(6.5rem, 16vh, 10rem);
  padding-bottom: clamp(3rem, 8vh, 5rem);
}

/* Viktig: grid i stedet for flex, så alert kommer over skjema */
body.rsvp-admin-login-page .section-inner.rsvp-admin-login-inner {
  width: min(100% - 2rem, 1180px) !important;
  max-width: 1180px !important;
  margin-inline: auto !important;

  display: grid;
  justify-items: center;
  align-content: start;
  gap: 1rem;
}

/* Feilmelding / utlogget-melding */
body.rsvp-admin-login-page .alert,
body.rsvp-admin-login-page .flash-message,
body.rsvp-admin-login-page .flash {
  width: min(100%, 520px);
  margin: 0 0 0.15rem;

  border-radius: 1rem;
  padding: 0.9rem 1rem;

  font-size: 0.88rem;
  line-height: 1.5;
}

/* Feil brukernavn/passord */
body.rsvp-admin-login-page .alert-error {
  border: 1px solid rgba(155,71,71,0.28);
  background: rgba(155,71,71,0.075);
  color: rgba(112,45,45,0.95);
}

/* Du er logget ut / success */
body.rsvp-admin-login-page .alert-success {
  border: 1px solid rgba(205,179,138,0.42);
  background: rgba(205,179,138,0.10);
  color: rgba(31,29,26,0.72);
}

body.rsvp-admin-login-page .rsvp-admin-login-form {
  width: min(100%, 520px);
  max-width: 520px;
  margin: 0;
}

body.rsvp-admin-login-page .rsvp-admin-login-form .rsvp-form-layout,
body.rsvp-admin-login-page .rsvp-admin-login-form .rsvp-form-group {
  width: 100%;
}

body.rsvp-admin-login-page .rsvp-admin-login-form .rsvp-submit-button {
  margin-top: 1.25rem;
}

@media (max-width: 780px) {
  body.rsvp-admin-login-page .rsvp-admin-login-section {
    padding-top: 6rem;
  }

  body.rsvp-admin-login-page .section-inner.rsvp-admin-login-inner {
    width: min(100% - 1.25rem, 520px) !important;
  }

  body.rsvp-admin-login-page .rsvp-admin-login-form {
    width: 100%;
    max-width: none;
  }

  body.rsvp-admin-login-page .alert,
  body.rsvp-admin-login-page .flash-message,
  body.rsvp-admin-login-page .flash {
    width: 100%;
  }
}
/* Glemt reservasjonskode – seksjon 03 på index */

body.rsvp-onepage .rsvp-forgot-code-section[hidden],
body.rsvp-section-page .rsvp-forgot-code-section[hidden] {
  display: none !important;
}

body.rsvp-onepage .rsvp-forgot-code-section,
body.rsvp-section-page .rsvp-forgot-code-section {
  min-height: 100svh;
}

body.rsvp-onepage .rsvp-forgot-code-form,
body.rsvp-section-page .rsvp-forgot-code-form {
  width: min(100%, 520px);
  margin-top: clamp(1.25rem, 3vw, 2rem);
}

body.rsvp-onepage .rsvp-forgot-code-form .rsvp-form-layout,
body.rsvp-onepage .rsvp-forgot-code-form .rsvp-form-group,
body.rsvp-section-page .rsvp-forgot-code-form .rsvp-form-layout,
body.rsvp-section-page .rsvp-forgot-code-form .rsvp-form-group {
  width: 100%;
}

body.rsvp-onepage .rsvp-forgot-code-actions,
body.rsvp-section-page .rsvp-forgot-code-actions {
  width: 100%;

  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 0.85rem;

  margin-top: 1.25rem;
}

body.rsvp-onepage .rsvp-forgot-code-actions .button,
body.rsvp-onepage .rsvp-forgot-code-actions a.button,
body.rsvp-onepage .rsvp-forgot-code-actions button.button,
body.rsvp-section-page .rsvp-forgot-code-actions .button,
body.rsvp-section-page .rsvp-forgot-code-actions a.button,
body.rsvp-section-page .rsvp-forgot-code-actions button.button {
  width: auto !important;

  height: 3rem;
  min-height: 3rem;

  margin: 0 !important;
  padding-top: 0;
  padding-bottom: 0;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  line-height: 1;
}

body.rsvp-section-page .rsvp-forgot-code-note,
body.rsvp-onepage .rsvp-forgot-code-note {
  margin-top: 0.85rem;
}

body.rsvp-section-page .rsvp-forgot-code-note a,
body.rsvp-onepage .rsvp-forgot-code-note a {
  color: var(--ink);
  text-decoration: none;
  border-bottom: 1px solid rgba(205,179,138,0.65);
  transition:
    color 220ms ease,
    border-color 220ms ease;
}

body.rsvp-section-page .rsvp-forgot-code-note a:hover,
body.rsvp-onepage .rsvp-forgot-code-note a:hover {
  color: rgba(31,29,26,0.72);
  border-color: rgba(31,29,26,0.38);
}

@media (max-width: 780px) {
  body.rsvp-onepage .rsvp-forgot-code-form,
  body.rsvp-section-page .rsvp-forgot-code-form {
    width: 100%;
  }

  body.rsvp-onepage .rsvp-forgot-code-actions,
  body.rsvp-section-page .rsvp-forgot-code-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  body.rsvp-onepage .rsvp-forgot-code-actions .button,
  body.rsvp-onepage .rsvp-forgot-code-actions a.button,
  body.rsvp-onepage .rsvp-forgot-code-actions button.button,
  body.rsvp-section-page .rsvp-forgot-code-actions .button,
  body.rsvp-section-page .rsvp-forgot-code-actions a.button,
  body.rsvp-section-page .rsvp-forgot-code-actions button.button {
    width: 100% !important;
  }
}
/* 03 Glemt kode – kun form sentrert og knapper til høyre */

body.rsvp-onepage #forgot-code .rsvp-forgot-code-form,
body.rsvp-section-page #forgot-code .rsvp-forgot-code-form {
  width: min(100%, 520px);
  margin-left: auto;
  margin-right: auto;
}

body.rsvp-onepage #forgot-code .rsvp-forgot-code-form .rsvp-form-layout,
body.rsvp-onepage #forgot-code .rsvp-forgot-code-form .rsvp-form-group,
body.rsvp-section-page #forgot-code .rsvp-forgot-code-form .rsvp-form-layout,
body.rsvp-section-page #forgot-code .rsvp-forgot-code-form .rsvp-form-group {
  width: 100%;
}

body.rsvp-onepage #forgot-code .rsvp-forgot-code-actions,
body.rsvp-section-page #forgot-code .rsvp-forgot-code-actions {
  width: min(100%, 520px);
  margin-left: auto;
  margin-right: auto;
  margin-top: 1.25rem;

  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 0.85rem;
}

body.rsvp-onepage #forgot-code .rsvp-forgot-code-actions .button,
body.rsvp-onepage #forgot-code .rsvp-forgot-code-actions a.button,
body.rsvp-onepage #forgot-code .rsvp-forgot-code-actions button.button,
body.rsvp-section-page #forgot-code .rsvp-forgot-code-actions .button,
body.rsvp-section-page #forgot-code .rsvp-forgot-code-actions a.button,
body.rsvp-section-page #forgot-code .rsvp-forgot-code-actions button.button {
  width: auto !important;

  height: 3rem;
  min-height: 3rem;

  margin: 0 !important;
  padding-top: 0;
  padding-bottom: 0;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  line-height: 1;
}

@media (max-width: 780px) {
  body.rsvp-onepage #forgot-code .rsvp-forgot-code-form,
  body.rsvp-section-page #forgot-code .rsvp-forgot-code-form,
  body.rsvp-onepage #forgot-code .rsvp-forgot-code-actions,
  body.rsvp-section-page #forgot-code .rsvp-forgot-code-actions {
    width: 100%;
  }

  body.rsvp-onepage #forgot-code .rsvp-forgot-code-actions,
  body.rsvp-section-page #forgot-code .rsvp-forgot-code-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  body.rsvp-onepage #forgot-code .rsvp-forgot-code-actions .button,
  body.rsvp-onepage #forgot-code .rsvp-forgot-code-actions a.button,
  body.rsvp-onepage #forgot-code .rsvp-forgot-code-actions button.button,
  body.rsvp-section-page #forgot-code .rsvp-forgot-code-actions .button,
  body.rsvp-section-page #forgot-code .rsvp-forgot-code-actions a.button,
  body.rsvp-section-page #forgot-code .rsvp-forgot-code-actions button.button {
    width: 100% !important;
  }
}
/* 02 Endre RSVP + 03 Glemt kode – form venstre, knapper høyre */

/* 02 Endre RSVP */
body.rsvp-onepage #endre-rsvp .rsvp-lookup-form,
body.rsvp-section-page #endre-rsvp .rsvp-lookup-form {
  width: min(100%, 520px);
  margin-left: 0 !important;
  margin-right: 0 !important;
}

body.rsvp-onepage #endre-rsvp .rsvp-lookup-form .rsvp-form-group,
body.rsvp-section-page #endre-rsvp .rsvp-lookup-form .rsvp-form-group {
  width: 100%;
}

body.rsvp-onepage #endre-rsvp .rsvp-lookup-form .rsvp-submit-button,
body.rsvp-section-page #endre-rsvp .rsvp-lookup-form .rsvp-submit-button {
  margin-left: auto !important;
  margin-right: 0 !important;
  margin-top: 1.25rem;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  height: 3rem;
  min-height: 3rem;

  padding-top: 0;
  padding-bottom: 0;

  line-height: 1;
}


/* 03 Glemt kode */
body.rsvp-onepage #forgot-code .rsvp-forgot-code-form,
body.rsvp-section-page #forgot-code .rsvp-forgot-code-form {
  width: min(100%, 520px);
  margin-left: 0 !important;
  margin-right: 0 !important;
}

body.rsvp-onepage #forgot-code .rsvp-forgot-code-form .rsvp-form-layout,
body.rsvp-onepage #forgot-code .rsvp-forgot-code-form .rsvp-form-group,
body.rsvp-section-page #forgot-code .rsvp-forgot-code-form .rsvp-form-layout,
body.rsvp-section-page #forgot-code .rsvp-forgot-code-form .rsvp-form-group {
  width: 100%;
}

body.rsvp-onepage #forgot-code .rsvp-forgot-code-actions,
body.rsvp-section-page #forgot-code .rsvp-forgot-code-actions {
  width: 100%;
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-top: 1.25rem;

  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 0.85rem;
}

body.rsvp-onepage #forgot-code .rsvp-forgot-code-actions .button,
body.rsvp-onepage #forgot-code .rsvp-forgot-code-actions a.button,
body.rsvp-onepage #forgot-code .rsvp-forgot-code-actions button.button,
body.rsvp-section-page #forgot-code .rsvp-forgot-code-actions .button,
body.rsvp-section-page #forgot-code .rsvp-forgot-code-actions a.button,
body.rsvp-section-page #forgot-code .rsvp-forgot-code-actions button.button {
  width: auto !important;

  height: 3rem;
  min-height: 3rem;

  margin: 0 !important;
  padding-top: 0;
  padding-bottom: 0;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  line-height: 1;
}


/* Mobil */
@media (max-width: 780px) {
  body.rsvp-onepage #endre-rsvp .rsvp-lookup-form,
  body.rsvp-section-page #endre-rsvp .rsvp-lookup-form,
  body.rsvp-onepage #forgot-code .rsvp-forgot-code-form,
  body.rsvp-section-page #forgot-code .rsvp-forgot-code-form {
    width: 100%;
  }

  body.rsvp-onepage #endre-rsvp .rsvp-lookup-form .rsvp-submit-button,
  body.rsvp-section-page #endre-rsvp .rsvp-lookup-form .rsvp-submit-button {
    width: 100%;
    margin-left: 0 !important;
  }

  body.rsvp-onepage #forgot-code .rsvp-forgot-code-actions,
  body.rsvp-section-page #forgot-code .rsvp-forgot-code-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  body.rsvp-onepage #forgot-code .rsvp-forgot-code-actions .button,
  body.rsvp-onepage #forgot-code .rsvp-forgot-code-actions a.button,
  body.rsvp-onepage #forgot-code .rsvp-forgot-code-actions button.button,
  body.rsvp-section-page #forgot-code .rsvp-forgot-code-actions .button,
  body.rsvp-section-page #forgot-code .rsvp-forgot-code-actions a.button,
  body.rsvp-section-page #forgot-code .rsvp-forgot-code-actions button.button {
    width: 100% !important;
  }
}
/* RSVP – seksjonsspesifikke feilmeldinger */

/* 01 RSVP */
body.rsvp-onepage #new-rsvp .rsvp-section-alert,
body.rsvp-section-page #new-rsvp .rsvp-section-alert {
  width: 100%;
  max-width: none;

  margin: 1.25rem 0 1.5rem;
}

/* 02 Endre RSVP */
body.rsvp-onepage #endre-rsvp .rsvp-lookup-alert,
body.rsvp-section-page #endre-rsvp .rsvp-lookup-alert {
  width: min(100%, 520px);

  margin: 1.15rem 0 1.25rem;
}

/* 03 Glemt kode */
body.rsvp-onepage #forgot-code .rsvp-forgot-alert,
body.rsvp-section-page #forgot-code .rsvp-forgot-alert {
  width: min(100%, 520px);

  margin: 1.15rem 0 1.25rem;
}

/* Litt mer RSVP-aktig alert-look i seksjonene */
body.rsvp-onepage .rsvp-section-alert,
body.rsvp-onepage .rsvp-lookup-alert,
body.rsvp-onepage .rsvp-forgot-alert,
body.rsvp-section-page .rsvp-section-alert,
body.rsvp-section-page .rsvp-lookup-alert,
body.rsvp-section-page .rsvp-forgot-alert {
  border-radius: 1rem;

  font-size: 0.92rem;
  line-height: 1.65;
}

/* Mobil */
@media (max-width: 780px) {
  body.rsvp-onepage #new-rsvp .rsvp-section-alert,
  body.rsvp-section-page #new-rsvp .rsvp-section-alert,
  body.rsvp-onepage #endre-rsvp .rsvp-lookup-alert,
  body.rsvp-section-page #endre-rsvp .rsvp-lookup-alert,
  body.rsvp-onepage #forgot-code .rsvp-forgot-alert,
  body.rsvp-section-page #forgot-code .rsvp-forgot-alert {
    width: 100%;
  }
}
/* RSVP – deaktiver smooth/snap mens scrollposisjon gjenopprettes */

html.rsvp-restoring-scroll,
html.rsvp-restoring-scroll *,
body.rsvp-restoring-scroll,
body.rsvp-restoring-scroll * {
  scroll-behavior: auto !important;
  scroll-snap-type: none !important;
  scroll-snap-align: none !important;
  scroll-snap-stop: normal !important;
}
/* RSVP – error-meldinger samme bredde som context-note */

body.rsvp-onepage #new-rsvp .rsvp-section-alert,
body.rsvp-section-page #new-rsvp .rsvp-section-alert,
body.rsvp-onepage #endre-rsvp .rsvp-lookup-alert,
body.rsvp-section-page #endre-rsvp .rsvp-lookup-alert,
body.rsvp-onepage #forgot-code .rsvp-forgot-alert,
body.rsvp-section-page #forgot-code .rsvp-forgot-alert {
  width: 100%;
  max-width: none;

  margin: 1.15rem 0 1.35rem;
}
/* ==========================================================================
   ADMIN – nytt seksjonsbasert panel
   ========================================================================== */

body.admin-section-page {
  min-height: 100svh;

  background: white;
  color: var(--ink);
}

body.admin-section-page::before,
body.admin-section-page::after {
  display: none;
}

/* Skjul gammel admin-layout hvis noe fortsatt ligger igjen */
body.admin-section-page .admin-shell,
body.admin-section-page .admin-sidebar,
body.admin-section-page .admin-content {
  display: block;
}

/* Header */

body.admin-section-page .admin-site-header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  justify-content: initial;

  gap: clamp(1.5rem, 4vw, 4rem);

  padding-left: max(4vw, calc((100vw - 1200px) / 2));
  padding-right: max(4vw, calc((100vw - 1200px) / 2));

  background: rgba(255,253,249,0.82);
  border-bottom: 1px solid rgba(31,29,26,0.08);

  backdrop-filter: blur(20px) saturate(160%);
  -webkit-backdrop-filter: blur(20px) saturate(160%);
}

body.admin-section-page .admin-site-header .brand {
  justify-self: start;
}

body.admin-section-page .admin-site-header .brand-a,
body.admin-section-page .admin-site-header .brand-m {
  font-size: clamp(2.25rem, 3.2vw, 3.35rem);
}

body.admin-section-page .admin-site-header .brand-divider {
  height: clamp(2.7rem, 3.8vw, 3.8rem);
}

body.admin-section-page .admin-top-nav {
  justify-self: end;

  display: flex;
  align-items: center;
  justify-content: flex-end;

  gap: clamp(0.9rem, 1.6vw, 1.45rem);

  min-width: 0;
}

body.admin-section-page .admin-top-nav a {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;

  font-size: 0.7rem;
  letter-spacing: 0.14em;
}

body.admin-section-page .admin-top-nav a span {
  color: rgba(168,143,104,0.92);

  font-size: 0.62rem;
  letter-spacing: 0.12em;
}

body.admin-section-page .admin-header-actions {
  justify-self: end;

  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

body.admin-section-page .admin-header-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 2.35rem;

  padding: 0.65rem 0.9rem;

  border: 1px solid rgba(31,29,26,0.12);
  border-radius: 999px;

  color: rgba(31,29,26,0.66);

  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;

  background: rgba(255,253,249,0.62);

  transition:
    color 220ms ease,
    border-color 220ms ease,
    background 220ms ease,
    transform 220ms ease;
}

body.admin-section-page .admin-header-actions a:hover {
  color: var(--ink);
  border-color: rgba(31,29,26,0.28);
  background: white;
  transform: translateY(-1px);
}

/* Main / seksjon */

body.admin-section-page .admin-main {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

body.admin-section-page .admin-page-section {
  display: grid;
  place-items: start center;

  min-height: 100svh;

  padding:
    clamp(10rem, 13vw, 12rem)
    clamp(1.25rem, 5vw, 5rem)
    clamp(4rem, 7vw, 6rem);

  background: white;
}

body.admin-section-page .admin-section-inner {
  width: min(90vw, 1200px);
  max-width: 1200px;

  margin: 0 auto;
  padding-top: clamp(1.5rem, 3vw, 3rem);
}

/* Toppfelt */

body.admin-section-page .admin-titlebar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;

  margin: 0 0 clamp(1.6rem, 4vw, 2.6rem);
}

body.admin-section-page .admin-titlebar > div {
  min-width: 0;
}

body.admin-section-page .admin-titlebar h2.tittel,
body.admin-section-page .admin-titlebar h2 {
  margin-top: 0.85rem;

  font-family: var(--font-serif);
  font-weight: 400;
  line-height: 0.96;

  font-size: clamp(3rem, 7vw, 6.8rem);
  letter-spacing: -0.05em;
}

body.admin-section-page .admin-titlebar > span {
  flex-shrink: 0;

  margin-bottom: 0.35rem;

  color: rgba(31,29,26,0.5);

  font-size: 0.76rem;
  font-weight: 650;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* Kort / grid */

body.admin-section-page .card,
body.admin-section-page .kpi-card {
  border: 1px solid rgba(31,29,26,0.075);
  border-radius: var(--radius);

  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,0.78),
      rgba(255,253,249,0.56)
    );

  box-shadow:
    0 12px 34px rgba(31,29,26,0.045),
    inset 0 1px 0 rgba(255,255,255,0.72);
}

body.admin-section-page .dashboard-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;

  margin-bottom: 1rem;
}

body.admin-section-page .kpi-card {
  padding: 1.25rem;
}

body.admin-section-page .kpi-card strong,
body.admin-section-page .response-rate strong {
  font-size: clamp(2.8rem, 5vw, 4.7rem);
}

body.admin-section-page .two-column {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: 1rem;
}

/* Toolbar / filter */

body.admin-section-page .toolbar-form {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) 190px auto auto;
  gap: 0.75rem;
  align-items: end;
}

body.admin-section-page .toolbar-form label {
  color: rgba(31,29,26,0.56);

  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* Tabell */

body.admin-section-page .table-card {
  padding: 0;
  overflow: hidden;
}

body.admin-section-page .table-responsive {
  width: 100%;
  overflow-x: auto;
}

body.admin-section-page table {
  width: 100%;
  min-width: 920px;
  border-collapse: collapse;
}

body.admin-section-page th,
body.admin-section-page td {
  padding: 1rem;
  border-bottom: 1px solid rgba(31,29,26,0.08);
  text-align: left;
  vertical-align: top;
}

body.admin-section-page th {
  background: rgba(31,29,26,0.032);
  color: rgba(31,29,26,0.52);

  font-size: 0.66rem;
  font-weight: 750;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

body.admin-section-page td {
  color: rgba(31,29,26,0.74);
}

body.admin-section-page td small {
  color: rgba(31,29,26,0.46);
}

/* Pills */

body.admin-section-page .pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  border-radius: 999px;

  padding: 0.4rem 0.65rem;

  font-size: 0.68rem;
  font-weight: 750;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
}

/* Lenker */

body.admin-section-page .text-link {
  color: rgba(168,143,104,0.96);
  font-weight: 750;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2rem;
}

body.admin-section-page .text-link:hover {
  color: var(--ink);
}

/* Admin actions */

body.admin-section-page .action-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.75rem;

  margin-top: 1.25rem;
}

body.admin-section-page .danger-form {
  margin-top: 1.25rem;
  padding-top: 1.25rem;

  border-top: 1px solid rgba(31,29,26,0.1);
}

/* Responsive */

@media (max-width: 1180px) {
  body.admin-section-page .admin-site-header {
    grid-template-columns: auto minmax(0, 1fr);
  }

  body.admin-section-page .admin-header-actions {
    display: none;
  }

  body.admin-section-page .dashboard-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.admin-section-page .two-column {
    grid-template-columns: 1fr;
  }

  body.admin-section-page .toolbar-form {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 780px) {
  body.admin-section-page .admin-site-header {
    display: grid;
    grid-template-columns: 1fr;

    min-height: auto;

    padding: 0.9rem 1rem 0.85rem;

    gap: 0.75rem;
  }

  body.admin-section-page .admin-site-header .brand {
    position: static;
    justify-self: center;
    transform: none;
  }

  body.admin-section-page .admin-top-nav {
    display: flex !important;

    justify-self: stretch;
    justify-content: flex-start;

    width: 100%;
    max-width: 100%;

    overflow-x: auto;
    padding: 0.2rem 0 0.45rem;

    gap: 1rem;
  }

  body.admin-section-page .admin-top-nav a {
    flex: 0 0 auto;

    font-size: 0.64rem;
    letter-spacing: 0.12em;
  }

  body.admin-section-page .admin-page-section {
    padding: 9.25rem 1rem 3rem;
  }

  body.admin-section-page .admin-section-inner {
    width: 100%;
    max-width: none;
    padding-top: 1rem;
  }

  body.admin-section-page .admin-titlebar {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.85rem;
  }

  body.admin-section-page .admin-titlebar h2.tittel,
  body.admin-section-page .admin-titlebar h2 {
    font-size: clamp(2.8rem, 14vw, 4.2rem);
  }

  body.admin-section-page .admin-titlebar > span {
    margin-bottom: 0;
  }

  body.admin-section-page .dashboard-grid,
  body.admin-section-page .toolbar-form {
    grid-template-columns: 1fr;
  }

  body.admin-section-page .action-row {
    display: grid;
    grid-template-columns: 1fr;
  }

  body.admin-section-page .action-row .button,
  body.admin-section-page .button,
  body.admin-section-page button.button {
    width: 100%;
  }
}
/* Admin dashboard – seksjonskort */

body.admin-section-page .admin-dashboard-row {
  margin-bottom: 1rem;
}

body.admin-section-page .admin-section-card {
  margin-top: 1rem;
  padding: clamp(1.25rem, 3vw, 2rem);
}

body.admin-section-page .admin-card-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;

  margin-bottom: 1.4rem;
}

body.admin-section-page .admin-card-heading h3 {
  margin: 0.45rem 0 0;

  font-family: var(--font-serif);
  font-weight: 400;
  line-height: 1;

  font-size: clamp(2rem, 4vw, 3.5rem);
  letter-spacing: -0.045em;
}

body.admin-section-page .admin-card-heading .button {
  flex-shrink: 0;
}

body.admin-section-page .admin-compact-form {
  display: grid;
  gap: 1rem;

  margin-top: 1.15rem;
}

body.admin-section-page .admin-kpi-grid {
  margin-bottom: 0;
}

body.admin-section-page .admin-kpi-grid .kpi-card {
  box-shadow: none;
}

body.admin-section-page .admin-report-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

body.admin-section-page .admin-report-note {
  margin-top: 1rem;
}

body.admin-section-page .admin-placeholder-text {
  max-width: 44rem;
  margin-bottom: 0;
}

@media (max-width: 780px) {
  body.admin-section-page .admin-card-heading {
    display: grid;
    grid-template-columns: 1fr;
  }

  body.admin-section-page .admin-card-heading .button {
    width: 100%;
  }

  body.admin-section-page .admin-report-grid {
    grid-template-columns: 1fr;
  }
}
/* Admin gjesteliste */

body.admin-section-page .admin-list-summary {
  margin-bottom: 1rem;
}

body.admin-section-page .admin-list-toolbar-card {
  padding: clamp(1rem, 2.4vw, 1.5rem);
}

body.admin-section-page .admin-list-toolbar {
  grid-template-columns: minmax(260px, 1fr) 190px auto auto;
}

body.admin-section-page .admin-list-toolbar label {
  display: grid;
  gap: 0.45rem;
}

body.admin-section-page .admin-list-note {
  width: 100%;
  max-width: none;

  margin-top: 1rem;
}

body.admin-section-page .admin-rsvp-table-card {
  margin-top: 1rem;
}

body.admin-section-page .admin-rsvp-name {
  display: grid;
  gap: 0.2rem;
}

body.admin-section-page .admin-rsvp-name strong {
  color: var(--ink);
  font-weight: 750;
}

body.admin-section-page .admin-rsvp-name small {
  display: block;

  color: rgba(31,29,26,0.48);

  font-size: 0.78rem;
  line-height: 1.45;
}

body.admin-section-page .admin-muted {
  color: rgba(31,29,26,0.38);
}

body.admin-section-page .admin-table-actions {
  text-align: right;
  white-space: nowrap;
}

body.admin-section-page .admin-empty-row {
  padding: 1.4rem 1rem;

  color: rgba(31,29,26,0.54);
  font-style: italic;
}

@media (max-width: 1180px) {
  body.admin-section-page .admin-list-toolbar {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 780px) {
  body.admin-section-page .admin-list-toolbar {
    grid-template-columns: 1fr;
  }

  body.admin-section-page .admin-table-actions {
    text-align: left;
  }
}
/* Admin RSVP-skjema */

body.admin-section-page .admin-rsvp-form-card {
  padding: clamp(1.25rem, 3vw, 2rem);
}

body.admin-section-page .admin-rsvp-admin-form {
  margin-top: 0;
}

body.admin-section-page .admin-rsvp-admin-form .form-section {
  padding: clamp(1rem, 2.4vw, 1.35rem);

  border: 1px solid rgba(31,29,26,0.065);
  border-radius: 1.25rem;

  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,0.78),
      rgba(255,253,249,0.56)
    );

  box-shadow:
    0 10px 28px rgba(31,29,26,0.035),
    inset 0 1px 0 rgba(255,255,255,0.7);
}

body.admin-section-page .admin-rsvp-admin-form .form-section h3 {
  margin: 0.45rem 0 1rem;

  font-family: var(--font-serif);
  font-weight: 400;
  line-height: 1;

  font-size: clamp(1.8rem, 3.5vw, 2.8rem);
  letter-spacing: -0.045em;
}

body.admin-section-page .admin-rsvp-admin-form .form-section h3::after {
  display: none;
}

body.admin-section-page .admin-name-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}

body.admin-section-page .admin-form-actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 0.85rem;
}

@media (max-width: 780px) {
  body.admin-section-page .admin-name-row {
    grid-template-columns: 1fr;
  }

  body.admin-section-page .admin-form-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  body.admin-section-page .admin-form-actions .button {
    width: 100%;
  }
}
/* Admin RSVP-detalj */

body.admin-section-page .admin-rsvp-detail-card {
  padding: clamp(1.25rem, 3vw, 2rem);
}

body.admin-section-page .admin-rsvp-meta-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

body.admin-section-page .admin-rsvp-meta-grid .response-rate {
  margin-top: 0;
}

body.admin-section-page .admin-rsvp-meta-grid .response-rate strong {
  font-size: clamp(1.45rem, 3vw, 2.4rem);
  letter-spacing: -0.03em;
  text-transform: none;
}

body.admin-section-page .admin-danger-actions {
  display: flex;
  justify-content: flex-end;

  margin-top: 1rem;
}

body.admin-section-page .admin-danger-actions .button {
  width: auto;
}

@media (max-width: 780px) {
  body.admin-section-page .admin-rsvp-meta-grid {
    grid-template-columns: 1fr;
  }

  body.admin-section-page .admin-danger-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  body.admin-section-page .admin-danger-actions .button {
    width: 100%;
  }
}
/* Admin header – samme nav-stil som RSVP index */

body.admin-section-page .admin-site-header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;

  gap: clamp(2rem, 6vw, 5rem);

  padding-left: max(8vw, calc((100vw - 900px) / 2));
  padding-right: max(8vw, calc((100vw - 900px) / 2));
}

body.admin-section-page .admin-top-nav {
  justify-self: end;

  display: flex;
  gap: clamp(1rem, 2vw, 2rem);
  align-items: center;
  justify-content: flex-end;
}

body.admin-section-page .admin-top-nav a {
  position: relative;

  display: inline-flex;
  align-items: center;
  gap: 0.45rem;

  color: inherit;

  font-size: 0.86rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;

  white-space: nowrap;
}

body.admin-section-page .admin-top-nav a span {
  color: inherit;

  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
}

body.admin-section-page .admin-top-nav a::after {
  content: "";

  position: absolute;
  left: 0;
  bottom: -0.35rem;

  width: 100%;
  height: 1px;

  background: currentColor;

  transform: scaleX(0);
  transform-origin: right;

  transition: transform 280ms ease;
}

body.admin-section-page .admin-top-nav a:hover::after,
body.admin-section-page .admin-top-nav a.active::after {
  transform: scaleX(1);
  transform-origin: left;
}

/* Admin seksjoner – én seksjon per skjerm */

body.admin-section-page .admin-main {
  width: 100%;
  max-width: none;

  margin: 0;
  padding: 0;

  overflow: visible;
}

body.admin-section-page .admin-page-section,
body.admin-section-page .admin-full-section {
  display: grid;
  place-items: center;

  min-height: 100vh;
  min-height: 100svh;

  padding:
    clamp(11rem, 14vw, 13rem)
    clamp(2rem, 7vw, 7rem)
    clamp(5rem, 9vw, 8rem);

  background: white;
}

body.admin-section-page .admin-section-inner {
  width: min(84vw, 900px);
  max-width: 900px;

  margin: 0 auto;
  padding-top: clamp(2rem, 5vw, 4rem);
}

/* Store admin-sider som trenger mer bredde, f.eks. gjesteliste */
body.admin-section-page .admin-section-inner-wide {
  width: min(90vw, 1200px);
  max-width: 1200px;
}

/* Desktop: ikke hard scroll-snap ennå */
body.admin-section-page {
  scroll-snap-type: none;
}

/* Mobil/tablet */
@media (max-width: 780px) {
  body.admin-section-page .admin-site-header {
    grid-template-columns: 1fr;
    gap: 0.75rem;

    padding: 0.9rem 1rem 0.85rem;
  }

  body.admin-section-page .admin-site-header .brand {
    position: static;
    justify-self: center;
    transform: none;
  }

  body.admin-section-page .admin-top-nav {
    justify-self: stretch;
    justify-content: flex-start;

    width: 100%;
    max-width: 100%;

    overflow-x: auto;
    padding: 0.2rem 0 0.45rem;
  }

  body.admin-section-page .admin-top-nav a {
    flex: 0 0 auto;

    font-size: 0.72rem;
    letter-spacing: 0.14em;
  }

  body.admin-section-page .admin-header-actions {
    display: none;
  }

  body.admin-section-page .admin-page-section,
  body.admin-section-page .admin-full-section {
    min-height: 100svh;

    padding:
      8.5rem
      1rem
      4rem;
  }

  body.admin-section-page .admin-section-inner,
  body.admin-section-page .admin-section-inner-wide {
    width: 100%;
    max-width: none;

    padding-top: 1.5rem;
  }
}
/* Admin – mini-header over vanlig site-header */

body.admin-section-page {
  --admin-utility-height: 38px;
}

/* Mini-header */
body.admin-section-page .admin-utility-bar {
  position: fixed;
  z-index: 60;

  top: 0;
  left: 0;
  right: 0;

  height: var(--admin-utility-height);

  display: grid;
  place-items: center;

  background: rgba(31, 29, 26, 0.96);
  color: rgba(255, 253, 249, 0.82);

  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

/* Innhold i mini-header */
body.admin-section-page .admin-utility-inner {
  width: min(90vw, 1200px);

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;

  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  line-height: 1;
  text-transform: uppercase;
}

body.admin-section-page .admin-utility-inner > span {
  color: rgba(255, 253, 249, 0.52);
}

body.admin-section-page .admin-utility-actions {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
}

body.admin-section-page .admin-utility-actions a {
  color: rgba(255, 253, 249, 0.82);
  text-decoration: none;

  transition: color 220ms ease;
}

body.admin-section-page .admin-utility-actions a:hover {
  color: #fffdf9;
}

/* Flytt vanlig admin-header ned under mini-headeren */
body.admin-section-page .admin-site-header {
  top: var(--admin-utility-height) !important;
  z-index: 50;
}

/* Sørg for at første seksjon ikke havner bak dobbel header */
body.admin-section-page .admin-page-section,
body.admin-section-page .admin-full-section {
  padding-top: calc(clamp(11rem, 14vw, 13rem) + var(--admin-utility-height)) !important;
}

/* Mobil */
@media (max-width: 780px) {
  body.admin-section-page {
    --admin-utility-height: 36px;
  }

  body.admin-section-page .admin-utility-inner {
    width: calc(100% - 2rem);

    font-size: 0.6rem;
    letter-spacing: 0.12em;
  }

  body.admin-section-page .admin-utility-actions {
    gap: 0.75rem;
  }

  body.admin-section-page .admin-page-section,
  body.admin-section-page .admin-full-section {
    padding-top: calc(8.5rem + var(--admin-utility-height)) !important;
  }
}
/* Admin – ekte fullskjermseksjoner */

body.admin-section-page .admin-full-section {
  display: grid;
  place-items: center;

  min-height: 100vh;
  min-height: 100svh;

  padding:
    calc(clamp(11rem, 14vw, 13rem) + var(--admin-utility-height, 0px))
    clamp(2rem, 7vw, 7rem)
    clamp(5rem, 9vw, 8rem);

  background: white;
}

body.admin-section-page .admin-full-section + .admin-full-section {
  border-top: 1px solid rgba(31,29,26,0.06);
}

body.admin-section-page .admin-full-section .admin-titlebar {
  margin-bottom: clamp(1.5rem, 4vw, 2.4rem);
}

/* Dashboard-innholdet skal ikke presses for lavt */
body.admin-section-page .admin-full-section .admin-section-inner {
  padding-top: 0;
}

/* Scroll til hash skal ta hensyn til dobbel header */
body.admin-section-page [data-admin-section] {
  scroll-margin-top: calc(7rem + var(--admin-utility-height, 0px));
}

@media (max-width: 780px) {
  body.admin-section-page .admin-full-section {
    min-height: 100svh;

    padding:
      calc(8.5rem + var(--admin-utility-height, 0px))
      1rem
      4rem;
  }
}
/* Admin – ingen CSS scroll-snap, navigasjonen styrer scroll */

@supports selector(:has(*)) {
  html:has(body.admin-section-page) {
    scroll-snap-type: none !important;
    scroll-behavior: smooth;
  }
}

body.admin-section-page .admin-full-section,
body.admin-section-page .admin-page-section,
body.admin-section-page [data-admin-section] {
  scroll-snap-align: none !important;
  scroll-snap-stop: normal !important;
}
/* Admin gjesteliste – seksjonswrapper */

body.admin-section-page .admin-list-section {
  align-items: start;
}

body.admin-section-page .admin-list-section .admin-section-inner-wide {
  width: min(90vw, 1200px);
  max-width: 1200px;
  padding-top: 0;
}

body.admin-section-page .admin-list-section .admin-titlebar {
  margin-bottom: clamp(1.5rem, 4vw, 2.4rem);
}

body.admin-section-page .admin-list-section .admin-list-summary {
  margin-bottom: 1rem;
}

body.admin-section-page .admin-list-section .admin-list-toolbar-card,
body.admin-section-page .admin-list-section .admin-rsvp-table-card {
  width: 100%;
}

body.admin-section-page .admin-list-section .admin-rsvp-table-card {
  margin-top: 1rem;
}

/* Tabellen skal scrolle horisontalt inni kortet, ikke utvide hele siden */
body.admin-section-page .admin-list-section .table-responsive {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
}

body.admin-section-page .admin-list-section table {
  min-width: 980px;
}
/* Admin – navigasjon styrer scroll, ikke CSS snap */

@supports selector(:has(*)) {
  html:has(body.admin-section-page) {
    scroll-snap-type: none !important;
    scroll-behavior: smooth;
  }
}

body.admin-section-page .admin-full-section,
body.admin-section-page .admin-page-section,
body.admin-section-page [data-admin-section] {
  scroll-snap-align: none !important;
  scroll-snap-stop: normal !important;
}
/* Admin – kun JS/nav styrer scroll */

@supports selector(:has(*)) {
  html:has(body.admin-section-page) {
    scroll-snap-type: none !important;
    scroll-behavior: auto !important;
  }
}

body.admin-section-page,
body.admin-section-page .admin-main,
body.admin-section-page .admin-full-section,
body.admin-section-page .admin-page-section {
  scroll-snap-type: none !important;
}

body.admin-section-page .admin-full-section,
body.admin-section-page .admin-page-section,
body.admin-section-page [data-admin-section] {
  scroll-snap-align: none !important;
  scroll-snap-stop: normal !important;
}

body.admin-section-page [data-admin-section] {
  scroll-margin-top: calc(8rem + var(--admin-utility-height, 0px));
}
/* ==========================================================================
   ADMIN – ren seksjonslayout
   ========================================================================== */

body.admin-section-page {
  --admin-utility-height: 38px;

  min-height: 100svh;

  background: white;
  color: var(--ink);

  overflow-x: hidden;
}

body.admin-section-page::before,
body.admin-section-page::after {
  display: none !important;
}

body.admin-section-page .admin-shell,
body.admin-section-page .admin-sidebar,
body.admin-section-page .admin-content {
  display: contents !important;
}

/* Mini-header */

body.admin-section-page .admin-utility-bar {
  position: fixed;
  z-index: 60;

  top: 0;
  left: 0;
  right: 0;

  height: var(--admin-utility-height);

  display: grid;
  place-items: center;

  background: rgba(31, 29, 26, 0.96);
  color: rgba(255, 253, 249, 0.82);

  border-bottom: 1px solid rgba(255,255,255,0.08);
}

body.admin-section-page .admin-utility-inner {
  width: min(90vw, 1200px);

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;

  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  line-height: 1;
  text-transform: uppercase;
}

body.admin-section-page .admin-utility-inner > span {
  color: rgba(255,253,249,0.52);
}

body.admin-section-page .admin-utility-actions {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
}

body.admin-section-page .admin-utility-actions a {
  color: rgba(255,253,249,0.82);
  text-decoration: none;
}

body.admin-section-page .admin-utility-actions a:hover {
  color: #fffdf9;
}

/* Hovedheader */

body.admin-section-page .admin-site-header {
  top: var(--admin-utility-height) !important;
  z-index: 50;

  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  justify-content: initial;

  gap: clamp(2rem, 6vw, 5rem);

  padding-left: max(8vw, calc((100vw - 900px) / 2));
  padding-right: max(8vw, calc((100vw - 900px) / 2));

  background: rgba(255,253,249,0.76);
  border-bottom: 1px solid rgba(31,29,26,0.08);

  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

body.admin-section-page .admin-site-header .brand {
  justify-self: start;
}

body.admin-section-page .admin-top-nav {
  justify-self: end;

  display: flex;
  align-items: center;
  justify-content: flex-end;

  gap: clamp(1rem, 2vw, 2rem);
}

body.admin-section-page .admin-top-nav a {
  position: relative;

  color: inherit;

  font-size: 0.86rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;

  white-space: nowrap;
}

body.admin-section-page .admin-top-nav a::after {
  content: "";

  position: absolute;
  left: 0;
  bottom: -0.35rem;

  width: 100%;
  height: 1px;

  background: currentColor;

  transform: scaleX(0);
  transform-origin: right;

  transition: transform 280ms ease;
}

body.admin-section-page .admin-top-nav a:hover::after,
body.admin-section-page .admin-top-nav a.active::after {
  transform: scaleX(1);
  transform-origin: left;
}

/* Seksjoner */

body.admin-section-page .admin-main {
  width: 100%;
  max-width: none;

  margin: 0;
  padding: 0;

  overflow: visible;
}

body.admin-section-page .admin-full-section {
  display: grid;
  place-items: start center;

  min-height: 100vh;
  min-height: 100svh;

  padding:
    calc(9.5rem + var(--admin-utility-height))
    clamp(2rem, 7vw, 7rem)
    clamp(4rem, 7vw, 6rem);

  background: white;
}

body.admin-section-page .admin-full-section + .admin-full-section {
  border-top: 1px solid rgba(31,29,26,0.06);
}

body.admin-section-page .admin-section-inner {
  width: min(84vw, 900px);
  max-width: 900px;

  margin: 0 auto;
  padding-top: 0 !important;
}

body.admin-section-page .admin-section-inner-wide {
  width: min(90vw, 1200px);
  max-width: 1200px;
}

body.admin-section-page .admin-titlebar {
  margin-bottom: clamp(1.5rem, 4vw, 2.4rem);
}

/* Ingen scroll snap */

@supports selector(:has(*)) {
  html:has(body.admin-section-page) {
    scroll-snap-type: none !important;
    scroll-behavior: auto !important;
  }
}

body.admin-section-page,
body.admin-section-page .admin-main,
body.admin-section-page .admin-full-section,
body.admin-section-page [data-admin-section] {
  scroll-snap-type: none !important;
  scroll-snap-align: none !important;
  scroll-snap-stop: normal !important;
}

body.admin-section-page [data-admin-section] {
  scroll-margin-top: calc(8rem + var(--admin-utility-height));
}

/* Mobil */

@media (max-width: 780px) {
  body.admin-section-page {
    --admin-utility-height: 36px;
  }

  body.admin-section-page .admin-utility-inner {
    width: calc(100% - 2rem);

    font-size: 0.6rem;
    letter-spacing: 0.12em;
  }

  body.admin-section-page .admin-site-header {
    grid-template-columns: 1fr;

    padding: 0.9rem 1rem 0.85rem;

    gap: 0.75rem;
  }

  body.admin-section-page .admin-site-header .brand {
    position: static;
    justify-self: center;
    transform: none;
  }

  body.admin-section-page .admin-top-nav {
    justify-self: stretch;
    justify-content: flex-start;

    width: 100%;
    max-width: 100%;

    overflow-x: auto;
    padding: 0.2rem 0 0.45rem;
  }

  body.admin-section-page .admin-top-nav a {
    flex: 0 0 auto;

    font-size: 0.72rem;
    letter-spacing: 0.14em;
  }

  body.admin-section-page .admin-full-section {
    min-height: 100svh;

    padding:
      calc(8.5rem + var(--admin-utility-height))
      1rem
      4rem;
  }

  body.admin-section-page .admin-section-inner,
  body.admin-section-page .admin-section-inner-wide {
    width: 100%;
    max-width: none;
  }
}
/* ==========================================================================
   ADMIN – én side / intern scroll-container
   ========================================================================== */

body.admin-onepage {
  --admin-utility-height: 38px;
  --admin-header-height: 104px;

  height: 100svh;
  min-height: 100svh;

  overflow: hidden !important;

  background: white;
  color: var(--ink);
}

@supports selector(:has(*)) {
  html:has(body.admin-onepage) {
    height: 100%;
    overflow: hidden !important;
    scroll-behavior: auto !important;
    scroll-snap-type: none !important;
  }
}

body.admin-onepage::before,
body.admin-onepage::after {
  display: none !important;
}

/* Mini-header */

body.admin-onepage .admin-utility-bar {
  position: fixed;
  z-index: 80;

  top: 0;
  left: 0;
  right: 0;

  height: var(--admin-utility-height);

  display: grid;
  place-items: center;

  background: rgba(31, 29, 26, 0.96);
  color: rgba(255, 253, 249, 0.82);

  border-bottom: 1px solid rgba(255,255,255,0.08);
}

body.admin-onepage .admin-utility-inner {
  width: min(90vw, 1200px);

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;

  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  line-height: 1;
  text-transform: uppercase;
}

body.admin-onepage .admin-utility-inner > span {
  color: rgba(255,253,249,0.52);
}

body.admin-onepage .admin-utility-actions {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
}

body.admin-onepage .admin-utility-actions a {
  color: rgba(255,253,249,0.82);
  text-decoration: none;
}

body.admin-onepage .admin-utility-actions a:hover {
  color: #fffdf9;
}

/* Hovedheader */

body.admin-onepage .admin-site-header {
  position: fixed;
  z-index: 70;

  top: var(--admin-utility-height) !important;
  left: 0;
  right: 0;

  height: var(--admin-header-height);

  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  justify-content: initial;

  gap: clamp(2rem, 6vw, 5rem);

  padding: 0 max(8vw, calc((100vw - 900px) / 2));

  background: rgba(255,253,249,0.78);
  border-bottom: 1px solid rgba(31,29,26,0.08);

  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

body.admin-onepage .admin-site-header .brand {
  justify-self: start;
}

body.admin-onepage .admin-top-nav {
  justify-self: end;

  display: flex;
  align-items: center;
  justify-content: flex-end;

  gap: clamp(1rem, 2vw, 2rem);
}

body.admin-onepage .admin-top-nav a {
  position: relative;

  color: inherit;

  font-size: 0.86rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;

  white-space: nowrap;
}

body.admin-onepage .admin-top-nav a::after {
  content: "";

  position: absolute;
  left: 0;
  bottom: -0.35rem;

  width: 100%;
  height: 1px;

  background: currentColor;

  transform: scaleX(0);
  transform-origin: right;

  transition: transform 280ms ease;
}

body.admin-onepage .admin-top-nav a:hover::after,
body.admin-onepage .admin-top-nav a.active::after {
  transform: scaleX(1);
  transform-origin: left;
}

/* Intern scroll-container */

/* Onepage-admin har egen intern scroll-container. Den eldre
   admin-section-page-marginen på hash-mål må derfor ikke brukes her;
   ellers plasserer nettleserens native #hash-restore seksjonen lavere
   enn den etterfølgende JS-navigasjonen og siden hopper ved refresh. */
body.admin-section-page.admin-onepage [data-admin-section] {
  scroll-margin-top: 0 !important;
}

body.admin-onepage .admin-scroll-root {
  position: fixed;

  left: 0;
  right: 0;
  bottom: 0;

  top: calc(var(--admin-utility-height) + var(--admin-header-height));

  width: 100%;
  max-width: none;

  margin: 0;
  padding: 0;

  overflow-y: auto !important;
  overflow-x: hidden !important;

  scroll-behavior: auto !important;
  overscroll-behavior: contain;
  scroll-snap-type: none !important;

  background: white;
}

/* Seksjoner */

body.admin-onepage .admin-full-section {
  display: grid;
  place-items: center;

  min-height: calc(100svh - var(--admin-utility-height) - var(--admin-header-height));

  padding:
    clamp(2.5rem, 5vw, 4.5rem)
    clamp(2rem, 7vw, 7rem)
    clamp(3rem, 6vw, 5rem) !important;

  background: white;

  scroll-snap-align: none !important;
  scroll-snap-stop: normal !important;
}

body.admin-onepage .admin-full-section + .admin-full-section {
  border-top: 1px solid rgba(31,29,26,0.06);
}

body.admin-onepage .admin-list-section {
  place-items: start center;
}

body.admin-onepage .admin-section-inner {
  width: min(84vw, 900px);
  max-width: 900px;

  margin: 0 auto;
  padding-top: 0 !important;
}

body.admin-onepage .admin-section-inner-wide {
  width: min(90vw, 1200px);
  max-width: 1200px;
}

body.admin-onepage .admin-titlebar {
  margin-bottom: clamp(1.5rem, 4vw, 2.4rem);
}

/* Gjesteliste */

body.admin-onepage .admin-list-toolbar-card,
body.admin-onepage .admin-rsvp-table-card {
  width: 100%;
}

body.admin-onepage .admin-rsvp-table-card {
  margin-top: 1rem;
}

body.admin-onepage .table-responsive {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
}

body.admin-onepage table {
  min-width: 980px;
}

body.admin-onepage .admin-rsvp-name {
  display: grid;
  gap: 0.2rem;
}

body.admin-onepage .admin-rsvp-name small {
  display: block;
  color: rgba(31,29,26,0.48);
  font-size: 0.78rem;
  line-height: 1.45;
}

body.admin-onepage .admin-muted {
  color: rgba(31,29,26,0.38);
}

body.admin-onepage .admin-table-actions {
  text-align: right;
  white-space: nowrap;
}

body.admin-onepage .admin-empty-row {
  padding: 1.4rem 1rem;
  color: rgba(31,29,26,0.54);
  font-style: italic;
}

/* Rapporter */

body.admin-onepage .admin-report-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

body.admin-onepage .admin-report-note {
  margin-top: 1rem;
}

/* Mobil */

@media (max-width: 780px) {
  body.admin-onepage {
    --admin-utility-height: 36px;
    --admin-header-height: 124px;
  }

  body.admin-onepage .admin-utility-inner {
    width: calc(100% - 2rem);

    font-size: 0.6rem;
    letter-spacing: 0.12em;
  }

  body.admin-onepage .admin-utility-actions {
    gap: 0.75rem;
  }

  body.admin-onepage .admin-site-header {
    grid-template-columns: 1fr;

    padding: 0.85rem 1rem;

    gap: 0.7rem;
  }

  body.admin-onepage .admin-site-header .brand {
    position: static;
    justify-self: center;
    transform: none;
  }

  body.admin-onepage .admin-top-nav {
    justify-self: stretch;
    justify-content: flex-start;

    width: 100%;
    max-width: 100%;

    overflow-x: auto;

    padding: 0.2rem 0 0.45rem;

    gap: 1rem;
  }

  body.admin-onepage .admin-top-nav a {
    flex: 0 0 auto;

    font-size: 0.72rem;
    letter-spacing: 0.14em;
  }

  body.admin-onepage .admin-full-section {
    min-height: calc(100svh - var(--admin-utility-height) - var(--admin-header-height));

    padding:
      2rem
      1rem
      3rem !important;
  }

  body.admin-onepage .admin-section-inner,
  body.admin-onepage .admin-section-inner-wide {
    width: 100%;
    max-width: none;
  }

  body.admin-onepage .admin-report-grid {
    grid-template-columns: 1fr;
  }
}
/* Admin – header på linje med seksjonsbredden */

@media (min-width: 781px) {
  body.admin-onepage .admin-site-header {
    padding-left: max(5vw, calc((100vw - 1200px) / 2)) !important;
    padding-right: max(5vw, calc((100vw - 1200px) / 2)) !important;

    grid-template-columns: auto minmax(0, 1fr) !important;
  }

  body.admin-onepage .admin-site-header .brand {
    justify-self: start !important;
  }

  body.admin-onepage .admin-top-nav {
    justify-self: end !important;
  }
}
/* Admin – legg til / rediger RSVP */

body.admin-onepage .admin-edit-section {
  place-items: start center !important;
}

body.admin-onepage .admin-edit-section .admin-section-inner-wide {
  width: min(90vw, 1200px);
  max-width: 1200px;
}

body.admin-onepage .admin-edit-section .admin-rsvp-detail-card,
body.admin-onepage .admin-edit-section .admin-rsvp-form-card,
body.admin-onepage .admin-edit-section .admin-section-card {
  width: 100%;
}
/* ==========================================================================
   Admin RSVP-skjema – samme oppsett som offentlig RSVP-index
   Brukes av admin/rsvp-new.php og admin/rsvp-edit.php
   ========================================================================== */

body.admin-onepage .admin-new-rsvp-section,
body.admin-onepage .admin-edit-rsvp-section {
  place-items: start center;
}

body.admin-onepage .admin-new-rsvp-section .admin-section-inner-wide,
body.admin-onepage .admin-edit-rsvp-section .admin-section-inner-wide {
  width: min(90vw, 900px);
  max-width: 900px;
}

body.admin-onepage .admin-rsvp-context-note,
body.admin-onepage .admin-rsvp-public-form .rsvp-context-note,
body.admin-onepage .admin-rsvp-public-form .rsvp-form-note,
body.admin-onepage .admin-rsvp-public-form .rsvp-inline-note,
body.admin-onepage .admin-rsvp-inline-alert {
  width: 100%;
  max-width: none;
}

body.admin-onepage .admin-rsvp-public-form {
  width: 100%;
  max-width: none;
  margin-top: clamp(3rem, 6vw, 5rem);
  padding-top: 0;
  border-top: 0;
  display: grid;
  gap: clamp(1.5rem, 3vw, 2.25rem);
}

body.admin-onepage .admin-rsvp-public-form .rsvp-form-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(1.5rem, 4vw, 3rem);
  row-gap: clamp(2.25rem, 5vw, 4rem);
  align-items: start;
}

body.admin-onepage .admin-rsvp-public-form .rsvp-form-group {
  display: grid;
  gap: 1rem;
  align-content: start;
  min-width: 0;
}

body.admin-onepage .admin-rsvp-public-form .rsvp-form-wide {
  grid-column: 1 / -1;
}

body.admin-onepage .admin-rsvp-public-form .rsvp-decision-block {
  max-width: 680px;
}

body.admin-onepage .admin-rsvp-public-form .course-label {
  position: relative;
  margin: 0 0 1rem !important;
  color: rgba(31,29,26,0.72) !important;
  font-size: 1rem !important;
  font-weight: 750 !important;
  letter-spacing: 0.16em !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
}

body.admin-onepage .admin-rsvp-public-form .course-label::after {
  content: "";
  display: block;
  width: min(20rem, 100%);
  height: 1px;
  margin-top: 0.95rem;
  background: linear-gradient(90deg, rgba(205,179,138,0.72), rgba(205,179,138,0.18), rgba(205,179,138,0));
}

body.admin-onepage .admin-rsvp-public-form label,
body.admin-onepage .admin-rsvp-public-form .rsvp-toggle-field legend {
  display: grid;
  gap: 0.55rem;
  color: rgba(31,29,26,0.56);
  font-size: 0.76rem;
  font-weight: 650;
  letter-spacing: 0.12em;
  line-height: 1.3;
  text-transform: uppercase;
}

body.admin-onepage .admin-rsvp-public-form input,
body.admin-onepage .admin-rsvp-public-form textarea {
  width: 100%;
  border: 1px solid rgba(31,29,26,0.11);
  border-radius: 1.05rem;
  background: linear-gradient(180deg, rgba(255,253,249,0.96), rgba(255,253,249,0.78));
  color: var(--ink);
  font: inherit;
  font-size: 1rem;
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1.45;
  text-transform: none;
  padding: 1.05rem;
  outline: none;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.72), 0 6px 18px rgba(31,29,26,0.025);
  transition: border-color 220ms ease, background 220ms ease, box-shadow 220ms ease;
}

body.admin-onepage .admin-rsvp-public-form textarea {
  min-height: 8.5rem;
  resize: vertical;
  border-radius: 1.15rem;
}

body.admin-onepage .admin-rsvp-public-form input:focus,
body.admin-onepage .admin-rsvp-public-form textarea:focus {
  border-color: rgba(205,179,138,0.82);
  background: white;
  box-shadow: 0 0 0 4px rgba(205,179,138,0.13), 0 12px 28px rgba(31,29,26,0.055), inset 0 1px 0 rgba(255,255,255,0.8);
}

body.admin-onepage .admin-rsvp-public-form input::placeholder,
body.admin-onepage .admin-rsvp-public-form textarea::placeholder {
  color: rgba(31,29,26,0.34);
  font-weight: 300;
  font-style: italic;
  letter-spacing: 0.01em;
  text-transform: none;
}

body.admin-onepage .admin-rsvp-public-form .rsvp-name-row,
body.admin-onepage .admin-rsvp-public-form .admin-table-placement-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}

body.admin-onepage .admin-rsvp-public-form .admin-table-placement-grid {
  grid-template-columns: 1.2fr 1fr 1fr;
}

body.admin-onepage .admin-rsvp-public-form .rsvp-toggle-field {
  display: grid;
  gap: 0.85rem;
  margin: 0;
  padding: 0;
  border: 0;
}

body.admin-onepage .admin-rsvp-public-form .rsvp-segmented {
  --rsvp-active-index: 0;
  position: relative;
  isolation: isolate;
  display: grid;
  width: min(100%, 520px);
  padding: 0.28rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(31,29,26,0.035);
  overflow: hidden;
}

body.admin-onepage .admin-rsvp-public-form .rsvp-segmented-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: min(100%, 420px);
}

body.admin-onepage .admin-rsvp-public-form .rsvp-segmented-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: min(100%, 520px);
}

body.admin-onepage .admin-rsvp-public-form .rsvp-segmented::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0.28rem;
  left: 0.28rem;
  height: calc(100% - 0.56rem);
  border-radius: 999px;
  background: var(--ink);
  box-shadow: 0 8px 20px rgba(31,29,26,0.12), inset 0 1px 0 rgba(255,255,255,0.18);
  transform: translateX(calc(var(--rsvp-active-index) * 100%));
  transition: transform 420ms cubic-bezier(.16,1,.3,1), box-shadow 320ms ease;
}

body.admin-onepage .admin-rsvp-public-form .rsvp-segmented-2::before {
  width: calc((100% - 0.56rem) / 2);
}

body.admin-onepage .admin-rsvp-public-form .rsvp-segmented-3::before {
  width: calc((100% - 0.56rem) / 3);
}

@supports selector(:has(*)) {
  body.admin-onepage .admin-rsvp-public-form .rsvp-segmented:has(input:nth-of-type(2):checked) {
    --rsvp-active-index: 1;
  }

  body.admin-onepage .admin-rsvp-public-form .rsvp-segmented:has(input:nth-of-type(3):checked) {
    --rsvp-active-index: 2;
  }
}

body.admin-onepage .admin-rsvp-public-form .rsvp-segmented input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

body.admin-onepage .admin-rsvp-public-form .rsvp-segmented label {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 2.9rem;
  padding: 0.75rem 0.8rem;
  border-radius: 999px;
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  line-height: 1;
  text-transform: uppercase;
  cursor: pointer;
  user-select: none;
  transition: color 260ms ease, transform 260ms cubic-bezier(.22,1,.36,1);
}

body.admin-onepage .admin-rsvp-public-form .rsvp-segmented input:checked + label {
  color: var(--paper);
}

body.admin-onepage .admin-rsvp-public-form .rsvp-context-note,
body.admin-onepage .admin-rsvp-context-note,
body.admin-onepage .admin-rsvp-public-form .rsvp-inline-note,
body.admin-onepage .admin-rsvp-tool-note,
body.admin-onepage .admin-rsvp-log-note {
  position: relative;
  padding: 0.95rem 1.1rem 0.95rem 1.25rem;
  border-radius: 1rem;
  background: rgba(31,29,26,0.028);
  color: rgba(31,29,26,0.62);
  font-size: 0.95rem;
  line-height: 1.75;
  overflow: hidden;
}

body.admin-onepage .admin-rsvp-public-form .rsvp-inline-note {
  margin: 0.15rem 0 0;
  font-size: 0.88rem;
  font-style: italic;
}

body.admin-onepage .admin-rsvp-public-form .rsvp-context-note::before,
body.admin-onepage .admin-rsvp-context-note::before,
body.admin-onepage .admin-rsvp-public-form .rsvp-inline-note::before,
body.admin-onepage .admin-rsvp-tool-note::before,
body.admin-onepage .admin-rsvp-log-note::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.9rem;
  bottom: 0.9rem;
  width: 1px;
  background: linear-gradient(180deg, rgba(205,179,138,0), rgba(205,179,138,0.48) 22%, rgba(205,179,138,0.48) 78%, rgba(205,179,138,0));
}

body.admin-onepage .admin-rsvp-public-form .rsvp-context-note > span,
body.admin-onepage .admin-rsvp-context-note > span,
body.admin-onepage .admin-rsvp-tool-note > span,
body.admin-onepage .admin-rsvp-log-note > .admin-rsvp-log-title {
  display: block;
  margin-bottom: 0.35rem;
  color: rgba(168,143,104,0.9);
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

body.admin-onepage .admin-rsvp-public-form .rsvp-context-note p,
body.admin-onepage .admin-rsvp-context-note p,
body.admin-onepage .admin-rsvp-tool-note p,
body.admin-onepage .admin-rsvp-log-note p {
  margin: 0;
}

body.admin-onepage .admin-rsvp-public-form .notice-footnote,
body.admin-onepage .admin-rsvp-context-note .notice-footnote {
  margin-top: 0.85rem !important;
  padding-top: 0.5rem;
  color: rgba(31,29,26,0.42);
  font-size: 0.8rem;
  line-height: 1.75;
  font-style: italic;
}

body.admin-onepage .admin-rsvp-public-actions {
  width: 100%;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 0.85rem;
  margin-top: 0;
}

body.admin-onepage .admin-rsvp-public-actions .button {
  width: auto;
}

/* Verktøy nederst på redigeringssiden */

body.admin-onepage .admin-rsvp-tools-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: clamp(2rem, 4vw, 3rem);
}

body.admin-onepage .admin-rsvp-tool-note,
body.admin-onepage .admin-rsvp-log-note {
  width: 100%;
  max-width: none;
}

body.admin-onepage .admin-rsvp-tool-note-warning {
  background: rgba(155,115,71,0.075);
}

body.admin-onepage .admin-rsvp-tool-note-warning::before {
  background: linear-gradient(180deg, rgba(155,115,71,0), rgba(155,115,71,0.52) 22%, rgba(155,115,71,0.52) 78%, rgba(155,115,71,0));
}

body.admin-onepage .admin-rsvp-tool-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 1rem;
}

body.admin-onepage .admin-rsvp-tool-actions .button {
  width: auto;
}

body.admin-onepage .admin-rsvp-log-note {
  margin-top: 1rem;
}

body.admin-onepage .admin-rsvp-log-table-wrap {
  margin-top: 0.8rem;
  border-radius: 1rem;
  border: 1px solid rgba(31,29,26,0.075);
  background: rgba(255,255,255,0.45);
  overflow: auto;
}

body.admin-onepage .admin-rsvp-log-table {
  min-width: 760px;
  background: transparent;
}

body.admin-onepage .admin-rsvp-inline-alert {
  margin: 1rem 0 0;
}

@media (max-width: 780px) {
  body.admin-onepage .admin-new-rsvp-section .admin-section-inner-wide,
  body.admin-onepage .admin-edit-rsvp-section .admin-section-inner-wide {
    width: 100%;
    max-width: none;
  }

  body.admin-onepage .admin-rsvp-public-form .rsvp-form-layout,
  body.admin-onepage .admin-rsvp-public-form .rsvp-name-row,
  body.admin-onepage .admin-rsvp-public-form .admin-table-placement-grid,
  body.admin-onepage .admin-rsvp-tools-grid {
    grid-template-columns: 1fr;
  }

  body.admin-onepage .admin-rsvp-public-actions,
  body.admin-onepage .admin-rsvp-tool-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  body.admin-onepage .admin-rsvp-public-actions .button,
  body.admin-onepage .admin-rsvp-tool-actions .button {
    width: 100%;
  }
}


/* Admin RSVP – toggle lik offentlig RSVP-index */

body.admin-onepage .admin-rsvp-public-form .rsvp-segmented,
body.admin-section-page .admin-rsvp-public-form .rsvp-segmented {
  --rsvp-active-index: 0;

  position: relative;
  isolation: isolate;

  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));

  width: min(100%, 520px);

  padding: 0.28rem;

  border: 1px solid var(--line);
  border-radius: 999px;

  background: rgba(31,29,26,0.035);

  overflow: hidden;

  transition:
    border-color 260ms ease,
    background 260ms ease,
    box-shadow 320ms ease;
}

body.admin-onepage .admin-rsvp-public-form .rsvp-segmented-2,
body.admin-section-page .admin-rsvp-public-form .rsvp-segmented-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: min(100%, 420px);
}

body.admin-onepage .admin-rsvp-public-form .rsvp-segmented::before,
body.admin-section-page .admin-rsvp-public-form .rsvp-segmented::before {
  content: "";

  position: absolute;
  z-index: -1;

  top: 0.28rem;
  left: 0.28rem;

  width: calc((100% - 0.56rem) / 3);
  height: calc(100% - 0.56rem);

  border-radius: 999px;

  background: var(--ink);

  box-shadow:
    0 8px 20px rgba(31,29,26,0.12),
    inset 0 1px 0 rgba(255,255,255,0.18);

  transform: translateX(calc(var(--rsvp-active-index) * 100%));

  transition:
    transform 420ms cubic-bezier(.16,1,.3,1),
    opacity 220ms ease,
    box-shadow 320ms ease;
}

body.admin-onepage .admin-rsvp-public-form .rsvp-segmented-2::before,
body.admin-section-page .admin-rsvp-public-form .rsvp-segmented-2::before {
  width: calc((100% - 0.56rem) / 2);
}

@supports selector(:has(*)) {
  body.admin-onepage .admin-rsvp-public-form .rsvp-segmented:has(input:nth-of-type(2):checked),
  body.admin-section-page .admin-rsvp-public-form .rsvp-segmented:has(input:nth-of-type(2):checked) {
    --rsvp-active-index: 1;
  }

  body.admin-onepage .admin-rsvp-public-form .rsvp-segmented:has(input:nth-of-type(3):checked),
  body.admin-section-page .admin-rsvp-public-form .rsvp-segmented:has(input:nth-of-type(3):checked) {
    --rsvp-active-index: 2;
  }
}

body.admin-onepage .admin-rsvp-public-form .rsvp-segmented input,
body.admin-section-page .admin-rsvp-public-form .rsvp-segmented input {
  position: absolute;

  width: 1px;
  height: 1px;

  opacity: 0;
  pointer-events: none;
}

body.admin-onepage .admin-rsvp-public-form .rsvp-segmented label,
body.admin-section-page .admin-rsvp-public-form .rsvp-segmented label {
  position: relative;
  z-index: 1;

  display: flex;
  align-items: center;
  justify-content: center;

  min-height: 2.9rem;

  padding: 0.75rem 0.8rem;

  border-radius: 999px;

  background: transparent !important;
  color: var(--muted) !important;
  -webkit-text-fill-color: var(--muted) !important;

  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  line-height: 1;
  text-transform: uppercase;

  cursor: pointer;
  user-select: none;

  transition:
    color 260ms ease,
    background 260ms ease,
    box-shadow 260ms ease,
    transform 260ms cubic-bezier(.22,1,.36,1);
}

body.admin-onepage .admin-rsvp-public-form .rsvp-segmented input:checked + label,
body.admin-section-page .admin-rsvp-public-form .rsvp-segmented input:checked + label {
  color: var(--paper) !important;
  -webkit-text-fill-color: var(--paper) !important;
}

@media (min-width: 781px) and (hover: hover) {
  body.admin-onepage .admin-rsvp-public-form .rsvp-segmented input:not(:checked):not(:disabled) + label:hover,
  body.admin-section-page .admin-rsvp-public-form .rsvp-segmented input:not(:checked):not(:disabled) + label:hover {
    background: var(--ink) !important;
    color: var(--paper) !important;
    -webkit-text-fill-color: var(--paper) !important;

    box-shadow:
      0 8px 20px rgba(31,29,26,0.10),
      inset 0 1px 0 rgba(255,255,255,0.16);

    transform: translateY(-1px);
  }
}
/* ==========================================================================
   Admin gjesteliste – flat liste, live-søk og dropdown-filter
   Lim nederst i style.css
   ========================================================================== */

body.admin-onepage .admin-list-titlebar {
  align-items: center;
}

body.admin-onepage .admin-title-action {
  flex-shrink: 0;
  margin-bottom: 0.35rem;
}

body.admin-onepage .admin-list-toolbar-flat {
  position: relative;
  z-index: 5;

  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(190px, 240px);
  align-items: end;
  gap: 0.85rem;

  width: 100%;
  margin: 0 0 1.25rem;
  padding-bottom: 1.1rem;

  border-bottom: 1px solid rgba(31,29,26,0.08);
}

body.admin-onepage .admin-live-search {
  display: grid;
  gap: 0.55rem;

  color: rgba(31,29,26,0.56);

  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: 1.2;
  text-transform: uppercase;
}

body.admin-onepage .admin-live-search input {
  height: 3rem;
  min-height: 3rem;

  border-radius: 999px;
  padding: 0.85rem 1rem;
}

body.admin-onepage .admin-filter-dropdown {
  position: relative;
  width: 100%;
}

body.admin-onepage .admin-filter-toggle {
  position: relative;

  width: 100%;
  min-height: 3rem;

  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;

  border: 1px solid rgba(31,29,26,0.14);
  border-radius: 999px;

  padding: 0.85rem 1rem;

  background:
    linear-gradient(
      180deg,
      rgba(255,253,249,0.96),
      rgba(255,253,249,0.76)
    );

  color: rgba(31,29,26,0.72);

  font: inherit;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: 1;
  text-transform: uppercase;

  cursor: pointer;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.7),
    0 6px 18px rgba(31,29,26,0.025);

  transition:
    border-color 220ms ease,
    background 220ms ease,
    box-shadow 220ms ease,
    transform 220ms ease;
}

body.admin-onepage .admin-filter-toggle::after {
  content: "";

  width: 0.42rem;
  height: 0.42rem;

  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;

  transform: rotate(45deg) translateY(-2px);

  opacity: 0.72;

  transition: transform 220ms ease;
}

body.admin-onepage .admin-filter-toggle[aria-expanded="true"] {
  border-color: rgba(205,179,138,0.75);
  background: white;
  box-shadow:
    0 0 0 4px rgba(205,179,138,0.11),
    0 12px 28px rgba(31,29,26,0.055),
    inset 0 1px 0 rgba(255,255,255,0.8);
}

body.admin-onepage .admin-filter-toggle[aria-expanded="true"]::after {
  transform: rotate(225deg) translate(-2px, -2px);
}

body.admin-onepage .admin-filter-menu {
  position: absolute;
  z-index: 20;

  top: calc(100% + 0.45rem);
  right: 0;

  width: min(100%, 260px);
  min-width: 220px;

  padding: 0.35rem;

  border: 1px solid rgba(31,29,26,0.09);
  border-radius: 1.1rem;

  background: rgba(255,253,249,0.96);

  box-shadow:
    0 18px 42px rgba(31,29,26,0.11),
    inset 0 1px 0 rgba(255,255,255,0.74);

  backdrop-filter: blur(18px) saturate(150%);
  -webkit-backdrop-filter: blur(18px) saturate(150%);
}

body.admin-onepage .admin-filter-menu[hidden] {
  display: none !important;
}

body.admin-onepage .admin-filter-menu button {
  width: 100%;

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

  border: 0;
  border-radius: 0.85rem;

  padding: 0.78rem 0.85rem;

  background: transparent;
  color: rgba(31,29,26,0.66);

  font: inherit;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1;
  text-transform: uppercase;
  text-align: left;

  cursor: pointer;

  transition:
    background 180ms ease,
    color 180ms ease,
    transform 180ms ease;
}

body.admin-onepage .admin-filter-menu button:hover,
body.admin-onepage .admin-filter-menu button.active {
  background: rgba(31,29,26,0.055);
  color: var(--ink);
}

body.admin-onepage .admin-filter-menu button.active::after {
  content: "✓";
  color: rgba(168,143,104,0.95);
}

body.admin-onepage .admin-list-table-flat {
  width: 100%;

  border-top: 1px solid rgba(31,29,26,0.08);
  border-bottom: 1px solid rgba(31,29,26,0.08);

  background: transparent;
}

body.admin-onepage .admin-list-table-flat .table-responsive {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
}

body.admin-onepage .admin-list-table-flat table {
  margin: 0;
}

body.admin-onepage .admin-list-table-flat th {
  background: rgba(31,29,26,0.025);
}

body.admin-onepage .admin-list-table-flat tbody tr {
  transition: background 180ms ease;
}

body.admin-onepage .admin-list-table-flat tbody tr:hover {
  background: rgba(31,29,26,0.025);
}

body.admin-onepage .admin-table-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 2.35rem;

  padding: 0.65rem 0.85rem;

  border: 1px solid rgba(31,29,26,0.16);
  border-radius: 999px;

  background: var(--ink);
  color: var(--paper);

  font-size: 0.66rem;
  font-weight: 750;
  letter-spacing: 0.13em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;

  transition:
    background 220ms ease,
    color 220ms ease,
    border-color 220ms ease,
    transform 220ms ease,
    box-shadow 220ms ease;
}

body.admin-onepage .admin-table-button:hover {
  background: transparent;
  color: var(--ink);
  border-color: rgba(31,29,26,0.32);
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(31,29,26,0.06);
}

@media (max-width: 780px) {
  body.admin-onepage .admin-list-titlebar {
    display: grid;
    grid-template-columns: 1fr;
    align-items: start;
  }

  body.admin-onepage .admin-title-action {
    width: 100%;
    margin-bottom: 0;
  }

  body.admin-onepage .admin-list-toolbar-flat {
    grid-template-columns: 1fr;
  }

  body.admin-onepage .admin-filter-menu {
    left: 0;
    right: auto;
    width: 100%;
    min-width: 0;
  }
}
/* ==========================================================================
   Admin gjesteliste – mer elegant listevisning
   ========================================================================== */

body.admin-onepage #gjesteliste .admin-section-inner-wide {
  width: min(92vw, 1240px);
  max-width: 1240px;
}

body.admin-onepage #gjesteliste .admin-list-titlebar {
  margin-bottom: clamp(1.1rem, 3vw, 1.8rem);
  padding-bottom: 1.15rem;

  border-bottom: 1px solid rgba(31,29,26,0.075);
}

body.admin-onepage #gjesteliste .admin-title-action {
  min-height: 2.85rem;

  padding-left: 1.15rem;
  padding-right: 1.15rem;

  box-shadow:
    0 10px 24px rgba(31,29,26,0.075),
    inset 0 1px 0 rgba(255,255,255,0.16);
}

/* Søk og filter – lettere og mer integrert */
body.admin-onepage #gjesteliste .admin-list-toolbar-flat {
  margin-bottom: 0;
  padding:
    0
    0
    1.15rem;

  border-bottom: 0;
}

body.admin-onepage #gjesteliste .admin-live-search span {
  color: rgba(31,29,26,0.46);
}

body.admin-onepage #gjesteliste .admin-live-search input {
  font-weight: 500;
}

body.admin-onepage #gjesteliste .admin-live-search input,
body.admin-onepage #gjesteliste .admin-filter-toggle {
  border-color: rgba(31,29,26,0.095);

  background:
    linear-gradient(
      180deg,
      rgba(255,253,249,0.98),
      rgba(255,253,249,0.74)
    );

  box-shadow:
    0 8px 22px rgba(31,29,26,0.035),
    inset 0 1px 0 rgba(255,255,255,0.72);
}

body.admin-onepage #gjesteliste .admin-live-search input:hover,
body.admin-onepage #gjesteliste .admin-filter-toggle:hover {
  border-color: rgba(31,29,26,0.18);

  box-shadow:
    0 10px 26px rgba(31,29,26,0.05),
    inset 0 1px 0 rgba(255,255,255,0.78);
}

/* Selve tabellen – fortsatt flat, men mer eksklusiv */
body.admin-onepage #gjesteliste .admin-list-table-flat {
  margin-top: 0.35rem;

  border: 1px solid rgba(31,29,26,0.075);
  border-radius: 1.35rem;

  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,0.72),
      rgba(255,253,249,0.46)
    );

  box-shadow:
    0 16px 38px rgba(31,29,26,0.045),
    inset 0 1px 0 rgba(255,255,255,0.74);

  overflow: hidden;
}

body.admin-onepage #gjesteliste .admin-list-table-flat .table-responsive {
  border-radius: inherit;
}

/* Tabellhode */
body.admin-onepage #gjesteliste .admin-list-table-flat th {
  padding-top: 1.05rem;
  padding-bottom: 0.95rem;

  border-bottom: 1px solid rgba(31,29,26,0.085);

  background:
    linear-gradient(
      180deg,
      rgba(31,29,26,0.038),
      rgba(31,29,26,0.018)
    );

  color: rgba(31,29,26,0.46);

  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.18em;
}

/* Rader */
body.admin-onepage #gjesteliste .admin-list-table-flat td {
  padding-top: 1.05rem;
  padding-bottom: 1.05rem;

  border-bottom: 1px solid rgba(31,29,26,0.06);

  color: rgba(31,29,26,0.72);
}

body.admin-onepage #gjesteliste .admin-list-table-flat tbody tr:last-child td {
  border-bottom: 0;
}

body.admin-onepage #gjesteliste .admin-list-table-flat tbody tr {
  transition:
    background 180ms ease,
    box-shadow 180ms ease,
    transform 180ms ease;
}

body.admin-onepage #gjesteliste .admin-list-table-flat tbody tr:hover {
  background: rgba(205,179,138,0.055);
}

/* Gjestnavn */
body.admin-onepage #gjesteliste .admin-rsvp-name {
  gap: 0.28rem;
}

body.admin-onepage #gjesteliste .admin-rsvp-name strong {
  color: rgba(31,29,26,0.86);

  font-size: 0.98rem;
  font-weight: 760;
  letter-spacing: -0.01em;
}

body.admin-onepage #gjesteliste .admin-rsvp-name small {
  color: rgba(31,29,26,0.43);

  font-size: 0.76rem;
  line-height: 1.45;
}

/* Pills litt mer dempet */
body.admin-onepage #gjesteliste .pill {
  padding: 0.45rem 0.68rem;

  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.11em;

  box-shadow: inset 0 1px 0 rgba(255,255,255,0.45);
}

body.admin-onepage #gjesteliste .pill-yes {
  background: rgba(82,113,90,0.12);
  color: #36513d;
}

body.admin-onepage #gjesteliste .pill-no {
  background: rgba(162,80,69,0.11);
  color: #75352e;
}

body.admin-onepage #gjesteliste .pill-not_applicable {
  background: rgba(31,29,26,0.055);
  color: rgba(31,29,26,0.48);
}

/* Rediger-knapp – mer wedding/admin-stil */
body.admin-onepage #gjesteliste .admin-table-button {
  min-height: 2.35rem;

  padding: 0.68rem 0.9rem;

  border-color: rgba(31,29,26,0.12);

  background:
    linear-gradient(
      180deg,
      rgba(31,29,26,0.94),
      rgba(31,29,26,0.86)
    );

  box-shadow:
    0 8px 18px rgba(31,29,26,0.075),
    inset 0 1px 0 rgba(255,255,255,0.14);
}

body.admin-onepage #gjesteliste .admin-table-button:hover {
  border-color: rgba(205,179,138,0.65);

  background:
    linear-gradient(
      180deg,
      rgba(255,253,249,0.98),
      rgba(255,253,249,0.76)
    );

  color: var(--ink);

  box-shadow:
    0 10px 24px rgba(31,29,26,0.07),
    inset 0 1px 0 rgba(255,255,255,0.74);
}

/* Tom liste */
body.admin-onepage #gjesteliste .admin-empty-row {
  padding: 1.75rem 1rem;

  color: rgba(31,29,26,0.48);

  text-align: center;
  font-style: italic;
}

/* Dropdown litt mer elegant */
body.admin-onepage #gjesteliste .admin-filter-menu {
  border-color: rgba(31,29,26,0.08);

  background: rgba(255,253,249,0.98);

  box-shadow:
    0 20px 48px rgba(31,29,26,0.13),
    inset 0 1px 0 rgba(255,255,255,0.78);
}

body.admin-onepage #gjesteliste .admin-filter-menu button {
  color: rgba(31,29,26,0.62);
}

body.admin-onepage #gjesteliste .admin-filter-menu button:hover,
body.admin-onepage #gjesteliste .admin-filter-menu button.active {
  background: rgba(205,179,138,0.12);
  color: var(--ink);
}

/* Mobil */
@media (max-width: 780px) {
  body.admin-onepage #gjesteliste .admin-list-titlebar {
    gap: 1rem;
  }

  body.admin-onepage #gjesteliste .admin-list-table-flat {
    border-radius: 1.15rem;
  }

  body.admin-onepage #gjesteliste .admin-list-table-flat th,
  body.admin-onepage #gjesteliste .admin-list-table-flat td {
    padding: 0.9rem;
  }

  body.admin-onepage #gjesteliste .admin-table-button {
    min-height: 2.5rem;
  }
}
/* ==========================================================================
   Admin gjesteliste – større tabellheader + champagne-linjer
   ========================================================================== */

/* Litt tydeligere tabellheader */
body.admin-onepage #gjesteliste .admin-list-table-flat th {
  color: rgba(31,29,26,0.62);

  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.17em;

  border-bottom: 1px solid rgba(205,179,138,0.42);

  background:
    linear-gradient(
      180deg,
      rgba(205,179,138,0.13),
      rgba(205,179,138,0.045)
    );
}

/* Champagne-linje øverst på hele tabellen */
body.admin-onepage #gjesteliste .admin-list-table-flat {
  border-color: rgba(205,179,138,0.26);

  box-shadow:
    0 16px 38px rgba(31,29,26,0.045),
    inset 0 1px 0 rgba(255,255,255,0.74),
    inset 0 3px 0 rgba(205,179,138,0.34);
}

/* Mykere champagne-linjer mellom radene */
body.admin-onepage #gjesteliste .admin-list-table-flat td {
  border-bottom: 1px solid rgba(205,179,138,0.18);
}

/* Litt tydeligere ved hover, men fortsatt rolig */
body.admin-onepage #gjesteliste .admin-list-table-flat tbody tr:hover {
  background:
    linear-gradient(
      90deg,
      rgba(205,179,138,0.10),
      rgba(205,179,138,0.035)
    );
}

/* Diskré champagne-linje på venstre side av gjestenavnet */
body.admin-onepage #gjesteliste .admin-rsvp-name {
  position: relative;

  padding-left: 0.85rem;
}

body.admin-onepage #gjesteliste .admin-rsvp-name::before {
  content: "";

  position: absolute;
  left: 0;
  top: 0.18rem;
  bottom: 0.18rem;

  width: 1px;

  background:
    linear-gradient(
      180deg,
      rgba(205,179,138,0),
      rgba(205,179,138,0.55),
      rgba(205,179,138,0)
    );
}

/* Dropdown og søk får samme champagne-detalj */
body.admin-onepage #gjesteliste .admin-live-search input:focus,
body.admin-onepage #gjesteliste .admin-filter-toggle[aria-expanded="true"] {
  border-color: rgba(205,179,138,0.62);

  box-shadow:
    0 0 0 4px rgba(205,179,138,0.12),
    0 12px 28px rgba(31,29,26,0.055),
    inset 0 1px 0 rgba(255,255,255,0.8);
}

/* Mobil: litt mindre, men fortsatt større enn før */
@media (max-width: 780px) {
  body.admin-onepage #gjesteliste .admin-list-table-flat th {
    font-size: 0.68rem;
    letter-spacing: 0.15em;
  }
}
/* ==========================================================================
   Admin gjesteliste – roligere champagne-stil
   Fjerner toppskygge og navnelinje
   ========================================================================== */

/* Fjern champagne-skygge/topplinje på tabellkortet */
body.admin-onepage #gjesteliste .admin-list-table-flat {
  border-color: rgba(31,29,26,0.075);

  box-shadow:
    0 14px 34px rgba(31,29,26,0.038),
    inset 0 1px 0 rgba(255,255,255,0.72);
}

/* Fjern linjen til venstre for navn */
body.admin-onepage #gjesteliste .admin-rsvp-name {
  padding-left: 0;
}

body.admin-onepage #gjesteliste .admin-rsvp-name::before {
  display: none;
}

/* Behold champagne kun som rolig detalj i tabellheader */
body.admin-onepage #gjesteliste .admin-list-table-flat th {
  color: rgba(31,29,26,0.62);

  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.17em;

  border-bottom: 1px solid rgba(205,179,138,0.34);

  background:
    linear-gradient(
      180deg,
      rgba(205,179,138,0.08),
      rgba(255,253,249,0.38)
    );
}

/* Litt mer diskret champagne mellom radene */
body.admin-onepage #gjesteliste .admin-list-table-flat td {
  border-bottom: 1px solid rgba(205,179,138,0.12);
}

/* Hover enda roligere */
body.admin-onepage #gjesteliste .admin-list-table-flat tbody tr:hover {
  background: rgba(205,179,138,0.045);
}
/* Admin gjesteliste – fjern linje under tittel/legg til-knapp */
body.admin-onepage #gjesteliste .admin-list-titlebar {
  border-bottom: 0 !important;
  padding-bottom: 0 !important;
}
/* ==========================================================================
   Admin Status – interaktiv statusside
   Lim nederst i style.css
   ========================================================================== */

body.admin-onepage #kpi.admin-status-section .admin-section-inner-wide {
  width: min(92vw, 1240px);
  max-width: 1240px;
}

body.admin-onepage #kpi .admin-status-titlebar {
  margin-bottom: clamp(1rem, 2.4vw, 1.5rem);
}

body.admin-onepage #kpi .admin-status-titlebar > span {
  margin-bottom: 0.2rem;
  padding: 0.52rem 0.75rem;
  border: 1px solid rgba(205,179,138,0.34);
  border-radius: 999px;
  background: rgba(205,179,138,0.075);
  color: rgba(31,29,26,0.52);
  font-size: 0.62rem;
  font-weight: 750;
  letter-spacing: 0.16em;
  line-height: 1;
  text-transform: uppercase;
}

body.admin-onepage .admin-status-console {
  position: relative;
  display: grid;
  gap: clamp(1rem, 2vw, 1.35rem);
  padding: clamp(1rem, 2.2vw, 1.45rem);
  border: 1px solid rgba(31,29,26,0.075);
  border-radius: 1.55rem;
  background:
    radial-gradient(circle at 12% 0%, rgba(205,179,138,0.12), transparent 22rem),
    linear-gradient(180deg, rgba(255,255,255,0.82), rgba(255,253,249,0.50));
  box-shadow:
    0 16px 42px rgba(31,29,26,0.045),
    inset 0 1px 0 rgba(255,255,255,0.76);
  overflow: hidden;
}

body.admin-onepage .admin-status-console::before {
  content: "";
  position: absolute;
  left: clamp(1rem, 2.2vw, 1.45rem);
  right: clamp(1rem, 2.2vw, 1.45rem);
  top: 0;
  height: 1px;
  background: linear-gradient(90deg, rgba(205,179,138,0), rgba(205,179,138,0.55), rgba(205,179,138,0));
}

body.admin-onepage .admin-status-hero-row,
body.admin-onepage .admin-status-panel-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, 0.85fr);
  gap: clamp(1rem, 2vw, 1.35rem);
  align-items: stretch;
}

body.admin-onepage .admin-status-hero-panel,
body.admin-onepage .admin-status-orb-panel,
body.admin-onepage .admin-status-block {
  position: relative;
  border: 1px solid rgba(31,29,26,0.065);
  border-radius: 1.3rem;
  background: rgba(255,253,249,0.52);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.68);
}

body.admin-onepage .admin-status-hero-panel,
body.admin-onepage .admin-status-orb-panel {
  padding: clamp(1.1rem, 2.8vw, 1.8rem);
}

body.admin-onepage .admin-status-hero-panel {
  display: grid;
  align-content: center;
  min-height: 260px;
}

body.admin-onepage .admin-status-label {
  display: block;
  margin: 0 0 0.85rem;
  color: rgba(31,29,26,0.44);
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.18em;
  line-height: 1;
  text-transform: uppercase;
}

body.admin-onepage .admin-status-big-number {
  display: flex;
  align-items: baseline;
  gap: 0.25rem;
  font-family: var(--font-serif);
  font-size: clamp(5rem, 12vw, 9rem);
  font-weight: 400;
  letter-spacing: -0.08em;
  line-height: 0.82;
  color: rgba(31,29,26,0.88);
}

body.admin-onepage .admin-status-big-number span {
  font-size: 0.3em;
  letter-spacing: -0.03em;
  color: rgba(205,179,138,0.95);
}

body.admin-onepage .admin-status-copy {
  max-width: 34rem;
  margin: 1rem 0 1.1rem;
  color: rgba(31,29,26,0.58);
  font-size: 1rem;
  line-height: 1.7;
}

body.admin-onepage .admin-status-progress,
body.admin-onepage .admin-status-progress.thin {
  width: 100%;
  height: 0.7rem;
  border-radius: 999px;
  background: rgba(31,29,26,0.055);
  overflow: hidden;
  box-shadow: inset 0 1px 2px rgba(31,29,26,0.05);
}

body.admin-onepage .admin-status-progress span {
  display: block;
  height: 100%;
  min-width: 0.25rem;
  border-radius: inherit;
  background: linear-gradient(90deg, rgba(205,179,138,0.58), rgba(205,179,138,0.95));
}

body.admin-onepage .admin-status-progress.thin {
  height: 0.45rem;
}

body.admin-onepage .admin-status-progress.muted span {
  background: linear-gradient(90deg, rgba(162,80,69,0.28), rgba(162,80,69,0.48));
}

body.admin-onepage .admin-status-progress.soft span {
  background: linear-gradient(90deg, rgba(155,115,71,0.24), rgba(155,115,71,0.44));
}

body.admin-onepage .admin-status-mini-metrics {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-top: 1rem;
}

body.admin-onepage .admin-status-mini-metrics span {
  display: inline-flex;
  align-items: baseline;
  gap: 0.35rem;
  padding: 0.5rem 0.7rem;
  border: 1px solid rgba(31,29,26,0.065);
  border-radius: 999px;
  background: rgba(255,255,255,0.38);
  color: rgba(31,29,26,0.54);
  font-size: 0.76rem;
  font-weight: 650;
}

body.admin-onepage .admin-status-mini-metrics strong {
  color: var(--ink);
  font-family: var(--font-serif);
  font-size: 1.15rem;
  font-weight: 400;
}

body.admin-onepage .admin-status-orb-panel {
  display: grid;
  place-items: center;
  gap: 1rem;
  text-align: center;
}

body.admin-onepage .admin-status-orb {
  width: min(220px, 52vw);
  aspect-ratio: 1;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background:
    conic-gradient(
      rgba(82,113,90,0.78) 0 calc(var(--yes) * 1%),
      rgba(162,80,69,0.62) calc(var(--yes) * 1%) calc((var(--yes) + var(--no)) * 1%),
      rgba(205,179,138,0.68) calc((var(--yes) + var(--no)) * 1%) 100%
    );
  box-shadow: 0 18px 38px rgba(31,29,26,0.07);
}

body.admin-onepage .admin-status-orb::before {
  content: "";
  grid-area: 1 / 1;
  width: 70%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: rgba(255,253,249,0.92);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.82);
}

body.admin-onepage .admin-status-orb > div {
  position: relative;
  z-index: 1;
  grid-area: 1 / 1;
  display: grid;
  gap: 0.4rem;
  text-align: center;
}

body.admin-onepage .admin-status-orb span {
  font-family: var(--font-serif);
  font-size: clamp(2.5rem, 5vw, 4rem);
  line-height: 0.9;
  letter-spacing: -0.06em;
}

body.admin-onepage .admin-status-orb small {
  color: rgba(31,29,26,0.48);
  font-size: 0.62rem;
  font-weight: 750;
  letter-spacing: 0.16em;
  line-height: 1;
  text-transform: uppercase;
}

body.admin-onepage .admin-status-orb-large {
  width: min(250px, 58vw);
}

body.admin-onepage .admin-status-orb-legend {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.65rem 1rem;
  color: rgba(31,29,26,0.58);
  font-size: 0.74rem;
  font-weight: 650;
}

body.admin-onepage .admin-status-dot {
  display: inline-block;
  width: 0.6rem;
  height: 0.6rem;
  border-radius: 50%;
  margin-right: 0.35rem;
}

body.admin-onepage .admin-status-dot.status-yes { background: rgba(82,113,90,0.78); }
body.admin-onepage .admin-status-dot.status-no { background: rgba(162,80,69,0.62); }
body.admin-onepage .admin-status-dot.status-unsure { background: rgba(205,179,138,0.72); }

body.admin-onepage .admin-status-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  padding: 0.3rem;
  border: 1px solid rgba(31,29,26,0.07);
  border-radius: 999px;
  background: rgba(31,29,26,0.035);
  width: fit-content;
  max-width: 100%;
}

body.admin-onepage .admin-status-tabs button {
  min-height: 2.45rem;
  border: 0;
  border-radius: 999px;
  padding: 0.7rem 1rem;
  background: transparent;
  color: rgba(31,29,26,0.54);
  font: inherit;
  font-size: 0.68rem;
  font-weight: 780;
  letter-spacing: 0.14em;
  line-height: 1;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 220ms ease, color 220ms ease, transform 220ms ease, box-shadow 220ms ease;
}

body.admin-onepage .admin-status-tabs button:hover {
  color: var(--ink);
  transform: translateY(-1px);
}

body.admin-onepage .admin-status-tabs button.active {
  background: var(--ink);
  color: var(--paper);
  box-shadow: 0 8px 18px rgba(31,29,26,0.08), inset 0 1px 0 rgba(255,255,255,0.14);
}

body.admin-onepage .admin-status-panel {
  animation: adminStatusFade 260ms ease both;
}

@keyframes adminStatusFade {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

body.admin-onepage .admin-status-block {
  padding: clamp(1.1rem, 2.4vw, 1.55rem);
}

body.admin-onepage .admin-status-block h3 {
  margin: 0 0 1.15rem;
  font-family: var(--font-serif);
  font-size: clamp(2rem, 4vw, 3.15rem);
  font-weight: 400;
  letter-spacing: -0.05em;
  line-height: 0.95;
}

body.admin-onepage .admin-status-bars,
body.admin-onepage .admin-status-followups,
body.admin-onepage .admin-status-keyword-list,
body.admin-onepage .admin-status-table-list,
body.admin-onepage .admin-status-note-list,
body.admin-onepage .admin-status-activity-list,
body.admin-onepage .admin-status-number-list {
  display: grid;
  gap: 0.75rem;
}

body.admin-onepage .admin-status-bar-row {
  display: grid;
  gap: 0.55rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid rgba(205,179,138,0.14);
}

body.admin-onepage .admin-status-bar-row:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

body.admin-onepage .admin-status-bar-row > div:first-child {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

body.admin-onepage .admin-status-bar-row span,
body.admin-onepage .admin-status-keyword-row span,
body.admin-onepage .admin-status-table-row span,
body.admin-onepage .admin-status-number-list span {
  color: rgba(31,29,26,0.48);
  font-size: 0.68rem;
  font-weight: 780;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

body.admin-onepage .admin-status-bar-row strong,
body.admin-onepage .admin-status-table-row strong {
  color: rgba(31,29,26,0.66);
  font-size: 0.86rem;
  font-weight: 650;
}

body.admin-onepage .admin-status-splitbar {
  height: 0.62rem;
  border-radius: 999px;
  background:
    linear-gradient(
      90deg,
      rgba(82,113,90,0.70) 0 calc(var(--yes) * 1%),
      rgba(162,80,69,0.52) calc(var(--yes) * 1%) calc((var(--yes) + var(--no)) * 1%),
      rgba(205,179,138,0.58) calc((var(--yes) + var(--no)) * 1%) 100%
    );
  box-shadow: inset 0 1px 2px rgba(31,29,26,0.05);
}

body.admin-onepage .admin-status-followup {
  display: grid;
  grid-template-columns: 3.3rem minmax(0, 1fr);
  gap: 0.8rem;
  align-items: start;
  padding: 0.85rem 0;
  border-top: 1px solid rgba(205,179,138,0.14);
}

body.admin-onepage .admin-status-followup:first-child {
  border-top: 0;
  padding-top: 0;
}

body.admin-onepage .admin-status-followup strong {
  display: grid;
  place-items: center;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  background: rgba(31,29,26,0.055);
  color: rgba(31,29,26,0.62);
  font-family: var(--font-serif);
  font-size: 1.45rem;
  font-weight: 400;
}

body.admin-onepage .admin-status-followup.has-count strong {
  background: rgba(205,179,138,0.16);
  color: var(--ink);
}

body.admin-onepage .admin-status-followup span {
  display: block;
  color: var(--ink);
  font-size: 0.82rem;
  font-weight: 780;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

body.admin-onepage .admin-status-followup p,
body.admin-onepage .admin-status-note-list p,
body.admin-onepage .admin-status-empty {
  margin: 0.25rem 0 0;
  color: rgba(31,29,26,0.54);
  font-size: 0.88rem;
  line-height: 1.6;
}

body.admin-onepage .admin-status-ring-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1.3rem;
  align-items: center;
}

body.admin-onepage .admin-status-number-list > div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.72rem 0;
  border-bottom: 1px solid rgba(205,179,138,0.14);
}

body.admin-onepage .admin-status-number-list > div:last-child {
  border-bottom: 0;
}

body.admin-onepage .admin-status-number-list strong {
  font-family: var(--font-serif);
  font-size: 1.55rem;
  font-weight: 400;
  line-height: 1;
}

body.admin-onepage .admin-status-feature-number {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
  margin-bottom: 1.1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(205,179,138,0.16);
}

body.admin-onepage .admin-status-feature-number strong {
  font-family: var(--font-serif);
  font-size: clamp(3rem, 6vw, 5rem);
  font-weight: 400;
  letter-spacing: -0.06em;
  line-height: 0.9;
}

body.admin-onepage .admin-status-feature-number span {
  max-width: 12rem;
  color: rgba(31,29,26,0.5);
  font-size: 0.72rem;
  font-weight: 760;
  letter-spacing: 0.13em;
  line-height: 1.35;
  text-transform: uppercase;
}

body.admin-onepage .admin-status-keyword-row {
  display: grid;
  grid-template-columns: 8rem minmax(0, 1fr) 2rem;
  gap: 0.75rem;
  align-items: center;
}

body.admin-onepage .admin-status-keyword-row div,
body.admin-onepage .admin-status-table-row i {
  display: block;
  height: 0.5rem;
  border-radius: 999px;
  background: rgba(31,29,26,0.055);
  overflow: hidden;
}

body.admin-onepage .admin-status-keyword-row i,
body.admin-onepage .admin-status-table-row i span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, rgba(205,179,138,0.52), rgba(205,179,138,0.92));
}

body.admin-onepage .admin-status-keyword-row strong {
  text-align: right;
  font-family: var(--font-serif);
  font-size: 1.2rem;
  font-weight: 400;
}

body.admin-onepage .admin-status-note-list article,
body.admin-onepage .admin-status-activity-list article {
  padding: 0.85rem 0;
  border-top: 1px solid rgba(205,179,138,0.14);
}

body.admin-onepage .admin-status-note-list article:first-child,
body.admin-onepage .admin-status-activity-list article:first-child {
  padding-top: 0;
  border-top: 0;
}

body.admin-onepage .admin-status-note-list strong,
body.admin-onepage .admin-status-activity-list strong {
  display: block;
  color: var(--ink);
  font-size: 0.88rem;
  font-weight: 780;
}

body.admin-onepage .admin-status-table-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(9rem, 0.55fr);
  gap: 1rem;
  align-items: center;
  padding: 0.78rem 0;
  border-top: 1px solid rgba(205,179,138,0.14);
}

body.admin-onepage .admin-status-table-row:first-child {
  padding-top: 0;
  border-top: 0;
}

body.admin-onepage .admin-status-activity-list time {
  display: block;
  margin-bottom: 0.25rem;
  color: rgba(31,29,26,0.42);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

body.admin-onepage .admin-status-activity-list span {
  display: block;
  margin-top: 0.15rem;
  color: rgba(31,29,26,0.5);
  font-size: 0.82rem;
}

@media (max-width: 980px) {
  body.admin-onepage .admin-status-hero-row,
  body.admin-onepage .admin-status-panel-grid,
  body.admin-onepage .admin-status-ring-row {
    grid-template-columns: 1fr;
  }

  body.admin-onepage .admin-status-tabs {
    width: 100%;
    border-radius: 1.2rem;
  }

  body.admin-onepage .admin-status-tabs button {
    flex: 1 1 auto;
  }
}

@media (max-width: 780px) {
  body.admin-onepage .admin-status-console {
    padding: 0.85rem;
    border-radius: 1.25rem;
  }

  body.admin-onepage .admin-status-hero-panel {
    min-height: auto;
  }

  body.admin-onepage .admin-status-mini-metrics,
  body.admin-onepage .admin-status-bar-row > div:first-child,
  body.admin-onepage .admin-status-feature-number {
    display: grid;
  }

  body.admin-onepage .admin-status-tabs {
    display: grid;
    grid-template-columns: 1fr;
    border-radius: 1rem;
  }

  body.admin-onepage .admin-status-tabs button {
    width: 100%;
  }

  body.admin-onepage .admin-status-keyword-row,
  body.admin-onepage .admin-status-table-row {
    grid-template-columns: 1fr;
    gap: 0.45rem;
  }

  body.admin-onepage .admin-status-keyword-row strong {
    text-align: left;
  }
}
/* ==========================================================================
   Admin Status – matnotater expand + roligere statusflate
   ========================================================================== */

/* Fjern ytre "boks rundt boksene" */
body.admin-onepage .admin-status-console {
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}

body.admin-onepage .admin-status-console::before {
  display: none !important;
}

/* Litt mer luft over Alle matnotater */
body.admin-onepage .admin-status-food-notes-wide {
  margin-top: clamp(1rem, 2.4vw, 1.5rem);
}

/* Header-rad inni boksen */
body.admin-onepage .admin-status-block-heading-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.15rem;
}

body.admin-onepage .admin-status-block-heading-row h3 {
  margin-bottom: 0;
}

/* Kollapsbar notatliste */
body.admin-onepage .admin-status-note-list-collapsible {
  max-height: 22rem;
  overflow: hidden;
  transition:
    max-height 520ms cubic-bezier(.22,1,.36,1),
    padding 300ms ease;
  mask-image: linear-gradient(180deg, #000 72%, transparent 100%);
  -webkit-mask-image: linear-gradient(180deg, #000 72%, transparent 100%);
}

body.admin-onepage .admin-status-collapsible-notes.is-expanded .admin-status-note-list-collapsible {
  max-height: 72vh;
  overflow-y: auto;
  padding-right: 0.25rem;
  mask-image: none;
  -webkit-mask-image: none;
}

/* Se alle-knapp */
body.admin-onepage .admin-status-notes-toggle {
  flex-shrink: 0;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 2.55rem;
  padding: 0.72rem 1rem;

  border: 1px solid rgba(31,29,26,0.12);
  border-radius: 999px;

  background:
    linear-gradient(
      180deg,
      rgba(255,253,249,0.96),
      rgba(255,253,249,0.72)
    );

  color: rgba(31,29,26,0.72);

  font: inherit;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  line-height: 1;
  text-transform: uppercase;

  cursor: pointer;

  box-shadow:
    0 8px 20px rgba(31,29,26,0.04),
    inset 0 1px 0 rgba(255,255,255,0.75);

  transition:
    border-color 220ms ease,
    background 220ms ease,
    color 220ms ease,
    transform 220ms ease,
    box-shadow 220ms ease;
}

body.admin-onepage .admin-status-notes-toggle:hover {
  border-color: rgba(205,179,138,0.55);
  color: var(--ink);
  transform: translateY(-1px);

  box-shadow:
    0 10px 24px rgba(31,29,26,0.055),
    inset 0 1px 0 rgba(255,255,255,0.8);
}

body.admin-onepage .admin-status-collapsible-notes.is-expanded .admin-status-notes-toggle {
  background: var(--ink);
  color: var(--paper);
}

/* Status-label i header: ikke kall det live hvis det ikke faktisk er sanntid */
body.admin-onepage .admin-status-live-label {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}

body.admin-onepage .admin-status-live-label i {
  width: 0.48rem;
  height: 0.48rem;
  border-radius: 50%;
  background: rgba(205,179,138,0.9);
  box-shadow: 0 0 0 4px rgba(205,179,138,0.12);
}

/* Denne bruker vi senere hvis vi lager ekte sanntid */
body.admin-onepage .admin-status-live-label.is-live i {
  background: #b84a3f;
  box-shadow:
    0 0 0 4px rgba(184,74,63,0.12),
    0 0 18px rgba(184,74,63,0.28);
}

@media (max-width: 780px) {
  body.admin-onepage .admin-status-block-heading-row {
    display: grid;
    grid-template-columns: 1fr;
  }

  body.admin-onepage .admin-status-notes-toggle {
    width: 100%;
  }

  body.admin-onepage .admin-status-note-list-collapsible {
    max-height: 24rem;
  }

  body.admin-onepage .admin-status-collapsible-notes.is-expanded .admin-status-note-list-collapsible {
    max-height: 68vh;
  }
}
/* ==========================================================================
   Admin Status – bedre matnotater
   ========================================================================== */

/* Fjern ytre boks rundt statusflaten hvis den fortsatt ligger der */
body.admin-onepage .admin-status-console {
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}

body.admin-onepage .admin-status-console::before {
  display: none !important;
}

/* Mer luft over Alle matnotater */
body.admin-onepage .admin-status-food-notes-wide {
  margin-top: clamp(1.1rem, 2.6vw, 1.7rem);
}

/* Heading med Se alle-knapp til høyre */
body.admin-onepage .admin-status-block-heading-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.2rem;
}

body.admin-onepage .admin-status-block-heading-row h3 {
  margin-bottom: 0;
}

/* Kollapsbar liste */
body.admin-onepage .admin-status-note-list-collapsible {
  max-height: 22rem;
  overflow: hidden;

  transition:
    max-height 520ms cubic-bezier(.22,1,.36,1);

  mask-image: linear-gradient(180deg, #000 72%, transparent 100%);
  -webkit-mask-image: linear-gradient(180deg, #000 72%, transparent 100%);
}

body.admin-onepage .admin-status-collapsible-notes.is-expanded .admin-status-note-list-collapsible {
  max-height: 72vh;
  overflow-y: auto;
  padding-right: 0.35rem;

  mask-image: none;
  -webkit-mask-image: none;
}

/* Se alle-knapp */
body.admin-onepage .admin-status-notes-toggle {
  flex-shrink: 0;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 2.55rem;
  padding: 0.72rem 1rem;

  border: 1px solid rgba(31,29,26,0.12);
  border-radius: 999px;

  background:
    linear-gradient(
      180deg,
      rgba(255,253,249,0.96),
      rgba(255,253,249,0.72)
    );

  color: rgba(31,29,26,0.72);

  font: inherit;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  line-height: 1;
  text-transform: uppercase;

  cursor: pointer;

  box-shadow:
    0 8px 20px rgba(31,29,26,0.04),
    inset 0 1px 0 rgba(255,255,255,0.75);

  transition:
    border-color 220ms ease,
    background 220ms ease,
    color 220ms ease,
    transform 220ms ease,
    box-shadow 220ms ease;
}

body.admin-onepage .admin-status-notes-toggle:hover {
  border-color: rgba(205,179,138,0.55);
  color: var(--ink);
  transform: translateY(-1px);

  box-shadow:
    0 10px 24px rgba(31,29,26,0.055),
    inset 0 1px 0 rgba(255,255,255,0.8);
}

body.admin-onepage .admin-status-collapsible-notes.is-expanded .admin-status-notes-toggle {
  background: var(--ink);
  color: var(--paper);
}

/* Notatene: mer liste, mindre boks-i-boks */
body.admin-onepage .admin-status-dietary-note {
  display: grid;
  gap: 0.75rem;

  padding: 1rem 0;

  border: 0 !important;
  border-top: 1px solid rgba(205,179,138,0.18) !important;
  border-radius: 0 !important;

  background: transparent !important;
  box-shadow: none !important;
}

body.admin-onepage .admin-status-dietary-note:first-child {
  border-top: 0 !important;
  padding-top: 0.25rem;
}

body.admin-onepage .admin-status-dietary-note:last-child {
  padding-bottom: 0;
}

body.admin-onepage .admin-status-dietary-note-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

body.admin-onepage .admin-status-dietary-note-title {
  display: grid;
  gap: 0.28rem;
  min-width: 0;
}

body.admin-onepage .admin-status-dietary-note-title strong {
  color: rgba(31,29,26,0.88);

  font-size: 0.98rem;
  font-weight: 760;
  letter-spacing: -0.01em;
  line-height: 1.25;
}

/* Gjør "Tolket som" lik overalt */
body.admin-onepage .admin-status-note-categories {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;

  color: rgba(31,29,26,0.76) !important;

  font-size: 0.76rem;
  font-weight: 600;
  line-height: 1.45;
}

body.admin-onepage .admin-status-note-categories span {
  color: rgba(31,29,26,0.42);

  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

body.admin-onepage .admin-status-dietary-note p {
  margin: 0;

  max-width: 58rem;

  color: rgba(31,29,26,0.64);

  font-size: 0.92rem;
  line-height: 1.65;
}

/* Vis RSVP-knapp – samme følelse som Rediger-knappen i gjesteliste */
body.admin-onepage .admin-status-note-action {
  flex-shrink: 0;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 2.35rem;
  padding: 0.68rem 0.9rem;

  border: 1px solid rgba(31,29,26,0.12);
  border-radius: 999px;

  background:
    linear-gradient(
      180deg,
      rgba(31,29,26,0.94),
      rgba(31,29,26,0.86)
    );

  color: var(--paper);

  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.13em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;

  box-shadow:
    0 8px 18px rgba(31,29,26,0.075),
    inset 0 1px 0 rgba(255,255,255,0.14);

  transition:
    border-color 220ms ease,
    background 220ms ease,
    color 220ms ease,
    transform 220ms ease,
    box-shadow 220ms ease;
}

body.admin-onepage .admin-status-note-action:hover {
  border-color: rgba(205,179,138,0.65);

  background:
    linear-gradient(
      180deg,
      rgba(255,253,249,0.98),
      rgba(255,253,249,0.76)
    );

  color: var(--ink);

  transform: translateY(-1px);

  box-shadow:
    0 10px 24px rgba(31,29,26,0.07),
    inset 0 1px 0 rgba(255,255,255,0.74);
}

@media (max-width: 780px) {
  body.admin-onepage .admin-status-block-heading-row {
    display: grid;
    grid-template-columns: 1fr;
  }

  body.admin-onepage .admin-status-notes-toggle {
    width: 100%;
  }

  body.admin-onepage .admin-status-dietary-note-header {
    display: grid;
    grid-template-columns: 1fr;
  }

  body.admin-onepage .admin-status-note-action {
    width: 100%;
  }

  body.admin-onepage .admin-status-note-list-collapsible {
    max-height: 24rem;
  }

  body.admin-onepage .admin-status-collapsible-notes.is-expanded .admin-status-note-list-collapsible {
    max-height: 68vh;
  }
}
/* ==========================================================================
   Admin Status – matnotater, vis RSVP og expand-fix
   ========================================================================== */

body.admin-onepage .admin-status-food-notes-wide {
  margin-top: clamp(1.1rem, 2.6vw, 1.7rem);
}

body.admin-onepage .admin-status-block-heading-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.2rem;
}

body.admin-onepage .admin-status-block-heading-row h3 {
  margin-bottom: 0;
}

/* Kollapsbar liste */
body.admin-onepage .admin-status-note-list-collapsible {
  max-height: 22rem;
  overflow: hidden;

  transition:
    max-height 520ms cubic-bezier(.22,1,.36,1);

  mask-image: linear-gradient(180deg, #000 72%, transparent 100%);
  -webkit-mask-image: linear-gradient(180deg, #000 72%, transparent 100%);
}

body.admin-onepage .admin-status-collapsible-notes.is-expanded .admin-status-note-list-collapsible {
  mask-image: none;
  -webkit-mask-image: none;
}

/* Se alle-knapp */
body.admin-onepage .admin-status-notes-toggle {
  flex-shrink: 0;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 2.55rem;
  padding: 0.72rem 1rem;

  border: 1px solid rgba(31,29,26,0.12);
  border-radius: 999px;

  background:
    linear-gradient(
      180deg,
      rgba(255,253,249,0.96),
      rgba(255,253,249,0.72)
    );

  color: rgba(31,29,26,0.72);

  font: inherit;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  line-height: 1;
  text-transform: uppercase;

  cursor: pointer;

  box-shadow:
    0 8px 20px rgba(31,29,26,0.04),
    inset 0 1px 0 rgba(255,255,255,0.75);

  transition:
    border-color 220ms ease,
    background 220ms ease,
    color 220ms ease,
    transform 220ms ease,
    box-shadow 220ms ease;
}

body.admin-onepage .admin-status-notes-toggle:hover {
  border-color: rgba(205,179,138,0.55);
  color: var(--ink);
  transform: translateY(-1px);
}

body.admin-onepage .admin-status-collapsible-notes.is-expanded .admin-status-notes-toggle {
  background: var(--ink);
  color: var(--paper);
}

/* Matnotat-rader */
body.admin-onepage .admin-status-dietary-note {
  display: grid;
  gap: 0.75rem;

  padding: 1rem 0;

  border: 0 !important;
  border-top: 1px solid rgba(205,179,138,0.18) !important;
  border-radius: 0 !important;

  background: transparent !important;
  box-shadow: none !important;
}

body.admin-onepage .admin-status-dietary-note:first-child {
  border-top: 0 !important;
  padding-top: 0.25rem;
}

body.admin-onepage .admin-status-dietary-note:last-child {
  padding-bottom: 0;
}

body.admin-onepage .admin-status-dietary-note-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

body.admin-onepage .admin-status-dietary-note-title {
  display: grid;
  gap: 0.32rem;
  min-width: 0;
}

body.admin-onepage .admin-status-dietary-note-title strong {
  color: rgba(31,29,26,0.88);

  font-size: 0.98rem;
  font-weight: 760;
  letter-spacing: -0.01em;
  line-height: 1.25;
}

body.admin-onepage .admin-status-dietary-note p {
  margin: 0;

  max-width: 58rem;

  color: rgba(31,29,26,0.64);

  font-size: 0.92rem;
  line-height: 1.65;
}

/* Tolket som – lik farge på alle */
body.admin-onepage .admin-status-note-categories {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;

  color: rgba(31,29,26,0.72) !important;

  font-size: 0.76rem;
  font-weight: 600;
  line-height: 1.45;
}

body.admin-onepage .admin-status-note-categories span {
  color: rgba(31,29,26,0.42) !important;

  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* Bruk samme Rediger-knapp-stil fra gjestelisten også i statusnotater */
body.admin-onepage .admin-status-dietary-note .admin-table-button {
  flex-shrink: 0;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 2.35rem;
  padding: 0.68rem 0.9rem;

  border: 1px solid rgba(31,29,26,0.12);
  border-radius: 999px;

  background:
    linear-gradient(
      180deg,
      rgba(31,29,26,0.94),
      rgba(31,29,26,0.86)
    );

  color: var(--paper);

  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.13em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;

  box-shadow:
    0 8px 18px rgba(31,29,26,0.075),
    inset 0 1px 0 rgba(255,255,255,0.14);

  transition:
    border-color 220ms ease,
    background 220ms ease,
    color 220ms ease,
    transform 220ms ease,
    box-shadow 220ms ease;
}

body.admin-onepage .admin-status-dietary-note .admin-table-button:hover {
  border-color: rgba(205,179,138,0.65);

  background:
    linear-gradient(
      180deg,
      rgba(255,253,249,0.98),
      rgba(255,253,249,0.76)
    );

  color: var(--ink);

  transform: translateY(-1px);

  box-shadow:
    0 10px 24px rgba(31,29,26,0.07),
    inset 0 1px 0 rgba(255,255,255,0.74);
}

@media (max-width: 780px) {
  body.admin-onepage .admin-status-block-heading-row {
    display: grid;
    grid-template-columns: 1fr;
  }

  body.admin-onepage .admin-status-notes-toggle {
    width: 100%;
  }

  body.admin-onepage .admin-status-dietary-note-header {
    display: grid;
    grid-template-columns: 1fr;
  }

  body.admin-onepage .admin-status-dietary-note .admin-table-button {
    width: 100%;
  }

  body.admin-onepage .admin-status-note-list-collapsible {
    max-height: 24rem;
  }
}
/* ==========================================================================
   Admin Status – matnotater skal ekspandere hele boksen, ikke få scrollbar
   ========================================================================== */

body.admin-onepage .admin-status-collapsible-notes.is-expanded .admin-status-note-list-collapsible {
  overflow: visible !important;
  overflow-y: visible !important;
  padding-right: 0 !important;

  mask-image: none !important;
  -webkit-mask-image: none !important;
}
/* ==========================================================================
   Admin Status – Vis RSVP høyre, vertikalt midtstilt
   ========================================================================== */

body.admin-onepage .admin-status-dietary-note-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 1rem !important;
}

body.admin-onepage .admin-status-dietary-note-title {
  min-width: 0;
}

body.admin-onepage .admin-status-dietary-note-header .admin-table-button {
  flex-shrink: 0;
  align-self: center;
}

/* Fjerner gammel rad hvis den fortsatt finnes */
body.admin-onepage .admin-status-note-action-row {
  display: contents !important;
}
/* ==========================================================================
   Admin Status – oppfølging mat som klikkbare kort
   ========================================================================== */

body.admin-onepage .admin-status-review-list {
  display: grid;
  gap: 0.75rem;
}

body.admin-onepage .admin-status-review-card {
  position: relative;

  display: grid;
  gap: 0.65rem;

  padding: 1rem 1.05rem;

  border: 1px solid rgba(31,29,26,0.075);
  border-radius: 1.05rem;

  background:
    linear-gradient(
      180deg,
      rgba(255,253,249,0.88),
      rgba(255,253,249,0.58)
    );

  color: inherit;
  text-decoration: none;

  box-shadow:
    0 8px 22px rgba(31,29,26,0.035),
    inset 0 1px 0 rgba(255,255,255,0.72);

  overflow: hidden;

  transition:
    border-color 220ms ease,
    background 220ms ease,
    box-shadow 220ms ease,
    transform 220ms ease;
}

body.admin-onepage .admin-status-review-card::before {
  content: "";

  position: absolute;
  left: 0;
  top: 0.85rem;
  bottom: 0.85rem;

  width: 1px;

  background:
    linear-gradient(
      180deg,
      rgba(205,179,138,0),
      rgba(205,179,138,0.58) 22%,
      rgba(205,179,138,0.58) 78%,
      rgba(205,179,138,0)
    );

  opacity: 0.8;
}

body.admin-onepage a.admin-status-review-card:hover {
  border-color: rgba(205,179,138,0.48);

  background:
    linear-gradient(
      180deg,
      rgba(255,253,249,0.98),
      rgba(255,253,249,0.72)
    );

  transform: translateY(-1px);

  box-shadow:
    0 12px 28px rgba(31,29,26,0.06),
    inset 0 1px 0 rgba(255,255,255,0.78);
}

body.admin-onepage .admin-status-review-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

body.admin-onepage .admin-status-review-card-top strong {
  min-width: 0;

  color: rgba(31,29,26,0.88);

  font-size: 0.95rem;
  font-weight: 760;
  line-height: 1.25;
}

body.admin-onepage .admin-status-review-card-top em {
  flex-shrink: 0;

  color: rgba(168,143,104,0.92);

  font-size: 0.62rem;
  font-style: normal;
  font-weight: 800;
  letter-spacing: 0.14em;
  line-height: 1;
  text-transform: uppercase;

  opacity: 0.72;

  transition:
    opacity 220ms ease,
    transform 220ms ease;
}

body.admin-onepage a.admin-status-review-card:hover .admin-status-review-card-top em {
  opacity: 1;
  transform: translateX(2px);
}

body.admin-onepage .admin-status-review-card p {
  margin: 0;

  color: rgba(31,29,26,0.6);

  font-size: 0.88rem;
  line-height: 1.6;
}

@media (max-width: 780px) {
  body.admin-onepage .admin-status-review-card-top {
    align-items: flex-start;
  }
}
/* ==========================================================================
   Admin Status – elegant intern scroll uten å fjerne kortbakgrunn
   ========================================================================== */

body.admin-onepage .admin-status-review-list {
  max-height: 28rem;

  overflow-y: auto;
  overflow-x: hidden;

  padding-right: 0.55rem;

  overscroll-behavior: contain;
  scrollbar-gutter: stable;

  /* Viktig: fjern fade/mask som skjulte kortbakgrunnen */
  mask-image: none !important;
  -webkit-mask-image: none !important;

  /* Firefox */
  scrollbar-width: thin;
  scrollbar-color: rgba(205,179,138,0.58) transparent;
}

/* Behold bakgrunn på klikkbare oppfølgingskort */
body.admin-onepage .admin-status-review-card {
  background:
    linear-gradient(
      180deg,
      rgba(255,253,249,0.88),
      rgba(255,253,249,0.58)
    ) !important;

  box-shadow:
    0 8px 22px rgba(31,29,26,0.035),
    inset 0 1px 0 rgba(255,255,255,0.72) !important;
}

/* Chrome / Edge / Safari */
body.admin-onepage .admin-status-review-list::-webkit-scrollbar {
  width: 0.42rem;
}

body.admin-onepage .admin-status-review-list::-webkit-scrollbar-track {
  background: transparent;
}

body.admin-onepage .admin-status-review-list::-webkit-scrollbar-thumb {
  border-radius: 999px;

  background:
    linear-gradient(
      180deg,
      rgba(205,179,138,0.35),
      rgba(205,179,138,0.82),
      rgba(205,179,138,0.35)
    );

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.35),
    0 0 10px rgba(205,179,138,0.18);
}

body.admin-onepage .admin-status-review-list::-webkit-scrollbar-thumb:hover {
  background:
    linear-gradient(
      180deg,
      rgba(168,143,104,0.45),
      rgba(168,143,104,0.95),
      rgba(168,143,104,0.45)
    );
}

@media (max-width: 780px) {
  body.admin-onepage .admin-status-review-list {
    max-height: 24rem;
    padding-right: 0.4rem;
  }
}
/* ==========================================================================
   Admin Status – vis maks 3 oppfølgingskort før scroll
   ========================================================================== */

body.admin-onepage .admin-status-review-list {
  max-height: 22rem !important;
}

body.admin-onepage .admin-status-review-card p {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;

  overflow: hidden;
}

@media (max-width: 780px) {
  body.admin-onepage .admin-status-review-list {
    max-height: 20rem !important;
  }
}
/* ==========================================================================
   Admin Status – meny inline med tittel
   ========================================================================== */

body.admin-onepage #kpi .admin-status-titlebar-with-tabs {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: clamp(1.5rem, 4vw, 3rem);
}

body.admin-onepage #kpi .admin-status-titlebar-with-tabs > div:first-child {
  min-width: 0;
}

body.admin-onepage #kpi .admin-status-tabs-inline {
  flex-shrink: 0;

  width: auto;
  max-width: min(100%, 46rem);

  margin: 0 0 0.45rem;

  justify-content: flex-end;
}

/* Når Totalstatus flyttes inn i Oversikt */
body.admin-onepage #kpi .admin-status-overview-stack {
  display: grid;
  gap: clamp(1rem, 2.4vw, 1.4rem);
}

body.admin-onepage #kpi .admin-status-overview-stack .admin-status-hero-row {
  margin-bottom: 0;
}

/* Litt mer kompakt når menyen står i header */
body.admin-onepage #kpi .admin-status-titlebar {
  margin-bottom: clamp(1.2rem, 3vw, 2rem);
}

/* Mobil/tablet: menyen under tittelen, men fortsatt i samme headerområde */
@media (max-width: 980px) {
  body.admin-onepage #kpi .admin-status-titlebar-with-tabs {
    display: grid;
    grid-template-columns: 1fr;
    align-items: start;
  }

  body.admin-onepage #kpi .admin-status-tabs-inline {
    width: 100%;
    max-width: none;
    margin: 0;
    justify-content: stretch;
  }
}

@media (max-width: 780px) {
  body.admin-onepage #kpi .admin-status-tabs-inline {
    display: grid;
    grid-template-columns: 1fr;
  }
}
/* ==========================================================================
   ADMIN DASHBOARD – bryllupsoversikt og arbeidsflate
   ========================================================================== */

body.admin-onepage #dashboard .admin-section-inner-wide {
  width: min(92vw, 1240px);
  max-width: 1240px;
}

body.admin-onepage #dashboard .admin-dashboard-titlebar {
  margin-bottom: clamp(1.15rem, 3vw, 1.8rem);
}

body.admin-onepage #dashboard .admin-dashboard-hero {
  position: relative;
  isolation: isolate;

  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(17rem, 0.65fr);
  align-items: stretch;

  min-height: clamp(15rem, 27vw, 21rem);

  border: 1px solid rgba(31,29,26,0.075);
  border-radius: 1.65rem;

  background:
    radial-gradient(circle at 16% 18%, rgba(205,179,138,0.20), transparent 22rem),
    linear-gradient(
      135deg,
      rgba(255,255,255,0.92),
      rgba(255,253,249,0.66)
    );

  box-shadow:
    0 22px 54px rgba(31,29,26,0.06),
    inset 0 1px 0 rgba(255,255,255,0.82);

  overflow: hidden;
}

body.admin-onepage #dashboard .admin-dashboard-hero::after {
  content: "";

  position: absolute;
  inset: 0;
  z-index: -1;

  pointer-events: none;

  background:
    linear-gradient(
      90deg,
      transparent 0,
      transparent 63%,
      rgba(205,179,138,0.06) 63%,
      rgba(205,179,138,0.06) 100%
    );
}

body.admin-onepage #dashboard .admin-dashboard-countdown,
body.admin-onepage #dashboard .admin-dashboard-milestone {
  display: grid;
  align-content: center;
}

body.admin-onepage #dashboard .admin-dashboard-countdown {
  padding: clamp(1.75rem, 4vw, 3.2rem);
}

body.admin-onepage #dashboard .admin-dashboard-milestone {
  position: relative;

  padding: clamp(1.5rem, 3vw, 2.4rem);

  border-left: 1px solid rgba(205,179,138,0.24);
}

body.admin-onepage #dashboard .admin-dashboard-kicker,
body.admin-onepage #dashboard .admin-dashboard-label {
  margin: 0;

  color: rgba(168,143,104,0.92);

  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.2em;
  line-height: 1.2;
  text-transform: uppercase;
}

body.admin-onepage #dashboard .admin-dashboard-days {
  display: flex;
  align-items: flex-end;
  gap: clamp(0.9rem, 2vw, 1.35rem);

  margin-top: 0.7rem;
}

body.admin-onepage #dashboard .admin-dashboard-days strong {
  color: rgba(31,29,26,0.92);

  font-family: var(--font-serif);
  font-size: clamp(5.4rem, 11vw, 10rem);
  font-weight: 400;
  letter-spacing: -0.075em;
  line-height: 0.78;
}

body.admin-onepage #dashboard .admin-dashboard-days span {
  margin-bottom: 0.55rem;

  color: rgba(31,29,26,0.52);

  font-family: var(--font-serif);
  font-size: clamp(1.15rem, 2vw, 1.55rem);
  font-style: italic;
  line-height: 1;
}

body.admin-onepage #dashboard .admin-dashboard-place {
  margin: clamp(1rem, 2vw, 1.35rem) 0 0;

  color: rgba(31,29,26,0.48);

  font-size: 0.74rem;
  font-weight: 650;
  letter-spacing: 0.13em;
  line-height: 1.5;
  text-transform: uppercase;
}

body.admin-onepage #dashboard .admin-dashboard-milestone strong {
  display: block;

  margin-top: 0.85rem;

  color: rgba(31,29,26,0.86);

  font-family: var(--font-serif);
  font-size: clamp(2rem, 4vw, 3.35rem);
  font-weight: 400;
  letter-spacing: -0.045em;
  line-height: 1;
}

body.admin-onepage #dashboard .admin-dashboard-milestone span {
  display: block;

  margin-top: 0.8rem;

  color: rgba(31,29,26,0.48);

  font-size: 0.82rem;
  font-weight: 650;
  letter-spacing: 0.08em;
  line-height: 1.45;
  text-transform: uppercase;
}

body.admin-onepage #dashboard .admin-dashboard-panel {
  margin-top: clamp(1rem, 2vw, 1.35rem);
  padding: clamp(1.25rem, 2.8vw, 1.8rem);

  border: 1px solid rgba(31,29,26,0.07);
  border-radius: 1.45rem;

  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,0.76),
      rgba(255,253,249,0.48)
    );

  box-shadow:
    0 14px 34px rgba(31,29,26,0.04),
    inset 0 1px 0 rgba(255,255,255,0.74);
}

body.admin-onepage #dashboard .admin-dashboard-panel-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;

  margin-bottom: 1.15rem;
}

body.admin-onepage #dashboard .admin-dashboard-panel-heading h3 {
  margin: 0.45rem 0 0;

  color: rgba(31,29,26,0.88);

  font-family: var(--font-serif);
  font-size: clamp(1.75rem, 3vw, 2.75rem);
  font-weight: 400;
  letter-spacing: -0.04em;
  line-height: 1;
}

body.admin-onepage #dashboard .admin-dashboard-panel-heading > span {
  flex-shrink: 0;

  color: rgba(31,29,26,0.4);

  font-size: 0.66rem;
  font-weight: 750;
  letter-spacing: 0.12em;
  line-height: 1.3;
  text-transform: uppercase;
}

body.admin-onepage #dashboard .admin-dashboard-followup-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.8rem;
}

body.admin-onepage #dashboard .admin-dashboard-followup-card {
  position: relative;

  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.9rem;

  min-height: 7.4rem;
  padding: 1rem 1.05rem;

  border: 1px solid rgba(31,29,26,0.075);
  border-radius: 1.05rem;

  background:
    linear-gradient(
      180deg,
      rgba(255,253,249,0.92),
      rgba(255,253,249,0.62)
    );

  color: inherit;
  text-decoration: none;

  box-shadow:
    0 8px 22px rgba(31,29,26,0.03),
    inset 0 1px 0 rgba(255,255,255,0.76);

  transition:
    border-color 220ms ease,
    background 220ms ease,
    box-shadow 220ms ease,
    transform 220ms ease;
}

body.admin-onepage #dashboard .admin-dashboard-followup-card::before {
  content: "";

  position: absolute;
  left: 0;
  top: 0.8rem;
  bottom: 0.8rem;

  width: 1px;

  background:
    linear-gradient(
      180deg,
      rgba(205,179,138,0),
      rgba(205,179,138,0.62) 22%,
      rgba(205,179,138,0.62) 78%,
      rgba(205,179,138,0)
    );
}

body.admin-onepage #dashboard .admin-dashboard-followup-card:hover {
  border-color: rgba(205,179,138,0.48);

  background:
    linear-gradient(
      180deg,
      rgba(255,253,249,1),
      rgba(255,253,249,0.76)
    );

  transform: translateY(-2px);

  box-shadow:
    0 14px 30px rgba(31,29,26,0.06),
    inset 0 1px 0 rgba(255,255,255,0.8);
}

body.admin-onepage #dashboard .admin-dashboard-followup-card > strong {
  min-width: 2.3rem;

  color: rgba(31,29,26,0.88);

  font-family: var(--font-serif);
  font-size: clamp(2.5rem, 4vw, 3.6rem);
  font-weight: 400;
  letter-spacing: -0.055em;
  line-height: 1;
  text-align: center;
}

body.admin-onepage #dashboard .admin-dashboard-followup-card div {
  min-width: 0;
}

body.admin-onepage #dashboard .admin-dashboard-followup-card div span {
  display: block;

  color: rgba(31,29,26,0.78);

  font-size: 0.78rem;
  font-weight: 780;
  letter-spacing: 0.035em;
  line-height: 1.35;
}

body.admin-onepage #dashboard .admin-dashboard-followup-card p {
  margin: 0.35rem 0 0;

  color: rgba(31,29,26,0.48);

  font-size: 0.78rem;
  line-height: 1.5;
}

body.admin-onepage #dashboard .admin-dashboard-followup-card > i {
  color: rgba(168,143,104,0.72);

  font-size: 0.95rem;
  font-style: normal;

  transition: transform 220ms ease, color 220ms ease;
}

body.admin-onepage #dashboard .admin-dashboard-followup-card:hover > i {
  color: rgba(168,143,104,1);
  transform: translate(2px, -2px);
}

body.admin-onepage #dashboard .admin-dashboard-followup-empty {
  display: flex;
  align-items: center;
  gap: 1rem;

  min-height: 7rem;
  padding: 1rem 1.1rem;

  border: 1px solid rgba(82,113,90,0.12);
  border-radius: 1.05rem;

  background: rgba(82,113,90,0.045);
}

body.admin-onepage #dashboard .admin-dashboard-followup-empty > span {
  display: grid;
  place-items: center;

  width: 2.5rem;
  height: 2.5rem;
  flex: 0 0 auto;

  border: 1px solid rgba(82,113,90,0.2);
  border-radius: 50%;

  color: rgba(82,113,90,0.82);
  background: rgba(255,255,255,0.55);

  font-size: 1rem;
}

body.admin-onepage #dashboard .admin-dashboard-followup-empty strong {
  color: rgba(31,29,26,0.76);

  font-family: var(--font-serif);
  font-size: 1.35rem;
  font-weight: 400;
}

body.admin-onepage #dashboard .admin-dashboard-followup-empty p {
  margin: 0.25rem 0 0;

  color: rgba(31,29,26,0.46);

  font-size: 0.84rem;
  line-height: 1.55;
}

body.admin-onepage #dashboard .admin-dashboard-lower-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(18rem, 0.75fr);
  gap: 1rem;
}

body.admin-onepage #dashboard .admin-dashboard-activity-list {
  display: grid;
}

body.admin-onepage #dashboard .admin-dashboard-activity-item {
  display: grid;
  grid-template-columns: 8.4rem minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;

  padding: 0.9rem 0.2rem;

  border-bottom: 1px solid rgba(205,179,138,0.18);

  color: inherit;
  text-decoration: none;

  transition: background 180ms ease, padding 180ms ease;
}

body.admin-onepage #dashboard a.admin-dashboard-activity-item:hover {
  padding-left: 0.7rem;
  padding-right: 0.7rem;

  border-radius: 0.8rem;
  background: rgba(205,179,138,0.07);
}

body.admin-onepage #dashboard .admin-dashboard-activity-item:last-child {
  border-bottom: 0;
}

body.admin-onepage #dashboard .admin-dashboard-activity-item time {
  color: rgba(31,29,26,0.38);

  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.06em;
  line-height: 1.4;
}

body.admin-onepage #dashboard .admin-dashboard-activity-item div {
  min-width: 0;
}

body.admin-onepage #dashboard .admin-dashboard-activity-item strong,
body.admin-onepage #dashboard .admin-dashboard-activity-item span {
  display: block;
}

body.admin-onepage #dashboard .admin-dashboard-activity-item strong {
  color: rgba(31,29,26,0.76);

  font-size: 0.83rem;
  font-weight: 760;
  line-height: 1.35;
}

body.admin-onepage #dashboard .admin-dashboard-activity-item span {
  margin-top: 0.15rem;

  color: rgba(31,29,26,0.46);

  font-size: 0.78rem;
  line-height: 1.45;
}

body.admin-onepage #dashboard .admin-dashboard-activity-item i {
  color: rgba(168,143,104,0.72);

  font-size: 1.2rem;
  font-style: normal;
}

body.admin-onepage #dashboard .admin-dashboard-activity-empty {
  padding: 1.25rem 0;

  color: rgba(31,29,26,0.46);

  font-size: 0.84rem;
  font-style: italic;
}

body.admin-onepage #dashboard .admin-dashboard-action-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

body.admin-onepage #dashboard .admin-dashboard-action-grid a {
  position: relative;

  display: grid;
  align-content: center;
  gap: 0.3rem;

  min-height: 6.35rem;
  padding: 1rem;

  border: 1px solid rgba(31,29,26,0.075);
  border-radius: 1rem;

  background:
    linear-gradient(
      180deg,
      rgba(255,253,249,0.92),
      rgba(255,253,249,0.58)
    );

  color: inherit;
  text-decoration: none;

  box-shadow:
    0 8px 22px rgba(31,29,26,0.028),
    inset 0 1px 0 rgba(255,255,255,0.72);

  transition:
    border-color 220ms ease,
    box-shadow 220ms ease,
    transform 220ms ease;
}

body.admin-onepage #dashboard .admin-dashboard-action-grid a::after {
  content: "↗";

  position: absolute;
  top: 0.75rem;
  right: 0.85rem;

  color: rgba(168,143,104,0.62);

  font-size: 0.78rem;
}

body.admin-onepage #dashboard .admin-dashboard-action-grid a:hover {
  border-color: rgba(205,179,138,0.52);

  transform: translateY(-2px);

  box-shadow:
    0 12px 28px rgba(31,29,26,0.055),
    inset 0 1px 0 rgba(255,255,255,0.76);
}

body.admin-onepage #dashboard .admin-dashboard-action-grid span,
body.admin-onepage #dashboard .admin-dashboard-action-grid small {
  display: block;
}

body.admin-onepage #dashboard .admin-dashboard-action-grid span {
  color: rgba(31,29,26,0.78);

  font-family: var(--font-serif);
  font-size: 1.18rem;
  line-height: 1.1;
}

body.admin-onepage #dashboard .admin-dashboard-action-grid small {
  color: rgba(31,29,26,0.42);

  font-size: 0.7rem;
  letter-spacing: 0.04em;
  line-height: 1.4;
}

body.admin-onepage #dashboard .admin-dashboard-settings {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;

  margin-top: 1rem;
  padding: 1.1rem 0.15rem 0;

  border-top: 1px solid rgba(31,29,26,0.075);
}

body.admin-onepage #dashboard .admin-dashboard-settings > div {
  min-width: 0;
}

body.admin-onepage #dashboard .admin-dashboard-settings > div strong,
body.admin-onepage #dashboard .admin-dashboard-settings > div span {
  display: block;
}

body.admin-onepage #dashboard .admin-dashboard-settings > div strong {
  margin-top: 0.35rem;

  color: rgba(31,29,26,0.66);

  font-size: 0.86rem;
  font-weight: 760;
  line-height: 1.35;
}

body.admin-onepage #dashboard .admin-dashboard-settings > div span {
  margin-top: 0.15rem;

  color: rgba(31,29,26,0.4);

  font-size: 0.74rem;
  line-height: 1.5;
}

body.admin-onepage #dashboard .admin-dashboard-invitations-form {
  display: inline-flex;
  align-items: flex-end;
  gap: 0.55rem;
  flex: 0 0 auto;
}

body.admin-onepage #dashboard .admin-dashboard-invitations-form label {
  display: grid;
  gap: 0.28rem;

  color: rgba(31,29,26,0.42);

  font-size: 0.58rem;
  font-weight: 750;
  letter-spacing: 0.13em;
  line-height: 1;
  text-transform: uppercase;
}

body.admin-onepage #dashboard .admin-dashboard-invitations-form input {
  width: 5.6rem;
  height: 2.45rem;
  min-height: 2.45rem;

  padding: 0.55rem 0.7rem;

  border-color: rgba(31,29,26,0.1);
  border-radius: 0.8rem;

  background: rgba(255,253,249,0.72);

  font-size: 0.88rem;
  text-align: center;

  box-shadow: none;
}

body.admin-onepage #dashboard .admin-dashboard-invitations-form input:focus {
  border-color: rgba(205,179,138,0.72);

  background: white;

  box-shadow: 0 0 0 3px rgba(205,179,138,0.11);
}

body.admin-onepage #dashboard .admin-dashboard-invitations-form button {
  height: 2.45rem;
  min-height: 2.45rem;

  padding: 0.55rem 0.8rem;

  border: 1px solid rgba(31,29,26,0.12);
  border-radius: 0.8rem;

  background: transparent;
  color: rgba(31,29,26,0.58);

  font: inherit;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1;
  text-transform: uppercase;

  cursor: pointer;

  transition:
    border-color 200ms ease,
    background 200ms ease,
    color 200ms ease;
}

body.admin-onepage #dashboard .admin-dashboard-invitations-form button:hover {
  border-color: rgba(31,29,26,0.28);
  background: var(--ink);
  color: var(--paper);
}

@media (max-width: 1040px) {
  body.admin-onepage #dashboard .admin-dashboard-followup-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.admin-onepage #dashboard .admin-dashboard-lower-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 780px) {
  body.admin-onepage #dashboard .admin-dashboard-hero {
    grid-template-columns: 1fr;
  }

  body.admin-onepage #dashboard .admin-dashboard-hero::after {
    display: none;
  }

  body.admin-onepage #dashboard .admin-dashboard-milestone {
    border-top: 1px solid rgba(205,179,138,0.22);
    border-left: 0;
  }

  body.admin-onepage #dashboard .admin-dashboard-days {
    align-items: baseline;
  }

  body.admin-onepage #dashboard .admin-dashboard-days strong {
    font-size: clamp(4.7rem, 24vw, 7.2rem);
  }

  body.admin-onepage #dashboard .admin-dashboard-days span {
    margin-bottom: 0;
  }

  body.admin-onepage #dashboard .admin-dashboard-panel-heading {
    align-items: flex-start;
  }

  body.admin-onepage #dashboard .admin-dashboard-panel-heading > span {
    max-width: 8rem;
    text-align: right;
  }

  body.admin-onepage #dashboard .admin-dashboard-followup-grid,
  body.admin-onepage #dashboard .admin-dashboard-action-grid {
    grid-template-columns: 1fr;
  }

  body.admin-onepage #dashboard .admin-dashboard-followup-card {
    min-height: 6.7rem;
  }

  body.admin-onepage #dashboard .admin-dashboard-activity-item {
    grid-template-columns: 1fr auto;
    gap: 0.55rem 0.8rem;
  }

  body.admin-onepage #dashboard .admin-dashboard-activity-item time {
    grid-column: 1 / -1;
  }

  body.admin-onepage #dashboard .admin-dashboard-settings {
    display: grid;
    align-items: start;
  }

  body.admin-onepage #dashboard .admin-dashboard-invitations-form {
    width: 100%;
  }

  body.admin-onepage #dashboard .admin-dashboard-invitations-form label {
    flex: 1;
  }

  body.admin-onepage #dashboard .admin-dashboard-invitations-form input {
    width: 100%;
  }
}


/* ==========================================================================
   ADMIN DASHBOARD – sammenleggbare innstillinger
   ========================================================================== */

body.admin-onepage #dashboard .admin-dashboard-settings {
  display: block;
  width: 100%;
  max-width: none;
  justify-self: stretch;

  margin-top: 1rem;
  padding: 0;

  border-top: 1px solid rgba(31,29,26,0.075);
  border-bottom: 1px solid rgba(31,29,26,0.075);
}

body.admin-onepage #dashboard .admin-dashboard-settings-toggle {
  width: 100%;
  min-height: 4.2rem;

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;

  margin: 0;
  padding: 0.95rem 0.15rem;

  border: 0;
  border-radius: 0;

  background: transparent;
  color: inherit;

  font: inherit;
  text-align: left;
  cursor: pointer;

  transition:
    background 220ms ease,
    color 220ms ease;
}

body.admin-onepage #dashboard .admin-dashboard-settings-toggle:hover {
  background: rgba(205,179,138,0.045);
}

body.admin-onepage #dashboard .admin-dashboard-settings-toggle-copy,
body.admin-onepage #dashboard .admin-dashboard-settings-toggle-copy strong,
body.admin-onepage #dashboard .admin-dashboard-settings-toggle-copy small {
  display: block;
  min-width: 0;
}

body.admin-onepage #dashboard .admin-dashboard-settings-toggle-copy strong {
  color: rgba(168,143,104,0.94);

  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.19em;
  line-height: 1.2;
  text-transform: uppercase;
}

body.admin-onepage #dashboard .admin-dashboard-settings-toggle-copy small {
  margin-top: 0.22rem;

  color: rgba(31,29,26,0.42);

  font-size: 0.74rem;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.45;
  text-transform: none;
}

body.admin-onepage #dashboard .admin-dashboard-settings-toggle-icon {
  flex: 0 0 auto;

  width: 2.15rem;
  height: 2.15rem;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  border: 1px solid rgba(31,29,26,0.1);
  border-radius: 999px;

  background: rgba(255,253,249,0.72);
  color: rgba(31,29,26,0.54);

  font-family: var(--font-serif);
  font-size: 1.35rem;
  font-weight: 400;
  line-height: 1;

  transition:
    transform 320ms cubic-bezier(.22,1,.36,1),
    border-color 220ms ease,
    background 220ms ease,
    color 220ms ease;
}

body.admin-onepage #dashboard .admin-dashboard-settings-toggle:hover .admin-dashboard-settings-toggle-icon {
  border-color: rgba(205,179,138,0.5);
  background: white;
  color: var(--ink);
}

body.admin-onepage #dashboard .admin-dashboard-settings.is-open .admin-dashboard-settings-toggle-icon {
  transform: rotate(45deg);
}

body.admin-onepage #dashboard .admin-dashboard-settings-content {
  display: grid;
  grid-template-rows: 0fr;

  width: 100%;
  max-width: none;

  opacity: 0;
  visibility: hidden;

  transition:
    grid-template-rows 420ms cubic-bezier(.22,1,.36,1),
    opacity 260ms ease,
    visibility 0s linear 420ms;
}

body.admin-onepage #dashboard .admin-dashboard-settings-content-inner {
  min-height: 0;
  overflow: hidden;
}

body.admin-onepage #dashboard .admin-dashboard-settings.is-open .admin-dashboard-settings-content {
  grid-template-rows: 1fr;
  opacity: 1;
  visibility: visible;

  transition:
    grid-template-rows 420ms cubic-bezier(.22,1,.36,1),
    opacity 300ms ease,
    visibility 0s linear 0s;
}

body.admin-onepage #dashboard .admin-dashboard-settings-list {
  display: grid;
  width: 100%;
  max-width: none;

  padding: 0 0.15rem 0.2rem;

  border-top: 1px solid rgba(31,29,26,0.055);
}

body.admin-onepage #dashboard .admin-dashboard-setting-row {
  width: 100%;
  max-width: none;

  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  justify-items: stretch;
  gap: 0.75rem 1.25rem;

  margin: 0;
  padding: 1rem 0;

  border: 0;
  border-bottom: 1px solid rgba(31,29,26,0.055);

  background: transparent;
}

body.admin-onepage #dashboard .admin-dashboard-setting-row:last-child {
  border-bottom: 0;
}

body.admin-onepage #dashboard .admin-dashboard-setting-copy {
  min-width: 0;
}

body.admin-onepage #dashboard .admin-dashboard-setting-copy strong,
body.admin-onepage #dashboard .admin-dashboard-setting-copy span {
  display: block;
}

body.admin-onepage #dashboard .admin-dashboard-setting-copy strong {
  color: rgba(31,29,26,0.69);

  font-size: 0.84rem;
  font-weight: 760;
  line-height: 1.35;
}

body.admin-onepage #dashboard .admin-dashboard-setting-copy span {
  margin-top: 0.14rem;

  color: rgba(31,29,26,0.4);

  font-size: 0.72rem;
  line-height: 1.5;
}

body.admin-onepage #dashboard .admin-dashboard-setting-controls {
  display: inline-flex;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 0.55rem;
}

body.admin-onepage #dashboard .admin-dashboard-setting-row > input[type="hidden"] {
  display: none;
}

body.admin-onepage #dashboard .admin-dashboard-setting-controls > label {
  display: grid;
  gap: 0.28rem;

  color: rgba(31,29,26,0.42);

  font-size: 0.58rem;
  font-weight: 750;
  letter-spacing: 0.13em;
  line-height: 1;
  text-transform: uppercase;
}

body.admin-onepage #dashboard .admin-dashboard-setting-controls input[type="number"],
body.admin-onepage #dashboard .admin-dashboard-setting-controls input[type="date"] {
  height: 2.45rem;
  min-height: 2.45rem;

  padding: 0.55rem 0.7rem;

  border: 1px solid rgba(31,29,26,0.1);
  border-radius: 0.8rem;

  background: rgba(255,253,249,0.72);

  color: rgba(31,29,26,0.74);
  font: inherit;
  font-size: 0.88rem;
  text-align: center;

  box-shadow: none;
}

body.admin-onepage #dashboard .admin-dashboard-setting-controls input[type="number"] {
  width: 5.6rem;
}

body.admin-onepage #dashboard .admin-dashboard-setting-controls input[type="date"] {
  width: 10.5rem;
}

body.admin-onepage #dashboard .admin-dashboard-setting-controls input[type="number"]:focus,
body.admin-onepage #dashboard .admin-dashboard-setting-controls input[type="date"]:focus {
  border-color: rgba(205,179,138,0.72);
  background: white;
  outline: none;
  box-shadow: 0 0 0 3px rgba(205,179,138,0.11);
}

body.admin-onepage #dashboard .admin-dashboard-setting-controls button {
  height: 2.45rem;
  min-height: 2.45rem;

  padding: 0.55rem 0.8rem;

  border: 1px solid rgba(31,29,26,0.12);
  border-radius: 0.8rem;

  background: transparent;
  color: rgba(31,29,26,0.58);

  font: inherit;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1;
  text-transform: uppercase;

  cursor: pointer;

  transition:
    border-color 200ms ease,
    background 200ms ease,
    color 200ms ease;
}

body.admin-onepage #dashboard .admin-dashboard-setting-controls button:hover {
  border-color: rgba(31,29,26,0.28);
  background: var(--ink);
  color: var(--paper);
}

body.admin-onepage #dashboard .admin-dashboard-deadline-warning {
  grid-column: 1 / -1;
  justify-self: stretch;

  width: 100%;
  max-width: none;

  margin-top: 0.15rem;
  padding: 0.9rem 1rem;

  border: 1px solid rgba(155,115,71,0.22);
  border-radius: 0.95rem;

  background: rgba(155,115,71,0.07);
  color: rgba(31,29,26,0.62);

  font-size: 0.78rem;
  line-height: 1.55;
}

body.admin-onepage #dashboard .admin-dashboard-deadline-warning[hidden] {
  display: none !important;
}

body.admin-onepage #dashboard .admin-dashboard-deadline-warning > strong {
  display: block;

  color: rgba(120,79,39,0.9);

  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1.3;
  text-transform: uppercase;
}

body.admin-onepage #dashboard .admin-dashboard-deadline-warning p {
  margin: 0.35rem 0 0;
}

body.admin-onepage #dashboard .admin-dashboard-deadline-warning .admin-dashboard-deadline-confirmation {
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 0.6rem !important;

  width: fit-content;
  max-width: 100%;

  margin: 0.7rem 0 0;

  color: rgba(31,29,26,0.66);

  font-size: 0.74rem !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  line-height: 1.45 !important;
  text-transform: none !important;

  cursor: pointer;
}

body.admin-onepage #dashboard .admin-dashboard-deadline-warning .admin-dashboard-deadline-confirmation input[type="checkbox"] {
  appearance: auto !important;
  -webkit-appearance: checkbox !important;

  flex: 0 0 1rem !important;

  width: 1rem !important;
  min-width: 1rem !important;
  max-width: 1rem !important;
  height: 1rem !important;
  min-height: 1rem !important;

  margin: 0 !important;
  padding: 0 !important;

  border-radius: 0.2rem !important;

  accent-color: var(--warning);
  box-shadow: none !important;
}

body.admin-onepage #dashboard .admin-dashboard-deadline-warning .admin-dashboard-deadline-confirmation span {
  display: inline !important;
  margin: 0 !important;
}

@media (max-width: 780px) {
  body.admin-onepage #dashboard .admin-dashboard-settings-toggle {
    min-height: 4rem;
    padding: 0.9rem 0.05rem;
  }

  body.admin-onepage #dashboard .admin-dashboard-setting-row {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 0.75rem;
  }

  body.admin-onepage #dashboard .admin-dashboard-setting-controls {
    width: 100%;
  }

  body.admin-onepage #dashboard .admin-dashboard-setting-controls > label {
    flex: 1;
  }

  body.admin-onepage #dashboard .admin-dashboard-setting-controls input[type="number"],
  body.admin-onepage #dashboard .admin-dashboard-setting-controls input[type="date"] {
    width: 100%;
  }

  body.admin-onepage #dashboard .admin-dashboard-deadline-warning {
    grid-column: 1;
    width: 100%;
  }

  body.admin-onepage #dashboard .admin-dashboard-deadline-warning .admin-dashboard-deadline-confirmation {
    align-items: flex-start !important;
  }

  body.admin-onepage #dashboard .admin-dashboard-deadline-warning .admin-dashboard-deadline-confirmation input[type="checkbox"] {
    margin-top: 0.15rem !important;
  }
}

/* ==========================================================================
   ADMIN DASHBOARD – lukkbare bekreftelsesmeldinger
   ========================================================================== */

body.admin-onepage #dashboard .admin-dashboard-flash {
  position: relative;

  width: 100%;
  max-width: none;

  padding-right: 3.25rem;

  overflow: hidden;

  transition:
    opacity 220ms ease,
    transform 220ms ease,
    max-height 240ms ease,
    margin 240ms ease,
    padding 240ms ease,
    border-width 240ms ease;
}

body.admin-onepage #dashboard .admin-dashboard-flash.is-dismissing {
  max-height: 0;

  margin-top: 0;
  margin-bottom: 0;
  padding-top: 0;
  padding-bottom: 0;

  border-width: 0;

  opacity: 0;
  transform: translateY(-0.35rem);
}

body.admin-onepage #dashboard .admin-dashboard-flash-dismiss {
  position: absolute;
  top: 50%;
  right: 0.8rem;

  width: 2rem;
  height: 2rem;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding: 0;

  border: 1px solid rgba(31,29,26,0.1);
  border-radius: 999px;

  background: rgba(255,253,249,0.52);
  color: rgba(31,29,26,0.5);

  font: inherit;
  font-family: var(--font-serif);
  font-size: 1.3rem;
  font-weight: 400;
  line-height: 1;

  cursor: pointer;

  transform: translateY(-50%);

  transition:
    color 180ms ease,
    border-color 180ms ease,
    background 180ms ease,
    transform 180ms ease;
}

body.admin-onepage #dashboard .admin-dashboard-flash-dismiss:hover {
  border-color: rgba(205,179,138,0.62);
  background: rgba(255,253,249,0.9);
  color: var(--ink);
  transform: translateY(-50%) rotate(4deg) scale(1.04);
}

body.admin-onepage #dashboard .admin-dashboard-flash-dismiss:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(205,179,138,0.15);
}

@media (max-width: 780px) {
  body.admin-onepage #dashboard .admin-dashboard-flash {
    padding-right: 3rem;
  }

  body.admin-onepage #dashboard .admin-dashboard-flash-dismiss {
    right: 0.65rem;
  }
}

/* ==========================================================================
   ADMIN DASHBOARD – AJAX-lagring og synlig bekreftelse uten sidelasting
   ========================================================================== */

body.admin-onepage .admin-dashboard-setting-form.is-saving {
  opacity: 0.72;
}

body.admin-onepage .admin-dashboard-setting-form.is-saving button[type="submit"] {
  cursor: wait;
}

body.admin-onepage .admin-dashboard-setting-form.is-saved {
  animation: adminDashboardSettingSaved 680ms ease;
}

@keyframes adminDashboardSettingSaved {
  0% {
    background: rgba(205,179,138,0.16);
  }

  100% {
    background: transparent;
  }
}

body.admin-onepage .admin-dashboard-live-flash-region {
  position: fixed;
  z-index: 120;

  top: calc(var(--admin-utility-height) + var(--admin-header-height) + 1rem);
  right: clamp(1rem, 3vw, 2rem);

  width: min(calc(100vw - 2rem), 30rem);

  pointer-events: none;
}

body.admin-onepage .admin-dashboard-live-flash {
  position: relative;

  width: 100%;
  max-width: none;

  margin: 0;
  padding: 1rem 3.25rem 1rem 1.1rem;

  border-radius: 1rem;

  pointer-events: auto;

  box-shadow:
    0 18px 46px rgba(31,29,26,0.14),
    inset 0 1px 0 rgba(255,255,255,0.72);

  animation: adminDashboardFlashIn 320ms cubic-bezier(.22,1,.36,1) both;
}

body.admin-onepage .admin-dashboard-live-flash.is-dismissing {
  animation: adminDashboardFlashOut 220ms ease both;
}

@keyframes adminDashboardFlashIn {
  from {
    opacity: 0;
    transform: translateY(-0.75rem) scale(0.98);
  }

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

@keyframes adminDashboardFlashOut {
  to {
    opacity: 0;
    transform: translateY(-0.5rem) scale(0.98);
  }
}

body.admin-onepage .admin-dashboard-live-flash .admin-dashboard-flash-dismiss {
  right: 0.75rem;
}

@media (max-width: 780px) {
  body.admin-onepage .admin-dashboard-live-flash-region {
    top: calc(var(--admin-utility-height) + var(--admin-header-height) + 0.65rem);
    right: 0.75rem;
    left: 0.75rem;

    width: auto;
  }
}
/* ==========================================================================
   Dashboard toppkort – sammenhengende gradient
   ========================================================================== */

body.admin-onepage #dashboard .admin-dashboard-hero {
  background:
    radial-gradient(
      circle at 18% 50%,
      rgba(205,179,138,0.18),
      rgba(205,179,138,0.055) 34%,
      transparent 68%
    ),
    linear-gradient(
      135deg,
      rgba(255,255,255,0.94),
      rgba(255,253,249,0.68)
    );
}

/* Fjerner det harde fargeskillet mellom kolonnene */
body.admin-onepage #dashboard .admin-dashboard-hero::after {
  display: none !important;
}
/* ==========================================================================
   Status – behold tittel og meny på samme plass mellom fanene
   ========================================================================== */

/*
  Andre adminseksjoner kan fortsatt være vertikalt sentrert.
  Bare Status forankres øverst i sitt tilgjengelige område.
*/
body.admin-onepage #kpi.admin-status-section {
  place-items: start center !important;
  align-content: start !important;
}

/* Sørger for at hele Status-innholdet starter på samme høyde hver gang */
body.admin-onepage #kpi.admin-status-section > .admin-section-inner {
  align-self: start !important;
  margin-top: 0 !important;
}

/*
  Hindrer at nettleserens scroll anchoring forsøker å flytte
  visningen når et høyt panel erstattes av et kortere panel.
*/
body.admin-onepage #kpi .admin-status-panels,
body.admin-onepage #kpi .admin-status-panel {
  overflow-anchor: none;
}

/* Stabil høyde på raden med tittel og meny på desktop */
@media (min-width: 981px) {
  body.admin-onepage #kpi .admin-status-titlebar-with-tabs {
    min-height: 7.5rem;
  }
}

/* På mindre skjermer står menyen under tittelen og trenger naturlig høyde */
@media (max-width: 980px) {
  body.admin-onepage #kpi .admin-status-titlebar-with-tabs {
    min-height: 0;
  }
}

/* ==========================================================================
   Admin – mindre seksjonsnummer og seksjonstittel
   ========================================================================== */

body.admin-onepage .admin-full-section .admin-titlebar .section-number {
  font-size: 0.68rem;
  line-height: 1;
  letter-spacing: 0.2em;
}

body.admin-onepage .admin-full-section .admin-titlebar h2,
body.admin-onepage .admin-full-section .admin-titlebar h2.tittel {
  font-size: clamp(3rem, 4.5vw, 4.8rem);
  line-height: 0.96;
  letter-spacing: -0.035em;
}

/* Mobil */
@media (max-width: 780px) {
  body.admin-onepage .admin-full-section .admin-titlebar .section-number {
    font-size: 0.6rem;
    letter-spacing: 0.18em;
  }

  body.admin-onepage .admin-full-section .admin-titlebar h2,
  body.admin-onepage .admin-full-section .admin-titlebar h2.tittel {
    font-size: clamp(2.35rem, 10vw, 3.25rem);
    line-height: 1;
  }
}

/* ==========================================================================
   Admin Status – tre matkort med stabil intern scrolling
   ========================================================================== */

body.admin-onepage #kpi .admin-status-review-list {
  display: grid;
  grid-auto-rows: max-content;
  align-content: start;
  gap: 0.75rem;

  box-sizing: border-box;

  overflow-y: auto !important;
  overflow-x: hidden !important;

  padding-right: 0.55rem;
  padding-bottom: 0;

  scrollbar-gutter: stable;
  overscroll-behavior: contain;

  mask-image: none !important;
  -webkit-mask-image: none !important;
}

body.admin-onepage #kpi .admin-status-review-card {
  width: 100%;
  height: auto !important;
  min-height: 0 !important;
  align-self: start;

  box-sizing: border-box;
}

body.admin-onepage #kpi .admin-status-review-card > p {
  display: -webkit-box !important;
  visibility: visible !important;
  opacity: 1 !important;

  margin: 0;
  max-height: none !important;

  color: rgba(31, 29, 26, 0.6);

  font-size: 0.88rem;
  line-height: 1.55;

  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;

  overflow: hidden;
}

/* Firefox */
body.admin-onepage #kpi .admin-status-review-list {
  scrollbar-width: thin;
  scrollbar-color:
    rgba(205, 179, 138, 0.72)
    transparent;
}

/* Chrome, Edge og Safari */
body.admin-onepage #kpi
.admin-status-review-list::-webkit-scrollbar {
  width: 0.42rem;
}

body.admin-onepage #kpi
.admin-status-review-list::-webkit-scrollbar-track {
  background: transparent;
}

body.admin-onepage #kpi
.admin-status-review-list::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(205, 179, 138, 0.72);
}

body.admin-onepage #kpi
.admin-status-review-list::-webkit-scrollbar-thumb:hover {
  background: rgba(168, 143, 104, 0.82);
}

/* Status – samme labelfarge som på Dashboard */
body.admin-onepage #kpi .admin-status-label {
  color: rgba(168, 143, 104, 0.92) !important;
}

/* ==========================================================================
   Dashboard – mer raffinert, men diskret innstillingspanel
   ========================================================================== */

body.admin-onepage #dashboard .admin-dashboard-settings {
  position: relative;

  width: 100%;
  margin-top: clamp(1.25rem, 2.5vw, 1.8rem);

  border: 1px solid rgba(31, 29, 26, 0.075);
  border-radius: 1.25rem;

  background:
    linear-gradient(
      135deg,
      rgba(255, 255, 255, 0.78),
      rgba(255, 253, 249, 0.52)
    );

  box-shadow:
    0 10px 30px rgba(31, 29, 26, 0.028),
    inset 0 1px 0 rgba(255, 255, 255, 0.78);

  overflow: hidden;

  transition:
    border-color 320ms ease,
    background 320ms ease,
    box-shadow 320ms ease,
    transform 320ms cubic-bezier(.22, 1, .36, 1);
}

/* Diskré champagneglød langs toppen */
body.admin-onepage #dashboard .admin-dashboard-settings::before {
  content: "";

  position: absolute;
  z-index: 1;

  top: 0;
  left: 8%;
  right: 8%;

  height: 1px;

  background:
    linear-gradient(
      90deg,
      rgba(205, 179, 138, 0),
      rgba(205, 179, 138, 0.58),
      rgba(205, 179, 138, 0)
    );

  opacity: 0.48;

  transition:
    left 420ms cubic-bezier(.22, 1, .36, 1),
    right 420ms cubic-bezier(.22, 1, .36, 1),
    opacity 320ms ease;
}

/* Litt mer dybde når panelet er åpent */
body.admin-onepage #dashboard .admin-dashboard-settings.is-open {
  border-color: rgba(205, 179, 138, 0.24);

  background:
    radial-gradient(
      circle at 92% 8%,
      rgba(205, 179, 138, 0.095),
      transparent 16rem
    ),
    linear-gradient(
      135deg,
      rgba(255, 255, 255, 0.92),
      rgba(255, 253, 249, 0.66)
    );

  box-shadow:
    0 16px 40px rgba(31, 29, 26, 0.045),
    inset 0 1px 0 rgba(255, 255, 255, 0.84);
}

body.admin-onepage #dashboard
.admin-dashboard-settings.is-open::before {
  left: 3%;
  right: 3%;
  opacity: 0.82;
}

/* Åpne-/lukkeknappen */
body.admin-onepage #dashboard
.admin-dashboard-settings-toggle {
  position: relative;
  z-index: 2;

  width: 100%;

  padding: 1rem 1.1rem;

  border: 0;
  border-radius: 0;

  background: transparent;

  text-align: left;
  cursor: pointer;

  transition:
    background 260ms ease,
    padding 320ms cubic-bezier(.22, 1, .36, 1);
}

body.admin-onepage #dashboard
.admin-dashboard-settings-toggle:hover {
  background:
    linear-gradient(
      90deg,
      rgba(205, 179, 138, 0.035),
      rgba(205, 179, 138, 0.075),
      rgba(205, 179, 138, 0.025)
    );
}

body.admin-onepage #dashboard
.admin-dashboard-settings.is-open
.admin-dashboard-settings-toggle {
  padding-bottom: 0.9rem;
}

/* Liten champagneprikk før tittelen */
body.admin-onepage #dashboard
.admin-dashboard-settings-toggle-copy strong {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

body.admin-onepage #dashboard
.admin-dashboard-settings-toggle-copy strong::before {
  content: "";

  flex: 0 0 auto;

  width: 0.42rem;
  height: 0.42rem;

  border-radius: 50%;

  background: rgba(205, 179, 138, 0.88);

  box-shadow:
    0 0 0 4px rgba(205, 179, 138, 0.1);

  transition:
    transform 320ms cubic-bezier(.22, 1, .36, 1),
    box-shadow 320ms ease;
}

body.admin-onepage #dashboard
.admin-dashboard-settings.is-open
.admin-dashboard-settings-toggle-copy strong::before {
  transform: scale(1.08);

  box-shadow:
    0 0 0 6px rgba(205, 179, 138, 0.1);
}

/* Plussikon */
body.admin-onepage #dashboard
.admin-dashboard-settings-toggle-icon {
  border-color: rgba(205, 179, 138, 0.26);

  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.9),
      rgba(255, 253, 249, 0.64)
    );

  box-shadow:
    0 6px 18px rgba(31, 29, 26, 0.035),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

body.admin-onepage #dashboard
.admin-dashboard-settings-toggle:hover
.admin-dashboard-settings-toggle-icon {
  border-color: rgba(205, 179, 138, 0.58);

  box-shadow:
    0 8px 22px rgba(31, 29, 26, 0.05),
    0 0 0 4px rgba(205, 179, 138, 0.07),
    inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

/* Luft rundt innholdet når panelet åpnes */
body.admin-onepage #dashboard
.admin-dashboard-settings-list {
  padding: 0.35rem 0.9rem 0.85rem;

  border-top: 1px solid rgba(205, 179, 138, 0.15);
}

/* De enkelte innstillingsradene */
body.admin-onepage #dashboard
.admin-dashboard-setting-row {
  position: relative;

  margin: 0.35rem 0;
  padding: 0.9rem 0.85rem;

  border: 1px solid transparent;
  border-radius: 0.95rem;

  background: rgba(255, 255, 255, 0.22);

  transition:
    border-color 240ms ease,
    background 240ms ease,
    box-shadow 240ms ease,
    transform 240ms cubic-bezier(.22, 1, .36, 1);
}

body.admin-onepage #dashboard
.admin-dashboard-setting-row:last-child {
  border-bottom: 1px solid transparent;
}

body.admin-onepage #dashboard
.admin-dashboard-setting-row:hover {
  border-color: rgba(205, 179, 138, 0.18);

  background:
    linear-gradient(
      135deg,
      rgba(255, 255, 255, 0.72),
      rgba(255, 253, 249, 0.48)
    );

  box-shadow:
    0 8px 22px rgba(31, 29, 26, 0.025),
    inset 0 1px 0 rgba(255, 255, 255, 0.72);

  transform: translateY(-1px);
}

/* Diskré markering mens en rad lagres */
body.admin-onepage #dashboard
.admin-dashboard-setting-row.is-saving {
  opacity: 0.68;
  transform: none;
}

/* Myk champagnebekreftelse etter lagring */
body.admin-onepage #dashboard
.admin-dashboard-setting-row.is-saved {
  animation: admin-setting-saved 720ms ease;
}

@keyframes admin-setting-saved {
  0% {
    border-color: transparent;
    background: rgba(255, 255, 255, 0.22);
  }

  35% {
    border-color: rgba(205, 179, 138, 0.48);
    background: rgba(205, 179, 138, 0.1);
  }

  100% {
    border-color: transparent;
    background: rgba(255, 255, 255, 0.22);
  }
}

/* Litt roligere kontroller */
body.admin-onepage #dashboard
.admin-dashboard-setting-controls input[type="number"],
body.admin-onepage #dashboard
.admin-dashboard-setting-controls input[type="date"] {
  border-color: rgba(31, 29, 26, 0.09);

  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.92),
      rgba(255, 253, 249, 0.7)
    );

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.82);
}

body.admin-onepage #dashboard
.admin-dashboard-setting-controls button {
  border-color: rgba(205, 179, 138, 0.3);

  background:
    linear-gradient(
      180deg,
      rgba(255, 253, 249, 0.9),
      rgba(255, 253, 249, 0.62)
    );

  color: rgba(31, 29, 26, 0.68);

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.84);
}

body.admin-onepage #dashboard
.admin-dashboard-setting-controls button:hover {
  border-color: rgba(205, 179, 138, 0.62);

  background: white;
  color: var(--ink);

  transform: translateY(-1px);

  box-shadow:
    0 7px 18px rgba(31, 29, 26, 0.045),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

/* Mobil */
@media (max-width: 780px) {
  body.admin-onepage #dashboard
  .admin-dashboard-settings-toggle {
    padding: 0.95rem;
  }

  body.admin-onepage #dashboard
  .admin-dashboard-settings-list {
    padding: 0.25rem 0.65rem 0.7rem;
  }

  body.admin-onepage #dashboard
  .admin-dashboard-setting-row {
    padding: 0.9rem 0.75rem;
  }
}

/* Redusert bevegelse */
@media (prefers-reduced-motion: reduce) {
  body.admin-onepage #dashboard .admin-dashboard-settings,
  body.admin-onepage #dashboard .admin-dashboard-settings *,
  body.admin-onepage #dashboard
  .admin-dashboard-setting-row {
    transition: none !important;
    animation: none !important;
  }
}
/* ==========================================================================
   Dashboard-innstillinger – juster Antall og Dato på samme venstrekant
   ========================================================================== */

@media (min-width: 781px) {
  body.admin-onepage #dashboard .admin-dashboard-setting-controls {
    display: grid !important;
    grid-template-columns: 10.5rem auto;
    align-items: end;
    justify-content: end;
    gap: 0.55rem;
  }

  body.admin-onepage #dashboard
  .admin-dashboard-setting-controls > label {
    width: 10.5rem;
    min-width: 10.5rem;
  }

  body.admin-onepage #dashboard
  .admin-dashboard-setting-controls input[type="number"] {
    justify-self: start;
    width: 5.6rem;
  }

  body.admin-onepage #dashboard
  .admin-dashboard-setting-controls input[type="date"] {
    justify-self: start;
    width: 10.5rem;
  }

  body.admin-onepage #dashboard
  .admin-dashboard-setting-controls button {
    justify-self: end;
  }
}

/* ==========================================================================
   Status – raffinert fanemeny i samme stil som resten av adminpanelet
   ========================================================================== */

body.admin-onepage #kpi .admin-status-tabs {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.22rem;

  width: fit-content;
  max-width: 100%;

  padding: 0.3rem;

  border: 1px solid rgba(205, 179, 138, 0.24);
  border-radius: 999px;

  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.88),
      rgba(255, 253, 249, 0.62)
    );

  box-shadow:
    0 8px 24px rgba(31, 29, 26, 0.035),
    inset 0 1px 0 rgba(255, 255, 255, 0.86);
}

body.admin-onepage #kpi .admin-status-tabs button {
  position: relative;

  flex: 0 0 auto;

  min-height: 2.45rem;

  padding: 0.72rem 1rem;

  border: 1px solid transparent;
  border-radius: 999px;

  background: transparent;
  color: rgba(31, 29, 26, 0.5);

  font: inherit;
  font-size: 0.66rem;
  font-weight: 750;
  letter-spacing: 0.13em;
  line-height: 1;
  text-transform: uppercase;

  cursor: pointer;

  box-shadow: none;

  transition:
    color 220ms ease,
    border-color 220ms ease,
    background 220ms ease,
    box-shadow 220ms ease,
    transform 220ms cubic-bezier(.22, 1, .36, 1);
}

/* Hover på faner som ikke er valgt */
body.admin-onepage #kpi
.admin-status-tabs button:not(.active):hover {
  border-color: rgba(205, 179, 138, 0.16);

  background: rgba(205, 179, 138, 0.075);

  color: rgba(31, 29, 26, 0.82);

  transform: translateY(-1px);
}

/* Aktiv fane */
body.admin-onepage #kpi .admin-status-tabs button.active {
  border-color: rgba(205, 179, 138, 0.38);

  background:
    radial-gradient(
      circle at 20% 20%,
      rgba(205, 179, 138, 0.16),
      transparent 5rem
    ),
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.98),
      rgba(255, 253, 249, 0.78)
    );

  color: rgba(31, 29, 26, 0.84);

  box-shadow:
    0 7px 18px rgba(31, 29, 26, 0.05),
    inset 0 1px 0 rgba(255, 255, 255, 0.92),
    inset 0 -2px 0 rgba(205, 179, 138, 0.34);

  transform: none;
}

/* Tydelig tastaturfokus */
body.admin-onepage #kpi .admin-status-tabs button:focus-visible {
  outline: none;

  border-color: rgba(168, 143, 104, 0.72);

  box-shadow:
    0 0 0 4px rgba(205, 179, 138, 0.14),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

/* Tablet: fordel knappene jevnt over bredden */
@media (min-width: 781px) and (max-width: 980px) {
  body.admin-onepage #kpi .admin-status-tabs-inline {
    width: 100%;
  }

  body.admin-onepage #kpi .admin-status-tabs button {
    flex: 1 1 0;
    padding-left: 0.65rem;
    padding-right: 0.65rem;
  }
}

/*
  Mobil: behold menyen på én horisontal linje.
  Den kan scrolles sidelengs i stedet for å bli fem store rader.
*/
@media (max-width: 780px) {
  body.admin-onepage #kpi .admin-status-tabs,
  body.admin-onepage #kpi .admin-status-tabs-inline {
    display: flex !important;
    flex-wrap: nowrap !important;

    width: 100%;
    max-width: 100%;

    overflow-x: auto;
    overflow-y: hidden;

    border-radius: 1.1rem;

    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  body.admin-onepage #kpi .admin-status-tabs::-webkit-scrollbar {
    display: none;
  }

  body.admin-onepage #kpi .admin-status-tabs button {
    flex: 0 0 auto;

    width: auto;

    min-height: 2.55rem;

    padding-left: 0.9rem;
    padding-right: 0.9rem;
  }
}

/* ==========================================================================
   Status / Mat – lest og fulgt opp
   ========================================================================== */

/* Forhindrer at display-regler overstyrer HTML-attributtet hidden. */
body.admin-onepage #dashboard [data-dashboard-followup-grid][hidden],
body.admin-onepage #dashboard [data-dashboard-followup-empty][hidden],
body.admin-onepage #dashboard [data-dashboard-followup-area-count][hidden],
body.admin-onepage #kpi [data-dietary-review-empty][hidden] {
  display: none !important;
}

body.admin-onepage #kpi .admin-status-review-card {
  transition:
    opacity 240ms ease,
    transform 240ms cubic-bezier(.22, 1, .36, 1),
    border-color 220ms ease,
    background 220ms ease,
    box-shadow 220ms ease;
}

body.admin-onepage #kpi .admin-status-review-card:hover {
  border-color: rgba(205, 179, 138, 0.42);
  background:
    linear-gradient(
      180deg,
      rgba(255, 253, 249, 0.98),
      rgba(255, 253, 249, 0.72)
    );
  box-shadow:
    0 12px 28px rgba(31, 29, 26, 0.055),
    inset 0 1px 0 rgba(255, 255, 255, 0.78);
}

body.admin-onepage #kpi .admin-status-review-link {
  flex-shrink: 0;

  color: rgba(168, 143, 104, 0.92);

  font-size: 0.62rem;
  font-style: normal;
  font-weight: 800;
  letter-spacing: 0.14em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;

  opacity: 0.76;

  transition:
    opacity 220ms ease,
    transform 220ms ease;
}

body.admin-onepage #kpi .admin-status-review-link:hover {
  opacity: 1;
  transform: translateX(2px);
}

body.admin-onepage #kpi .admin-status-review-form {
  display: flex;
  justify-content: flex-end;

  margin-top: 0.15rem;
  padding-top: 0.75rem;

  border-top: 1px solid rgba(31, 29, 26, 0.065);
}

body.admin-onepage #kpi .admin-status-review-done {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;

  width: auto;
  min-height: 2.15rem;
  padding: 0.48rem 0.72rem;

  border: 1px solid rgba(205, 179, 138, 0.32);
  border-radius: 999px;

  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.9),
      rgba(255, 253, 249, 0.64)
    );

  color: rgba(31, 29, 26, 0.62);

  font: inherit;
  font-size: 0.62rem;
  font-weight: 780;
  letter-spacing: 0.11em;
  line-height: 1;
  text-transform: uppercase;

  cursor: pointer;

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.88);

  transition:
    border-color 220ms ease,
    background 220ms ease,
    color 220ms ease,
    box-shadow 220ms ease,
    transform 220ms cubic-bezier(.22, 1, .36, 1);
}

body.admin-onepage #kpi .admin-status-review-done > span {
  display: inline-grid;
  place-items: center;

  width: 1rem;
  height: 1rem;

  border: 1px solid rgba(205, 179, 138, 0.55);
  border-radius: 50%;

  color: rgba(168, 143, 104, 0.95);

  font-size: 0.66rem;
  line-height: 1;
}

body.admin-onepage #kpi .admin-status-review-done:hover {
  border-color: rgba(205, 179, 138, 0.68);
  background: white;
  color: rgba(31, 29, 26, 0.86);

  transform: translateY(-1px);

  box-shadow:
    0 7px 18px rgba(31, 29, 26, 0.045),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

body.admin-onepage #kpi .admin-status-review-done:disabled {
  cursor: wait;
  opacity: 0.62;
  transform: none;
}

body.admin-onepage #kpi .admin-status-review-card.is-reviewing {
  opacity: 0.68;
}

body.admin-onepage #kpi .admin-status-review-card.is-reviewed {
  opacity: 0;
  transform: translateY(-0.35rem) scale(0.985);
  pointer-events: none;
}

body.admin-onepage #dashboard
.admin-dashboard-followup-card.is-dismissing {
  opacity: 0;
  transform: translateY(-0.35rem) scale(0.985);
  pointer-events: none;
}

@media (max-width: 780px) {
  body.admin-onepage #kpi .admin-status-review-form {
    justify-content: stretch;
  }

  body.admin-onepage #kpi .admin-status-review-done {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.admin-onepage #kpi .admin-status-review-card,
  body.admin-onepage #kpi .admin-status-review-done,
  body.admin-onepage #dashboard .admin-dashboard-followup-card {
    transition: none !important;
  }
}

/* ==========================================================================
   Status / Mat – vis alle kort når tre eller færre gjenstår
   ========================================================================== */

body.admin-onepage #kpi
.admin-status-review-list:not(.has-review-overflow) {
  height: auto !important;
  max-height: none !important;

  overflow-y: visible !important;

  padding-right: 0 !important;
}

body.admin-onepage #kpi
.admin-status-review-list.has-review-overflow {
  overflow-y: auto !important;
}

/* ==========================================================================
   Admin Status – Utvikling
   ========================================================================== */

body.admin-onepage #kpi .admin-status-development-stack {
  display: grid;
  gap: clamp(1rem, 2.4vw, 1.4rem);
}

body.admin-onepage #kpi .admin-status-development-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.85rem;
}

body.admin-onepage #kpi .admin-status-development-card {
  position: relative;
  min-width: 0;
  padding: clamp(1rem, 2.2vw, 1.35rem);
  border: 1px solid rgba(31, 29, 26, 0.075);
  border-radius: 1.15rem;
  background:
    radial-gradient(circle at 90% 8%, rgba(205, 179, 138, 0.12), transparent 7rem),
    linear-gradient(180deg, rgba(255, 255, 255, 0.82), rgba(255, 253, 249, 0.58));
  box-shadow:
    0 10px 28px rgba(31, 29, 26, 0.035),
    inset 0 1px 0 rgba(255, 255, 255, 0.78);
  overflow: hidden;
}

body.admin-onepage #kpi .admin-status-development-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 12%;
  right: 12%;
  height: 1px;
  background:
    linear-gradient(
      90deg,
      rgba(205, 179, 138, 0),
      rgba(205, 179, 138, 0.62),
      rgba(205, 179, 138, 0)
    );
}

body.admin-onepage #kpi .admin-status-development-card > strong {
  display: block;
  margin-top: 0.55rem;
  color: rgba(31, 29, 26, 0.88);
  font-family: var(--font-serif);
  font-size: clamp(2.6rem, 5vw, 4.25rem);
  font-weight: 400;
  letter-spacing: -0.055em;
  line-height: 0.92;
}

body.admin-onepage #kpi .admin-status-development-card > span {
  display: block;
  margin-top: 0.62rem;
  color: rgba(31, 29, 26, 0.68);
  font-size: 0.72rem;
  font-weight: 750;
  letter-spacing: 0.12em;
  line-height: 1.35;
  text-transform: uppercase;
}

body.admin-onepage #kpi .admin-status-development-card > small {
  display: block;
  margin-top: 0.42rem;
  color: rgba(31, 29, 26, 0.46);
  font-size: 0.76rem;
  line-height: 1.45;
}

body.admin-onepage #kpi .admin-status-development-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(17rem, 0.75fr);
  gap: 1rem;
  align-items: stretch;
}

body.admin-onepage #kpi .admin-status-development-grid > .admin-status-block {
  margin: 0;
}

body.admin-onepage #kpi .admin-status-development-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.15rem;
}

body.admin-onepage #kpi .admin-status-development-heading h3 {
  margin: 0.42rem 0 0;
}

body.admin-onepage #kpi .admin-status-development-heading > span {
  flex: 0 0 auto;
  margin-top: 0.15rem;
  color: rgba(31, 29, 26, 0.42);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

body.admin-onepage #kpi .admin-status-development-chart-scroll {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  padding-bottom: 0.2rem;
  scrollbar-width: thin;
  scrollbar-color: rgba(205, 179, 138, 0.66) transparent;
}

body.admin-onepage #kpi .admin-status-development-chart-scroll::-webkit-scrollbar {
  height: 0.38rem;
}

body.admin-onepage #kpi .admin-status-development-chart-scroll::-webkit-scrollbar-track {
  background: transparent;
}

body.admin-onepage #kpi .admin-status-development-chart-scroll::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(205, 179, 138, 0.66);
}

body.admin-onepage #kpi .admin-status-development-chart {
  display: grid;
  grid-template-columns: repeat(8, minmax(3.4rem, 1fr));
  align-items: end;
  gap: clamp(0.45rem, 1.5vw, 0.8rem);
  min-width: 34rem;
  min-height: 13rem;
  padding: 0.35rem 0.1rem 0;
}

body.admin-onepage #kpi .admin-status-development-chart article {
  display: grid;
  grid-template-rows: auto 9rem auto;
  align-items: end;
  gap: 0.42rem;
  min-width: 0;
  text-align: center;
}

body.admin-onepage #kpi .admin-status-development-chart article > strong {
  color: rgba(31, 29, 26, 0.64);
  font-family: var(--font-serif);
  font-size: 1.15rem;
  font-weight: 400;
  line-height: 1;
}

body.admin-onepage #kpi .admin-status-development-bar {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  height: 9rem;
  padding: 0 0.32rem;
  border-radius: 999px 999px 0.85rem 0.85rem;
  background:
    linear-gradient(180deg, rgba(205, 179, 138, 0.055), rgba(31, 29, 26, 0.025));
  overflow: hidden;
}

body.admin-onepage #kpi .admin-status-development-bar i {
  display: block;
  width: 100%;
  min-height: 0.42rem;
  border-radius: 999px 999px 0.62rem 0.62rem;
  background:
    linear-gradient(180deg, rgba(205, 179, 138, 0.94), rgba(168, 143, 104, 0.66));
  box-shadow:
    0 8px 18px rgba(168, 143, 104, 0.13),
    inset 0 1px 0 rgba(255, 255, 255, 0.42);
}

body.admin-onepage #kpi .admin-status-development-chart article.is-current .admin-status-development-bar {
  background:
    linear-gradient(180deg, rgba(205, 179, 138, 0.12), rgba(205, 179, 138, 0.04));
}

body.admin-onepage #kpi .admin-status-development-chart article.is-current .admin-status-development-bar i {
  background:
    linear-gradient(180deg, rgba(168, 143, 104, 0.98), rgba(132, 108, 73, 0.72));
}

body.admin-onepage #kpi .admin-status-development-chart article > span {
  color: rgba(31, 29, 26, 0.46);
  font-size: 0.62rem;
  font-weight: 720;
  letter-spacing: 0.08em;
  line-height: 1.25;
  text-transform: uppercase;
  white-space: nowrap;
}

body.admin-onepage #kpi .admin-status-development-chart article.is-current > span {
  color: rgba(168, 143, 104, 0.96);
}

body.admin-onepage #kpi .admin-status-development-now {
  display: flex;
  flex-direction: column;
}

body.admin-onepage #kpi .admin-status-development-now .admin-status-number-list {
  margin-top: 0.85rem;
}

body.admin-onepage #kpi .admin-status-development-note {
  margin: auto 0 0;
  padding-top: 1rem;
  border-top: 1px solid rgba(205, 179, 138, 0.18);
  color: rgba(31, 29, 26, 0.5);
  font-size: 0.82rem;
  line-height: 1.65;
}

@media (max-width: 1080px) {
  body.admin-onepage #kpi .admin-status-development-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.admin-onepage #kpi .admin-status-development-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 780px) {
  body.admin-onepage #kpi .admin-status-development-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
  }

  body.admin-onepage #kpi .admin-status-development-card {
    padding: 0.95rem;
    border-radius: 1rem;
  }

  body.admin-onepage #kpi .admin-status-development-card > strong {
    font-size: clamp(2.25rem, 12vw, 3.25rem);
  }

  body.admin-onepage #kpi .admin-status-development-card > span {
    font-size: 0.62rem;
    letter-spacing: 0.09em;
  }

  body.admin-onepage #kpi .admin-status-development-card > small {
    font-size: 0.7rem;
  }

  body.admin-onepage #kpi .admin-status-development-heading {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.35rem;
  }

  body.admin-onepage #kpi .admin-status-development-heading > span {
    margin: 0;
  }

  body.admin-onepage #kpi .admin-status-development-chart {
    min-width: 31rem;
    min-height: 11.5rem;
  }

  body.admin-onepage #kpi .admin-status-development-chart article {
    grid-template-rows: auto 7.8rem auto;
  }

  body.admin-onepage #kpi .admin-status-development-bar {
    height: 7.8rem;
  }
}

@media (max-width: 430px) {
  body.admin-onepage #kpi .admin-status-development-summary {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   ADMIN – brukeradministrasjon og aktivering
   ========================================================================== */

body.admin-onepage .admin-users-section {
  place-items: start center;
}

body.admin-onepage .admin-users-section .admin-section-inner-wide {
  width: min(90vw, 1200px);
  max-width: 1200px;
}

.admin-users-eyebrow {
  margin: 0;
  color: rgba(31,29,26,0.48);
  font-size: 0.66rem;
  font-weight: 750;
  letter-spacing: 0.18em;
  line-height: 1;
  text-transform: uppercase;
}

.admin-users-intro-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-bottom: 1rem;
}

.admin-users-role-card,
.admin-users-panel,
.admin-invitation-preview {
  border: 1px solid rgba(31,29,26,0.075);
  border-radius: 1.35rem;
  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,0.84),
      rgba(255,253,249,0.62)
    );
  box-shadow:
    0 12px 34px rgba(31,29,26,0.045),
    inset 0 1px 0 rgba(255,255,255,0.74);
}

.admin-users-role-card {
  padding: 1.3rem;
}

.admin-users-role-card h3,
.admin-users-panel-heading h3 {
  margin: 0.75rem 0 0;
  font-family: var(--font-serif);
  font-size: clamp(1.65rem, 3vw, 2.5rem);
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 1;
}

.admin-users-role-card p {
  margin: 0.9rem 0 0;
  color: rgba(31,29,26,0.58);
  line-height: 1.7;
}

.admin-role-badge,
.admin-user-self-badge,
.admin-user-inactive-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  border-radius: 999px;
  padding: 0.42rem 0.65rem;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1;
  text-transform: uppercase;
}

.admin-role-owner {
  border: 1px solid rgba(205,179,138,0.45);
  background: rgba(205,179,138,0.15);
  color: rgba(112,82,40,0.94);
}

.admin-role-admin {
  border: 1px solid rgba(31,29,26,0.11);
  background: rgba(31,29,26,0.055);
  color: rgba(31,29,26,0.62);
}

.admin-user-self-badge {
  margin-left: 0.35rem;
  border: 1px solid rgba(82,113,90,0.24);
  background: rgba(82,113,90,0.10);
  color: #36513d;
}

.admin-user-inactive-badge {
  margin-left: 0.35rem;
  border: 1px solid rgba(162,80,69,0.22);
  background: rgba(162,80,69,0.09);
  color: #75352e;
}

.admin-users-panel {
  margin-top: 1rem;
  padding: clamp(1.15rem, 3vw, 1.8rem);
}

.admin-users-panel-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.admin-users-panel-heading > span {
  flex-shrink: 0;
  color: rgba(31,29,26,0.45);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.admin-users-invite-form {
  display: grid;
  grid-template-columns: 1fr 1.25fr 0.85fr auto;
  align-items: end;
  gap: 0.85rem;
}

.admin-users-invite-form label,
.admin-user-fields label,
.admin-invitation-preview label {
  display: grid;
  gap: 0.45rem;
  color: rgba(31,29,26,0.52);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.admin-users-invite-form input,
.admin-users-invite-form select,
.admin-user-fields input,
.admin-user-fields select,
.admin-invitation-preview input {
  min-height: 3.15rem;
  border-radius: 0.95rem;
  background: rgba(255,253,249,0.88);
  font-size: 0.95rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}

.admin-users-invite-form .button {
  min-height: 3.15rem;
  white-space: nowrap;
}

.admin-invitation-preview {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(280px, 1.2fr);
  align-items: end;
  gap: 1rem;
  margin-bottom: 1rem;
  padding: 1.2rem;
  border-color: rgba(205,179,138,0.42);
  background: rgba(205,179,138,0.09);
}

.admin-invitation-preview > div {
  display: grid;
  gap: 0.35rem;
}

.admin-invitation-preview > div > strong {
  margin-top: 0.35rem;
  font-family: var(--font-serif);
  font-size: 1.65rem;
  font-weight: 400;
  line-height: 1;
}

.admin-invitation-preview > div > span {
  color: rgba(31,29,26,0.56);
  font-size: 0.86rem;
}

.admin-invitation-preview input {
  font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
  font-size: 0.78rem;
}

.admin-invitation-list,
.admin-user-list {
  display: grid;
  gap: 0.85rem;
}

.admin-invitation-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem;
  border: 1px solid rgba(31,29,26,0.075);
  border-radius: 1.1rem;
  background: rgba(255,253,249,0.72);
}

.admin-invitation-card.is-expired {
  border-color: rgba(155,115,71,0.2);
  background: rgba(155,115,71,0.055);
}

.admin-invitation-card > div:first-child {
  display: grid;
  gap: 0.35rem;
}

.admin-invitation-card strong {
  margin-top: 0.25rem;
  color: var(--ink);
  font-size: 1rem;
}

.admin-invitation-card span:not(.admin-role-badge),
.admin-invitation-card small {
  color: rgba(31,29,26,0.5);
}

.admin-invitation-card small {
  font-size: 0.76rem;
}

.admin-invitation-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.55rem;
  flex-wrap: wrap;
}

.admin-invitation-actions form {
  margin: 0;
}

.admin-invitation-actions .button {
  min-height: 2.55rem;
  padding: 0.7rem 0.9rem;
  font-size: 0.68rem;
}

.admin-user-card {
  display: grid;
  gap: 1rem;
  padding: 1.1rem;
  border: 1px solid rgba(31,29,26,0.075);
  border-radius: 1.2rem;
  background: rgba(255,253,249,0.72);
}

.admin-user-card.is-inactive {
  opacity: 0.76;
  background: rgba(31,29,26,0.025);
}

.admin-user-card-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.admin-user-card-heading > div {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}

.admin-user-card-heading > strong {
  color: rgba(31,29,26,0.58);
  font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
  font-size: 0.78rem;
  font-weight: 600;
}

.admin-user-fields {
  display: grid;
  grid-template-columns: 1fr 1.25fr 0.8fr 0.8fr;
  gap: 0.8rem;
}

.admin-user-fields select:disabled {
  cursor: not-allowed;
  opacity: 0.68;
}

.admin-user-meta {
  display: flex;
  align-items: center;
  gap: 1rem 1.5rem;
  flex-wrap: wrap;
  color: rgba(31,29,26,0.44);
  font-size: 0.76rem;
}

.admin-user-meta strong {
  color: rgba(31,29,26,0.66);
  font-weight: 650;
}

.admin-user-card-actions {
  display: flex;
  justify-content: flex-end;
}

.admin-user-card-actions .button {
  min-height: 2.75rem;
  padding: 0.75rem 1rem;
  font-size: 0.7rem;
}

.admin-dashboard-admin-users-row .admin-dashboard-setting-controls .button {
  min-height: 2.6rem;
  padding: 0.7rem 1rem;
  font-size: 0.68rem;
}

/* Offentlig aktiveringsside */

.admin-activation-message {
  display: grid;
  justify-items: center;
  width: min(100%, 620px);
  padding: clamp(1.4rem, 4vw, 2.3rem);
  border: 1px solid rgba(31,29,26,0.075);
  border-radius: 1.35rem;
  background: rgba(255,253,249,0.76);
  text-align: center;
}

.admin-activation-message h1 {
  margin: 0.8rem 0 0;
  font-family: var(--font-serif);
  font-size: clamp(2.6rem, 8vw, 4.7rem);
  font-weight: 400;
  letter-spacing: -0.05em;
  line-height: 0.98;
}

.admin-activation-message p:not(.section-number) {
  max-width: 34rem;
  margin: 1.1rem 0 1.4rem;
  color: rgba(31,29,26,0.6);
}

.admin-activation-invitee {
  display: grid;
  gap: 0.35rem;
  margin-bottom: 0.7rem;
  padding: 0.95rem 1rem;
  border: 1px solid rgba(205,179,138,0.34);
  border-radius: 1rem;
  background: rgba(205,179,138,0.08);
}

.admin-activation-invitee strong {
  font-family: var(--font-serif);
  font-size: 1.45rem;
  font-weight: 400;
  line-height: 1;
}

.admin-activation-invitee span,
.admin-activation-invitee small {
  color: rgba(31,29,26,0.54);
  font-size: 0.82rem;
}

@media (max-width: 1050px) {
  .admin-users-invite-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

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

@media (max-width: 780px) {
  .admin-users-intro-grid,
  .admin-users-invite-form,
  .admin-user-fields,
  .admin-invitation-preview {
    grid-template-columns: 1fr;
  }

  .admin-users-panel-heading,
  .admin-user-card-heading,
  .admin-invitation-card {
    align-items: stretch;
    flex-direction: column;
  }

  .admin-invitation-actions,
  .admin-user-card-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .admin-invitation-actions form,
  .admin-invitation-actions .button,
  .admin-user-card-actions .button,
  .admin-users-invite-form .button {
    width: 100%;
  }

  .admin-user-card-heading > strong {
    margin-top: 0.55rem;
  }
}

/* ==========================================================================
   ADMIN – tydelig identitet, funksjon og tilgang
   ========================================================================== */

.admin-users-invite-form {
  grid-template-columns:
    minmax(150px, 0.9fr)
    minmax(210px, 1.25fr)
    minmax(150px, 0.9fr)
    minmax(210px, 1.1fr)
    auto;
}

.admin-user-fields {
  grid-template-columns:
    minmax(150px, 0.9fr)
    minmax(210px, 1.25fr)
    minmax(150px, 0.9fr)
    minmax(210px, 1.1fr)
    minmax(125px, 0.7fr);
}

.admin-user-card-heading > strong {
  color: var(--ink);
  font-family: var(--font-serif);
  font-size: 1.45rem;
  font-weight: 400;
  letter-spacing: -0.025em;
  line-height: 1;
}

.admin-users-email-warning {
  margin: 0 0 1rem;
}

@media (max-width: 1180px) {
  .admin-users-invite-form,
  .admin-user-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-users-invite-form .button {
    width: 100%;
  }
}

@media (max-width: 780px) {
  .admin-users-invite-form,
  .admin-user-fields {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   ADMIN USERS – visuell oppgradering og dropdowns som gjestelistefilteret
   ========================================================================== */

/* Samme gulltone og typografi som eyebrow/kicker på dashboardet. */
body.admin-onepage .admin-users-eyebrow {
  color: rgba(168,143,104,0.92);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.2em;
  line-height: 1.2;
}

/* Et roligere, mer gjennomarbeidet brukerkort. */
body.admin-onepage .admin-user-card {
  position: relative;
  z-index: 0;

  gap: 1.15rem;
  padding: clamp(1.15rem, 2.4vw, 1.45rem);

  border-color: rgba(31,29,26,0.075);
  border-radius: 1.3rem;

  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,0.86),
      rgba(255,253,249,0.58)
    );

  box-shadow:
    0 14px 34px rgba(31,29,26,0.045),
    inset 0 1px 0 rgba(255,255,255,0.76);

  transition:
    border-color 220ms ease,
    box-shadow 260ms ease,
    transform 260ms cubic-bezier(.22,1,.36,1),
    opacity 220ms ease;
}

body.admin-onepage .admin-user-card::before {
  content: "";

  position: absolute;
  left: 0;
  top: 1.15rem;
  bottom: 1.15rem;

  width: 1px;

  background:
    linear-gradient(
      180deg,
      rgba(205,179,138,0),
      rgba(205,179,138,0.56) 22%,
      rgba(205,179,138,0.56) 78%,
      rgba(205,179,138,0)
    );

  pointer-events: none;
}

body.admin-onepage .admin-user-card.is-inactive {
  opacity: 0.72;

  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,0.62),
      rgba(31,29,26,0.025)
    );
}

/* Rollemerker først, deretter navn rett under. */
body.admin-onepage .admin-user-card-heading {
  display: block;

  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(31,29,26,0.07);
}

body.admin-onepage .admin-user-card-identity {
  display: grid;
  gap: 0.58rem;
}

body.admin-onepage .admin-user-card-badges {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.22rem;
}

body.admin-onepage .admin-user-card-badges .admin-user-self-badge,
body.admin-onepage .admin-user-card-badges .admin-user-inactive-badge {
  margin-left: 0;
}

body.admin-onepage .admin-user-card-identity > strong {
  color: rgba(31,29,26,0.9);

  font-family: var(--font-serif);
  font-size: clamp(1.55rem, 3vw, 2rem);
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 1;
}

/* Litt bedre oppdeling mellom skjema, metadata og handling. */
body.admin-onepage .admin-user-fields {
  row-gap: 1rem;
}

body.admin-onepage .admin-user-meta {
  padding-top: 0.95rem;
  border-top: 1px solid rgba(31,29,26,0.065);
}

body.admin-onepage .admin-user-card-actions {
  padding-top: 0.1rem;
}

/* Progressiv enhancement: original select beholdes for innsending og fallback. */
body.admin-onepage .admin-users-dropdown {
  position: relative;
  width: 100%;
}

body.admin-onepage .admin-users-dropdown.is-open {
  z-index: 40;
}

body.admin-onepage .admin-users-select.is-enhanced {
  position: absolute;
  left: 0;
  bottom: 0;

  width: 1px;
  height: 1px;

  padding: 0;
  border: 0;

  opacity: 0;
  pointer-events: none;
}

/* Samme kontroll som gjestelistefilteret. */
body.admin-onepage .admin-users-dropdown .admin-filter-toggle {
  min-height: 3.15rem;

  border-color: rgba(31,29,26,0.095);
  border-radius: 0.95rem;

  background:
    linear-gradient(
      180deg,
      rgba(255,253,249,0.98),
      rgba(255,253,249,0.74)
    );

  color: rgba(31,29,26,0.72);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-align: left;

  box-shadow:
    0 8px 22px rgba(31,29,26,0.035),
    inset 0 1px 0 rgba(255,255,255,0.72);
}

body.admin-onepage .admin-users-dropdown .admin-filter-toggle:hover:not(:disabled) {
  border-color: rgba(31,29,26,0.18);

  box-shadow:
    0 10px 26px rgba(31,29,26,0.05),
    inset 0 1px 0 rgba(255,255,255,0.78);
}

body.admin-onepage .admin-users-dropdown .admin-filter-toggle:focus-visible {
  outline: none;
  border-color: rgba(205,179,138,0.75);

  box-shadow:
    0 0 0 4px rgba(205,179,138,0.11),
    0 12px 28px rgba(31,29,26,0.055),
    inset 0 1px 0 rgba(255,255,255,0.8);
}

body.admin-onepage .admin-users-dropdown .admin-filter-toggle:disabled {
  cursor: not-allowed;
  opacity: 0.68;
}

body.admin-onepage .admin-users-dropdown .admin-filter-menu {
  left: 0;
  right: auto;

  width: max-content;
  min-width: 100%;
  max-width: min(27rem, calc(100vw - 2rem));

  border-color: rgba(31,29,26,0.08);
  background: rgba(255,253,249,0.98);

  box-shadow:
    0 20px 48px rgba(31,29,26,0.13),
    inset 0 1px 0 rgba(255,255,255,0.78);
}

body.admin-onepage .admin-users-dropdown .admin-filter-menu button {
  min-width: 100%;
  white-space: nowrap;
  color: rgba(31,29,26,0.62);
}

body.admin-onepage .admin-users-dropdown .admin-filter-menu button:hover,
body.admin-onepage .admin-users-dropdown .admin-filter-menu button:focus-visible,
body.admin-onepage .admin-users-dropdown .admin-filter-menu button.active {
  outline: none;
  background: rgba(205,179,138,0.12);
  color: var(--ink);
}

@media (max-width: 780px) {
  body.admin-onepage .admin-user-card {
    padding: 1.1rem 1rem 1.2rem;
  }

  body.admin-onepage .admin-user-card-heading {
    padding-bottom: 0.95rem;
  }

  body.admin-onepage .admin-users-dropdown .admin-filter-menu {
    width: 100%;
    min-width: 100%;
    max-width: 100%;
  }

  body.admin-onepage .admin-users-dropdown .admin-filter-menu button {
    white-space: normal;
  }
}

/* Select-feltene bruker div i stedet for label, slik at custom-knappen er gyldig HTML. */
body.admin-onepage .admin-users-select-field {
  display: grid;
  gap: 0.45rem;

  min-width: 0;

  color: rgba(31,29,26,0.52);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

body.admin-onepage .admin-users-field-label {
  display: block;
}

body.admin-onepage .admin-users-select.is-enhanced {
  min-height: 0 !important;
}

/* Åpen meny skal alltid ligge over kortet under. */
body.admin-onepage .admin-user-card:has(.admin-users-dropdown.is-open),
body.admin-onepage .admin-users-panel:has(.admin-users-dropdown.is-open) {
  position: relative;
  z-index: 50;
}

/* ==========================================================================
   Adminbrukere – navn til venstre, rollemerker helt til høyre
   ========================================================================== */

body.admin-onepage .admin-user-card-identity {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;

  width: 100%;
  min-width: 0;
}

body.admin-onepage .admin-user-card-identity > strong {
  grid-column: 1;
  grid-row: 1;

  margin: 0;
  min-width: 0;
}

body.admin-onepage .admin-user-card-badges {
  grid-column: 2;
  grid-row: 1;

  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 0.38rem;

  margin-left: auto;
}

/* Mobil – legg merkene rolig under navnet */
@media (max-width: 780px) {
  body.admin-onepage .admin-user-card-identity {
    grid-template-columns: 1fr;
    gap: 0.7rem;
  }

  body.admin-onepage .admin-user-card-identity > strong,
  body.admin-onepage .admin-user-card-badges {
    grid-column: 1;
  }

  body.admin-onepage .admin-user-card-identity > strong {
    grid-row: 1;
  }

  body.admin-onepage .admin-user-card-badges {
    grid-row: 2;

    justify-content: flex-start;
    margin-left: 0;
  }
}

/* ==========================================================================
   Admin Users – dropdown for Funksjon
   ========================================================================== */

body.admin-onepage .admin-function-dropdown {
  position: relative;
  width: 100%;
  min-width: 0;
}

body.admin-onepage .admin-function-dropdown.is-open {
  z-index: 45;
}

/* Plass til pilknappen på høyre side */
body.admin-onepage .admin-function-input {
  padding-right: 3.5rem;
}

/* Egen pilknapp */
body.admin-onepage .admin-function-toggle {
  position: absolute;
  z-index: 2;

  top: 50%;
  right: 0.42rem;

  width: 2.35rem;
  height: 2.35rem;

  display: grid;
  place-items: center;

  border: 0;
  border-radius: 999px;

  padding: 0;

  background: transparent;
  color: rgba(31,29,26,0.58);

  cursor: pointer;

  transform: translateY(-50%);

  transition:
    color 220ms ease,
    background 220ms ease,
    transform 220ms ease;
}

body.admin-onepage .admin-function-toggle:hover {
  background: rgba(31,29,26,0.05);
  color: var(--ink);
}

body.admin-onepage .admin-function-toggle:focus-visible {
  outline: none;

  background: rgba(205,179,138,0.12);

  box-shadow:
    0 0 0 3px rgba(205,179,138,0.12);
}

/* Dropdown-pil */
body.admin-onepage .admin-function-toggle::before {
  content: "";

  width: 0.44rem;
  height: 0.44rem;

  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;

  transform:
    rotate(45deg)
    translate(-1px, -1px);

  transition: transform 220ms ease;
}

body.admin-onepage
.admin-function-dropdown.is-open
.admin-function-toggle::before {
  transform:
    rotate(225deg)
    translate(-1px, -1px);
}

/* Samme menyuttrykk som gjestelistefilteret */
body.admin-onepage .admin-function-menu {
  left: 0;
  right: auto;

  width: 100%;
  min-width: 100%;
  max-width: min(27rem, calc(100vw - 2rem));

  border-color: rgba(31,29,26,0.08);

  background: rgba(255,253,249,0.98);

  box-shadow:
    0 20px 48px rgba(31,29,26,0.13),
    inset 0 1px 0 rgba(255,255,255,0.78);
}

body.admin-onepage .admin-function-menu button {
  min-width: 100%;

  color: rgba(31,29,26,0.62);

  white-space: nowrap;
}

body.admin-onepage .admin-function-menu button:hover,
body.admin-onepage .admin-function-menu button:focus-visible,
body.admin-onepage .admin-function-menu button.active {
  outline: none;

  background: rgba(205,179,138,0.12);
  color: var(--ink);
}

/* Tekst når ingen faste forslag matcher */
body.admin-onepage .admin-function-empty {
  padding: 0.8rem 0.85rem;

  color: rgba(31,29,26,0.46);

  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  line-height: 1.55;
  text-transform: none;
}

/* Sørger for at menyen ligger over kortet under */
body.admin-onepage
.admin-user-card:has(.admin-function-dropdown.is-open),
body.admin-onepage
.admin-users-panel:has(.admin-function-dropdown.is-open) {
  position: relative;
  z-index: 55;
}

@media (max-width: 780px) {
  body.admin-onepage .admin-function-menu {
    width: 100%;
    min-width: 100%;
    max-width: 100%;
  }

  body.admin-onepage .admin-function-menu button {
    white-space: normal;
  }
}
/* ==========================================================================
   Endringslogg – bryt lange tekster i Detaljer
   ========================================================================== */

body.admin-onepage .admin-log-details {
  min-width: 0;
  max-width: 30rem;

  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
  hyphens: auto;

  line-height: 1.55;
}

/*
 * Dersom detaljene ligger inni code, pre, small eller span,
 * må også elementet inni cellen tillate tekstbryting.
 */
body.admin-onepage .admin-log-details code,
body.admin-onepage .admin-log-details pre,
body.admin-onepage .admin-log-details small {
  display: block;

  width: 100%;
  max-width: 100%;

  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* Hindrer at pre/code lager egen horisontal scrolling */
body.admin-onepage .admin-log-details pre {
  margin: 0;
  overflow-x: visible;
}
/* ==========================================================================
   Endringslogg – ryddig visning av detaljer
   ========================================================================== */

body.admin-onepage .admin-log-details {
  min-width: 17rem;
  max-width: 32rem;

  white-space: normal;
  overflow-wrap: anywhere;
}

body.admin-onepage .admin-log-detail-list {
  display: grid;
  gap: 0;

  width: 100%;

  margin: 0;
}

body.admin-onepage .admin-log-detail-row {
  display: grid;
  grid-template-columns: minmax(7rem, 0.42fr) minmax(0, 1fr);
  align-items: start;
  gap: 0.75rem;

  padding: 0.48rem 0;

  border-bottom: 1px solid rgba(205,179,138,0.14);
}

body.admin-onepage .admin-log-detail-row:first-child {
  padding-top: 0;
}

body.admin-onepage .admin-log-detail-row:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

body.admin-onepage .admin-log-detail-row dt {
  margin: 0;

  color: rgba(31,29,26,0.44);

  font-size: 0.63rem;
  font-weight: 750;
  letter-spacing: 0.11em;
  line-height: 1.45;
  text-transform: uppercase;
}

body.admin-onepage .admin-log-detail-row dd {
  min-width: 0;
  margin: 0;

  color: rgba(31,29,26,0.72);

  font-size: 0.78rem;
  line-height: 1.5;

  overflow-wrap: anywhere;
  word-break: break-word;
}

body.admin-onepage .admin-log-detail-pill {
  display: inline-flex;
  align-items: center;

  width: fit-content;

  padding: 0.35rem 0.55rem;

  border: 1px solid rgba(205,179,138,0.3);
  border-radius: 999px;

  background: rgba(205,179,138,0.09);
  color: rgba(31,29,26,0.68);

  font-size: 0.62rem;
  font-weight: 750;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
}

body.admin-onepage .admin-log-detail-pill.is-active {
  border-color: rgba(82,113,90,0.22);
  background: rgba(82,113,90,0.09);
  color: #36513d;
}

body.admin-onepage .admin-log-detail-pill.is-inactive {
  border-color: rgba(162,80,69,0.2);
  background: rgba(162,80,69,0.08);
  color: #75352e;
}

body.admin-onepage .admin-log-detail-fallback {
  display: block;

  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;

  color: rgba(31,29,26,0.58);

  font-size: 0.76rem;
  line-height: 1.55;
}

body.admin-onepage .admin-log-detail-empty {
  color: rgba(31,29,26,0.36);

  font-size: 0.76rem;
  font-style: italic;
}

@media (max-width: 780px) {
  body.admin-onepage .admin-log-details {
    min-width: 15rem;
  }

  body.admin-onepage .admin-log-detail-row {
    grid-template-columns: 1fr;
    gap: 0.2rem;
  }
}
/* ==========================================================================
   Endringslogg – ryddige, menneskelige detaljer
   ========================================================================== */

body.admin-onepage .admin-rsvp-log-table {
  table-layout: fixed;
}

body.admin-onepage .admin-rsvp-log-table th:nth-child(1),
body.admin-onepage .admin-rsvp-log-table td:nth-child(1) {
  width: 18%;
}

body.admin-onepage .admin-rsvp-log-table th:nth-child(2),
body.admin-onepage .admin-rsvp-log-table td:nth-child(2) {
  width: 22%;
}

body.admin-onepage .admin-rsvp-log-table th:nth-child(3),
body.admin-onepage .admin-rsvp-log-table td:nth-child(3) {
  width: 60%;
}

body.admin-onepage .admin-log-details {
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}

body.admin-onepage .admin-log-detail-list {
  display: grid;
  gap: 0;
  width: 100%;
  margin: 0;
}

body.admin-onepage .admin-log-detail-row {
  display: grid;
  grid-template-columns: minmax(7rem, 8.5rem) minmax(0, 1fr);
  align-items: center;
  gap: 0.75rem;
  padding: 0.42rem 0;
  border-bottom: 1px solid rgba(205,179,138,0.16);
}

body.admin-onepage .admin-log-detail-row:first-child {
  padding-top: 0;
}

body.admin-onepage .admin-log-detail-row:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

body.admin-onepage .admin-log-detail-row dt {
  margin: 0;
  color: rgba(31,29,26,0.46);
  font-size: 0.62rem;
  font-weight: 750;
  letter-spacing: 0.12em;
  line-height: 1.4;
  text-transform: uppercase;
}

body.admin-onepage .admin-log-detail-row dd {
  min-width: 0;
  margin: 0;
  color: rgba(31,29,26,0.72);
  font-size: 0.78rem;
  line-height: 1.5;
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* Viktig: overstyrer den generelle note-regelen for nested spans. */
body.admin-onepage .admin-rsvp-log-note .admin-log-detail-pill {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: fit-content !important;
  max-width: 100%;
  margin: 0 !important;
  padding: 0.38rem 0.6rem;
  border: 1px solid rgba(205,179,138,0.34);
  border-radius: 999px;
  background: rgba(205,179,138,0.09);
  color: rgba(31,29,26,0.68);
  font-size: 0.62rem;
  font-weight: 750;
  letter-spacing: 0.09em;
  line-height: 1;
  text-transform: uppercase;
}

body.admin-onepage .admin-rsvp-log-note .admin-log-detail-pill.is-active {
  border-color: rgba(82,113,90,0.24);
  background: rgba(82,113,90,0.09);
  color: #36513d;
}

body.admin-onepage .admin-rsvp-log-note .admin-log-detail-pill.is-inactive {
  border-color: rgba(162,80,69,0.22);
  background: rgba(162,80,69,0.08);
  color: #75352e;
}

body.admin-onepage .admin-rsvp-log-note .admin-log-detail-fallback,
body.admin-onepage .admin-rsvp-log-note .admin-log-detail-empty {
  display: block;
  width: 100%;
  margin: 0;
  color: rgba(31,29,26,0.5);
  font-size: 0.76rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.55;
  text-transform: none;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
}

body.admin-onepage .admin-rsvp-log-note .admin-log-detail-empty {
  color: rgba(31,29,26,0.36);
  font-style: italic;
}

@media (max-width: 780px) {
  body.admin-onepage .admin-rsvp-log-table {
    table-layout: auto;
  }

  body.admin-onepage .admin-log-detail-row {
    grid-template-columns: 1fr;
    gap: 0.2rem;
  }
}

/* ==========================================================================
   Dashboard-innstillinger – Adminbrukere
   ========================================================================== */

body.admin-onepage #dashboard
.admin-dashboard-setting-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  height: 2.45rem;
  min-height: 2.45rem;
  width: fit-content;

  padding: 0.55rem 0.8rem;

  border: 1px solid rgba(205,179,138,0.3);
  border-radius: 0.8rem;

  background:
    linear-gradient(
      180deg,
      rgba(255,253,249,0.9),
      rgba(255,253,249,0.62)
    );

  color: rgba(31,29,26,0.68);

  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.84);

  transition:
    border-color 200ms ease,
    background 200ms ease,
    color 200ms ease,
    box-shadow 200ms ease,
    transform 200ms ease;
}

body.admin-onepage #dashboard
.admin-dashboard-setting-link:hover {
  border-color: rgba(205,179,138,0.62);

  background: white;
  color: var(--ink);

  transform: translateY(-1px);

  box-shadow:
    0 7px 18px rgba(31,29,26,0.045),
    inset 0 1px 0 rgba(255,255,255,0.9);
}

/*
 * Lenkeradene har bare én handling og plasserer knappen helt til høyre
 * på desktop. På mobil beholder de full bredde og venstrestilt flyt.
 */
@media (min-width: 781px) {
  body.admin-onepage #dashboard
  .admin-dashboard-admin-users-row
  .admin-dashboard-setting-controls,
  body.admin-onepage #dashboard
  .admin-dashboard-site-rsvp-row
  .admin-dashboard-setting-controls {
    display: flex !important;
    align-items: center;
    justify-content: flex-end;
    margin-left: auto;
  }
}

@media (max-width: 780px) {
  body.admin-onepage #dashboard
  .admin-dashboard-admin-users-row
  .admin-dashboard-setting-controls,
  body.admin-onepage #dashboard
  .admin-dashboard-site-rsvp-row
  .admin-dashboard-setting-controls {
    display: flex;
    justify-content: flex-start;
  }

  body.admin-onepage #dashboard
  .admin-dashboard-setting-link {
    width: 100%;
  }
}

/* Passordreset – knapper i adminbrukerkort */
body.admin-onepage .admin-user-card-actions {
  gap: 0.75rem;
  flex-wrap: wrap;
}

@media (max-width: 780px) {
  body.admin-onepage .admin-user-card-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  body.admin-onepage .admin-user-card-actions .button {
    width: 100%;
  }
}

/* Adminbrukere – dropdowns nøyaktig samme høyde som inputfeltene */

body.admin-onepage
.admin-users-section
.admin-users-dropdown
.admin-filter-toggle {
  height: 3.55rem;
  min-height: 3.55rem;

  padding-top: 0;
  padding-bottom: 0;

  box-sizing: border-box;
}

/* Admininnlogging – plasser knappene mot høyre */

@media (min-width: 781px) {
  body.rsvp-admin-login-page
  .rsvp-admin-login-actions {
    width: 100%;

    justify-content: flex-end;

    margin-top: 1.5rem;
    margin-left: auto;
  }
}
/* Glemt passord – plasser knappene mot høyre */

@media (min-width: 781px) {
  body.rsvp-admin-login-page
  .rsvp-admin-login-form
  > .action-row {
    width: 100%;

    justify-content: flex-end;

    margin-top: 1.5rem;
    margin-left: auto;
  }
}
/* ==========================================================================
   Admin Rapporter – rapportbygger
   ========================================================================== */

body.admin-onepage #rapporter.admin-reports-section {
  place-items: start center;
}

body.admin-onepage #rapporter .admin-section-inner-wide {
  width: min(92vw, 1240px);
  max-width: 1240px;
}

body.admin-onepage #rapporter .admin-report-builder {
  display: grid;
  gap: 1rem;
  width: 100%;
}

body.admin-onepage #rapporter .admin-report-builder-panel,
body.admin-onepage #rapporter .admin-report-preview-card {
  width: 100%;
  margin: 0;
  padding: clamp(1.15rem, 2.6vw, 1.7rem);
  border: 1px solid rgba(31,29,26,0.075);
  border-radius: 1.35rem;
  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,0.82),
      rgba(255,253,249,0.58)
    );
  box-shadow:
    0 12px 34px rgba(31,29,26,0.04),
    inset 0 1px 0 rgba(255,255,255,0.76);
}

body.admin-onepage #rapporter .admin-report-panel-heading,
body.admin-onepage #rapporter .admin-report-preview-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

body.admin-onepage #rapporter .admin-report-panel-heading h3,
body.admin-onepage #rapporter .admin-report-preview-heading h3 {
  margin: 0.4rem 0 0;
  font-family: var(--font-serif);
  font-size: clamp(1.75rem, 3.4vw, 2.8rem);
  font-weight: 400;
  letter-spacing: -0.04em;
  line-height: 1;
}

body.admin-onepage #rapporter .admin-report-eyebrow {
  margin: 0;
  color: rgba(168,143,104,0.96);
  font-size: 0.66rem;
  font-weight: 750;
  letter-spacing: 0.18em;
  line-height: 1;
  text-transform: uppercase;
}

body.admin-onepage #rapporter .admin-report-panel-heading > span,
body.admin-onepage #rapporter .admin-report-preview-heading > span {
  flex-shrink: 0;
  margin-top: 0.15rem;
  color: rgba(31,29,26,0.46);
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body.admin-onepage #rapporter .admin-report-preset-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
}

body.admin-onepage #rapporter .admin-report-preset {
  appearance: none;
  -webkit-appearance: none;
  display: grid;
  align-content: start;
  gap: 0.45rem;
  min-height: 7.4rem;
  margin: 0;
  padding: 1rem;
  border: 1px solid rgba(31,29,26,0.09);
  border-radius: 1.05rem;
  background: rgba(255,253,249,0.74);
  color: var(--ink);
  font: inherit;
  text-align: left;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.72);
  transition:
    border-color 220ms ease,
    background 220ms ease,
    box-shadow 220ms ease,
    transform 220ms ease;
}

body.admin-onepage #rapporter .admin-report-preset strong {
  font-size: 0.75rem;
  font-weight: 750;
  letter-spacing: 0.12em;
  line-height: 1.35;
  text-transform: uppercase;
}

body.admin-onepage #rapporter .admin-report-preset span {
  color: rgba(31,29,26,0.54);
  font-size: 0.84rem;
  line-height: 1.55;
}

body.admin-onepage #rapporter .admin-report-preset:hover,
body.admin-onepage #rapporter .admin-report-preset:focus-visible {
  border-color: rgba(205,179,138,0.6);
  background: rgba(255,255,255,0.95);
  box-shadow:
    0 10px 24px rgba(31,29,26,0.05),
    inset 0 1px 0 rgba(255,255,255,0.86);
  transform: translateY(-1px);
  outline: none;
}

body.admin-onepage #rapporter .admin-report-preset.is-active {
  border-color: rgba(31,29,26,0.78);
  background: var(--ink);
  color: var(--paper);
  box-shadow:
    0 12px 28px rgba(31,29,26,0.12),
    inset 0 1px 0 rgba(255,255,255,0.16);
}

body.admin-onepage #rapporter .admin-report-preset.is-active span {
  color: rgba(255,253,249,0.68);
}

body.admin-onepage #rapporter .admin-report-title-field {
  display: grid;
  gap: 0.5rem;
  max-width: 620px;
  margin-bottom: 1.35rem;
  color: rgba(31,29,26,0.54);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

body.admin-onepage #rapporter .admin-report-title-field input,
body.admin-onepage #rapporter .admin-report-filter-grid select {
  min-height: 3.35rem;
  border: 1px solid rgba(31,29,26,0.1);
  border-radius: 0.95rem;
  background-color: rgba(255,253,249,0.88);
  color: var(--ink);
  font-size: 0.95rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.78),
    0 5px 16px rgba(31,29,26,0.025);
}

body.admin-onepage #rapporter .admin-report-options-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
  gap: 1rem;
  align-items: start;
}

body.admin-onepage #rapporter .admin-report-choice-group {
  min-width: 0;
  margin: 0;
  padding: 1rem;
  border: 1px solid rgba(31,29,26,0.065);
  border-radius: 1.05rem;
  background: rgba(31,29,26,0.018);
}

body.admin-onepage #rapporter .admin-report-choice-group legend {
  padding: 0 0.4rem;
  color: rgba(31,29,26,0.5);
  font-size: 0.68rem;
  font-weight: 750;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

body.admin-onepage #rapporter .admin-report-checkbox-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
}

body.admin-onepage #rapporter .admin-report-column-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.admin-onepage #rapporter .admin-report-check-option {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-width: 0;
  min-height: 2.75rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid rgba(31,29,26,0.07);
  border-radius: 0.8rem;
  background: rgba(255,253,249,0.7);
  color: rgba(31,29,26,0.68);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.35;
  text-transform: none;
  cursor: pointer;
  transition:
    border-color 200ms ease,
    background 200ms ease,
    color 200ms ease;
}

body.admin-onepage #rapporter .admin-report-check-option:hover {
  border-color: rgba(205,179,138,0.52);
  background: white;
  color: var(--ink);
}

body.admin-onepage #rapporter .admin-report-check-option:has(input:checked) {
  border-color: rgba(31,29,26,0.22);
  background: rgba(31,29,26,0.045);
  color: var(--ink);
}

body.admin-onepage #rapporter .admin-report-check-option input[type="checkbox"] {
  position: absolute;

  width: 1px !important;
  height: 1px !important;
  min-height: 0;

  margin: -1px;
  padding: 0;

  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);

  opacity: 0;
  pointer-events: none;
}

body.admin-onepage #rapporter .admin-report-check-option span {
  position: relative;

  min-width: 0;

  display: flex;
  align-items: center;

  padding-left: 1.85rem;
}

body.admin-onepage #rapporter .admin-report-check-option span::before {
  content: "";

  position: absolute;
  left: 0;
  top: 50%;

  width: 1.12rem;
  height: 1.12rem;

  border: 1px solid rgba(168, 143, 104, 0.48);
  border-radius: 0.36rem;

  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.96),
      rgba(255, 253, 249, 0.72)
    );

  box-shadow:
    0 4px 10px rgba(31, 29, 26, 0.035),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);

  transform: translateY(-50%);

  transition:
    border-color 180ms ease,
    background 180ms ease,
    box-shadow 180ms ease,
    transform 180ms cubic-bezier(.22, 1, .36, 1);
}

body.admin-onepage #rapporter .admin-report-check-option span::after {
  content: "";

  position: absolute;
  left: 0.39rem;
  top: 50%;

  width: 0.28rem;
  height: 0.56rem;

  border-right: 1.7px solid var(--paper);
  border-bottom: 1.7px solid var(--paper);

  opacity: 0;

  transform:
    translateY(-62%)
    rotate(45deg)
    scale(0.55);

  transition:
    opacity 160ms ease,
    transform 200ms cubic-bezier(.22, 1, .36, 1);
}

body.admin-onepage #rapporter
.admin-report-check-option:hover span::before {
  border-color: rgba(168, 143, 104, 0.82);

  background: white;

  box-shadow:
    0 6px 14px rgba(31, 29, 26, 0.05),
    inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

body.admin-onepage #rapporter
.admin-report-check-option input[type="checkbox"]:checked + span::before {
  border-color: var(--ink);

  background:
    linear-gradient(
      180deg,
      rgba(31, 29, 26, 0.96),
      rgba(31, 29, 26, 0.88)
    );

  box-shadow:
    0 0 0 4px rgba(205, 179, 138, 0.13),
    0 7px 16px rgba(31, 29, 26, 0.11),
    inset 0 1px 0 rgba(255, 255, 255, 0.13);

  transform:
    translateY(-50%)
    scale(1.03);
}

body.admin-onepage #rapporter
.admin-report-check-option input[type="checkbox"]:checked + span::after {
  opacity: 1;

  transform:
    translateY(-62%)
    rotate(45deg)
    scale(1);
}

body.admin-onepage #rapporter
.admin-report-check-option input[type="checkbox"]:focus-visible + span::before {
  border-color: rgba(168, 143, 104, 0.95);

  box-shadow:
    0 0 0 4px rgba(205, 179, 138, 0.16),
    0 7px 16px rgba(31, 29, 26, 0.07),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

body.admin-onepage #rapporter .admin-report-filter-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
}

body.admin-onepage #rapporter .admin-report-filter-grid label {
  display: grid;
  gap: 0.5rem;
  min-width: 0;
  color: rgba(31,29,26,0.54);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body.admin-onepage #rapporter .admin-report-builder-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.25rem 0;
}

body.admin-onepage #rapporter .admin-report-builder-status {
  color: rgba(31,29,26,0.46);
  font-size: 0.76rem;
  font-style: italic;
}

body.admin-onepage #rapporter .admin-report-builder-status[data-state="loading"] {
  color: rgba(155,115,71,0.9);
}

body.admin-onepage #rapporter .admin-report-builder-status[data-state="error"] {
  color: var(--danger);
}

body.admin-onepage #rapporter .admin-report-download-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 0.75rem;
}

body.admin-onepage #rapporter .admin-report-download-actions .button {
  width: auto;
  min-height: 3rem;
  margin: 0;
}

body.admin-onepage #rapporter .admin-report-preview {
  width: 100%;
  margin-top: 1rem;
  transition: opacity 180ms ease;
}

body.admin-onepage #rapporter .admin-report-preview.is-loading {
  opacity: 0.48;
  pointer-events: none;
}

body.admin-onepage #rapporter .admin-report-preview-heading {
  align-items: flex-end;
}

body.admin-onepage #rapporter .admin-report-preview-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-bottom: 1rem;
}

body.admin-onepage #rapporter .admin-report-preview-meta span {
  display: inline-flex;
  align-items: center;
  min-height: 1.8rem;
  padding: 0.35rem 0.6rem;
  border: 1px solid rgba(31,29,26,0.065);
  border-radius: 999px;
  background: rgba(31,29,26,0.025);
  color: rgba(31,29,26,0.52);
  font-size: 0.66rem;
  font-weight: 650;
  letter-spacing: 0.06em;
}

body.admin-onepage #rapporter .admin-report-preview-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.7rem;
  margin-bottom: 1rem;
}

body.admin-onepage #rapporter .admin-report-preview-kpi {
  padding: 0.85rem;
  border: 1px solid rgba(31,29,26,0.065);
  border-radius: 0.9rem;
  background: rgba(31,29,26,0.025);
}

body.admin-onepage #rapporter .admin-report-preview-kpi span {
  display: block;
  color: rgba(31,29,26,0.48);
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.4;
  text-transform: uppercase;
}

body.admin-onepage #rapporter .admin-report-preview-kpi strong {
  display: block;
  margin-top: 0.45rem;
  font-family: var(--font-serif);
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  font-weight: 400;
  letter-spacing: -0.04em;
  line-height: 1;
}

body.admin-onepage #rapporter .admin-report-preview-table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid rgba(31,29,26,0.07);
  border-radius: 1rem;
}

body.admin-onepage #rapporter .admin-report-preview-table {
  width: 100%;
  min-width: 760px !important;
  border-collapse: collapse;
}

body.admin-onepage #rapporter .admin-report-preview-table th,
body.admin-onepage #rapporter .admin-report-preview-table td {
  padding: 0.8rem;
  border-bottom: 1px solid rgba(31,29,26,0.07);
  text-align: left;
  vertical-align: top;
}

body.admin-onepage #rapporter .admin-report-preview-table th {
  background: rgba(31,29,26,0.035);
  color: rgba(31,29,26,0.5);
  font-size: 0.62rem;
  font-weight: 750;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  white-space: nowrap;
}

body.admin-onepage #rapporter .admin-report-preview-table td {
  max-width: 24rem;
  color: rgba(31,29,26,0.7);
  font-size: 0.78rem;
  line-height: 1.55;
}

body.admin-onepage #rapporter .admin-report-preview-table tbody tr:last-child td {
  border-bottom: 0;
}

body.admin-onepage #rapporter .admin-report-preview-empty,
body.admin-onepage #rapporter .admin-report-preview-error {
  padding: 1.1rem;
  border: 1px solid rgba(31,29,26,0.07);
  border-radius: 1rem;
  background: rgba(31,29,26,0.025);
  color: rgba(31,29,26,0.56);
  font-style: italic;
}

body.admin-onepage #rapporter .admin-report-preview-error {
  border-color: rgba(162,80,69,0.22);
  background: rgba(162,80,69,0.08);
  color: #75352e;
}

body.admin-onepage #rapporter .admin-report-preview-limit {
  margin: 0.85rem 0 0;
  color: rgba(31,29,26,0.46);
  font-size: 0.78rem;
  font-style: italic;
}

@media (max-width: 1100px) {
  body.admin-onepage #rapporter .admin-report-preset-grid,
  body.admin-onepage #rapporter .admin-report-filter-grid,
  body.admin-onepage #rapporter .admin-report-preview-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.admin-onepage #rapporter .admin-report-options-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 780px) {
  body.admin-onepage #rapporter .admin-section-inner-wide {
    width: 100%;
  }

  body.admin-onepage #rapporter .admin-report-panel-heading,
  body.admin-onepage #rapporter .admin-report-preview-heading,
  body.admin-onepage #rapporter .admin-report-builder-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  body.admin-onepage #rapporter .admin-report-panel-heading > span,
  body.admin-onepage #rapporter .admin-report-preview-heading > span {
    margin-top: 0;
  }

  body.admin-onepage #rapporter .admin-report-preset-grid,
  body.admin-onepage #rapporter .admin-report-filter-grid,
  body.admin-onepage #rapporter .admin-report-preview-kpis,
  body.admin-onepage #rapporter .admin-report-checkbox-grid,
  body.admin-onepage #rapporter .admin-report-column-grid {
    grid-template-columns: 1fr;
  }

  body.admin-onepage #rapporter .admin-report-preset {
    min-height: 0;
  }

  body.admin-onepage #rapporter .admin-report-download-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  body.admin-onepage #rapporter .admin-report-download-actions .button {
    width: 100%;
  }
}

/* ==========================================================================
   Admin Rapporter – PDF-retning
   ========================================================================== */

body.admin-onepage #rapporter .admin-report-orientation-field {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

body.admin-onepage #rapporter .admin-report-orientation-field legend {
  margin-bottom: 0.65rem;
  padding: 0;
  color: rgba(31,29,26,0.5);
  font-size: 0.68rem;
  font-weight: 750;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

body.admin-onepage #rapporter .admin-report-orientation-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  max-width: 760px;
}

body.admin-onepage #rapporter .admin-report-orientation-option {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.9rem;
  min-width: 0;
  min-height: 5.4rem;
  padding: 0.9rem 1rem;
  border: 1px solid rgba(31,29,26,0.075);
  border-radius: 1rem;
  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,0.82),
      rgba(255,253,249,0.62)
    );
  color: rgba(31,29,26,0.7);
  cursor: pointer;
  box-shadow:
    0 8px 22px rgba(31,29,26,0.028),
    inset 0 1px 0 rgba(255,255,255,0.78);
  transition:
    border-color 220ms ease,
    background 220ms ease,
    color 220ms ease,
    box-shadow 220ms ease,
    transform 220ms ease;
}

body.admin-onepage #rapporter .admin-report-orientation-option:hover {
  border-color: rgba(205,179,138,0.58);
  background: white;
  color: var(--ink);
  transform: translateY(-1px);
}

body.admin-onepage #rapporter .admin-report-orientation-option:has(input:focus-visible) {
  outline: 3px solid rgba(205,179,138,0.18);
  outline-offset: 2px;
}

body.admin-onepage #rapporter .admin-report-orientation-option:has(input:checked) {
  border-color: rgba(31,29,26,0.7);
  background: var(--ink);
  color: var(--paper);
  box-shadow:
    0 12px 28px rgba(31,29,26,0.1),
    inset 0 1px 0 rgba(255,255,255,0.15);
}

body.admin-onepage #rapporter .admin-report-orientation-option input[type="radio"] {
  position: absolute;
  width: 1px !important;
  height: 1px !important;
  min-height: 0;
  margin: 0;
  padding: 0;
  opacity: 0;
  pointer-events: none;
}

body.admin-onepage #rapporter .admin-report-page-icon {
  position: relative;
  display: block;
  flex: 0 0 auto;
  border: 1px solid rgba(31,29,26,0.24);
  border-radius: 0.28rem;
  background: rgba(255,253,249,0.95);
  box-shadow:
    0 5px 12px rgba(31,29,26,0.07),
    inset 0 1px 0 rgba(255,255,255,0.82);
}

body.admin-onepage #rapporter .admin-report-page-icon::before,
body.admin-onepage #rapporter .admin-report-page-icon::after {
  content: "";
  position: absolute;
  left: 18%;
  right: 18%;
  height: 1px;
  background: rgba(205,179,138,0.72);
}

body.admin-onepage #rapporter .admin-report-page-icon::before {
  top: 34%;
}

body.admin-onepage #rapporter .admin-report-page-icon::after {
  top: 57%;
}

body.admin-onepage #rapporter .admin-report-page-icon-portrait {
  width: 2.25rem;
  height: 3rem;
}

body.admin-onepage #rapporter .admin-report-page-icon-landscape {
  width: 3rem;
  height: 2.25rem;
}

body.admin-onepage #rapporter .admin-report-orientation-option:has(input:checked)
.admin-report-page-icon {
  border-color: rgba(255,253,249,0.48);
  background: rgba(255,253,249,0.94);
}

body.admin-onepage #rapporter .admin-report-orientation-copy {
  display: grid;
  gap: 0.25rem;
  min-width: 0;
}

body.admin-onepage #rapporter .admin-report-orientation-copy strong {
  font-size: 0.75rem;
  font-weight: 750;
  letter-spacing: 0.12em;
  line-height: 1.3;
  text-transform: uppercase;
}

body.admin-onepage #rapporter .admin-report-orientation-copy small {
  color: rgba(31,29,26,0.5);
  font-size: 0.8rem;
  line-height: 1.5;
}

body.admin-onepage #rapporter .admin-report-orientation-option:has(input:checked)
.admin-report-orientation-copy small {
  color: rgba(255,253,249,0.66);
}

body.admin-onepage #rapporter .admin-report-orientation-hint {
  position: relative;
  max-width: 760px;
  margin: 0.85rem 0 0;
  padding-left: 1rem;
  color: rgba(31,29,26,0.5);
  font-size: 0.78rem;
  line-height: 1.65;
  font-style: italic;
}

body.admin-onepage #rapporter .admin-report-orientation-hint::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.25rem;
  bottom: 0.25rem;
  width: 1px;
  background: rgba(205,179,138,0.62);
}

body.admin-onepage #rapporter .admin-report-orientation-hint[data-state="recommend-landscape"] {
  color: rgba(155,115,71,0.94);
}

@media (max-width: 780px) {
  body.admin-onepage #rapporter .admin-report-orientation-grid {
    grid-template-columns: 1fr;
    max-width: none;
  }

  body.admin-onepage #rapporter .admin-report-orientation-option {
    min-height: 5rem;
  }
}

/* ==========================================================================
   Rapporter – aktive valg i samme stil som Status-menyen
   ========================================================================== */

body.admin-onepage #rapporter .admin-report-preset.is-active,
body.admin-onepage #rapporter
.admin-report-orientation-option:has(input:checked) {
  border-color: rgba(205, 179, 138, 0.38);

  background:
    radial-gradient(
      circle at 20% 20%,
      rgba(205, 179, 138, 0.16),
      transparent 5rem
    ),
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.98),
      rgba(255, 253, 249, 0.78)
    );

  color: rgba(31, 29, 26, 0.84);

  box-shadow:
    0 7px 18px rgba(31, 29, 26, 0.05),
    inset 0 1px 0 rgba(255, 255, 255, 0.92),
    inset 0 -2px 0 rgba(205, 179, 138, 0.34);

  transform: none;
}

/* Beskrivelsen i valgt rapportmal */

body.admin-onepage #rapporter
.admin-report-preset.is-active span {
  color: rgba(31, 29, 26, 0.54);
}

/* Beskrivelsen under Vertikal / Horisontal */

body.admin-onepage #rapporter
.admin-report-orientation-option:has(input:checked)
.admin-report-orientation-copy small {
  color: rgba(31, 29, 26, 0.5);
}

/* Sideikonet i valgt retning */

body.admin-onepage #rapporter
.admin-report-orientation-option:has(input:checked)
.admin-report-page-icon {
  border-color: rgba(205, 179, 138, 0.48);

  background: rgba(255, 253, 249, 0.96);

  box-shadow:
    0 5px 12px rgba(31, 29, 26, 0.055),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
}


/* ==========================================================================
   Admin Rapporter – egendefinerte dropdowns
   Samme komponent og uttrykk som filtrene i gjestelisten.
   ========================================================================== */

body.admin-onepage #rapporter .admin-report-filter-field {
  position: relative;

  display: grid;
  gap: 0.5rem;

  min-width: 0;
}

body.admin-onepage #rapporter
.admin-report-filter-field > label {
  display: block;

  min-width: 0;

  color: rgba(31,29,26,0.54);

  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1.35;
  text-transform: uppercase;
}

body.admin-onepage #rapporter .admin-report-dropdown {
  position: relative;

  width: 100%;
  min-width: 0;
}

body.admin-onepage #rapporter
.admin-report-native-select.is-enhanced {
  position: absolute !important;

  width: 1px !important;
  height: 1px !important;
  min-height: 0 !important;

  margin: 0 !important;
  padding: 0 !important;

  border: 0 !important;

  opacity: 0;
  pointer-events: none;

  overflow: hidden;
}

body.admin-onepage #rapporter
.admin-report-select-toggle {
  width: 100%;
  min-height: 3.35rem;

  border-color: rgba(31,29,26,0.1);
  border-radius: 0.95rem;

  padding: 0.85rem 1rem;

  background:
    linear-gradient(
      180deg,
      rgba(255,253,249,0.96),
      rgba(255,253,249,0.78)
    );

  color: rgba(31,29,26,0.72);

  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.78),
    0 5px 16px rgba(31,29,26,0.025);
}

body.admin-onepage #rapporter
.admin-report-select-toggle:hover {
  border-color: rgba(31,29,26,0.2);

  background: rgba(255,253,249,0.98);
}

body.admin-onepage #rapporter
.admin-report-select-toggle:focus-visible {
  outline: none;

  border-color: rgba(205,179,138,0.82);

  background: white;

  box-shadow:
    0 0 0 4px rgba(205,179,138,0.13),
    0 12px 28px rgba(31,29,26,0.055),
    inset 0 1px 0 rgba(255,255,255,0.8);
}

body.admin-onepage #rapporter
.admin-report-select-menu {
  left: 0;
  right: auto;

  width: 100%;
  min-width: 100%;
  max-height: min(18rem, 45vh);

  overflow-y: auto;
  overscroll-behavior: contain;

  z-index: 40;
}

body.admin-onepage #rapporter
.admin-report-select-menu button.active {
  background: rgba(205,179,138,0.12);
}

body.admin-onepage #rapporter
.admin-report-dropdown.is-open {
  z-index: 45;
}

@media (max-width: 780px) {
  body.admin-onepage #rapporter
  .admin-report-select-toggle {
    min-height: 3.4rem;
  }

  body.admin-onepage #rapporter
  .admin-report-select-menu {
    max-height: min(17rem, 42vh);
  }
}


/* ==========================================================================
   Admin Rapporter – reveal-forhåndsvisning
   ========================================================================== */

body.admin-onepage #rapporter .admin-report-preview-reveal {
  display: grid;
  grid-template-rows: 0fr;

  width: min(100%, 1200px);
  margin-right: auto;
  margin-left: 0;
  margin-top: 0;

  opacity: 0;
  transform: translateY(-0.45rem);

  transition:
    grid-template-rows 440ms cubic-bezier(.22,1,.36,1),
    opacity 240ms ease,
    transform 360ms cubic-bezier(.22,1,.36,1),
    margin-top 360ms cubic-bezier(.22,1,.36,1);
}

body.admin-onepage #rapporter
.admin-report-preview-reveal.is-open {
  grid-template-rows: 1fr;

  margin-top: 1rem;

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

body.admin-onepage #rapporter
.admin-report-preview-reveal-inner {
  min-height: 0;
  overflow: hidden;
}

body.admin-onepage #rapporter
.admin-report-preview-reveal.is-open
.admin-report-preview-reveal-inner {
  overflow: visible;
}

body.admin-onepage #rapporter .admin-report-preview {
  margin-top: 0;
}

body.admin-onepage #rapporter
.admin-report-preview-toggle::after {
  content: "↓";

  margin-left: 0.55rem;

  font-size: 0.85rem;
  line-height: 1;

  transition: transform 300ms cubic-bezier(.22,1,.36,1);
}

body.admin-onepage #rapporter
.admin-report-preview-toggle[aria-expanded="true"]::after {
  transform: rotate(180deg);
}

body.admin-onepage #rapporter
.admin-report-builder-status[data-state="idle"] {
  color: rgba(31,29,26,0.44);
}

@media (prefers-reduced-motion: reduce) {
  body.admin-onepage #rapporter .admin-report-preview-reveal,
  body.admin-onepage #rapporter
  .admin-report-preview-toggle::after {
    transition: none;
  }
}


/* ==========================================================================
   Bordkart V1.11 · publisert bordplassering i RSVP-admin
   ========================================================================== */

body.admin-onepage .admin-published-seating-note {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;

  margin: 1rem 0;
  padding: 1rem 1.1rem;

  border: 1px solid rgba(31, 29, 26, 0.075);
  border-radius: 1.1rem;

  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.76),
      rgba(255, 253, 249, 0.58)
    );

  box-shadow:
    0 10px 26px rgba(31, 29, 26, 0.035),
    inset 0 1px 0 rgba(255, 255, 255, 0.78);
}

body.admin-onepage
.admin-published-seating-note.is-published {
  border-color: rgba(82, 113, 90, 0.22);
  background:
    linear-gradient(
      180deg,
      rgba(82, 113, 90, 0.075),
      rgba(255, 253, 249, 0.68)
    );
}

body.admin-onepage .admin-published-seating-note > div {
  min-width: 0;
}

body.admin-onepage .admin-published-seating-note span,
body.admin-onepage .admin-published-seating-note strong,
body.admin-onepage .admin-published-seating-note small {
  display: block;
}

body.admin-onepage .admin-published-seating-note span {
  color: rgba(168, 143, 104, 0.92);

  font-size: 0.58rem;
  font-weight: 760;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

body.admin-onepage .admin-published-seating-note strong {
  margin-top: 0.28rem;

  font-family: var(--font-serif);
  font-size: 1.2rem;
  font-weight: 400;
  line-height: 1.2;
}

body.admin-onepage .admin-published-seating-note small {
  margin-top: 0.25rem;

  color: rgba(31, 29, 26, 0.48);

  font-size: 0.68rem;
  line-height: 1.5;
}

body.admin-onepage .admin-published-seating-note > a {
  flex: 0 0 auto;

  border: 1px solid rgba(31, 29, 26, 0.1);
  border-radius: 999px;

  padding: 0.66rem 0.85rem;

  background: rgba(255, 253, 249, 0.84);
  color: rgba(31, 29, 26, 0.7);

  font-size: 0.6rem;
  font-weight: 740;
  letter-spacing: 0.1em;
  text-decoration: none;
  text-transform: uppercase;
}

body.admin-onepage .admin-rsvp-seat-stack {
  display: grid;
  gap: 0.42rem;

  min-width: 10.5rem;
}

body.admin-onepage .admin-rsvp-seat-line {
  display: block;

  padding-left: 0.62rem;

  border-left: 2px solid rgba(31, 29, 26, 0.1);
}

body.admin-onepage
.admin-rsvp-seat-line.is-placed {
  border-left-color: rgba(82, 113, 90, 0.68);
}

body.admin-onepage
.admin-rsvp-seat-line.is-unplaced {
  border-left-color: rgba(155, 115, 71, 0.6);
}

body.admin-onepage
.admin-rsvp-seat-line.is-not_linked {
  border-left-color: rgba(162, 80, 69, 0.42);
}

body.admin-onepage .admin-rsvp-seat-line small,
body.admin-onepage .admin-rsvp-seat-line strong {
  display: block;
}

body.admin-onepage .admin-rsvp-seat-line small {
  color: rgba(31, 29, 26, 0.42);

  font-size: 0.58rem;
  line-height: 1.2;
}

body.admin-onepage .admin-rsvp-seat-line strong {
  margin-top: 0.1rem;

  color: rgba(31, 29, 26, 0.7);

  font-size: 0.68rem;
  font-weight: 680;
  line-height: 1.35;
}

body.admin-onepage .admin-live-seating-group {
  overflow: hidden;

  border-color: rgba(205, 179, 138, 0.24) !important;
  border-radius: 0 1.25rem 1.25rem 0;
  background-clip: padding-box;

  background:
    radial-gradient(
      circle 22rem at 74% 0,
      rgba(205, 179, 138, 0.095) 0,
      rgba(205, 179, 138, 0.045) 38%,
      transparent 72%
    ),
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.78),
      rgba(255, 253, 249, 0.56)
    ) !important;
}

body.admin-onepage .admin-live-seating-heading {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 1rem;
}

body.admin-onepage
.admin-live-seating-heading .course-label {
  margin-bottom: 0.45rem !important;
}

body.admin-onepage .admin-live-seating-heading p {
  margin: 0;

  color: rgba(31, 29, 26, 0.5);

  font-size: 0.72rem;
  line-height: 1.55;
}

body.admin-onepage .admin-live-seating-heading p strong {
  color: rgba(31, 29, 26, 0.72);
  font-weight: 700;
}

body.admin-onepage .admin-live-seating-heading > a {
  flex: 0 0 auto;

  border: 1px solid rgba(31, 29, 26, 0.1);
  border-radius: 999px;

  padding: 0.65rem 0.82rem;

  background: rgba(255, 253, 249, 0.84);
  color: rgba(31, 29, 26, 0.68);

  font-size: 0.6rem;
  font-weight: 740;
  letter-spacing: 0.09em;
  text-decoration: none;
  text-transform: uppercase;
}

body.admin-onepage .admin-live-seating-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

body.admin-onepage .admin-live-seating-card {
  min-width: 0;

  padding: 1rem;

  border: 1px solid rgba(31, 29, 26, 0.075);
  border-radius: 1rem;

  background: rgba(255, 255, 255, 0.64);
}

body.admin-onepage
.admin-live-seating-card.is-placed {
  border-color: rgba(82, 113, 90, 0.24);
  background: rgba(82, 113, 90, 0.06);
}

body.admin-onepage
.admin-live-seating-card.is-unplaced {
  border-color: rgba(155, 115, 71, 0.24);
  background: rgba(155, 115, 71, 0.055);
}

body.admin-onepage
.admin-live-seating-card.is-not_linked {
  border-color: rgba(162, 80, 69, 0.2);
  background: rgba(162, 80, 69, 0.045);
}

body.admin-onepage .admin-live-seating-card > span,
body.admin-onepage .admin-live-seating-card > strong,
body.admin-onepage .admin-live-seating-card > div b,
body.admin-onepage .admin-live-seating-card > div small {
  display: block;
}

body.admin-onepage .admin-live-seating-card > span {
  color: rgba(168, 143, 104, 0.92);

  font-size: 0.56rem;
  font-weight: 760;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

body.admin-onepage .admin-live-seating-card > strong {
  margin-top: 0.32rem;

  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;

  font-family: var(--font-serif);
  font-size: 1.2rem;
  font-weight: 400;
}

body.admin-onepage .admin-live-seating-card > div {
  margin-top: 0.8rem;
  padding-top: 0.72rem;

  border-top: 1px solid rgba(31, 29, 26, 0.075);
}

body.admin-onepage .admin-live-seating-card > div b {
  color: rgba(31, 29, 26, 0.76);

  font-size: 0.76rem;
  line-height: 1.3;
}

body.admin-onepage .admin-live-seating-card > div small {
  margin-top: 0.2rem;

  color: rgba(31, 29, 26, 0.46);

  font-size: 0.66rem;
  line-height: 1.45;
}

body.admin-onepage .admin-live-seating-note {
  margin-top: 0 !important;
}

@media (max-width: 780px) {
  body.admin-onepage .admin-published-seating-note,
  body.admin-onepage .admin-live-seating-heading {
    align-items: stretch;
    flex-direction: column;
  }

  body.admin-onepage .admin-published-seating-note > a,
  body.admin-onepage .admin-live-seating-heading > a {
    width: 100%;
    text-align: center;
  }

  body.admin-onepage .admin-live-seating-grid {
    grid-template-columns: 1fr;
  }
}


/* ==========================================================================
   Bordkart V1.11.2 · publisert bordplassering i rapporter
   ========================================================================== */

body.admin-onepage .admin-report-seating-context,
body.admin-onepage .admin-report-preview-seating {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;

  border: 1px solid rgba(31, 29, 26, 0.075);
  border-radius: 1.1rem;

  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.78),
      rgba(255, 253, 249, 0.58)
    );

  box-shadow:
    0 10px 26px rgba(31, 29, 26, 0.035),
    inset 0 1px 0 rgba(255, 255, 255, 0.78);
}

body.admin-onepage .admin-report-seating-context {
  margin: 1rem 0;
  padding: 1rem 1.1rem;
}

body.admin-onepage .admin-report-preview-seating {
  margin: 1rem 0;
  padding: 0.9rem 1rem;
}

body.admin-onepage
.admin-report-seating-context.is-published,
body.admin-onepage
.admin-report-preview-seating.is-published {
  border-color: rgba(82, 113, 90, 0.24);

  background:
    linear-gradient(
      180deg,
      rgba(82, 113, 90, 0.075),
      rgba(255, 253, 249, 0.68)
    );
}

body.admin-onepage
.admin-report-preview-seating.is-migration_required {
  border-color: rgba(162, 80, 69, 0.2);
  background: rgba(162, 80, 69, 0.045);
}

body.admin-onepage .admin-report-seating-context > div,
body.admin-onepage .admin-report-preview-seating > div {
  min-width: 0;
}

body.admin-onepage .admin-report-seating-context span,
body.admin-onepage .admin-report-seating-context strong,
body.admin-onepage .admin-report-seating-context small,
body.admin-onepage .admin-report-preview-seating span,
body.admin-onepage .admin-report-preview-seating strong,
body.admin-onepage .admin-report-preview-seating small {
  display: block;
}

body.admin-onepage .admin-report-seating-context span,
body.admin-onepage .admin-report-preview-seating span {
  color: rgba(168, 143, 104, 0.92);

  font-size: 0.57rem;
  font-weight: 760;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

body.admin-onepage .admin-report-seating-context strong,
body.admin-onepage .admin-report-preview-seating strong {
  margin-top: 0.28rem;

  color: rgba(31, 29, 26, 0.78);

  font-family: var(--font-serif);
  font-size: 1.16rem;
  font-weight: 400;
  line-height: 1.25;
}

body.admin-onepage .admin-report-seating-context small,
body.admin-onepage .admin-report-preview-seating small {
  margin-top: 0.25rem;

  color: rgba(31, 29, 26, 0.48);

  font-size: 0.67rem;
  line-height: 1.5;
}

body.admin-onepage .admin-report-seating-context > a {
  flex: 0 0 auto;

  border: 1px solid rgba(31, 29, 26, 0.1);
  border-radius: 999px;

  padding: 0.66rem 0.85rem;

  background: rgba(255, 253, 249, 0.84);
  color: rgba(31, 29, 26, 0.7);

  font-size: 0.6rem;
  font-weight: 740;
  letter-spacing: 0.1em;
  text-decoration: none;
  text-transform: uppercase;
}

@media (max-width: 780px) {
  body.admin-onepage .admin-report-seating-context {
    align-items: stretch;
    flex-direction: column;
  }

  body.admin-onepage .admin-report-seating-context > a {
    width: 100%;
    text-align: center;
  }
}


/* ==========================================================================
   Bordkart V1.11.3 · rapportvalg og gjestenavn
   ========================================================================== */

body.admin-onepage #rapporter
.admin-report-check-option:has(input:checked) {
  border-color: rgba(205, 179, 138, 0.48);

  background:
    radial-gradient(
      circle at 0 50%,
      rgba(205, 179, 138, 0.13),
      transparent 5.5rem
    ),
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.92),
      rgba(255, 253, 249, 0.72)
    );

  color: var(--ink);

  box-shadow:
    0 7px 18px rgba(31, 29, 26, 0.035),
    inset 0 1px 0 rgba(255, 255, 255, 0.86);
}

body.admin-onepage #rapporter
.admin-report-check-option:has(input:focus-visible) {
  border-color: rgba(168, 143, 104, 0.78);

  box-shadow:
    0 0 0 3px rgba(205, 179, 138, 0.1);
}

/* ==========================================================================
   Dashboard · automatisk teller for utsendte invitasjoner
   ========================================================================== */

body.admin-onepage #dashboard
.admin-dashboard-invitations-form
.admin-dashboard-invitation-tracking-note {
  grid-column: 1 / -1;

  display: block;

  margin-top: 0.08rem;

  color: rgba(31, 29, 26, 0.4);

  font-size: 0.62rem;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.45;
  text-align: right;
  text-transform: none;
  white-space: nowrap;
}

@media (max-width: 780px) {
  body.admin-onepage #dashboard
  .admin-dashboard-invitations-form
  .admin-dashboard-invitation-tracking-note {
    text-align: left;
    white-space: normal;
  }
}

body.admin-onepage #dashboard
.admin-dashboard-invitations-form:has(
  .admin-dashboard-invitation-tracking-note
) {
  flex-wrap: wrap;
}

body.admin-onepage #dashboard
.admin-dashboard-invitations-form
.admin-dashboard-invitation-tracking-note {
  flex: 0 0 100%;
}

/* ==========================================================================
   Nettside og RSVP · publisering, tilgang og samlet status
   ========================================================================== */

.rsvp-access-overview {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(15rem, 0.72fr);
  align-items: center;
  gap: 1rem;

  margin: 1.6rem 0 1.3rem;
  padding: 1rem 1.05rem;

  border: 1px solid rgba(205, 179, 138, 0.34);
  border-radius: 1.15rem;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.84), rgba(250, 245, 237, 0.7));
  box-shadow: 0 12px 32px rgba(31, 29, 26, 0.045);
}

.rsvp-access-overview-mark {
  width: 2.7rem;
  height: 2.7rem;
  display: grid;
  place-items: center;
  border: 1px solid rgba(168, 143, 104, 0.28);
  border-radius: 999px;
  background: rgba(255, 253, 249, 0.82);
}

.rsvp-access-overview-mark span {
  width: 0.56rem;
  height: 0.56rem;
  border-radius: 999px;
  background: rgba(168, 143, 104, 0.8);
  box-shadow: 0 0 0 0.3rem rgba(168, 143, 104, 0.1);
}

.rsvp-access-overview.is-open .rsvp-access-overview-mark span {
  background: #71816d;
  box-shadow: 0 0 0 0.3rem rgba(113, 129, 109, 0.12);
}

.rsvp-access-overview.is-late .rsvp-access-overview-mark span,
.rsvp-access-overview.is-upcoming .rsvp-access-overview-mark span {
  background: #b2854f;
  box-shadow: 0 0 0 0.3rem rgba(178, 133, 79, 0.12);
}

.rsvp-access-overview.is-closed .rsvp-access-overview-mark span {
  background: #a25045;
  box-shadow: 0 0 0 0.3rem rgba(162, 80, 69, 0.11);
}

.rsvp-access-overview-copy {
  min-width: 0;
}

.rsvp-access-eyebrow {
  display: block;
  margin-bottom: 0.28rem;
  color: rgba(31, 29, 26, 0.47);
  font-size: 0.66rem;
  font-weight: 750;
  letter-spacing: 0.17em;
  text-transform: uppercase;
}

.rsvp-access-overview-copy h3 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.25rem, 1.8vw, 1.65rem);
  font-weight: 400;
  line-height: 1.15;
}

.rsvp-access-overview-copy p,
.rsvp-access-overview-copy small {
  display: block;
  margin: 0.3rem 0 0;
  color: rgba(31, 29, 26, 0.62);
  line-height: 1.5;
}

.rsvp-access-overview-copy p {
  font-size: 0.9rem;
}

.rsvp-access-overview-copy small {
  color: rgba(31, 29, 26, 0.45);
  font-size: 0.75rem;
}

.rsvp-access-overview-note {
  padding-left: 1rem;
  border-left: 1px solid rgba(31, 29, 26, 0.1);
}

.rsvp-access-overview-note strong,
.rsvp-access-overview-note span {
  display: block;
}

.rsvp-access-overview-note strong {
  margin-bottom: 0.28rem;
  font-size: 0.78rem;
}

.rsvp-access-overview-note span {
  color: rgba(31, 29, 26, 0.5);
  font-size: 0.74rem;
  line-height: 1.5;
}

.site-rsvp-settings-page .admin-main {
  overflow-y: auto;
}

.site-control-section {
  min-height: 100%;
  padding-block: clamp(2.5rem, 5vw, 5rem);
}

.site-control-titlebar {
  align-items: flex-end;
  margin-bottom: 1.35rem;
}

.site-control-titlebar h1 {
  margin-bottom: 0.35rem;
}

.site-control-intro {
  max-width: 52rem;
  margin: 0;
  color: rgba(31, 29, 26, 0.56);
  line-height: 1.65;
}

.site-control-overview {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  margin: 1.2rem 0 1rem;
}

.site-control-overview article {
  min-width: 0;
  padding: 0.95rem 1rem;
  border: 1px solid rgba(31, 29, 26, 0.1);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.68);
}

.site-control-overview span,
.site-control-overview strong,
.site-control-overview small {
  display: block;
}

.site-control-overview span {
  margin-bottom: 0.35rem;
  color: rgba(31, 29, 26, 0.45);
  font-size: 0.64rem;
  font-weight: 750;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.site-control-overview strong {
  overflow: hidden;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.25rem;
  font-weight: 400;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.site-control-overview small {
  margin-top: 0.25rem;
  color: rgba(31, 29, 26, 0.48);
  font-size: 0.72rem;
  line-height: 1.45;
}

.site-control-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
}

.site-control-card {
  min-width: 0;
  padding: clamp(1rem, 2vw, 1.35rem);
  border: 1px solid rgba(31, 29, 26, 0.1);
  border-radius: 1.15rem;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.82), rgba(250, 246, 239, 0.62));
  box-shadow: 0 14px 36px rgba(31, 29, 26, 0.04);
}

.site-control-card-heading {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.8rem;
  align-items: start;
  margin-bottom: 1rem;
}

.site-control-card-heading > span {
  width: 2rem;
  height: 2rem;
  display: grid;
  place-items: center;
  border: 1px solid rgba(205, 179, 138, 0.44);
  border-radius: 999px;
  color: rgba(118, 94, 60, 0.78);
  font-size: 0.65rem;
  font-weight: 750;
}

.site-control-card-heading h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.35rem;
  font-weight: 400;
}

.site-control-card-heading p {
  margin: 0.3rem 0 0;
  color: rgba(31, 29, 26, 0.5);
  font-size: 0.8rem;
  line-height: 1.5;
}

.site-control-options {
  display: grid;
  gap: 0.45rem;
  margin: 0 0 0.85rem;
  padding: 0;
  border: 0;
}

.site-control-options legend {
  margin-bottom: 0.48rem;
  color: rgba(31, 29, 26, 0.48);
  font-size: 0.65rem;
  font-weight: 750;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.site-control-options label {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.7rem;
  padding: 0.72rem 0.78rem;
  border: 1px solid rgba(31, 29, 26, 0.09);
  border-radius: 0.85rem;
  background: rgba(255, 255, 255, 0.6);
  cursor: pointer;
}

.site-control-options label:has(input:checked) {
  border-color: rgba(168, 143, 104, 0.46);
  background: rgba(247, 240, 229, 0.78);
  box-shadow: inset 0 0 0 1px rgba(205, 179, 138, 0.12);
}

.site-control-options input {
  margin: 0;
  accent-color: #8f7653;
}

.site-control-options strong,
.site-control-options small {
  display: block;
}

.site-control-options strong {
  font-size: 0.82rem;
}

.site-control-options small {
  margin-top: 0.18rem;
  color: rgba(31, 29, 26, 0.48);
  font-size: 0.72rem;
  line-height: 1.4;
}

.site-control-field {
  display: grid;
  gap: 0.42rem;
  margin-bottom: 0.8rem;
}

.site-control-field > span {
  color: rgba(31, 29, 26, 0.55);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.site-control-field > span small {
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
}

.site-control-field input {
  width: 100%;
  min-height: 2.8rem;
  padding: 0.72rem 0.8rem;
  border: 1px solid rgba(31, 29, 26, 0.13);
  border-radius: 0.78rem;
  background: rgba(255, 255, 255, 0.82);
  color: var(--ink);
  font: inherit;
}

.site-control-field-pair {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
}

.site-control-preview-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0.2rem 0 0.9rem;
}

.site-control-preview-actions a {
  padding: 0.5rem 0.68rem;
  border: 1px solid rgba(31, 29, 26, 0.11);
  border-radius: 999px;
  color: rgba(31, 29, 26, 0.68);
  background: rgba(255, 255, 255, 0.64);
  font-size: 0.72rem;
  text-decoration: none;
}

.site-control-note {
  margin: 0.1rem 0 0.9rem;
  color: rgba(31, 29, 26, 0.48);
  font-size: 0.73rem;
  line-height: 1.55;
}

.site-control-security-status,
.site-control-deadline-explanation {
  margin-bottom: 0.85rem;
  padding: 0.75rem 0.8rem;
  border: 1px solid rgba(31, 29, 26, 0.09);
  border-radius: 0.85rem;
  background: rgba(255, 255, 255, 0.56);
}

.site-control-security-status {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.65rem;
}

.site-control-security-status > span {
  width: 0.62rem;
  height: 0.62rem;
  border-radius: 999px;
  background: #a25045;
  box-shadow: 0 0 0 0.25rem rgba(162, 80, 69, 0.1);
}

.site-control-security-status.is-ready > span {
  background: #71816d;
  box-shadow: 0 0 0 0.25rem rgba(113, 129, 109, 0.11);
}

.site-control-security-status strong,
.site-control-security-status small,
.site-control-deadline-explanation strong,
.site-control-deadline-explanation p {
  display: block;
}

.site-control-security-status strong,
.site-control-deadline-explanation strong {
  font-size: 0.78rem;
}

.site-control-security-status small,
.site-control-deadline-explanation p {
  margin: 0.18rem 0 0;
  color: rgba(31, 29, 26, 0.48);
  font-size: 0.72rem;
  line-height: 1.5;
}

.site-control-card > .button {
  width: 100%;
  margin-top: 0.1rem;
}

@media (max-width: 1050px) {
  .site-control-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .rsvp-access-overview {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .rsvp-access-overview-note {
    grid-column: 1 / -1;
    padding: 0.75rem 0 0;
    border-top: 1px solid rgba(31, 29, 26, 0.09);
    border-left: 0;
  }

  .site-control-overview {
    grid-template-columns: 1fr;
  }

  .site-control-field-pair {
    grid-template-columns: 1fr;
  }

  .site-control-titlebar {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* ==========================================================================
   Nettside og RSVP · integrert adminuttrykk
   ========================================================================== */

body.admin-onepage.site-rsvp-settings-page .site-control-section {
  place-items: start center;
  padding-block: clamp(2.2rem, 4vw, 4rem);
}

body.admin-onepage.site-rsvp-settings-page
.site-control-section
.admin-section-inner-wide {
  width: min(90vw, 1200px);
  max-width: 1200px;
}

.site-control-titlebar {
  align-items: flex-end;
  gap: 1.5rem;
  margin-bottom: 1.4rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid rgba(31, 29, 26, 0.08);
}

.site-control-titlebar .tittel {
  margin: 0.35rem 0 0.45rem;
}

.site-control-intro {
  max-width: 44rem;
  color: rgba(31, 29, 26, 0.56);
  font-size: 0.92rem;
  line-height: 1.7;
}

.site-control-back {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 2.8rem;
  padding-inline: 1rem;
  white-space: nowrap;
}

.site-control-back > span {
  font-size: 1rem;
  line-height: 1;
  transform: translateY(-0.02em);
}

.site-control-overview {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem;
  margin: 0 0 1rem;
}

.site-control-overview article {
  position: relative;
  min-height: 7rem;
  padding: 1.1rem 1.15rem 1rem 1.3rem;
  overflow: hidden;
  border: 1px solid rgba(31, 29, 26, 0.075);
  border-radius: 1.25rem;
  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.86),
      rgba(255, 253, 249, 0.64)
    );
  box-shadow:
    0 12px 34px rgba(31, 29, 26, 0.04),
    inset 0 1px 0 rgba(255, 255, 255, 0.76);
}

.site-control-overview article::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: rgba(205, 179, 138, 0.68);
}

.site-control-overview article.is-danger::before,
.site-control-overview article.is-error::before,
.site-control-overview article.is-closed::before {
  background: rgba(162, 80, 69, 0.72);
}

.site-control-overview article.is-success::before,
.site-control-overview article.is-open::before {
  background: rgba(113, 129, 109, 0.78);
}

.site-control-overview span {
  margin-bottom: 0.55rem;
  color: rgba(31, 29, 26, 0.44);
  font-size: 0.64rem;
  font-weight: 780;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.site-control-overview strong {
  font-family: var(--font-serif);
  font-size: clamp(1.3rem, 2vw, 1.65rem);
  font-weight: 400;
  letter-spacing: -0.025em;
  line-height: 1.05;
  white-space: normal;
}

.site-control-overview small {
  margin-top: 0.5rem;
  color: rgba(31, 29, 26, 0.5);
  font-size: 0.74rem;
  line-height: 1.5;
}

.site-control-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.site-control-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: clamp(1.2rem, 2.5vw, 1.65rem);
  border: 1px solid rgba(31, 29, 26, 0.075);
  border-radius: 1.35rem;
  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.86),
      rgba(255, 253, 249, 0.64)
    );
  box-shadow:
    0 12px 34px rgba(31, 29, 26, 0.045),
    inset 0 1px 0 rgba(255, 255, 255, 0.74);
}

.site-control-card-wide {
  grid-column: 1 / -1;
}

.site-control-card-heading {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 0.9rem;
  margin-bottom: 1.25rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(31, 29, 26, 0.075);
}

.site-control-card-heading > span {
  display: grid;
  place-items: center;
  width: 2.15rem;
  height: 2.15rem;
  border: 1px solid rgba(205, 179, 138, 0.46);
  border-radius: 999px;
  background: rgba(205, 179, 138, 0.11);
  color: rgba(112, 82, 40, 0.9);
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.site-control-card-heading h2 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(1.55rem, 3vw, 2.15rem);
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 1;
}

.site-control-card-heading p {
  max-width: 42rem;
  margin: 0.55rem 0 0;
  color: rgba(31, 29, 26, 0.56);
  font-size: 0.82rem;
  line-height: 1.6;
}

.site-control-card-wide .site-control-options {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.site-control-options {
  display: grid;
  gap: 0.65rem;
  margin: 0 0 1rem;
  padding: 0;
  border: 0;
}

.site-control-options legend {
  grid-column: 1 / -1;
  margin-bottom: 0.05rem;
  color: rgba(31, 29, 26, 0.48);
  font-size: 0.66rem;
  font-weight: 760;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.site-control-options label {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 0.72rem;
  min-height: 5.65rem;
  padding: 0.9rem;
  border: 1px solid rgba(31, 29, 26, 0.085);
  border-radius: 1rem;
  background: rgba(255, 253, 249, 0.72);
  cursor: pointer;
  transition:
    border-color 150ms ease,
    background 150ms ease,
    box-shadow 150ms ease,
    transform 150ms ease;
}

.site-control-options label:hover {
  border-color: rgba(168, 143, 104, 0.32);
  background: rgba(255, 253, 249, 0.94);
  transform: translateY(-1px);
}

.site-control-options label:has(input:checked) {
  border-color: rgba(168, 143, 104, 0.5);
  background:
    linear-gradient(
      180deg,
      rgba(249, 244, 236, 0.95),
      rgba(244, 235, 221, 0.72)
    );
  box-shadow:
    inset 0 0 0 1px rgba(205, 179, 138, 0.15),
    0 8px 20px rgba(112, 82, 40, 0.045);
}

.site-control-options input[type="radio"] {
  width: 1rem;
  height: 1rem;
  margin: 0.08rem 0 0;
  accent-color: #8f7653;
}

.site-control-options strong {
  color: var(--ink);
  font-size: 0.86rem;
  line-height: 1.2;
}

.site-control-options small {
  margin-top: 0.35rem;
  color: rgba(31, 29, 26, 0.5);
  font-size: 0.74rem;
  line-height: 1.5;
}

.site-control-field {
  display: grid;
  gap: 0.46rem;
  margin-bottom: 0.9rem;
}

.site-control-field > span {
  color: rgba(31, 29, 26, 0.52);
  font-size: 0.68rem;
  font-weight: 730;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.site-control-field input {
  width: 100%;
  min-height: 3.15rem;
  padding: 0.78rem 0.9rem;
  border: 1px solid rgba(31, 29, 26, 0.12);
  border-radius: 0.95rem;
  background: rgba(255, 253, 249, 0.9);
  color: var(--ink);
  font: inherit;
  outline: none;
  transition:
    border-color 150ms ease,
    box-shadow 150ms ease,
    background 150ms ease;
}

.site-control-field input:focus {
  border-color: rgba(168, 143, 104, 0.62);
  background: #fffdf9;
  box-shadow: 0 0 0 4px rgba(205, 179, 138, 0.12);
}

.site-control-field-pair {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.8rem;
}

.site-control-security-status,
.site-control-deadline-explanation {
  margin-bottom: 1rem;
  padding: 0.9rem 0.95rem;
  border: 1px solid rgba(31, 29, 26, 0.08);
  border-radius: 1rem;
  background: rgba(255, 253, 249, 0.7);
}

.site-control-security-status {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.75rem;
}

.site-control-security-status > span {
  width: 0.7rem;
  height: 0.7rem;
  border-radius: 999px;
  background: #a25045;
  box-shadow: 0 0 0 0.3rem rgba(162, 80, 69, 0.1);
}

.site-control-security-status.is-ready > span {
  background: #71816d;
  box-shadow: 0 0 0 0.3rem rgba(113, 129, 109, 0.11);
}

.site-control-security-status strong,
.site-control-deadline-explanation strong {
  font-size: 0.8rem;
}

.site-control-security-status small,
.site-control-deadline-explanation p,
.site-control-note {
  color: rgba(31, 29, 26, 0.5);
  font-size: 0.74rem;
  line-height: 1.6;
}

.site-control-note {
  margin: 0.05rem 0 1rem;
}

.site-control-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  flex-wrap: wrap;
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid rgba(31, 29, 26, 0.075);
}

.site-control-card-footer.is-end {
  justify-content: flex-end;
}

.site-control-preview-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0;
}

.site-control-preview-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.65rem;
  padding: 0.68rem 0.85rem;
  border: 1px solid rgba(31, 29, 26, 0.1);
  border-radius: 999px;
  background: rgba(255, 253, 249, 0.78);
  color: rgba(31, 29, 26, 0.7);
  font-size: 0.7rem;
  font-weight: 720;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition:
    border-color 150ms ease,
    background 150ms ease,
    transform 150ms ease;
}

.site-control-preview-actions a:hover {
  border-color: rgba(168, 143, 104, 0.4);
  background: #fffdf9;
  transform: translateY(-1px);
}

.site-control-card > .button,
.site-control-card-footer .button {
  width: auto;
  min-height: 2.8rem;
  margin: 0;
  padding-inline: 1rem;
  white-space: nowrap;
}

@media (max-width: 1050px) {
  .site-control-card-wide .site-control-options {
    grid-template-columns: 1fr;
  }

  .site-control-options label {
    min-height: auto;
  }
}

@media (max-width: 820px) {
  .site-control-overview,
  .site-control-grid {
    grid-template-columns: 1fr;
  }

  .site-control-card-wide {
    grid-column: auto;
  }

  .site-control-titlebar {
    align-items: flex-start;
    flex-direction: column;
  }

  .site-control-back {
    align-self: flex-start;
  }
}

@media (max-width: 620px) {
  body.admin-onepage.site-rsvp-settings-page
  .site-control-section
  .admin-section-inner-wide {
    width: min(92vw, 1200px);
  }

  .site-control-overview article {
    min-height: auto;
  }

  .site-control-field-pair {
    grid-template-columns: 1fr;
  }

  .site-control-card-footer,
  .site-control-card-footer.is-end {
    align-items: stretch;
    flex-direction: column;
    justify-content: flex-start;
  }

  .site-control-preview-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .site-control-preview-actions a,
  .site-control-card-footer .button {
    width: 100%;
  }
}

/* ==========================================================================
   Nettside og RSVP · tilbakedatert svarfrist og integrerte meldinger
   ========================================================================== */

.site-control-deadline-warning {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 0.78rem;
  margin: 0 0 1rem;
  padding: 0.92rem 0.95rem;
  border: 1px solid rgba(168, 119, 49, 0.24);
  border-radius: 1rem;
  background:
    linear-gradient(
      135deg,
      rgba(205, 179, 138, 0.13),
      rgba(255, 253, 249, 0.8)
    );
  color: rgba(31, 29, 26, 0.66);
}

.site-control-deadline-warning[hidden] {
  display: none !important;
}

.site-control-deadline-warning-mark {
  display: grid;
  place-items: center;
  width: 1.65rem;
  height: 1.65rem;
  margin-top: 0.02rem;
  border: 1px solid rgba(168, 119, 49, 0.34);
  border-radius: 999px;
  background: rgba(255, 253, 249, 0.82);
  color: rgba(132, 87, 32, 0.94);
  font-size: 0.76rem;
  font-weight: 850;
  line-height: 1;
}

.site-control-deadline-warning strong {
  display: block;
  color: rgba(112, 72, 27, 0.94);
  font-size: 0.78rem;
  line-height: 1.35;
}

.site-control-deadline-warning p {
  margin: 0.32rem 0 0;
  color: rgba(31, 29, 26, 0.56);
  font-size: 0.73rem;
  line-height: 1.58;
}

.site-control-deadline-confirmation {
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  gap: 0.58rem !important;
  width: fit-content;
  max-width: 100%;
  margin: 0.72rem 0 0 !important;
  color: rgba(31, 29, 26, 0.68) !important;
  font-size: 0.72rem !important;
  font-weight: 650 !important;
  letter-spacing: 0 !important;
  line-height: 1.48 !important;
  text-transform: none !important;
  cursor: pointer;
}

.site-control-deadline-confirmation input[type="checkbox"] {
  appearance: auto !important;
  -webkit-appearance: checkbox !important;
  flex: 0 0 1rem !important;
  width: 1rem !important;
  min-width: 1rem !important;
  max-width: 1rem !important;
  height: 1rem !important;
  min-height: 1rem !important;
  margin: 0.12rem 0 0 !important;
  padding: 0 !important;
  border-radius: 0.2rem !important;
  accent-color: #9a7447;
  box-shadow: none !important;
}

.site-control-deadline-confirmation span {
  display: inline !important;
  margin: 0 !important;
}

.site-control-toast-region {
  position: fixed;
  z-index: 220;
  right: clamp(0.35rem, 1vw, 0.75rem);
  bottom: clamp(0.85rem, 2.4vw, 1.5rem);
  display: grid;
  gap: 0.55rem;
  width: min(23rem, calc(100vw - 1rem));
  pointer-events: none;
}

.site-control-toast {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.72rem;
  min-height: 3.5rem;
  padding: 0.88rem 0.82rem 0.88rem 1rem;
  border: 1px solid rgba(31, 29, 26, 0.1);
  border-radius: 1rem;
  background: rgba(255, 253, 249, 0.96);
  color: rgba(31, 29, 26, 0.74);
  box-shadow:
    0 16px 38px rgba(31, 29, 26, 0.13),
    inset 0 1px 0 rgba(255, 255, 255, 0.76);
  font-size: 0.76rem;
  line-height: 1.52;
  pointer-events: auto;
  animation: siteControlToastIn 320ms cubic-bezier(.22, 1, .36, 1) both;
}

.site-control-toast-mark {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 999px;
  background: #71816d;
  box-shadow: 0 0 0 0.28rem rgba(113, 129, 109, 0.1);
}

.site-control-toast.is-error {
  border-color: rgba(162, 80, 69, 0.22);
}

.site-control-toast.is-error .site-control-toast-mark {
  background: #a25045;
  box-shadow: 0 0 0 0.28rem rgba(162, 80, 69, 0.1);
}

.site-control-toast-message {
  min-width: 0;
}

.site-control-toast-close {
  position: relative;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 1px solid rgba(31, 29, 26, 0.09);
  border-radius: 999px;
  background: rgba(255, 253, 249, 0.7);
  color: rgba(31, 29, 26, 0.48);
  cursor: pointer;
  transition:
    border-color 160ms ease,
    background 160ms ease,
    transform 160ms ease;
}

.site-control-toast-close::before,
.site-control-toast-close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.72rem;
  height: 1px;
  border-radius: 999px;
  background: currentColor;
}

.site-control-toast-close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.site-control-toast-close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.site-control-toast-close:hover {
  border-color: rgba(168, 143, 104, 0.42);
  background: #fffdf9;
  transform: rotate(4deg) scale(1.04);
}

.site-control-toast-close:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(205, 179, 138, 0.15);
}

.site-control-toast.is-leaving {
  animation: siteControlToastOut 220ms ease both;
}

@keyframes siteControlToastIn {
  from {
    opacity: 0;
    transform: translateY(0.75rem) scale(0.98);
  }

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

@keyframes siteControlToastOut {
  to {
    opacity: 0;
    transform: translateY(0.5rem) scale(0.98);
  }
}

@media (max-width: 620px) {
  .site-control-toast-region {
    right: 0.5rem;
    bottom: 0.75rem;
    left: 0.5rem;
    width: auto;
  }

  .site-control-deadline-warning {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-control-toast,
  .site-control-toast.is-leaving {
    animation: none;
  }
}

/* Nettside og RSVP: gi versaler/aksenter trygg luft i statuskortene. */
.site-control-overview span {
  margin-bottom: 0.48rem;
}

.site-control-overview strong {
  overflow: visible;
  line-height: 1.18;
}


/* ==========================================================================
   RSVP offentlig · adminlinje og ryddig footeradferd
   ========================================================================== */

body.rsvp-public {
  --rsvp-admin-utility-height: 38px;
}

body.rsvp-public .rsvp-admin-utility-bar {
  position: fixed;
  z-index: 95;
  top: 0;
  left: 0;
  right: 0;
  height: var(--rsvp-admin-utility-height);
  display: grid;
  place-items: center;
  background: rgba(31, 29, 26, 0.96);
  color: rgba(255, 253, 249, 0.82);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

body.rsvp-public .rsvp-admin-utility-bar .admin-utility-inner {
  width: min(90vw, 1200px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  line-height: 1;
  text-transform: uppercase;
}

body.rsvp-public .rsvp-admin-utility-bar .admin-utility-inner > span {
  min-width: 0;
  color: rgba(255, 253, 249, 0.52);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

body.rsvp-public .rsvp-admin-utility-bar .admin-utility-actions {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  flex: 0 0 auto;
}

body.rsvp-public .rsvp-admin-utility-bar .admin-utility-actions a {
  color: rgba(255, 253, 249, 0.82);
  text-decoration: none;
  transition: color 160ms ease;
}

body.rsvp-public .rsvp-admin-utility-bar .admin-utility-actions a:hover {
  color: #fffdf9;
}

body.rsvp-public.has-rsvp-admin-bar .site-header {
  top: var(--rsvp-admin-utility-height) !important;
}

body.rsvp-public.has-rsvp-admin-bar.rsvp-onepage .rsvp-page-section,
body.rsvp-public.has-rsvp-admin-bar.rsvp-section-page .rsvp-page-section {
  padding-top: calc(clamp(11rem, 14vw, 13rem) + var(--rsvp-admin-utility-height));
}

@media (max-width: 780px) {
  body.rsvp-public {
    --rsvp-admin-utility-height: 36px;
  }

  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-inner {
    width: min(92vw, 1200px);
    font-size: 0.61rem;
    letter-spacing: 0.11em;
  }

  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-actions {
    gap: 0.55rem;
  }

  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-inner > span {
    max-width: 42vw;
  }

  body.rsvp-public.has-rsvp-admin-bar.rsvp-onepage .rsvp-page-section,
  body.rsvp-public.has-rsvp-admin-bar.rsvp-section-page .rsvp-page-section {
    padding-top: calc(7rem + var(--rsvp-admin-utility-height));
  }
}

/* ==========================================================================
   Dashboard · intuitive innstillinger og invitasjonstelling
   ========================================================================== */

body.admin-onepage #dashboard .admin-dashboard-settings-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.8rem;
  padding: 0.9rem;
}

body.admin-onepage #dashboard .admin-dashboard-setting-row {
  margin: 0;
}

body.admin-onepage #dashboard .admin-dashboard-invitation-tracking-card {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
  padding: 1.15rem;
  border-color: rgba(205, 179, 138, 0.26);
  background:
    radial-gradient(circle at 96% 4%, rgba(205, 179, 138, 0.12), transparent 31%),
    linear-gradient(145deg, rgba(255,255,255,0.92), rgba(255,253,249,0.68));
  box-shadow:
    0 12px 30px rgba(31,29,26,0.035),
    inset 0 1px 0 rgba(255,255,255,0.9);
}

body.admin-onepage #dashboard .admin-dashboard-invitation-tracking-card:hover {
  transform: none;
}

body.admin-onepage #dashboard .admin-dashboard-invitation-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

body.admin-onepage #dashboard .admin-dashboard-setting-eyebrow {
  display: block;
  margin-bottom: 0.28rem;
  color: rgba(168,143,104,0.94);
  font-size: 0.61rem;
  font-weight: 800;
  letter-spacing: 0.17em;
  line-height: 1.2;
  text-transform: uppercase;
}

body.admin-onepage #dashboard .admin-dashboard-invitation-heading
.admin-dashboard-setting-copy strong {
  font-family: var(--font-serif);
  font-size: clamp(1.15rem, 1.4vw, 1.48rem);
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.15;
}

body.admin-onepage #dashboard .admin-dashboard-invitation-heading
.admin-dashboard-setting-copy > span:last-child {
  max-width: 45rem;
  margin-top: 0.34rem;
  line-height: 1.55;
}

body.admin-onepage #dashboard .admin-dashboard-invitation-source {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  padding: 0.44rem 0.68rem;
  border: 1px solid rgba(111,132,104,0.22);
  border-radius: 999px;
  background: rgba(111,132,104,0.08);
  color: rgba(74,94,69,0.88);
  font-size: 0.59rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1;
  text-transform: uppercase;
}

/*
 * Den tidligere statusprikken brukte et pseudo-element med box-shadow.
 * I enkelte nettlesere ble gløden rasterisert som en lys firkant bak A-en.
 * Merket er allerede tydelig gjennom farge og ramme, så prikken fjernes.
 */
body.admin-onepage #dashboard .admin-dashboard-invitation-source::before {
  content: none;
  display: none;
}

body.admin-onepage #dashboard .admin-dashboard-invitation-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
}

body.admin-onepage #dashboard .admin-dashboard-invitation-metric {
  min-width: 0;
  padding: 0.82rem 0.9rem;
  border: 1px solid rgba(31,29,26,0.075);
  border-radius: 0.9rem;
  background: rgba(255,255,255,0.62);
}

body.admin-onepage #dashboard .admin-dashboard-invitation-metric.is-primary {
  border-color: rgba(205,179,138,0.36);
  background: rgba(205,179,138,0.09);
}

body.admin-onepage #dashboard .admin-dashboard-invitation-metric strong,
body.admin-onepage #dashboard .admin-dashboard-invitation-metric span {
  display: block;
}

body.admin-onepage #dashboard .admin-dashboard-invitation-metric strong {
  color: var(--ink);
  font-family: var(--font-serif);
  font-size: 1.55rem;
  font-weight: 500;
  line-height: 1;
}

body.admin-onepage #dashboard .admin-dashboard-invitation-metric span {
  margin-top: 0.32rem;
  color: rgba(31,29,26,0.46);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.25;
  text-transform: uppercase;
}

body.admin-onepage #dashboard .admin-dashboard-invitation-adjustment {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  padding-top: 0.95rem;
  border-top: 1px solid rgba(31,29,26,0.07);
}

body.admin-onepage #dashboard .admin-dashboard-invitation-adjustment-copy strong,
body.admin-onepage #dashboard .admin-dashboard-invitation-adjustment-copy span {
  display: block;
}

body.admin-onepage #dashboard .admin-dashboard-invitation-adjustment-copy strong {
  color: rgba(31,29,26,0.78);
  font-size: 0.76rem;
  font-weight: 750;
  line-height: 1.35;
}

body.admin-onepage #dashboard .admin-dashboard-invitation-adjustment-copy span {
  max-width: 43rem;
  margin-top: 0.18rem;
  color: rgba(31,29,26,0.42);
  font-size: 0.67rem;
  font-weight: 500;
  line-height: 1.5;
}

body.admin-onepage #dashboard .admin-dashboard-invitation-adjustment
.admin-dashboard-setting-controls {
  display: flex !important;
  grid-template-columns: none;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 0.55rem;
}

body.admin-onepage #dashboard .admin-dashboard-invitation-adjustment
.admin-dashboard-setting-controls > label {
  width: auto;
  min-width: 8.8rem;
}

body.admin-onepage #dashboard .admin-dashboard-invitation-adjustment
.admin-dashboard-setting-controls input[type="number"] {
  width: 7rem;
  min-width: 7rem;
  text-align: center;
}

body.admin-onepage #dashboard .admin-dashboard-invitation-tracking-card
.admin-dashboard-invitation-tracking-note {
  display: block;
  margin: -0.32rem 0 0;
  color: rgba(31,29,26,0.35);
  font-size: 0.59rem;
  font-weight: 500;
  line-height: 1.45;
  text-align: right;
  white-space: normal;
}

body.admin-onepage #dashboard .admin-dashboard-setting-link-card {
  min-height: 7.4rem;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  padding: 1.05rem;
  border-color: rgba(31,29,26,0.07);
  background: rgba(255,255,255,0.5);
}

body.admin-onepage #dashboard .admin-dashboard-setting-link-card
.admin-dashboard-setting-copy strong {
  font-family: var(--font-serif);
  font-size: 1.03rem;
  font-weight: 500;
  letter-spacing: -0.01em;
}

body.admin-onepage #dashboard .admin-dashboard-setting-link-card
.admin-dashboard-setting-copy span {
  max-width: 29rem;
  margin-top: 0.3rem;
  line-height: 1.5;
}

body.admin-onepage #dashboard .admin-dashboard-setting-link-card
.admin-dashboard-setting-link {
  min-width: 7.4rem;
  justify-content: center;
}

@media (max-width: 900px) {
  body.admin-onepage #dashboard .admin-dashboard-settings-list {
    grid-template-columns: minmax(0, 1fr);
  }

  body.admin-onepage #dashboard .admin-dashboard-invitation-tracking-card,
  body.admin-onepage #dashboard .admin-dashboard-setting-link-card {
    grid-column: 1;
  }
}

@media (max-width: 680px) {
  body.admin-onepage #dashboard .admin-dashboard-settings-list {
    padding: 0.65rem;
  }

  body.admin-onepage #dashboard .admin-dashboard-invitation-heading,
  body.admin-onepage #dashboard .admin-dashboard-invitation-adjustment {
    grid-template-columns: minmax(0, 1fr);
    flex-direction: column;
    align-items: stretch;
  }

  body.admin-onepage #dashboard .admin-dashboard-invitation-source {
    align-self: flex-start;
  }

  body.admin-onepage #dashboard .admin-dashboard-invitation-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.admin-onepage #dashboard .admin-dashboard-invitation-metric.is-primary {
    grid-column: 1 / -1;
  }

  body.admin-onepage #dashboard .admin-dashboard-invitation-adjustment
  .admin-dashboard-setting-controls {
    justify-content: stretch;
  }

  body.admin-onepage #dashboard .admin-dashboard-invitation-adjustment
  .admin-dashboard-setting-controls > label,
  body.admin-onepage #dashboard .admin-dashboard-invitation-adjustment
  .admin-dashboard-setting-controls input[type="number"] {
    width: 100%;
    min-width: 0;
  }

  body.admin-onepage #dashboard .admin-dashboard-invitation-adjustment
  .admin-dashboard-setting-controls button {
    flex: 0 0 auto;
  }

  body.admin-onepage #dashboard .admin-dashboard-invitation-tracking-card
  .admin-dashboard-invitation-tracking-note {
    text-align: left;
  }

  body.admin-onepage #dashboard .admin-dashboard-setting-link-card {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
  }

  body.admin-onepage #dashboard .admin-dashboard-setting-link-card
  .admin-dashboard-setting-link {
    width: 100%;
  }
}

/* ==========================================================================
   Admin RSVP · ryddigere gjenoppretting og permanent sletting
   ========================================================================== */

body.admin-onepage .admin-rsvp-tool-note-warning {
  background:
    linear-gradient(145deg, rgba(255,255,255,0.72), rgba(155,115,71,0.055));
}

body.admin-onepage .admin-rsvp-restore-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
}

body.admin-onepage .admin-rsvp-restore-row > p {
  max-width: 34rem;
}

body.admin-onepage .admin-rsvp-restore-action {
  margin: 0;
}

body.admin-onepage .admin-rsvp-permanent-delete {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 1rem 1.25rem;
  margin-top: 1.1rem;
  padding: 1rem 1.05rem;
  border: 1px solid rgba(155, 72, 61, 0.16);
  border-radius: 0.9rem;
  background: rgba(155, 72, 61, 0.035);
}

body.admin-onepage .admin-rsvp-permanent-delete::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.8rem;
  bottom: 0.8rem;
  width: 2px;
  border-radius: 999px;
  background: rgba(155, 72, 61, 0.45);
}

body.admin-onepage .admin-rsvp-permanent-delete-copy {
  min-width: 0;
}

body.admin-onepage .admin-rsvp-danger-label {
  display: block;
  margin-bottom: 0.3rem;
  color: rgba(136, 67, 58, 0.78);
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  line-height: 1.2;
  text-transform: uppercase;
}

body.admin-onepage .admin-rsvp-permanent-delete-copy > strong {
  display: block;
  margin-bottom: 0.3rem;
  color: rgba(86, 45, 40, 0.94);
  font-size: 0.92rem;
  font-weight: 650;
  line-height: 1.35;
}

body.admin-onepage .admin-rsvp-permanent-delete-copy > p {
  max-width: 34rem;
  color: rgba(86, 45, 40, 0.66);
  font-size: 0.82rem;
  line-height: 1.6;
}

body.admin-onepage .admin-rsvp-permanent-delete-form {
  display: grid;
  justify-items: end;
  gap: 0.75rem;
  margin: 0;
}

body.admin-onepage .admin-rsvp-permanent-confirm {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  color: rgba(86, 45, 40, 0.7);
  font-size: 0.76rem;
  line-height: 1.4;
  cursor: pointer;
}

body.admin-onepage .admin-rsvp-permanent-confirm input[type="checkbox"] {
  flex: 0 0 auto;
  width: 1rem;
  height: 1rem;
  margin: 0;
  accent-color: var(--danger);
  cursor: pointer;
}

body.admin-onepage .admin-rsvp-permanent-delete-button {
  min-width: 9.5rem;
  padding-inline: 1.2rem;
}

@media (max-width: 780px) {
  body.admin-onepage .admin-rsvp-restore-row,
  body.admin-onepage .admin-rsvp-permanent-delete {
    grid-template-columns: 1fr;
  }

  body.admin-onepage .admin-rsvp-restore-action,
  body.admin-onepage .admin-rsvp-permanent-delete-form {
    width: 100%;
    justify-items: stretch;
  }

  body.admin-onepage .admin-rsvp-permanent-confirm {
    align-items: flex-start;
  }

  body.admin-onepage .admin-rsvp-permanent-delete-button {
    width: 100%;
  }
}

/* ==========================================================================
   Dashboard · arbeidsflyt og tydelig innstillingsramme
   ========================================================================== */

body.admin-onepage #dashboard .admin-dashboard-workflow-panel {
  background:
    radial-gradient(circle at 100% 0%, rgba(205, 179, 138, 0.13), transparent 22rem),
    rgba(255, 253, 249, 0.74);
}

body.admin-onepage #dashboard .admin-dashboard-workflow-panel
.admin-dashboard-panel-heading h3 {
  margin: 0.22rem 0 0;
  font-family: var(--font-serif);
  font-size: clamp(1.2rem, 1.6vw, 1.55rem);
  font-weight: 500;
  letter-spacing: -0.025em;
}

body.admin-onepage #dashboard .admin-dashboard-workflow {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid rgba(31, 29, 26, 0.075);
  border-radius: 1.05rem;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.52);
}

body.admin-onepage #dashboard .admin-dashboard-workflow-step {
  position: relative;
  min-width: 0;
  min-height: 8.4rem;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem;
  color: var(--ink);
  text-decoration: none;
  transition: background 180ms ease, transform 180ms ease;
}

body.admin-onepage #dashboard .admin-dashboard-workflow-step +
.admin-dashboard-workflow-step {
  border-left: 1px solid rgba(31, 29, 26, 0.075);
}

body.admin-onepage #dashboard .admin-dashboard-workflow-step:hover,
body.admin-onepage #dashboard .admin-dashboard-workflow-step:focus-visible {
  z-index: 1;
  outline: none;
  background: rgba(226, 211, 186, 0.18);
}

body.admin-onepage #dashboard .admin-dashboard-workflow-number {
  align-self: start;
  color: rgba(168, 143, 104, 0.9);
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.14em;
}

body.admin-onepage #dashboard .admin-dashboard-workflow-step div {
  min-width: 0;
}

body.admin-onepage #dashboard .admin-dashboard-workflow-step strong,
body.admin-onepage #dashboard .admin-dashboard-workflow-step small {
  display: block;
}

body.admin-onepage #dashboard .admin-dashboard-workflow-step strong {
  font-family: var(--font-serif);
  font-size: 1.12rem;
  font-weight: 500;
  line-height: 1.15;
}

body.admin-onepage #dashboard .admin-dashboard-workflow-step small {
  margin-top: 0.32rem;
  color: rgba(31, 29, 26, 0.47);
  font-size: 0.65rem;
  line-height: 1.45;
}

body.admin-onepage #dashboard .admin-dashboard-workflow-arrow {
  align-self: start;
  color: rgba(31, 29, 26, 0.32);
  font-size: 0.9rem;
  transition: transform 180ms ease, color 180ms ease;
}

body.admin-onepage #dashboard .admin-dashboard-workflow-step:hover
.admin-dashboard-workflow-arrow,
body.admin-onepage #dashboard .admin-dashboard-workflow-step:focus-visible
.admin-dashboard-workflow-arrow {
  color: rgba(125, 94, 53, 0.88);
  transform: translate(2px, -2px);
}

body.admin-onepage #dashboard .admin-dashboard-setting-link-card {
  border: 1px solid rgba(31, 29, 26, 0.085) !important;
  box-shadow:
    inset 0 -1px 0 rgba(205, 179, 138, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.7);
  overflow: hidden;
}

@media (max-width: 1080px) {
  body.admin-onepage #dashboard .admin-dashboard-workflow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.admin-onepage #dashboard .admin-dashboard-workflow-step:nth-child(3) {
    border-left: 0;
    border-top: 1px solid rgba(31, 29, 26, 0.075);
  }

  body.admin-onepage #dashboard .admin-dashboard-workflow-step:nth-child(4) {
    border-top: 1px solid rgba(31, 29, 26, 0.075);
  }
}

@media (max-width: 620px) {
  body.admin-onepage #dashboard .admin-dashboard-workflow {
    grid-template-columns: 1fr;
  }

  body.admin-onepage #dashboard .admin-dashboard-workflow-step {
    min-height: 0;
  }

  body.admin-onepage #dashboard .admin-dashboard-workflow-step +
  .admin-dashboard-workflow-step {
    border-left: 0;
    border-top: 1px solid rgba(31, 29, 26, 0.075);
  }
}

/* ========================================================================== 
   Dashboard · kompakt arbeidsflytlinje
   ========================================================================== */

body.admin-onepage #dashboard .admin-dashboard-lower-grid {
  grid-template-columns: 1fr;
}

body.admin-onepage #dashboard .admin-dashboard-workflow-panel {
  padding-top: clamp(1.15rem, 2.2vw, 1.55rem);
  padding-bottom: clamp(1.15rem, 2.2vw, 1.55rem);
}

body.admin-onepage #dashboard .admin-dashboard-workflow-panel
.admin-dashboard-panel-heading {
  margin-bottom: 0.85rem;
}

body.admin-onepage #dashboard .admin-dashboard-workflow-panel
.admin-dashboard-panel-heading h3 {
  font-size: clamp(1.35rem, 2vw, 1.8rem);
}

body.admin-onepage #dashboard .admin-dashboard-workflow {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  overflow: visible;
  padding: 0.15rem 0 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

body.admin-onepage #dashboard .admin-dashboard-workflow::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 1.25rem;
  left: 12.5%;
  right: 12.5%;
  height: 1px;
  background: linear-gradient(
    90deg,
    rgba(82, 113, 90, 0.3),
    rgba(205, 179, 138, 0.5) 42%,
    rgba(205, 179, 138, 0.28)
  );
}

body.admin-onepage #dashboard .admin-dashboard-workflow-step {
  position: relative;
  z-index: 1;
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  padding: 0.15rem clamp(0.45rem, 1.35vw, 1rem);
  color: var(--ink);
  text-align: center;
  text-decoration: none;
  transition: transform 180ms ease;
}

body.admin-onepage #dashboard .admin-dashboard-workflow-step +
.admin-dashboard-workflow-step {
  border: 0;
}

body.admin-onepage #dashboard .admin-dashboard-workflow-step:hover,
body.admin-onepage #dashboard .admin-dashboard-workflow-step:focus-visible {
  outline: none;
  background: transparent;
  transform: translateY(-2px);
}

body.admin-onepage #dashboard .admin-dashboard-workflow-marker {
  display: grid;
  place-items: center;
  width: 2.2rem;
  height: 2.2rem;
  flex: 0 0 auto;
  border: 1px solid rgba(31, 29, 26, 0.13);
  border-radius: 50%;
  background: #fffdf9;
  color: rgba(31, 29, 26, 0.68);
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1;
  box-shadow:
    0 4px 12px rgba(31, 29, 26, 0.045),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
  transition:
    border-color 180ms ease,
    background 180ms ease,
    color 180ms ease,
    box-shadow 180ms ease,
    transform 180ms ease;
}

body.admin-onepage #dashboard .admin-dashboard-workflow-copy {
  min-width: 0;
  margin-top: 0.62rem;
}

body.admin-onepage #dashboard .admin-dashboard-workflow-number,
body.admin-onepage #dashboard .admin-dashboard-workflow-step strong,
body.admin-onepage #dashboard .admin-dashboard-workflow-step small {
  display: block;
}

body.admin-onepage #dashboard .admin-dashboard-workflow-number {
  color: rgba(168, 143, 104, 0.82);
  font-size: 0.54rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  line-height: 1;
}

body.admin-onepage #dashboard .admin-dashboard-workflow-step strong {
  margin-top: 0.28rem;
  font-family: var(--font-serif);
  font-size: clamp(1rem, 1.5vw, 1.18rem);
  font-weight: 500;
  line-height: 1.15;
}

body.admin-onepage #dashboard .admin-dashboard-workflow-step small {
  max-width: 13rem;
  margin: 0.28rem auto 0;
  color: rgba(31, 29, 26, 0.46);
  font-size: 0.67rem;
  line-height: 1.4;
}

body.admin-onepage #dashboard .admin-dashboard-workflow-step.is-complete
.admin-dashboard-workflow-marker {
  border-color: rgba(82, 113, 90, 0.24);
  background: rgba(82, 113, 90, 0.08);
  color: rgba(82, 113, 90, 0.9);
}

body.admin-onepage #dashboard .admin-dashboard-workflow-step.is-attention
.admin-dashboard-workflow-marker {
  border-color: rgba(205, 179, 138, 0.72);
  background: #fffaf1;
  color: rgba(112, 79, 38, 0.94);
  box-shadow:
    0 0 0 4px rgba(205, 179, 138, 0.1),
    0 5px 14px rgba(31, 29, 26, 0.05);
}

body.admin-onepage #dashboard .admin-dashboard-workflow-step.is-current
.admin-dashboard-workflow-marker,
body.admin-onepage #dashboard .admin-dashboard-workflow-step.is-ready
.admin-dashboard-workflow-marker {
  border-color: rgba(31, 29, 26, 0.2);
  background: #fffdf9;
  color: rgba(31, 29, 26, 0.78);
}

body.admin-onepage #dashboard .admin-dashboard-workflow-step:hover
.admin-dashboard-workflow-marker,
body.admin-onepage #dashboard .admin-dashboard-workflow-step:focus-visible
.admin-dashboard-workflow-marker {
  border-color: rgba(168, 143, 104, 0.72);
  box-shadow:
    0 0 0 4px rgba(205, 179, 138, 0.1),
    0 7px 18px rgba(31, 29, 26, 0.065);
  transform: scale(1.04);
}

@media (max-width: 680px) {
  body.admin-onepage #dashboard .admin-dashboard-workflow {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 0;
  }

  body.admin-onepage #dashboard .admin-dashboard-workflow::before {
    top: 1.1rem;
    bottom: 1.1rem;
    left: 1.08rem;
    right: auto;
    width: 1px;
    height: auto;
    background: linear-gradient(
      180deg,
      rgba(82, 113, 90, 0.3),
      rgba(205, 179, 138, 0.5) 42%,
      rgba(205, 179, 138, 0.28)
    );
  }

  body.admin-onepage #dashboard .admin-dashboard-workflow-step {
    flex-direction: row;
    align-items: center;
    gap: 0.85rem;
    padding: 0.58rem 0;
    text-align: left;
  }

  body.admin-onepage #dashboard .admin-dashboard-workflow-copy {
    margin-top: 0;
  }

  body.admin-onepage #dashboard .admin-dashboard-workflow-step small {
    max-width: none;
    margin-left: 0;
    margin-right: 0;
  }
}

/* ==========================================================================
   Oppdatering 2026-07-11 · dashboard, innstillinger og rapportbygger
   ========================================================================== */

/* Haken skal dekke tidslinjen helt når et arbeidsflytsteg er fullført. */
body.admin-onepage #dashboard .admin-dashboard-workflow-marker {
  position: relative;
  z-index: 2;
}

body.admin-onepage #dashboard .admin-dashboard-workflow-step.is-complete
.admin-dashboard-workflow-marker {
  background: #eef3ec;
  box-shadow:
    0 0 0 3px #fffdf9,
    0 4px 12px rgba(31, 29, 26, 0.045),
    inset 0 1px 0 rgba(255, 255, 255, 0.88);
}

/* Nettside og RSVP: rapportinspirerte radiokort. */
.site-control-options label {
  grid-template-columns: minmax(0, 1fr);
  overflow: hidden;
  isolation: isolate;
  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.9),
      rgba(255, 253, 249, 0.72)
    );
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.86),
    0 4px 12px rgba(31, 29, 26, 0.018);
}

.site-control-options label:hover {
  border-color: rgba(168, 143, 104, 0.4);
  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.98),
      rgba(255, 253, 249, 0.82)
    );
}

.site-control-options label:has(input:checked) {
  border-color: rgba(205, 179, 138, 0.48);
  background:
    radial-gradient(
      circle at 0 50%,
      rgba(205, 179, 138, 0.14),
      transparent 6.5rem
    ),
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.96),
      rgba(255, 253, 249, 0.76)
    );
  box-shadow:
    0 7px 18px rgba(31, 29, 26, 0.035),
    inset 0 1px 0 rgba(255, 255, 255, 0.9),
    inset 0 -2px 0 rgba(205, 179, 138, 0.28);
}

.site-control-options label > input[type="radio"] {
  position: absolute;
  width: 1px;
  height: 1px;
  min-height: 0;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  opacity: 0;
  pointer-events: none;
}

.site-control-options label > span {
  position: relative;
  display: block;
  min-width: 0;
  padding-left: 2rem;
}

.site-control-options label > span::before,
.site-control-options label > span::after {
  content: "";
  position: absolute;
  border-radius: 50%;
}

.site-control-options label > span::before {
  top: 0.01rem;
  left: 0;
  width: 1.12rem;
  height: 1.12rem;
  border: 1px solid rgba(168, 143, 104, 0.5);
  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.98),
      rgba(255, 253, 249, 0.76)
    );
  box-shadow:
    0 4px 10px rgba(31, 29, 26, 0.035),
    inset 0 1px 0 rgba(255, 255, 255, 0.92);
  transition:
    border-color 180ms ease,
    background 180ms ease,
    box-shadow 180ms ease,
    transform 180ms cubic-bezier(.22, 1, .36, 1);
}

.site-control-options label > span::after {
  top: 0.36rem;
  left: 0.35rem;
  width: 0.42rem;
  height: 0.42rem;
  background: var(--paper);
  opacity: 0;
  transform: scale(0.45);
  transition:
    opacity 150ms ease,
    transform 190ms cubic-bezier(.22, 1, .36, 1);
}

.site-control-options label:hover > span::before {
  border-color: rgba(168, 143, 104, 0.84);
  background: #fff;
  box-shadow:
    0 6px 14px rgba(31, 29, 26, 0.05),
    inset 0 1px 0 rgba(255, 255, 255, 0.94);
}

.site-control-options label:has(input:checked) > span::before {
  border-color: var(--ink);
  background:
    linear-gradient(
      180deg,
      rgba(31, 29, 26, 0.96),
      rgba(31, 29, 26, 0.88)
    );
  box-shadow:
    0 0 0 4px rgba(205, 179, 138, 0.13),
    0 7px 16px rgba(31, 29, 26, 0.11),
    inset 0 1px 0 rgba(255, 255, 255, 0.13);
  transform: scale(1.03);
}

.site-control-options label:has(input:checked) > span::after {
  opacity: 1;
  transform: scale(1);
}

.site-control-options label:has(input:focus-visible) {
  outline: 2px solid rgba(143, 118, 83, 0.48);
  outline-offset: 2px;
}

.site-control-card-wide > .site-control-field:not([hidden]) {
  margin: 0 0 1rem;
  padding: 0.82rem 0.9rem 0.9rem;
  border: 1px solid rgba(205, 179, 138, 0.24);
  border-radius: 1rem;
  background:
    linear-gradient(
      180deg,
      rgba(249, 244, 236, 0.5),
      rgba(255, 253, 249, 0.7)
    );
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.84);
  animation: site-control-field-reveal 180ms cubic-bezier(.22, 1, .36, 1);
}

.site-control-card-wide > .site-control-field:not([hidden]) input {
  background: rgba(255, 255, 255, 0.9);
}

@keyframes site-control-field-reveal {
  from {
    opacity: 0;
    transform: translateY(-0.2rem);
  }

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

@media (prefers-reduced-motion: reduce) {
  .site-control-card-wide > .site-control-field:not([hidden]) {
    animation: none;
  }
}

.site-control-field[hidden],
.site-control-field.is-hidden {
  display: none !important;
}

.site-control-grid,
.site-control-card,
.site-control-field,
.site-control-field-pair,
.site-control-field-pair > * {
  min-width: 0;
}

.site-control-field input[type="date"],
.site-control-field input[type="datetime-local"] {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

/* Matnotater: ingen hvit fade ved ett notat, fade fra og med to. */
body.admin-onepage .admin-status-note-list-collapsible.has-single-note {
  max-height: none !important;
  overflow: visible !important;
  padding-bottom: 1.1rem;
  mask-image: none !important;
  -webkit-mask-image: none !important;
}

body.admin-onepage .admin-status-note-list-collapsible.has-multiple-notes:not(.has-overflow-notes) {
  max-height: none !important;
  overflow: visible !important;
  padding-bottom: 1.35rem;
  mask-image: linear-gradient(180deg, #000 76%, transparent 100%) !important;
  -webkit-mask-image: linear-gradient(180deg, #000 76%, transparent 100%) !important;
}

body.admin-onepage .admin-status-note-list-collapsible.has-overflow-notes {
  padding-bottom: 3.2rem;
  mask-image: linear-gradient(180deg, #000 72%, transparent 100%) !important;
  -webkit-mask-image: linear-gradient(180deg, #000 72%, transparent 100%) !important;
}

body.admin-onepage .admin-status-collapsible-notes.is-expanded
.admin-status-note-list-collapsible.has-multiple-notes {
  padding-bottom: 0.5rem;
  mask-image: none !important;
  -webkit-mask-image: none !important;
}

/* Egen nullstilling for hver innholdsgruppe i rapportbyggeren. */
body.admin-onepage #rapporter .admin-report-choice-group {
  position: relative;
  padding-top: 1.45rem;
}

body.admin-onepage #rapporter .admin-report-clear-group {
  position: absolute;
  top: 0.62rem;
  right: 0.85rem;
  min-height: 1.9rem;
  padding: 0.4rem 0.62rem;
  border: 1px solid rgba(31, 29, 26, 0.1);
  border-radius: 999px;
  background: rgba(255, 253, 249, 0.82);
  color: rgba(31, 29, 26, 0.52);
  font: inherit;
  font-size: 0.58rem;
  font-weight: 730;
  letter-spacing: 0.07em;
  line-height: 1;
  text-transform: uppercase;
  cursor: pointer;
  transition:
    border-color 150ms ease,
    background 150ms ease,
    color 150ms ease;
}

body.admin-onepage #rapporter .admin-report-clear-group:hover,
body.admin-onepage #rapporter .admin-report-clear-group:focus-visible {
  outline: none;
  border-color: rgba(168, 143, 104, 0.56);
  background: #fff;
  color: var(--ink);
}

@media (max-width: 760px) {
  body.admin-onepage #rapporter .admin-report-clear-group {
    position: static;
    width: fit-content;
    margin: 0 0 0.75rem auto;
  }
}

/* Rapportbygger: reserver en egen topprad til «Tøm innhold», slik at knappen
   ikke havner bak første rad med valg. */
@media (min-width: 761px) {
  body.admin-onepage #rapporter .admin-report-choice-group {
    padding-top: 3.15rem;
  }

  body.admin-onepage #rapporter .admin-report-clear-group {
    top: 0.72rem;
    z-index: 2;
  }
}

/* ========================================================================== 
   Nettside og RSVP-styring · valgkort i samme stil som Rapport
   ========================================================================== */
body.site-rsvp-settings-page .site-control-options {
  gap: 0.75rem;
}

body.site-rsvp-settings-page .site-control-options label {
  display: grid;
  align-content: start;
  min-height: 7.4rem;
  padding: 1rem;
  border: 1px solid rgba(31, 29, 26, 0.09);
  border-radius: 1.05rem;
  background: rgba(255, 253, 249, 0.74);
  color: var(--ink);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
  transform: none;
  transition:
    border-color 220ms ease,
    background 220ms ease,
    box-shadow 220ms ease,
    transform 220ms ease;
}

body.site-rsvp-settings-page .site-control-options label:hover {
  border-color: rgba(205, 179, 138, 0.6);
  background: rgba(255, 255, 255, 0.95);
  box-shadow:
    0 10px 24px rgba(31, 29, 26, 0.05),
    inset 0 1px 0 rgba(255, 255, 255, 0.86);
  transform: translateY(-1px);
}

body.site-rsvp-settings-page .site-control-options label:has(input:checked) {
  border-color: rgba(205, 179, 138, 0.38);
  background:
    radial-gradient(
      circle at 20% 20%,
      rgba(205, 179, 138, 0.16),
      transparent 5rem
    ),
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.98),
      rgba(255, 253, 249, 0.78)
    );
  color: rgba(31, 29, 26, 0.84);
  box-shadow:
    0 7px 18px rgba(31, 29, 26, 0.05),
    inset 0 1px 0 rgba(255, 255, 255, 0.92),
    inset 0 -2px 0 rgba(205, 179, 138, 0.34);
  transform: none;
}

body.site-rsvp-settings-page .site-control-options label > input[type="radio"] {
  position: absolute;
  width: 1px;
  height: 1px;
  min-height: 0;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  opacity: 0;
  pointer-events: none;
}

body.site-rsvp-settings-page .site-control-options label > span {
  display: grid;
  gap: 0.45rem;
  padding-left: 0;
}

body.site-rsvp-settings-page .site-control-options label > span::before,
body.site-rsvp-settings-page .site-control-options label > span::after {
  content: none;
  display: none;
}

body.site-rsvp-settings-page .site-control-options strong {
  color: inherit;
  font-size: 0.75rem;
  font-weight: 750;
  letter-spacing: 0.12em;
  line-height: 1.35;
  text-transform: uppercase;
}

body.site-rsvp-settings-page .site-control-options small {
  margin-top: 0;
  color: rgba(31, 29, 26, 0.54);
  font-size: 0.84rem;
  line-height: 1.55;
}

body.site-rsvp-settings-page .site-control-options label:has(input:checked) small {
  color: rgba(31, 29, 26, 0.54);
}

body.site-rsvp-settings-page .site-control-options label:has(input:focus-visible) {
  outline: 2px solid rgba(143, 118, 83, 0.48);
  outline-offset: 3px;
}

@media (max-width: 780px) {
  body.site-rsvp-settings-page .site-control-options label {
    min-height: 6.4rem;
  }
}

/* ========================================================================== 
   Admin – stabil sentrering av hovedseksjoner på tablet
   ========================================================================== */
@media (min-width: 781px) and (max-width: 1180px) {
  body.admin-onepage #dashboard,
  body.admin-onepage #gjesteliste,
  body.admin-onepage #kpi,
  body.admin-onepage #rapporter {
    padding-left: 4vw !important;
    padding-right: 4vw !important;
  }

  body.admin-onepage #dashboard > .admin-section-inner-wide,
  body.admin-onepage #gjesteliste > .admin-section-inner-wide,
  body.admin-onepage #kpi > .admin-section-inner-wide,
  body.admin-onepage #rapporter > .admin-section-inner-wide {
    width: 100% !important;
    max-width: 1240px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    justify-self: center !important;
  }
}

/* ==========================================================================
   RSVP · midtstilt tittelblokk på tablet
   Seksjonsnummeret følger venstrekanten til selve tittelen.
   ========================================================================== */
@media (min-width: 781px) and (max-width: 1280px) {
  body.rsvp-onepage #new-rsvp .rsvp-title-stack,
  body.rsvp-section-page #new-rsvp .rsvp-title-stack {
    display: grid;
    width: max-content;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    justify-items: center;
    text-align: center;
  }

  body.rsvp-onepage #new-rsvp .rsvp-title-stack .section-number,
  body.rsvp-section-page #new-rsvp .rsvp-title-stack .section-number {
    justify-self: start;
    text-align: left;
  }

  body.rsvp-onepage #new-rsvp .rsvp-title-stack h2.tittel,
  body.rsvp-section-page #new-rsvp .rsvp-title-stack h2.tittel,
  body.rsvp-onepage #new-rsvp .rsvp-title-stack .rsvp-hero-meta,
  body.rsvp-section-page #new-rsvp .rsvp-title-stack .rsvp-hero-meta {
    justify-self: center;
    text-align: center;
  }
}

/* ==========================================================================
   Dato- og tidspunktfelt · trygg bredde på tablet
   Native tablet-kontroller kan ellers beholde en innebygd minimumsbredde
   og presse seg utenfor kortet eller feltgruppen de ligger i.
   ========================================================================== */
@media (min-width: 700px) and (max-width: 1280px) {
  form,
  fieldset,
  label,
  .form-grid,
  .form-section,
  .rsvp-form-layout,
  .rsvp-form-group,
  .admin-dashboard-setting-row,
  .admin-dashboard-setting-controls,
  .site-control-grid,
  .site-control-card,
  .site-control-field,
  .site-control-field-pair,
  .site-control-field-pair > * {
    min-width: 0;
    min-inline-size: 0;
  }

  input[type="date"],
  input[type="datetime-local"] {
    display: block;
    box-sizing: border-box;

    width: 100%;
    max-width: 100%;
    min-width: 0;

    inline-size: 100%;
    max-inline-size: 100%;
    min-inline-size: 0;

    overflow: hidden;
  }

  /* Dashboard har ellers en fast datobredde på 10.5rem. */
  body.admin-onepage #dashboard
  .admin-dashboard-setting-controls > label:has(input[type="date"]),
  body.admin-onepage #dashboard
  .admin-dashboard-setting-controls > label:has(input[type="datetime-local"]) {
    width: min(100%, 10.5rem);
    max-width: 100%;
    min-width: 0;
  }

  body.admin-onepage #dashboard
  .admin-dashboard-setting-controls input[type="date"],
  body.admin-onepage #dashboard
  .admin-dashboard-setting-controls input[type="datetime-local"] {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    justify-self: stretch;
  }
}

/* ==========================================================================
   Nettside og RSVP · elegant opprydding og viewport-fast lagringsmelding
   Beholder eksisterende funksjoner, men gir siden roligere Dashboard-hierarki.
   ========================================================================== */

body.admin-onepage.site-rsvp-settings-page .site-control-section {
  place-items: start center;
  padding-block: clamp(2.35rem, 4vw, 4rem);
}

body.admin-onepage.site-rsvp-settings-page
.site-control-section
.admin-section-inner-wide {
  width: min(90vw, 1200px);
  max-width: 1200px;
}

/* Toppfeltet får stå friere, uten en tung linje under hele overskriften. */
body.site-rsvp-settings-page .site-control-titlebar {
  align-items: flex-start;
  gap: 1.5rem;
  margin-bottom: clamp(1.35rem, 3vw, 2rem);
  padding-bottom: 0;
  border-bottom: 0;
}

body.site-rsvp-settings-page .site-control-titlebar .tittel {
  margin: 0.35rem 0 0.55rem;
}

body.site-rsvp-settings-page .site-control-intro {
  max-width: 48rem;
  font-size: 0.94rem;
  line-height: 1.72;
}

body.site-rsvp-settings-page .site-control-back {
  min-height: 2.65rem;
  margin-top: 0.2rem;
  padding: 0.68rem 0.92rem;
  border-color: rgba(31, 29, 26, 0.12);
  background: rgba(255, 253, 249, 0.52);
  color: rgba(31, 29, 26, 0.62);
  box-shadow: none;
}

body.site-rsvp-settings-page .site-control-back:hover {
  border-color: rgba(205, 179, 138, 0.52);
  background: rgba(255, 253, 249, 0.94);
  color: var(--ink);
  box-shadow: none;
  transform: translateY(-1px);
}

/* Tre statuser samles i én rolig statuslinje i stedet for tre tunge kort. */
body.site-rsvp-settings-page .site-control-overview {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 0 0 clamp(1.25rem, 3vw, 1.75rem);
  padding: 0.28rem;
  overflow: hidden;
  border: 1px solid rgba(31, 29, 26, 0.075);
  border-radius: 1.15rem;
  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.74),
      rgba(255, 253, 249, 0.5)
    );
  box-shadow:
    0 10px 28px rgba(31, 29, 26, 0.03),
    inset 0 1px 0 rgba(255, 255, 255, 0.74);
}

body.site-rsvp-settings-page .site-control-overview article {
  position: relative;
  min-height: 0;
  padding: 0.86rem 1rem 0.86rem 2.05rem;
  overflow: visible;
  border: 0;
  border-right: 1px solid rgba(31, 29, 26, 0.07);
  border-radius: 0.85rem;
  background: transparent;
  box-shadow: none;
}

body.site-rsvp-settings-page .site-control-overview article:last-child {
  border-right: 0;
}

body.site-rsvp-settings-page .site-control-overview article::before {
  content: "";
  position: absolute;
  top: 1.14rem;
  right: auto;
  bottom: auto;
  left: 1rem;
  width: 0.52rem;
  height: 0.52rem;
  border-radius: 999px;
  background: rgba(205, 179, 138, 0.92);
  box-shadow: 0 0 0 0.24rem rgba(205, 179, 138, 0.12);
}

body.site-rsvp-settings-page .site-control-overview article.is-danger::before,
body.site-rsvp-settings-page .site-control-overview article.is-error::before,
body.site-rsvp-settings-page .site-control-overview article.is-closed::before,
body.site-rsvp-settings-page .site-control-overview article.is-missing::before {
  background: rgba(162, 80, 69, 0.82);
  box-shadow: 0 0 0 0.24rem rgba(162, 80, 69, 0.1);
}

body.site-rsvp-settings-page .site-control-overview article.is-success::before,
body.site-rsvp-settings-page .site-control-overview article.is-open::before,
body.site-rsvp-settings-page .site-control-overview article.is-ready::before {
  background: rgba(113, 129, 109, 0.9);
  box-shadow: 0 0 0 0.24rem rgba(113, 129, 109, 0.11);
}

body.site-rsvp-settings-page .site-control-overview span {
  margin-bottom: 0.34rem;
  color: rgba(31, 29, 26, 0.43);
  font-size: 0.61rem;
  font-weight: 790;
  letter-spacing: 0.16em;
}

body.site-rsvp-settings-page .site-control-overview strong {
  overflow: visible;
  font-family: var(--font-serif);
  font-size: clamp(1.16rem, 1.8vw, 1.4rem);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.12;
  white-space: normal;
}

body.site-rsvp-settings-page .site-control-overview small {
  margin-top: 0.32rem;
  color: rgba(31, 29, 26, 0.48);
  font-size: 0.69rem;
  line-height: 1.45;
}

/* Hovedområdene får mindre "kort inni kort" og roligere flater. */
body.site-rsvp-settings-page .site-control-grid {
  gap: 1.15rem;
}

body.site-rsvp-settings-page .site-control-card {
  padding: clamp(1.3rem, 2.6vw, 1.8rem);
  border-color: rgba(31, 29, 26, 0.075);
  border-radius: 1.3rem;
  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.68),
      rgba(255, 253, 249, 0.44)
    );
  box-shadow:
    0 10px 28px rgba(31, 29, 26, 0.03),
    inset 0 1px 0 rgba(255, 255, 255, 0.74);
}

body.site-rsvp-settings-page .site-control-card-primary {
  grid-column: 1 / -1;
}

body.site-rsvp-settings-page .site-control-grid-divider {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin: 0.4rem 0 -0.15rem;
  color: rgba(31, 29, 26, 0.42);
  font-size: 0.62rem;
  font-weight: 780;
  letter-spacing: 0.17em;
  line-height: 1;
  text-transform: uppercase;
}

body.site-rsvp-settings-page .site-control-grid-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background:
    linear-gradient(
      90deg,
      rgba(205, 179, 138, 0.42),
      rgba(205, 179, 138, 0.06)
    );
}

/* Nummeret beholdes som en liten, rund champagne-markør for tydelig hierarki. */
body.site-rsvp-settings-page .site-control-card-heading {
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.9rem;
  align-items: start;
  margin-bottom: 1.15rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(31, 29, 26, 0.065);
}

body.site-rsvp-settings-page .site-control-card-heading > span {
  display: grid;
  place-items: center;
  width: 2.1rem;
  height: 2.1rem;
  min-width: 2.1rem;
  padding: 0;
  border: 1px solid rgba(205, 179, 138, 0.46);
  border-radius: 50%;
  background: rgba(205, 179, 138, 0.09);
  color: rgba(112, 82, 40, 0.88);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  line-height: 1;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
}

body.site-rsvp-settings-page .site-control-card-heading h2 {
  font-size: clamp(1.55rem, 2.8vw, 2.15rem);
  letter-spacing: -0.035em;
}

body.site-rsvp-settings-page .site-control-card-heading p {
  margin-top: 0.42rem;
  font-size: 0.82rem;
  line-height: 1.58;
}

/* Valgkortene er fremdeles tydelige, men bruker mindre gradient og skygge. */
body.site-rsvp-settings-page .site-control-options {
  gap: 0.7rem;
}

body.site-rsvp-settings-page .site-control-options label {
  min-height: 6.3rem;
  padding: 0.95rem 4.3rem 1rem 1rem;
  border-color: rgba(31, 29, 26, 0.085);
  background: rgba(255, 253, 249, 0.6);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.68);
  transform: none;
}

body.site-rsvp-settings-page .site-control-options label:hover {
  border-color: rgba(205, 179, 138, 0.48);
  background: rgba(255, 253, 249, 0.88);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.78);
  transform: none;
}

body.site-rsvp-settings-page .site-control-options label:has(input:checked) {
  border-color: rgba(205, 179, 138, 0.58);
  background: rgba(205, 179, 138, 0.075);
  color: rgba(31, 29, 26, 0.86);
  box-shadow:
    inset 2px 0 0 rgba(205, 179, 138, 0.72),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

body.site-rsvp-settings-page .site-control-options label:has(input:checked)::after {
  content: "Valgt";
  position: absolute;
  top: 0.78rem;
  right: 0.78rem;
  display: inline-flex;
  align-items: center;
  min-height: 1.65rem;
  padding: 0.36rem 0.52rem;
  border: 1px solid rgba(205, 179, 138, 0.44);
  border-radius: 999px;
  background: rgba(255, 253, 249, 0.78);
  color: rgba(118, 94, 60, 0.84);
  font-size: 0.52rem;
  font-weight: 820;
  letter-spacing: 0.13em;
  line-height: 1;
  text-transform: uppercase;
}

body.site-rsvp-settings-page .site-control-options strong {
  font-size: 0.73rem;
  letter-spacing: 0.12em;
}

body.site-rsvp-settings-page .site-control-options small {
  font-size: 0.82rem;
  line-height: 1.52;
}

/* Planlagte datofelt holdes lesbare uten å strekke seg unødvendig langt. */
body.site-rsvp-settings-page .site-control-card-wide > .site-control-field:not([hidden]) {
  width: min(100%, 34rem);
  max-width: 34rem;
  margin-bottom: 1rem;
  padding: 0.82rem 0.9rem 0.9rem;
  border-color: rgba(205, 179, 138, 0.22);
  background: rgba(205, 179, 138, 0.045);
  box-shadow: none;
}

body.site-rsvp-settings-page .site-control-field input {
  border-color: rgba(31, 29, 26, 0.11);
  background: rgba(255, 253, 249, 0.9);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

/* Status- og forklaringsbokser blir roligere informasjonsflater. */
body.site-rsvp-settings-page .site-control-security-status,
body.site-rsvp-settings-page .site-control-deadline-explanation {
  padding: 0.88rem 0.95rem;
  border: 0;
  border-left: 1px solid rgba(205, 179, 138, 0.56);
  border-radius: 0.85rem;
  background: rgba(31, 29, 26, 0.028);
  box-shadow: none;
}

body.site-rsvp-settings-page .site-control-note {
  position: relative;
  margin: 0.1rem 0 1rem;
  padding-left: 0.9rem;
  color: rgba(31, 29, 26, 0.48);
  font-style: italic;
}

body.site-rsvp-settings-page .site-control-note::before {
  content: "";
  position: absolute;
  top: 0.18rem;
  bottom: 0.18rem;
  left: 0;
  width: 1px;
  background:
    linear-gradient(
      180deg,
      rgba(205, 179, 138, 0),
      rgba(205, 179, 138, 0.5),
      rgba(205, 179, 138, 0)
    );
}

body.site-rsvp-settings-page .site-control-card-footer {
  margin-top: auto;
  padding-top: 1rem;
  border-top-color: rgba(31, 29, 26, 0.065);
}

/* Toast flyttes til body med JavaScript og er alltid låst til nettleservinduet. */
body > .site-control-toast-region,
body.site-rsvp-settings-page .site-control-toast-region {
  position: fixed !important;
  z-index: 1400 !important;
  right: clamp(0.65rem, 1.8vw, 1.35rem) !important;
  bottom: clamp(0.75rem, 2vw, 1.25rem) !important;
  left: auto !important;
  width: min(23rem, calc(100vw - 1.3rem));
  margin: 0 !important;
  transform: none !important;
  contain: none;
}

body > .site-control-toast-region .site-control-toast {
  backdrop-filter: blur(18px) saturate(145%);
  -webkit-backdrop-filter: blur(18px) saturate(145%);
}

@media (max-width: 820px) {
  body.site-rsvp-settings-page .site-control-overview {
    grid-template-columns: 1fr;
  }

  body.site-rsvp-settings-page .site-control-overview article {
    border-right: 0;
    border-bottom: 1px solid rgba(31, 29, 26, 0.065);
  }

  body.site-rsvp-settings-page .site-control-overview article:last-child {
    border-bottom: 0;
  }

  body.site-rsvp-settings-page .site-control-card-primary,
  body.site-rsvp-settings-page .site-control-card-secondary {
    grid-column: auto;
  }
}

@media (max-width: 620px) {
  body.site-rsvp-settings-page .site-control-options label {
    min-height: 5.8rem;
    padding-right: 3.85rem;
  }

  body.site-rsvp-settings-page .site-control-options label:has(input:checked)::after {
    top: 0.68rem;
    right: 0.68rem;
    min-height: 1.5rem;
    padding: 0.32rem 0.44rem;
    font-size: 0.48rem;
  }

  body > .site-control-toast-region,
  body.site-rsvp-settings-page .site-control-toast-region {
    right: 0.5rem !important;
    bottom: 0.65rem !important;
    left: 0.5rem !important;
    width: auto;
  }
}


/* ==========================================================================
   Nettside og RSVP – champagnefargede underoverskrifter
   ========================================================================== */

/*
 * Samme rolige uttrykk som «Krever oppmerksomhet» brukes på de små
 * overskriftene over valg og felt. Ekstra luft skiller tydeligere mellom
 * underoverskriften og kontrollene uten å endre kortenes grunnoppsett.
 */
body.site-rsvp-settings-page .site-control-options legend,
body.site-rsvp-settings-page .site-control-field > span {
  display: block;
  width: 100%;
  color: rgba(168, 143, 104, 0.94);
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.22em;
  line-height: 1.25;
  text-transform: uppercase;
}

body.site-rsvp-settings-page .site-control-options legend {
  margin: 0.12rem 0 0.88rem;
  padding: 0;
}

body.site-rsvp-settings-page .site-control-field {
  gap: 0.68rem;
}

@media (max-width: 780px) {
  body.site-rsvp-settings-page .site-control-options legend,
  body.site-rsvp-settings-page .site-control-field > span {
    font-size: 0.62rem;
    letter-spacing: 0.19em;
  }

  body.site-rsvp-settings-page .site-control-options legend {
    margin-bottom: 0.78rem;
  }
}


/* ==========================================================================
   Nettside og RSVP – valgfritt gjestepassord
   ========================================================================== */

body.site-rsvp-settings-page .site-control-overview article.is-open-access::before {
  background: rgba(205, 179, 138, 0.95);
  box-shadow: 0 0 0 0.24rem rgba(205, 179, 138, 0.14);
}

body.site-rsvp-settings-page .site-control-guest-access-card {
  gap: 0;
}

body.site-rsvp-settings-page .site-control-subform {
  display: grid;
  min-width: 0;
}

body.site-rsvp-settings-page .site-control-options-compact label {
  min-height: 5.65rem;
}

body.site-rsvp-settings-page .site-control-open-access-warning {
  margin-top: 0.1rem;
}

body.site-rsvp-settings-page .site-control-subsection-divider {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 1.35rem 0 1.05rem;
  color: rgba(168, 143, 104, 0.94);
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.2em;
  line-height: 1;
  text-transform: uppercase;
}

body.site-rsvp-settings-page .site-control-subsection-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background:
    linear-gradient(
      90deg,
      rgba(205, 179, 138, 0.42),
      rgba(205, 179, 138, 0.05)
    );
}

body.site-rsvp-settings-page .site-control-security-status.is-open > span {
  background: rgba(205, 179, 138, 0.95);
  box-shadow: 0 0 0 0.25rem rgba(205, 179, 138, 0.14);
}

body.site-rsvp-settings-page .site-control-password-form .site-control-field:last-of-type {
  margin-bottom: 0.9rem;
}

body.site-rsvp-settings-page .site-control-subform .site-control-card-footer {
  width: 100%;
}

@media (max-width: 620px) {
  body.site-rsvp-settings-page .site-control-options-compact label {
    min-height: 5.45rem;
  }

  body.site-rsvp-settings-page .site-control-subsection-divider {
    margin-top: 1.2rem;
    font-size: 0.6rem;
    letter-spacing: 0.18em;
  }
}

/* ==========================================================================
   Nettside og RSVP – fullbredde for svarfrist og gjestetilgang
   ========================================================================== */

/*
 * Begge kontrollene får en egen rad. Det unngår at det høye
 * gjestetilgangskortet drar svarfristkortet ut i høyden og gir et roligere
 * vertikalt hierarki i samme stil som Dashboard.
 */
body.site-rsvp-settings-page .site-control-deadline-card,
body.site-rsvp-settings-page .site-control-guest-access-card {
  grid-column: 1 / -1;
}

/* Svarfrist holdes kompakt selv om kortet nå bruker full bredde. */
@media (min-width: 821px) {
  body.site-rsvp-settings-page .site-control-deadline-card {
    display: grid;
    grid-template-columns: minmax(15rem, 0.72fr) minmax(0, 1.28fr);
    column-gap: clamp(1.2rem, 3vw, 2.2rem);
    align-items: start;
  }

  body.site-rsvp-settings-page .site-control-deadline-card .site-control-card-heading,
  body.site-rsvp-settings-page .site-control-deadline-card .site-control-deadline-warning,
  body.site-rsvp-settings-page .site-control-deadline-card .site-control-card-footer {
    grid-column: 1 / -1;
  }

  body.site-rsvp-settings-page .site-control-deadline-card > .site-control-field {
    grid-column: 1;
    margin: 0;
  }

  body.site-rsvp-settings-page .site-control-deadline-card > .site-control-deadline-explanation {
    grid-column: 2;
    margin: 0;
    min-height: 100%;
    display: grid;
    align-content: center;
  }
}

/*
 * Gjestetilgang deles i to tydelige soner: tilgangsmodus til venstre og
 * passordhåndtering til høyre. Funksjonene er fortsatt samlet i ett kort,
 * men fremstår ikke lenger som én lang vertikal rekke.
 */
@media (min-width: 821px) {
  body.site-rsvp-settings-page .site-control-guest-access-card {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(20rem, 0.92fr);
    column-gap: clamp(1.5rem, 3.5vw, 2.75rem);
    row-gap: 0;
    align-items: start;
  }

  body.site-rsvp-settings-page .site-control-guest-access-card > .site-control-card-heading {
    grid-column: 1 / -1;
  }

  body.site-rsvp-settings-page .site-control-guest-access-card > .site-control-subform:first-of-type {
    grid-column: 1;
    grid-row: 2 / span 3;
    align-self: stretch;
    padding-right: clamp(0.2rem, 1vw, 0.75rem);
  }

  body.site-rsvp-settings-page .site-control-guest-access-card > .site-control-subsection-divider,
  body.site-rsvp-settings-page .site-control-guest-access-card > .site-control-security-status,
  body.site-rsvp-settings-page .site-control-guest-access-card > .site-control-password-form {
    grid-column: 2;
  }

  body.site-rsvp-settings-page .site-control-guest-access-card > .site-control-subsection-divider {
    grid-row: 2;
    margin: 0.12rem 0 1rem;
  }

  body.site-rsvp-settings-page .site-control-guest-access-card > .site-control-security-status {
    grid-row: 3;
    margin-bottom: 1rem;
  }

  body.site-rsvp-settings-page .site-control-guest-access-card > .site-control-password-form {
    grid-row: 4;
  }

  body.site-rsvp-settings-page .site-control-guest-access-card .site-control-options-compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem;
  }

  body.site-rsvp-settings-page .site-control-guest-access-card .site-control-options-compact label {
    min-height: 7.15rem;
  }

  body.site-rsvp-settings-page .site-control-guest-access-card .site-control-open-access-warning {
    margin-top: 0.95rem;
  }

  body.site-rsvp-settings-page .site-control-guest-access-card .site-control-subform:first-of-type .site-control-card-footer {
    margin-top: 1rem;
  }
}

/* Tablet får full bredde, men én kolonne for trygg og luftig lesbarhet. */
@media (max-width: 820px) {
  body.site-rsvp-settings-page .site-control-deadline-card,
  body.site-rsvp-settings-page .site-control-guest-access-card {
    grid-column: 1 / -1 !important;
  }

  body.site-rsvp-settings-page .site-control-guest-access-card .site-control-subsection-divider {
    margin-top: 1.55rem;
  }
}

@media (max-width: 620px) {
  body.site-rsvp-settings-page .site-control-guest-access-card .site-control-options-compact {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   Nettside og RSVP – kompakt og samlet gjestetilgang
   ========================================================================== */

body.site-rsvp-settings-page .visually-hidden {
  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;
}

/* Kortet leses som én sammenhengende kontroll, ikke to sidekolonner. */
body.site-rsvp-settings-page .site-control-guest-access-card {
  display: block !important;
}

body.site-rsvp-settings-page .site-control-guest-access-card > .site-control-card-heading {
  margin-bottom: 1.15rem;
}

body.site-rsvp-settings-page .site-control-access-form,
body.site-rsvp-settings-page .site-control-password-area {
  width: 100%;
}

body.site-rsvp-settings-page .site-control-subsection-header,
body.site-rsvp-settings-page .site-control-password-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
}

body.site-rsvp-settings-page .site-control-subsection-header {
  margin-bottom: 0.9rem;
}

body.site-rsvp-settings-page .site-control-subsection-header > div,
body.site-rsvp-settings-page .site-control-password-heading > div:first-child {
  min-width: 0;
}

body.site-rsvp-settings-page .site-control-subsection-label {
  display: block;
  color: rgba(168, 143, 104, 0.94);
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.22em;
  line-height: 1.25;
  text-transform: uppercase;
}

body.site-rsvp-settings-page .site-control-subsection-header p,
body.site-rsvp-settings-page .site-control-password-heading p {
  margin: 0.35rem 0 0;
  color: rgba(31, 29, 26, 0.48);
  font-size: 0.82rem;
  line-height: 1.55;
}

body.site-rsvp-settings-page .site-control-subsection-header .button {
  flex: 0 0 auto;
  min-height: 2.75rem;
  padding: 0.76rem 1.05rem;
}

/* Valgene bruker hele kortbredden og er bevisst lave og rolige. */
body.site-rsvp-settings-page .site-control-access-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
  margin: 0;
}

body.site-rsvp-settings-page .site-control-access-options label {
  min-height: 5.2rem !important;
  padding: 1rem 4.1rem 1rem 1.05rem !important;
  border-radius: 1rem;
}

body.site-rsvp-settings-page .site-control-access-options label:has(input:checked) {
  background: linear-gradient(180deg, rgba(205, 179, 138, 0.09), rgba(255, 253, 249, 0.74));
  box-shadow:
    inset 2px 0 0 rgba(205, 179, 138, 0.72),
    inset 0 1px 0 rgba(255, 255, 255, 0.82);
}

body.site-rsvp-settings-page .site-control-access-options label:has(input:checked)::after {
  top: 50%;
  right: 0.9rem;
  min-height: 1.55rem;
  padding: 0.34rem 0.48rem;
  transform: translateY(-50%);
}

body.site-rsvp-settings-page .site-control-open-access-warning {
  margin-top: 0.9rem;
}

/* Passordet ligger som en rolig underseksjon under tilgangsvalget. */
body.site-rsvp-settings-page .site-control-password-area {
  margin-top: 1.45rem;
  padding-top: 1.35rem;
  border-top: 1px solid rgba(31, 29, 26, 0.07);
}

body.site-rsvp-settings-page .site-control-password-heading {
  margin-bottom: 1rem;
}

body.site-rsvp-settings-page .site-control-password-heading .site-control-security-status {
  flex: 0 0 auto;
  width: auto;
  max-width: 24rem;
  margin: 0;
  padding: 0.72rem 0.9rem;
  border-left-color: rgba(205, 179, 138, 0.46);
  background: rgba(31, 29, 26, 0.024);
}

body.site-rsvp-settings-page .site-control-password-heading .site-control-security-status strong {
  font-size: 0.76rem;
}

body.site-rsvp-settings-page .site-control-password-heading .site-control-security-status small {
  margin-top: 0.12rem;
  font-size: 0.72rem;
}

body.site-rsvp-settings-page .site-control-password-form {
  display: grid;
  gap: 0.9rem;
}

body.site-rsvp-settings-page .site-control-password-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}

body.site-rsvp-settings-page .site-control-password-fields .site-control-field {
  margin: 0;
}

body.site-rsvp-settings-page .site-control-password-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  padding-top: 0.95rem;
  border-top: 1px solid rgba(31, 29, 26, 0.055);
}

body.site-rsvp-settings-page .site-control-password-footer .site-control-note {
  flex: 1 1 auto;
  max-width: 42rem;
  margin: 0;
}

body.site-rsvp-settings-page .site-control-password-footer .button {
  flex: 0 0 auto;
}

@media (max-width: 820px) {
  body.site-rsvp-settings-page .site-control-subsection-header,
  body.site-rsvp-settings-page .site-control-password-heading,
  body.site-rsvp-settings-page .site-control-password-footer {
    align-items: stretch;
    flex-direction: column;
  }

  body.site-rsvp-settings-page .site-control-subsection-header .button,
  body.site-rsvp-settings-page .site-control-password-footer .button,
  body.site-rsvp-settings-page .site-control-password-heading .site-control-security-status {
    width: 100%;
    max-width: none;
  }

  body.site-rsvp-settings-page .site-control-access-options,
  body.site-rsvp-settings-page .site-control-password-fields {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  body.site-rsvp-settings-page .site-control-access-options label {
    min-height: 5rem !important;
    padding-right: 3.8rem !important;
  }

  body.site-rsvp-settings-page .site-control-subsection-label {
    font-size: 0.62rem;
    letter-spacing: 0.19em;
  }
}


/* ==========================================================================
   Nettside og RSVP – ferdig gjestetilgang med to tydelige hovedkort
   ========================================================================== */

/* Ytterseksjonen er kun en overskrift og ramme for de to faktiske kortene. */
body.site-rsvp-settings-page .site-control-card.site-control-guest-access-card {
  display: block !important;
  grid-column: 1 / -1 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}

body.site-rsvp-settings-page .site-control-guest-access-card > .site-control-card-heading {
  margin: 0 0 1.35rem !important;
  padding: 0 0 1.05rem !important;
}

body.site-rsvp-settings-page .site-control-guest-access-panels {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  align-items: stretch !important;
  gap: 1.15rem !important;
  width: 100%;
  margin: 0;
}

/* Begge delene er selvstendige hovedkort med samme visuelle tyngde. */
body.site-rsvp-settings-page .site-control-guest-access-panels > .site-control-access-form,
body.site-rsvp-settings-page .site-control-guest-access-panels > .site-control-password-area {
  display: flex !important;
  flex-direction: column !important;
  min-width: 0 !important;
  width: 100% !important;
  margin: 0 !important;
  padding: clamp(1.2rem, 2.2vw, 1.55rem) !important;
  border: 1px solid rgba(31, 29, 26, 0.075) !important;
  border-radius: 1.3rem !important;
  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.78),
      rgba(255, 253, 249, 0.52)
    ) !important;
  box-shadow:
    0 12px 32px rgba(31, 29, 26, 0.035),
    inset 0 1px 0 rgba(255, 255, 255, 0.76) !important;
}

/* Kortoverskriftene skal alltid ligge over innholdet, aldri presses sideveis. */
body.site-rsvp-settings-page .site-control-guest-access-panels .site-control-subsection-header,
body.site-rsvp-settings-page .site-control-guest-access-panels .site-control-password-heading {
  display: block !important;
  width: 100% !important;
  margin: 0 0 1.05rem !important;
}

body.site-rsvp-settings-page .site-control-guest-access-panels .site-control-subsection-header > div,
body.site-rsvp-settings-page .site-control-guest-access-panels .site-control-password-heading > div:first-child {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
}

body.site-rsvp-settings-page .site-control-guest-access-panels .site-control-subsection-header p,
body.site-rsvp-settings-page .site-control-guest-access-panels .site-control-password-heading p {
  max-width: 34rem;
  margin-top: 0.38rem !important;
  overflow-wrap: normal;
  word-break: normal;
}

/* Tilgangsvalgene stables i kortet, slik at tekst og Valgt-merke får god plass. */
body.site-rsvp-settings-page .site-control-guest-access-card .site-control-access-options,
body.site-rsvp-settings-page .site-control-guest-access-card .site-control-options-compact {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 0.75rem !important;
  width: 100% !important;
  margin: 0 !important;
}

body.site-rsvp-settings-page .site-control-guest-access-card .site-control-access-options label,
body.site-rsvp-settings-page .site-control-guest-access-card .site-control-options-compact label {
  width: 100% !important;
  min-height: 5.45rem !important;
  padding: 1rem 4.4rem 1rem 1.05rem !important;
}

body.site-rsvp-settings-page .site-control-guest-access-card .site-control-access-options label > span,
body.site-rsvp-settings-page .site-control-guest-access-card .site-control-options-compact label > span {
  min-width: 0;
}

body.site-rsvp-settings-page .site-control-guest-access-card .site-control-access-options strong,
body.site-rsvp-settings-page .site-control-guest-access-card .site-control-access-options small {
  overflow-wrap: normal;
  word-break: normal;
}

body.site-rsvp-settings-page .site-control-guest-access-card .site-control-access-options label:has(input:checked)::after {
  top: 50% !important;
  right: 0.9rem !important;
  transform: translateY(-50%) !important;
}

body.site-rsvp-settings-page .site-control-guest-access-card .site-control-open-access-warning {
  margin: 0.85rem 0 0 !important;
}

/* Statusen ligger som en rolig fullbredderad under passordoverskriften. */
body.site-rsvp-settings-page .site-control-guest-access-panels .site-control-password-heading .site-control-security-status {
  display: flex !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0.9rem 0 0 !important;
  padding: 0.82rem 0.95rem !important;
}

body.site-rsvp-settings-page .site-control-guest-access-panels .site-control-password-heading .site-control-security-status > div {
  min-width: 0;
}

body.site-rsvp-settings-page .site-control-guest-access-panels .site-control-password-heading .site-control-security-status strong,
body.site-rsvp-settings-page .site-control-guest-access-panels .site-control-password-heading .site-control-security-status small {
  white-space: normal;
  overflow-wrap: normal;
  word-break: normal;
}

body.site-rsvp-settings-page .site-control-guest-access-panels .site-control-password-form {
  display: flex !important;
  flex: 1 1 auto;
  flex-direction: column !important;
  gap: 0.9rem !important;
  width: 100% !important;
  min-width: 0 !important;
}

body.site-rsvp-settings-page .site-control-guest-access-panels .site-control-password-fields {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 0.85rem !important;
  width: 100% !important;
}

body.site-rsvp-settings-page .site-control-guest-access-panels .site-control-password-fields .site-control-field {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

/* Handlingene avslutter hvert kort på samme rolige måte. */
body.site-rsvp-settings-page .site-control-guest-access-panels .site-control-card-footer-tight,
body.site-rsvp-settings-page .site-control-guest-access-panels .site-control-password-footer {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 1rem !important;
  width: 100% !important;
  margin-top: auto !important;
  padding-top: 1rem !important;
  border-top: 1px solid rgba(31, 29, 26, 0.065) !important;
}

body.site-rsvp-settings-page .site-control-guest-access-panels .site-control-password-footer {
  justify-content: space-between !important;
}

body.site-rsvp-settings-page .site-control-guest-access-panels .site-control-password-footer .site-control-note {
  flex: 1 1 auto;
  max-width: 26rem;
  margin: 0 !important;
}

body.site-rsvp-settings-page .site-control-guest-access-panels .site-control-card-footer-tight .button,
body.site-rsvp-settings-page .site-control-guest-access-panels .site-control-password-footer .button {
  flex: 0 0 auto;
  min-width: 13.5rem;
}

@media (max-width: 1100px) {
  body.site-rsvp-settings-page .site-control-guest-access-panels {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 720px) {
  body.site-rsvp-settings-page .site-control-guest-access-panels > .site-control-access-form,
  body.site-rsvp-settings-page .site-control-guest-access-panels > .site-control-password-area {
    padding: 1.1rem !important;
  }

  body.site-rsvp-settings-page .site-control-guest-access-panels .site-control-password-footer {
    align-items: stretch !important;
    flex-direction: column !important;
  }

  body.site-rsvp-settings-page .site-control-guest-access-panels .site-control-card-footer-tight .button,
  body.site-rsvp-settings-page .site-control-guest-access-panels .site-control-password-footer .button {
    width: 100% !important;
    min-width: 0 !important;
  }
}


/* ==========================================================================
   Nettside og RSVP – fjern interne skillelinjer i alle kort
   Beholder ytterrammer, valgkort og inputgrenser.
   ========================================================================== */

body.site-rsvp-settings-page .site-control-card-heading,
body.site-rsvp-settings-page .site-control-card-footer,
body.site-rsvp-settings-page .site-control-subform .site-control-card-footer,
body.site-rsvp-settings-page .site-control-password-area,
body.site-rsvp-settings-page .site-control-password-footer,
body.site-rsvp-settings-page .site-control-card-footer-tight,
body.site-rsvp-settings-page .site-control-guest-access-panels .site-control-card-footer-tight,
body.site-rsvp-settings-page .site-control-guest-access-panels .site-control-password-footer {
  border-top: 0 !important;
  border-bottom: 0 !important;
}

body.site-rsvp-settings-page .site-control-card-heading {
  padding-bottom: 0 !important;
}

body.site-rsvp-settings-page .site-control-subsection-divider,
body.site-rsvp-settings-page .site-control-subsection-divider::after {
  display: none !important;
}

body.site-rsvp-settings-page .site-control-security-status,
body.site-rsvp-settings-page .site-control-deadline-explanation {
  border-left: 0 !important;
}

body.site-rsvp-settings-page .site-control-note {
  padding-left: 0 !important;
}

body.site-rsvp-settings-page .site-control-note::before {
  display: none !important;
}

body.site-rsvp-settings-page .site-control-options label:has(input:checked),
body.site-rsvp-settings-page .site-control-access-options label:has(input:checked) {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8) !important;
}

/* ==========================================================================
   Nettside og RSVP – kompakt og balansert svarfrist
   ========================================================================== */

@media (min-width: 821px) {
  body.site-rsvp-settings-page .site-control-deadline-card {
    align-items: stretch;
  }

  body.site-rsvp-settings-page .site-control-deadline-card > .site-control-field,
  body.site-rsvp-settings-page .site-control-deadline-card > .site-control-deadline-explanation {
    box-sizing: border-box;
    height: 100%;
    min-height: 7rem;
    margin: 0;
  }

  /* Label og datofelt sentreres som én samlet blokk med lik luft over og under. */
  body.site-rsvp-settings-page .site-control-deadline-card > .site-control-field {
    display: grid;
    align-content: center;
    gap: 0.55rem;
    padding: 0.9rem 1rem !important;
  }

  /* Informasjonen får samme høyde, men et tydeligere uttrykk fra resten av nettsiden. */
  body.site-rsvp-settings-page .site-control-deadline-card > .site-control-deadline-explanation {
    position: relative;
    display: grid;
    align-content: center;
    padding: 1rem 1.15rem 1rem 1.45rem !important;
    border: 0 !important;
    background:
      linear-gradient(
        90deg,
        rgba(205, 179, 138, 0.075),
        rgba(31, 29, 26, 0.026) 38%,
        rgba(31, 29, 26, 0.026)
      );
    overflow: hidden;
  }

  body.site-rsvp-settings-page .site-control-deadline-card > .site-control-deadline-explanation::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.85rem;
    bottom: 0.85rem;
    width: 1px;
    background:
      linear-gradient(
        180deg,
        rgba(205, 179, 138, 0),
        rgba(205, 179, 138, 0.62) 22%,
        rgba(205, 179, 138, 0.62) 78%,
        rgba(205, 179, 138, 0)
      );
  }
}

@media (max-width: 820px) {
  body.site-rsvp-settings-page .site-control-deadline-card > .site-control-deadline-explanation {
    position: relative;
    padding-left: 1.25rem !important;
    border: 0 !important;
    background: rgba(31, 29, 26, 0.028);
    overflow: hidden;
  }

  body.site-rsvp-settings-page .site-control-deadline-card > .site-control-deadline-explanation::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.8rem;
    bottom: 0.8rem;
    width: 1px;
    background:
      linear-gradient(
        180deg,
        rgba(205, 179, 138, 0),
        rgba(205, 179, 138, 0.58) 22%,
        rgba(205, 179, 138, 0.58) 78%,
        rgba(205, 179, 138, 0)
      );
  }
}


/* ==========================================================================
   Nettside og RSVP – fjern seksjonsnumre og gjør Gjestetilgang til dividerstil
   ========================================================================== */
body.site-rsvp-settings-page .site-control-card-heading {
  grid-template-columns: minmax(0, 1fr);
}

body.site-rsvp-settings-page .site-control-card-heading > span {
  display: none !important;
}

body.site-rsvp-settings-page .site-control-guest-access-card > .site-control-card-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.85rem;
  margin: 0 0 1.15rem;
  padding: 0 0 0.2rem;
  border-bottom: 0;
}

body.site-rsvp-settings-page .site-control-guest-access-card > .site-control-card-heading::after {
  content: "";
  flex: 1 1 auto;
  min-width: 4rem;
  height: 1px;
  background: linear-gradient(90deg, rgba(205, 179, 138, 0.42), rgba(205, 179, 138, 0.06));
}

body.site-rsvp-settings-page .site-control-guest-access-card > .site-control-card-heading h2 {
  margin: 0;
  font-size: 0.62rem;
  font-weight: 780;
  letter-spacing: 0.17em;
  line-height: 1;
  text-transform: uppercase;
  color: rgba(31, 29, 26, 0.42);
}

body.site-rsvp-settings-page .site-control-guest-access-card > .site-control-card-heading p {
  width: 100%;
  margin: 0.7rem 0 0;
  color: rgba(70, 58, 41, 0.78);
  font-size: 0.82rem;
  line-height: 1.58;
}

@media (max-width: 640px) {
  body.site-rsvp-settings-page .site-control-guest-access-card > .site-control-card-heading {
    gap: 0.7rem;
  }

  body.site-rsvp-settings-page .site-control-guest-access-card > .site-control-card-heading h2 {
    font-size: 0.6rem;
    letter-spacing: 0.16em;
  }
}


/* Nettside og RSVP – skjul forklaring under Gjestetilgang-divider */
body.site-rsvp-settings-page
.site-control-guest-access-card
> .site-control-card-heading
p {
  display: none !important;
}

/* ==========================================================================
   Nettside og RSVP – seksjonsdivider og jevn avstand
   ========================================================================== */

body.site-rsvp-settings-page .site-control-grid-divider-first {
  margin-top: 0.15rem;
}

/* Eldre regler brukte !important og ga for stor avstand før de to gjestekortene. */
body.site-rsvp-settings-page
.site-control-card.site-control-guest-access-card
> .site-control-card-heading {
  margin: 0 0 0.55rem !important;
  padding: 0 !important;
}

body.site-rsvp-settings-page .site-control-guest-access-panels {
  margin-top: 0 !important;
}

@media (max-width: 820px) {
  body.site-rsvp-settings-page
  .site-control-card.site-control-guest-access-card
  > .site-control-card-heading {
    margin-bottom: 0.45rem !important;
  }
}


/* ==========================================================================
   Admin – stabil sentrering av frittstående sider på tablet
   Nettside og RSVP, Adminbrukere og Brudeparet / Systeminvitasjon.
   ========================================================================== */
@media (min-width: 781px) and (max-width: 1180px) {
  body.admin-onepage.site-rsvp-settings-page .site-control-section,
  body.admin-onepage .admin-users-section,
  body.admin-onepage .system-invitation-page {
    padding-left: 4vw !important;
    padding-right: 4vw !important;
    place-items: start center !important;
  }

  body.admin-onepage.site-rsvp-settings-page
  .site-control-section
  > .admin-section-inner-wide {
    width: 100% !important;
    max-width: 1120px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    justify-self: center !important;
  }

  body.admin-onepage
  .admin-users-section
  > .admin-section-inner-wide {
    width: 100% !important;
    max-width: 1100px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    justify-self: center !important;
  }

  body.admin-onepage
  .system-invitation-page
  > .admin-section-inner-wide {
    width: 100% !important;
    max-width: 1200px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    justify-self: center !important;
  }
}


/* ==========================================================================
   Admin · datofelt som holder seg innenfor kortet på tablet
   Safari/iPad kan ellers beholde native minimumsbredde på date-kontroller.
   ========================================================================== */
@media (min-width: 700px) and (max-width: 1280px) {
  input[type="date"],
  input[type="datetime-local"],
  input[type="month"],
  input[type="time"] {
    display: block !important;
    box-sizing: border-box !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    inline-size: 100% !important;
    max-inline-size: 100% !important;
    min-inline-size: 0 !important;

    -webkit-appearance: none;
    appearance: none;
  }

  label:has(> input[type="date"]),
  label:has(> input[type="datetime-local"]),
  label:has(> input[type="month"]),
  label:has(> input[type="time"]),
  .site-control-field:has(input[type="date"]),
  .site-control-field:has(input[type="datetime-local"]),
  .form-section:has(input[type="date"]),
  .form-section:has(input[type="datetime-local"]) {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-inline-size: 0 !important;
    overflow: hidden;
  }

  input[type="date"]::-webkit-date-and-time-value,
  input[type="datetime-local"]::-webkit-date-and-time-value {
    min-width: 0;
    text-align: left;
  }
}


/* ==========================================================================
   Dashboard / Aktivitetslogg – kun Eier
   ========================================================================== */

body.admin-onepage #dashboard .admin-dashboard-activity-heading {
  align-items: center;
}

body.admin-onepage #dashboard .admin-dashboard-panel-link {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.35rem;
  padding: 0.65rem 0.9rem;
  border: 1px solid rgba(31, 29, 26, 0.11);
  border-radius: 999px;
  background: rgba(255, 253, 249, 0.72);
  color: rgba(31, 29, 26, 0.62);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.13em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
  transition: border-color 200ms ease, background 200ms ease, color 200ms ease, transform 200ms ease;
}

body.admin-onepage #dashboard .admin-dashboard-panel-link:hover {
  border-color: rgba(205, 179, 138, 0.68);
  background: rgba(205, 179, 138, 0.1);
  color: var(--ink);
  transform: translateY(-1px);
}

/* Egen side */
body.admin-onepage.admin-activity-page .admin-scroll-root {
  scroll-behavior: auto !important;
}

body.admin-onepage.admin-activity-page .admin-activity-section {
  place-items: start center;
  min-height: calc(100svh - var(--admin-utility-height) - var(--admin-header-height));
}

body.admin-onepage.admin-activity-page .admin-activity-section > .admin-section-inner-wide {
  width: min(92vw, 1180px);
  max-width: 1180px;
}

body.admin-onepage.admin-activity-page .admin-activity-titlebar {
  align-items: flex-end;
  padding-bottom: 0.35rem;
  border-bottom: 0;
}

body.admin-onepage.admin-activity-page .admin-activity-eyebrow {
  margin: 0;
  color: rgba(168, 143, 104, 0.94);
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

body.admin-onepage.admin-activity-page .admin-activity-titlebar h2 {
  margin-top: 0.55rem;
}

body.admin-onepage.admin-activity-page .admin-activity-intro {
  max-width: 48rem;
  margin: 1rem 0 0;
  color: rgba(31, 29, 26, 0.52);
  font-size: 0.92rem;
  line-height: 1.7;
}

body.admin-onepage.admin-activity-page .admin-activity-back {
  flex: 0 0 auto;
  margin-bottom: 0.2rem;
}

body.admin-onepage.admin-activity-page .admin-activity-filters {
  display: grid;
  grid-template-columns: minmax(14rem, 1.45fr) minmax(12rem, 1fr) minmax(10rem, 0.9fr) minmax(9rem, 0.72fr) minmax(9rem, 0.72fr) auto;
  align-items: end;
  gap: 0.85rem;
  width: 100%;
  margin-top: 1.35rem;
  padding: 1.2rem;
  border: 1px solid rgba(31, 29, 26, 0.075);
  border-radius: 1.35rem;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.78), rgba(255, 253, 249, 0.58));
  box-shadow: 0 14px 34px rgba(31, 29, 26, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.74);
}

body.admin-onepage.admin-activity-page .admin-activity-filters label {
  min-width: 0;
  gap: 0.48rem;
}

body.admin-onepage.admin-activity-page .admin-activity-filters label > span {
  color: rgba(168, 143, 104, 0.94);
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.17em;
  text-transform: uppercase;
}

body.admin-onepage.admin-activity-page .admin-activity-filters input,
body.admin-onepage.admin-activity-page .admin-activity-filters select {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: 3rem;
  min-height: 3rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  border-color: rgba(31, 29, 26, 0.1);
  background-color: rgba(255, 253, 249, 0.92);
}

body.admin-onepage.admin-activity-page .admin-activity-filters input[type="date"] {
  display: block;
  inline-size: 100% !important;
  min-inline-size: 0 !important;
  max-inline-size: 100% !important;
  -webkit-appearance: none;
  appearance: none;
}

body.admin-onepage.admin-activity-page .admin-activity-filter-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75rem;
  min-width: max-content;
}

body.admin-onepage.admin-activity-page .admin-activity-filter-actions .button {
  min-height: 3rem;
  padding: 0.75rem 1rem;
  white-space: nowrap;
}

body.admin-onepage.admin-activity-page .admin-activity-reset {
  color: rgba(31, 29, 26, 0.54);
  font-size: 0.68rem;
  font-weight: 760;
  letter-spacing: 0.1em;
  text-decoration-color: rgba(205, 179, 138, 0.7);
  text-underline-offset: 0.25rem;
  text-transform: uppercase;
}

body.admin-onepage.admin-activity-page .admin-activity-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 1rem 0 0;
  padding: 0 0.2rem;
  color: rgba(31, 29, 26, 0.46);
  font-size: 0.76rem;
}

body.admin-onepage.admin-activity-page .admin-activity-summary > div {
  display: inline-flex;
  align-items: baseline;
  gap: 0.45rem;
}

body.admin-onepage.admin-activity-page .admin-activity-summary strong {
  color: var(--ink);
  font-family: var(--font-serif);
  font-size: 1.65rem;
  font-weight: 400;
  line-height: 1;
}

body.admin-onepage.admin-activity-page .admin-activity-groups {
  display: grid;
  gap: 1.3rem;
  margin-top: 1.2rem;
}

body.admin-onepage.admin-activity-page .admin-activity-day {
  border: 1px solid rgba(31, 29, 26, 0.07);
  border-radius: 1.35rem;
  background: rgba(255, 255, 255, 0.68);
  box-shadow: 0 14px 36px rgba(31, 29, 26, 0.035), inset 0 1px 0 rgba(255, 255, 255, 0.72);
  overflow: hidden;
}

body.admin-onepage.admin-activity-page .admin-activity-day-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.2rem;
  background: linear-gradient(180deg, rgba(205, 179, 138, 0.11), rgba(205, 179, 138, 0.035));
  border-bottom: 1px solid rgba(205, 179, 138, 0.22);
}

body.admin-onepage.admin-activity-page .admin-activity-day-heading h3 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: 1.45rem;
  font-weight: 400;
  letter-spacing: -0.025em;
}

body.admin-onepage.admin-activity-page .admin-activity-day-heading span {
  color: rgba(31, 29, 26, 0.42);
  font-size: 0.66rem;
  font-weight: 760;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body.admin-onepage.admin-activity-page .admin-activity-list {
  display: grid;
}

body.admin-onepage.admin-activity-page .admin-activity-item {
  position: relative;
  display: grid;
  grid-template-columns: 4.5rem minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  min-width: 0;
  padding: 1.05rem 1.2rem;
  border-bottom: 1px solid rgba(31, 29, 26, 0.06);
  transition: background 180ms ease;
}

body.admin-onepage.admin-activity-page .admin-activity-item:last-child {
  border-bottom: 0;
}

body.admin-onepage.admin-activity-page .admin-activity-item:hover {
  background: rgba(205, 179, 138, 0.045);
}

body.admin-onepage.admin-activity-page .admin-activity-time-column {
  display: grid;
  grid-template-columns: auto 0.5rem;
  align-items: center;
  gap: 0.55rem;
}

body.admin-onepage.admin-activity-page .admin-activity-time-column time {
  color: rgba(31, 29, 26, 0.46);
  font-size: 0.72rem;
  font-weight: 720;
  letter-spacing: 0.04em;
}

body.admin-onepage.admin-activity-page .admin-activity-time-column > span {
  width: 0.5rem;
  height: 0.5rem;
  border: 1px solid rgba(205, 179, 138, 0.72);
  border-radius: 50%;
  background: rgba(205, 179, 138, 0.22);
  box-shadow: 0 0 0 4px rgba(205, 179, 138, 0.08);
}

body.admin-onepage.admin-activity-page .admin-activity-item.is-rsvp .admin-activity-time-column > span {
  border-color: rgba(82, 113, 90, 0.55);
  background: rgba(82, 113, 90, 0.18);
}

body.admin-onepage.admin-activity-page .admin-activity-item.is-users .admin-activity-time-column > span {
  border-color: rgba(92, 88, 125, 0.5);
  background: rgba(92, 88, 125, 0.16);
}

body.admin-onepage.admin-activity-page .admin-activity-item.is-seating .admin-activity-time-column > span {
  border-color: rgba(94, 112, 126, 0.5);
  background: rgba(94, 112, 126, 0.16);
}

body.admin-onepage.admin-activity-page .admin-activity-copy {
  min-width: 0;
}

body.admin-onepage.admin-activity-page .admin-activity-item-heading {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.65rem;
}

body.admin-onepage.admin-activity-page .admin-activity-category {
  display: inline-flex;
  align-items: center;
  min-height: 1.55rem;
  padding: 0.35rem 0.55rem;
  border-radius: 999px;
  background: rgba(205, 179, 138, 0.1);
  color: rgba(112, 82, 40, 0.82);
  font-size: 0.56rem;
  font-weight: 820;
  letter-spacing: 0.12em;
  line-height: 1;
  text-transform: uppercase;
}

body.admin-onepage.admin-activity-page .admin-activity-item-heading strong {
  color: rgba(31, 29, 26, 0.82);
  font-size: 0.9rem;
  font-weight: 760;
  line-height: 1.35;
}

body.admin-onepage.admin-activity-page .admin-activity-copy p {
  margin: 0.35rem 0 0;
  color: rgba(31, 29, 26, 0.53);
  font-size: 0.82rem;
  line-height: 1.55;
}

body.admin-onepage.admin-activity-page .admin-activity-copy small {
  display: block;
  margin-top: 0.42rem;
  color: rgba(31, 29, 26, 0.38);
  font-size: 0.7rem;
}

body.admin-onepage.admin-activity-page .admin-activity-copy small strong {
  color: rgba(31, 29, 26, 0.58);
  font-weight: 720;
}

body.admin-onepage.admin-activity-page .admin-activity-open {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.35rem;
  padding: 0.65rem 0.85rem;
  border: 1px solid rgba(31, 29, 26, 0.11);
  border-radius: 999px;
  background: rgba(255, 253, 249, 0.74);
  color: rgba(31, 29, 26, 0.58);
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
}

body.admin-onepage.admin-activity-page .admin-activity-open:hover {
  border-color: rgba(205, 179, 138, 0.7);
  color: var(--ink);
  background: rgba(205, 179, 138, 0.09);
}

body.admin-onepage.admin-activity-page .admin-activity-empty {
  margin-top: 1.2rem;
  padding: 2rem 1.4rem;
  border: 1px solid rgba(31, 29, 26, 0.07);
  border-radius: 1.35rem;
  background: rgba(31, 29, 26, 0.025);
  text-align: center;
}

body.admin-onepage.admin-activity-page .admin-activity-empty strong {
  font-family: var(--font-serif);
  font-size: 1.55rem;
  font-weight: 400;
}

body.admin-onepage.admin-activity-page .admin-activity-empty p {
  margin: 0.5rem 0 0;
  color: rgba(31, 29, 26, 0.48);
}

body.admin-onepage.admin-activity-page .admin-activity-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1.3rem;
}

body.admin-onepage.admin-activity-page .admin-activity-pagination > div {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
}

body.admin-onepage.admin-activity-page .admin-activity-pagination a,
body.admin-onepage.admin-activity-page .admin-activity-pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.3rem;
  min-height: 2.3rem;
  padding: 0.55rem 0.7rem;
  border: 1px solid rgba(31, 29, 26, 0.09);
  border-radius: 999px;
  color: rgba(31, 29, 26, 0.58);
  font-size: 0.68rem;
  font-weight: 760;
  line-height: 1;
  text-decoration: none;
}

body.admin-onepage.admin-activity-page .admin-activity-pagination a:hover,
body.admin-onepage.admin-activity-page .admin-activity-pagination .is-current {
  border-color: rgba(205, 179, 138, 0.68);
  background: rgba(205, 179, 138, 0.12);
  color: var(--ink);
}

body.admin-onepage.admin-activity-page .admin-activity-pagination span[aria-disabled="true"] {
  opacity: 0.4;
}

@media (max-width: 1180px) {
  body.admin-onepage.admin-activity-page .admin-activity-filters {
    grid-template-columns: minmax(14rem, 1.4fr) repeat(2, minmax(10rem, 1fr)) repeat(2, minmax(8.5rem, 0.8fr));
  }

  body.admin-onepage.admin-activity-page .admin-activity-filter-actions {
    grid-column: 1 / -1;
  }
}

@media (max-width: 900px) {
  body.admin-onepage.admin-activity-page .admin-activity-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.admin-onepage.admin-activity-page .admin-activity-search {
    grid-column: 1 / -1;
  }

  body.admin-onepage.admin-activity-page .admin-activity-item {
    grid-template-columns: 4.2rem minmax(0, 1fr);
  }

  body.admin-onepage.admin-activity-page .admin-activity-open {
    grid-column: 2;
    justify-self: start;
  }
}

@media (max-width: 780px) {
  body.admin-onepage #dashboard .admin-dashboard-activity-heading {
    display: flex;
    flex-direction: row;
    align-items: center;
  }

  body.admin-onepage #dashboard .admin-dashboard-panel-link {
    width: auto;
  }

  body.admin-onepage.admin-activity-page .admin-activity-section > .admin-section-inner-wide {
    width: 100%;
    max-width: none;
  }

  body.admin-onepage.admin-activity-page .admin-activity-titlebar {
    display: grid;
    grid-template-columns: 1fr;
    align-items: start;
  }

  body.admin-onepage.admin-activity-page .admin-activity-back {
    width: 100%;
  }

  body.admin-onepage.admin-activity-page .admin-activity-filters {
    grid-template-columns: 1fr;
    padding: 1rem;
  }

  body.admin-onepage.admin-activity-page .admin-activity-search,
  body.admin-onepage.admin-activity-page .admin-activity-filter-actions {
    grid-column: auto;
  }

  body.admin-onepage.admin-activity-page .admin-activity-filter-actions {
    display: grid;
    grid-template-columns: 1fr;
    min-width: 0;
  }

  body.admin-onepage.admin-activity-page .admin-activity-filter-actions .button {
    width: 100%;
  }

  body.admin-onepage.admin-activity-page .admin-activity-reset {
    justify-self: center;
  }

  body.admin-onepage.admin-activity-page .admin-activity-summary {
    align-items: flex-start;
    flex-direction: column;
  }

  body.admin-onepage.admin-activity-page .admin-activity-day-heading {
    padding: 0.9rem 1rem;
  }

  body.admin-onepage.admin-activity-page .admin-activity-item {
    grid-template-columns: 3.6rem minmax(0, 1fr);
    align-items: start;
    gap: 0.75rem;
    padding: 1rem;
  }

  body.admin-onepage.admin-activity-page .admin-activity-time-column {
    grid-template-columns: 1fr;
    justify-items: start;
    gap: 0.45rem;
  }

  body.admin-onepage.admin-activity-page .admin-activity-item-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.5rem;
  }

  body.admin-onepage.admin-activity-page .admin-activity-open {
    grid-column: 2;
    width: auto;
  }

  body.admin-onepage.admin-activity-page .admin-activity-pagination {
    align-items: stretch;
    flex-direction: column;
  }

  body.admin-onepage.admin-activity-page .admin-activity-pagination > a,
  body.admin-onepage.admin-activity-page .admin-activity-pagination > span {
    width: 100%;
  }
}


/* ==========================================================================
   Aktivitetslogg · elegante dropdownfelt
   ========================================================================== */
body.admin-onepage.admin-activity-page
.admin-activity-filters select {
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
  padding: 0.75rem 2.55rem 0.75rem 1rem;
  border: 1px solid rgba(31, 29, 26, 0.095);
  border-radius: 999px;
  background-color: rgba(255, 253, 249, 0.96);
  background-image:
    linear-gradient(45deg, transparent 50%, rgba(31, 29, 26, 0.58) 50%),
    linear-gradient(135deg, rgba(31, 29, 26, 0.58) 50%, transparent 50%),
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.92),
      rgba(255, 253, 249, 0.72)
    );
  background-position:
    calc(100% - 1.28rem) calc(50% - 0.14rem),
    calc(100% - 0.96rem) calc(50% - 0.14rem),
    0 0;
  background-size:
    0.34rem 0.34rem,
    0.34rem 0.34rem,
    100% 100%;
  background-repeat: no-repeat;
  color: rgba(31, 29, 26, 0.72);
  box-shadow:
    0 8px 22px rgba(31, 29, 26, 0.035),
    inset 0 1px 0 rgba(255, 255, 255, 0.76);
  transition:
    border-color 220ms ease,
    background-color 220ms ease,
    box-shadow 220ms ease;
}

body.admin-onepage.admin-activity-page
.admin-activity-filters select:hover {
  border-color: rgba(31, 29, 26, 0.18);
  background-color: #fffdf9;
  box-shadow:
    0 10px 26px rgba(31, 29, 26, 0.05),
    inset 0 1px 0 rgba(255, 255, 255, 0.82);
}

body.admin-onepage.admin-activity-page
.admin-activity-filters select:focus {
  border-color: rgba(205, 179, 138, 0.82);
  outline: none;
  background-color: white;
  box-shadow:
    0 0 0 4px rgba(205, 179, 138, 0.13),
    0 12px 28px rgba(31, 29, 26, 0.055),
    inset 0 1px 0 rgba(255, 255, 255, 0.82);
}

body.admin-onepage.admin-activity-page
.admin-activity-filters select option {
  background: #fffdf9;
  color: #1f1d1a;
}

/* ==========================================================================
   Aktivitetslogg · ekte dropdownmenyer i samme stil som adminpanelet
   ========================================================================== */
body.admin-onepage.admin-activity-page .admin-activity-filter-field {
  display: grid;
  gap: 0.48rem;
  min-width: 0;
}

body.admin-onepage.admin-activity-page .admin-activity-filter-field > span {
  color: rgba(168, 143, 104, 0.94);
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  line-height: 1.2;
  text-transform: uppercase;
}

body.admin-onepage.admin-activity-page .admin-activity-dropdown {
  position: relative;
  min-width: 0;
}

body.admin-onepage.admin-activity-page .admin-activity-native-select {
  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;
  opacity: 0 !important;
  pointer-events: none !important;
}

body.admin-onepage.admin-activity-page .admin-activity-dropdown-toggle {
  position: relative;
  width: 100%;
  min-width: 0;
  min-height: 3rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  padding: 0.82rem 2.8rem 0.82rem 1rem;
  border: 1px solid rgba(31, 29, 26, 0.11);
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(255, 253, 249, 0.98), rgba(255, 253, 249, 0.76));
  color: rgba(31, 29, 26, 0.72);
  font: inherit;
  font-size: 0.78rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  line-height: 1.2;
  text-align: left;
  cursor: pointer;
  box-shadow: 0 8px 22px rgba(31, 29, 26, 0.035), inset 0 1px 0 rgba(255, 255, 255, 0.76);
  transition: border-color 220ms ease, background 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

body.admin-onepage.admin-activity-page .admin-activity-dropdown-toggle > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.admin-onepage.admin-activity-page .admin-activity-dropdown-toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1.15rem;
  width: 0.46rem;
  height: 0.46rem;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  opacity: 0.7;
  transform: translateY(-70%) rotate(45deg);
  transition: transform 220ms ease;
}

body.admin-onepage.admin-activity-page .admin-activity-dropdown-toggle:hover {
  border-color: rgba(31, 29, 26, 0.2);
  background: #fffdf9;
  box-shadow: 0 10px 26px rgba(31, 29, 26, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

body.admin-onepage.admin-activity-page .admin-activity-dropdown.is-open .admin-activity-dropdown-toggle,
body.admin-onepage.admin-activity-page .admin-activity-dropdown-toggle:focus-visible {
  outline: none;
  border-color: rgba(205, 179, 138, 0.82);
  background: white;
  box-shadow: 0 0 0 4px rgba(205, 179, 138, 0.12), 0 12px 28px rgba(31, 29, 26, 0.055), inset 0 1px 0 rgba(255, 255, 255, 0.82);
}

body.admin-onepage.admin-activity-page .admin-activity-dropdown.is-open .admin-activity-dropdown-toggle::after {
  transform: translateY(-25%) rotate(225deg);
}

body.admin-onepage.admin-activity-page .admin-activity-dropdown-menu {
  position: absolute;
  z-index: 80;
  top: calc(100% + 0.45rem);
  left: 0;
  right: 0;
  width: 100%;
  min-width: 100%;
  max-height: min(21rem, 50vh);
  overflow-y: auto;
  padding: 0.35rem;
  border: 1px solid rgba(31, 29, 26, 0.08);
  border-radius: 1.1rem;
  background: rgba(255, 253, 249, 0.985);
  box-shadow: 0 20px 48px rgba(31, 29, 26, 0.13), inset 0 1px 0 rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(18px) saturate(150%);
  -webkit-backdrop-filter: blur(18px) saturate(150%);
}

body.admin-onepage.admin-activity-page .admin-activity-dropdown-menu[hidden] {
  display: none !important;
}

body.admin-onepage.admin-activity-page .admin-activity-dropdown-menu button {
  width: 100%;
  min-height: 2.55rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.74rem 0.82rem;
  border: 0;
  border-radius: 0.82rem;
  background: transparent;
  color: rgba(31, 29, 26, 0.64);
  font: inherit;
  font-size: 0.74rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  line-height: 1.3;
  text-align: left;
  cursor: pointer;
  transition: background 180ms ease, color 180ms ease, transform 180ms ease;
}

body.admin-onepage.admin-activity-page .admin-activity-dropdown-menu button:hover,
body.admin-onepage.admin-activity-page .admin-activity-dropdown-menu button:focus-visible,
body.admin-onepage.admin-activity-page .admin-activity-dropdown-menu button.is-active {
  outline: none;
  background: rgba(205, 179, 138, 0.12);
  color: var(--ink);
}

body.admin-onepage.admin-activity-page .admin-activity-dropdown-menu button.is-active::after {
  content: "✓";
  flex: 0 0 auto;
  color: rgba(168, 143, 104, 0.96);
  font-weight: 800;
}

body.admin-onepage.admin-activity-page .admin-activity-filters:has(.admin-activity-dropdown.is-open) {
  position: relative;
  z-index: 30;
}


/* ==========================================================================
   Status · matnotat-fade bare når «Se alle» vises
   ========================================================================== */

/*
 * Klassen has-overflow-notes settes bare når det finnes mer enn tre
 * notater og «Se alle»-knappen vises. Lister uten denne klassen skal
 * derfor aldri tones ut nederst.
 */
body.admin-onepage
.admin-status-note-list-collapsible:not(.has-overflow-notes) {
  mask-image: none !important;
  -webkit-mask-image: none !important;
}

/* ==========================================================================
   Status · «Tolket som» med én label per kategori
   ========================================================================== */

body.admin-onepage .admin-status-note-categories {
  justify-self: start;
  width: 100%;
  max-width: 100%;

  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;

  margin-top: 0.2rem;
}

body.admin-onepage .admin-status-note-categories-label {
  flex: 0 0 auto;

  color: rgba(31, 29, 26, 0.46);

  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  line-height: 1;
  text-transform: uppercase;
}

body.admin-onepage .admin-status-note-category-list {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.38rem;

  min-width: 0;
}

body.admin-onepage .admin-status-note-category {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 1.72rem;
  padding: 0.4rem 0.64rem;

  border: 1px solid rgba(205, 179, 138, 0.38);
  border-radius: 999px;

  background:
    linear-gradient(
      180deg,
      rgba(205, 179, 138, 0.14),
      rgba(205, 179, 138, 0.065)
    );

  color: rgba(84, 65, 39, 0.84);

  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1;
  white-space: nowrap;

  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
}

@media (max-width: 780px) {
  body.admin-onepage .admin-status-note-categories {
    gap: 0.45rem;
  }

  body.admin-onepage .admin-status-note-category-list {
    gap: 0.28rem;
  }

  body.admin-onepage .admin-status-note-category {
    min-height: 1.65rem;
    padding: 0.38rem 0.58rem;
    font-size: 0.66rem;
  }
}

/* ==========================================================================
   Dashboard · Registreringer over tid med periodevelger
   ========================================================================== */

body.admin-onepage
#kpi
.admin-status-development-heading-actions {
  display: grid;
  justify-items: end;
  gap: 0.52rem;
}

body.admin-onepage
#kpi
.admin-status-development-heading-actions > span {
  color: rgba(31, 29, 26, 0.42);

  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.11em;
  line-height: 1.2;
  text-transform: uppercase;
}

body.admin-onepage
#kpi
.admin-status-development-range {
  display: inline-flex;
  align-items: center;
  gap: 0.16rem;

  padding: 0.2rem;

  border: 1px solid rgba(31, 29, 26, 0.075);
  border-radius: 999px;

  background: rgba(255, 253, 249, 0.62);

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.72);
}

body.admin-onepage
#kpi
.admin-status-development-range a {
  min-height: 1.85rem;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding: 0.42rem 0.68rem;

  border: 1px solid transparent;
  border-radius: 999px;

  color: rgba(31, 29, 26, 0.42);

  font-size: 0.57rem;
  font-weight: 780;
  letter-spacing: 0.075em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;

  transition:
    border-color 160ms ease,
    background 160ms ease,
    color 160ms ease,
    box-shadow 160ms ease;
}

body.admin-onepage
#kpi
.admin-status-development-range a:hover,
body.admin-onepage
#kpi
.admin-status-development-range a:focus-visible {
  outline: none;

  border-color: rgba(205, 179, 138, 0.34);
  background: rgba(205, 179, 138, 0.07);
  color: rgba(91, 63, 78, 0.84);
}

body.admin-onepage
#kpi
.admin-status-development-range a.is-active {
  border-color: rgba(205, 179, 138, 0.5);

  background:
    linear-gradient(
      180deg,
      rgba(205, 179, 138, 0.17),
      rgba(205, 179, 138, 0.075)
    );

  color: rgba(91, 63, 78, 0.92);

  box-shadow:
    0 4px 11px rgba(31, 29, 26, 0.035),
    inset 0 1px 0 rgba(255, 255, 255, 0.76);
}

body.admin-onepage
#kpi
.admin-status-development-chart.is-year {
  grid-template-columns: repeat(12, minmax(3rem, 1fr));
  min-width: 43rem;
}

body.admin-onepage
#kpi
.admin-status-development-chart.is-all {
  grid-template-columns:
    repeat(
      var(--development-chart-items),
      minmax(3rem, 1fr)
    );

  min-width:
    max(
      31rem,
      calc(var(--development-chart-items) * 3.75rem)
    );
}

@media (max-width: 780px) {
  body.admin-onepage
  #kpi
  .admin-status-development-heading-actions {
    justify-items: start;
    gap: 0.45rem;
  }

  body.admin-onepage
  #kpi
  .admin-status-development-range {
    max-width: 100%;
  }

  body.admin-onepage
  #kpi
  .admin-status-development-range a {
    min-height: 1.8rem;
    padding-inline: 0.62rem;
  }
}


/* ========================================================================== 
   Admin · universell minimalistisk tilbakeknapp
   Samme komponent brukes på innstillinger, adminbrukere, aktivitet, eksport
   og RSVP-skjemaene. Navigasjonsmål og øvrig funksjonalitet er uendret.
   ========================================================================== */

.admin-back-link {
  --admin-back-border: rgba(31, 29, 26, 0.105);
  --admin-back-text: rgba(31, 29, 26, 0.62);

  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.48rem;
  width: fit-content;
  min-height: 2.45rem;
  margin: 0;
  padding: 0.43rem 0.78rem 0.43rem 0.48rem;
  border: 1px solid var(--admin-back-border);
  border-radius: 999px;
  background: rgba(255, 253, 249, 0.5);
  color: var(--admin-back-text);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.72),
    0 4px 14px rgba(31, 29, 26, 0.018);
  font-size: 0.72rem;
  font-weight: 680;
  letter-spacing: 0.025em;
  line-height: 1;
  text-decoration: none;
  text-transform: none;
  white-space: nowrap;
  cursor: pointer;
  transition:
    border-color 180ms ease,
    background 180ms ease,
    color 180ms ease,
    box-shadow 180ms ease,
    transform 180ms ease;
}

.admin-back-link-icon {
  display: grid;
  place-items: center;
  width: 1.42rem;
  height: 1.42rem;
  flex: 0 0 1.42rem;
  border-radius: 50%;
  background: rgba(205, 179, 138, 0.13);
  color: rgba(112, 88, 54, 0.82);
  transition:
    background 180ms ease,
    color 180ms ease,
    transform 180ms ease;
}

.admin-back-link-icon svg {
  display: block;
  width: 0.82rem;
  height: 0.82rem;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.admin-back-link:hover {
  border-color: rgba(205, 179, 138, 0.58);
  background: rgba(255, 253, 249, 0.95);
  color: var(--ink);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.88),
    0 8px 20px rgba(31, 29, 26, 0.04);
  transform: translateY(-1px);
}

.admin-back-link:hover .admin-back-link-icon {
  background: rgba(205, 179, 138, 0.22);
  color: rgba(83, 62, 35, 0.96);
  transform: translateX(-1px);
}

.admin-back-link:active {
  box-shadow: inset 0 1px 2px rgba(31, 29, 26, 0.06);
  transform: translateY(0);
}

.admin-back-link:focus-visible {
  outline: 2px solid rgba(155, 115, 71, 0.62);
  outline-offset: 3px;
}

/* Ensartet plassering i alle overskriftsfelt. */
.admin-titlebar > .admin-back-link,
.seating-export-center-header > .admin-back-link {
  align-self: flex-start;
  margin-top: 0.16rem;
}

/* Eksportsiden skal bruke den universelle kompakte knappen, ikke full bredde. */
.seating-export-center-header .admin-back-link {
  min-height: 2.45rem;
  padding: 0.43rem 0.78rem 0.43rem 0.48rem;
}

@media (max-width: 780px) {
  .admin-titlebar > .admin-back-link,
  .seating-export-center-header > .admin-back-link {
    align-self: flex-start;
    width: fit-content;
    max-width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .admin-back-link,
  .admin-back-link-icon {
    transition: none;
  }
}

/* ========================================================================== 
   Dashboard · subtil og universell status for publisert bordplan
   ========================================================================== */

body.admin-onepage .admin-board-publication-status {
  display: flex;
  align-items: center;
  gap: 0.7rem;

  min-height: 2.72rem;
  margin: 0.78rem 0;
  padding: 0.48rem 0.58rem 0.48rem 0.68rem;

  border: 1px solid rgba(31, 29, 26, 0.07);
  border-radius: 0.78rem;

  background: rgba(255, 253, 249, 0.54);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.68);
}

body.admin-onepage .admin-board-publication-status-dot {
  flex: 0 0 auto;

  width: 0.46rem;
  height: 0.46rem;

  border: 1px solid rgba(155, 115, 71, 0.36);
  border-radius: 50%;

  background: rgba(205, 179, 138, 0.42);
  box-shadow: 0 0 0 0.2rem rgba(205, 179, 138, 0.075);
}

body.admin-onepage
.admin-board-publication-status.is-published
.admin-board-publication-status-dot {
  border-color: rgba(82, 113, 90, 0.42);
  background: rgba(82, 113, 90, 0.72);
  box-shadow: 0 0 0 0.2rem rgba(82, 113, 90, 0.075);
}

body.admin-onepage
.admin-board-publication-status.is-warning
.admin-board-publication-status-dot {
  border-color: rgba(162, 80, 69, 0.38);
  background: rgba(162, 80, 69, 0.62);
  box-shadow: 0 0 0 0.2rem rgba(162, 80, 69, 0.065);
}

body.admin-onepage .admin-board-publication-status-copy {
  display: flex;
  align-items: baseline;
  gap: 0.42rem;

  min-width: 0;
}

body.admin-onepage .admin-board-publication-status-copy strong,
body.admin-onepage .admin-board-publication-status-copy span {
  display: block;
  min-width: 0;
}

body.admin-onepage .admin-board-publication-status-copy strong {
  color: rgba(31, 29, 26, 0.72);

  font-size: 0.69rem;
  font-weight: 660;
  line-height: 1.35;
}

body.admin-onepage .admin-board-publication-status-copy span {
  overflow: hidden;

  color: rgba(31, 29, 26, 0.42);

  font-size: 0.63rem;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.admin-onepage .admin-board-publication-status-copy span::before {
  content: "·";
  margin-right: 0.42rem;
  color: rgba(168, 143, 104, 0.58);
}

body.admin-onepage .admin-board-publication-status > a {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  flex: 0 0 auto;

  margin-left: auto;
  padding: 0.3rem 0.38rem;

  border-radius: 0.45rem;

  color: rgba(31, 29, 26, 0.56);

  font-size: 0.62rem;
  font-weight: 690;
  line-height: 1.2;
  letter-spacing: 0.015em;
  text-decoration: none;

  transition:
    background-color 180ms ease,
    color 180ms ease,
    transform 180ms ease;
}

body.admin-onepage .admin-board-publication-status > a::after {
  content: "→";
  color: rgba(168, 143, 104, 0.84);
  font-size: 0.76rem;
  line-height: 1;
}

body.admin-onepage .admin-board-publication-status > a:hover,
body.admin-onepage .admin-board-publication-status > a:focus-visible {
  background: rgba(205, 179, 138, 0.1);
  color: rgba(31, 29, 26, 0.78);
}

body.admin-onepage .admin-board-publication-status > a:hover {
  transform: translateX(1px);
}

body.admin-onepage .admin-board-publication-status > a:focus-visible {
  outline: 2px solid rgba(205, 179, 138, 0.4);
  outline-offset: 2px;
}

@media (max-width: 780px) {
  body.admin-onepage .admin-board-publication-status {
    gap: 0.58rem;
    min-height: 2.64rem;
    padding: 0.48rem 0.5rem 0.48rem 0.62rem;
  }

  body.admin-onepage .admin-board-publication-status-copy {
    display: block;
  }

  body.admin-onepage .admin-board-publication-status-copy span {
    margin-top: 0.08rem;
  }

  body.admin-onepage .admin-board-publication-status-copy span::before {
    content: none;
  }

  body.admin-onepage .admin-board-publication-status > a {
    padding-inline: 0.3rem;
    white-space: nowrap;
  }
}

@media (max-width: 480px) {
  body.admin-onepage .admin-board-publication-status {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  body.admin-onepage .admin-board-publication-status-dot {
    margin-top: 0.31rem;
  }

  body.admin-onepage .admin-board-publication-status > a {
    width: auto;
    margin-left: 1.03rem;
    padding-left: 0;
  }
}

/* ========================================================================== 
   Dashboard · sammenleggbar invitasjonstelling
   ========================================================================== */

body.admin-onepage #dashboard
.admin-dashboard-invitation-tracking-card {
  display: block;
  min-height: 0;
  gap: 0;
  padding: 0;
  overflow: hidden;
}

body.admin-onepage #dashboard
.admin-dashboard-invitation-reveal {
  display: block;
  width: 100%;
}

body.admin-onepage #dashboard
.admin-dashboard-invitation-summary {
  box-sizing: border-box;
  min-height: 4.2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.95rem 1.15rem;
  list-style: none;
  cursor: pointer;
  user-select: none;
  transition:
    background-color 180ms ease,
    box-shadow 180ms ease;
}

body.admin-onepage #dashboard
.admin-dashboard-invitation-summary::-webkit-details-marker {
  display: none;
}

body.admin-onepage #dashboard
.admin-dashboard-invitation-summary::marker {
  content: "";
}

body.admin-onepage #dashboard
.admin-dashboard-invitation-summary:hover {
  background: rgba(205, 179, 138, 0.055);
}

body.admin-onepage #dashboard
.admin-dashboard-invitation-summary:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 2px rgba(168, 143, 104, 0.42);
}

body.admin-onepage #dashboard
.admin-dashboard-invitation-summary-title {
  color: rgba(31, 29, 26, 0.58);
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.17em;
  line-height: 1.2;
  text-transform: uppercase;
}

body.admin-onepage #dashboard
.admin-dashboard-invitation-summary
.admin-dashboard-invitation-source {
  gap: 0.46rem;
  transition:
    border-color 180ms ease,
    background-color 180ms ease,
    color 180ms ease;
}

body.admin-onepage #dashboard
.admin-dashboard-invitation-summary
.admin-dashboard-invitation-source::after {
  content: "";
  flex: 0 0 auto;
  width: 0.34rem;
  height: 0.34rem;
  margin-top: -0.16rem;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  transition: transform 180ms ease;
}

body.admin-onepage #dashboard
.admin-dashboard-invitation-summary:hover
.admin-dashboard-invitation-source {
  border-color: rgba(111, 132, 104, 0.32);
  background: rgba(111, 132, 104, 0.12);
  color: rgba(59, 78, 55, 0.96);
}

body.admin-onepage #dashboard
.admin-dashboard-invitation-reveal[open]
.admin-dashboard-invitation-summary {
  border-bottom: 1px solid rgba(31, 29, 26, 0.065);
}

body.admin-onepage #dashboard
.admin-dashboard-invitation-reveal[open]
.admin-dashboard-invitation-source::after {
  margin-top: 0.16rem;
  transform: rotate(225deg);
}

body.admin-onepage #dashboard
.admin-dashboard-invitation-reveal-content {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
  padding: 1rem 1.15rem 1.15rem;
  animation: dashboard-invitation-reveal-in 190ms ease both;
}

@keyframes dashboard-invitation-reveal-in {
  from {
    opacity: 0;
    transform: translateY(-0.22rem);
  }

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

@media (max-width: 680px) {
  body.admin-onepage #dashboard
  .admin-dashboard-invitation-summary {
    min-height: 3.85rem;
    padding-inline: 0.95rem;
  }

  body.admin-onepage #dashboard
  .admin-dashboard-invitation-reveal-content {
    padding: 0.9rem 0.95rem 1rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.admin-onepage #dashboard
  .admin-dashboard-invitation-summary,
  body.admin-onepage #dashboard
  .admin-dashboard-invitation-summary
  .admin-dashboard-invitation-source,
  body.admin-onepage #dashboard
  .admin-dashboard-invitation-summary
  .admin-dashboard-invitation-source::after {
    transition: none;
  }

  body.admin-onepage #dashboard
  .admin-dashboard-invitation-reveal-content {
    animation: none;
  }
}

/* ========================================================================== 
   Dashboard · samstemt innstillingspanel og myk invitasjonstelling
   ========================================================================== */

/* Alle tre innstillingskort bruker samme flate, radius, kant og høyde. */
body.admin-onepage #dashboard
.admin-dashboard-settings-list {
  gap: 0.72rem;
  padding: 0.78rem;
}

body.admin-onepage #dashboard
.admin-dashboard-setting-row,
body.admin-onepage #dashboard
.admin-dashboard-invitation-tracking-card,
body.admin-onepage #dashboard
.admin-dashboard-setting-link-card {
  box-sizing: border-box;
  min-height: 5.45rem;
  margin: 0;
  border: 1px solid rgba(31, 29, 26, 0.075);
  border-radius: 1rem;
  background:
    linear-gradient(
      145deg,
      rgba(255, 255, 255, 0.78),
      rgba(255, 253, 249, 0.52)
    );
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.82),
    0 7px 18px rgba(31, 29, 26, 0.018);
}

body.admin-onepage #dashboard
.admin-dashboard-setting-row:hover,
body.admin-onepage #dashboard
.admin-dashboard-invitation-tracking-card:hover,
body.admin-onepage #dashboard
.admin-dashboard-setting-link-card:hover {
  border-color: rgba(205, 179, 138, 0.28);
  background:
    linear-gradient(
      145deg,
      rgba(255, 255, 255, 0.92),
      rgba(255, 253, 249, 0.66)
    );
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.9),
    0 10px 24px rgba(31, 29, 26, 0.028);
  transform: translateY(-1px);
}

/* Invitasjonstelling er samme korttype som lenkekortene når den er lukket. */
body.admin-onepage #dashboard
.admin-dashboard-invitation-tracking-card {
  padding: 0;
  overflow: hidden;
}

body.admin-onepage #dashboard
.admin-dashboard-invitation-reveal {
  width: 100%;
  min-height: 100%;
}

body.admin-onepage #dashboard
.admin-dashboard-invitation-summary {
  min-height: 5.35rem;
  padding: 1rem 1.05rem;
}

body.admin-onepage #dashboard
.admin-dashboard-invitation-reveal[open]
.admin-dashboard-invitation-summary {
  border-bottom: 1px solid rgba(31, 29, 26, 0.06);
  background: rgba(205, 179, 138, 0.035);
}

/* Samme typografiske hierarki på alle korttitlene. */
body.admin-onepage #dashboard
.admin-dashboard-invitation-summary-title,
body.admin-onepage #dashboard
.admin-dashboard-setting-link-card
.admin-dashboard-setting-copy strong {
  color: rgba(31, 29, 26, 0.72);
  font-family: var(--font-serif);
  font-size: 1.03rem;
  font-weight: 500;
  letter-spacing: -0.01em;
  line-height: 1.2;
  text-transform: none;
}

body.admin-onepage #dashboard
.admin-dashboard-setting-link-card {
  padding: 1rem 1.05rem;
}

body.admin-onepage #dashboard
.admin-dashboard-setting-link-card
.admin-dashboard-setting-copy span {
  margin-top: 0.24rem;
  color: rgba(31, 29, 26, 0.4);
  font-size: 0.68rem;
  line-height: 1.45;
}

/* Administrer og Automatisk får samme kompakte kontrollhøyde. */
body.admin-onepage #dashboard
.admin-dashboard-setting-link-card
.admin-dashboard-setting-link,
body.admin-onepage #dashboard
.admin-dashboard-invitation-source {
  box-sizing: border-box;
  min-width: 7.35rem;
  min-height: 2.25rem;
  padding: 0.48rem 0.7rem;
  justify-content: center;
  border-radius: 999px;
  font-size: 0.59rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1;
  text-transform: uppercase;
}

/* Erstatter den klippede chevronen som kunne se ut som en løs strek. */
body.admin-onepage #dashboard
.admin-dashboard-invitation-summary
.admin-dashboard-invitation-source::after {
  content: "+";
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 0.9rem;
  height: 0.9rem;
  margin: 0 0 0 0.08rem;
  border: 0;
  color: currentColor;
  font-family: Arial, sans-serif;
  font-size: 0.72rem;
  font-weight: 500;
  line-height: 1;
  transform: none;
  transform-origin: 50% 50%;
  transition: transform 220ms cubic-bezier(.22, 1, .36, 1);
}

body.admin-onepage #dashboard
.admin-dashboard-invitation-reveal[open]
.admin-dashboard-invitation-source::after {
  margin-top: 0;
  transform: rotate(45deg);
}

/* Innholdet åpnes som én rolig arbeidsflate uten å føles som et nytt kort. */
body.admin-onepage #dashboard
.admin-dashboard-invitation-reveal-content {
  gap: 0.9rem;
  padding: 0.95rem 1.05rem 1.05rem;
  transform-origin: top center;
  will-change: opacity, transform;
}

body.admin-onepage #dashboard
.admin-dashboard-invitation-reveal.is-opening
.admin-dashboard-invitation-reveal-content {
  animation: dashboard-invitation-content-open 260ms cubic-bezier(.22, 1, .36, 1) both;
}

body.admin-onepage #dashboard
.admin-dashboard-invitation-reveal.is-closing
.admin-dashboard-invitation-reveal-content {
  animation: dashboard-invitation-content-close 180ms ease both;
}

@keyframes dashboard-invitation-content-open {
  from {
    opacity: 0;
    transform: translateY(-0.32rem) scaleY(0.985);
  }
  to {
    opacity: 1;
    transform: translateY(0) scaleY(1);
  }
}

@keyframes dashboard-invitation-content-close {
  from {
    opacity: 1;
    transform: translateY(0) scaleY(1);
  }
  to {
    opacity: 0;
    transform: translateY(-0.18rem) scaleY(0.99);
  }
}

@media (max-width: 900px) {
  body.admin-onepage #dashboard
  .admin-dashboard-settings-list {
    gap: 0.68rem;
    padding: 0.7rem;
  }
}

@media (max-width: 680px) {
  body.admin-onepage #dashboard
  .admin-dashboard-setting-row,
  body.admin-onepage #dashboard
  .admin-dashboard-invitation-tracking-card,
  body.admin-onepage #dashboard
  .admin-dashboard-setting-link-card {
    min-height: 0;
  }

  body.admin-onepage #dashboard
  .admin-dashboard-invitation-summary,
  body.admin-onepage #dashboard
  .admin-dashboard-setting-link-card {
    min-height: 4.8rem;
    padding: 0.9rem;
  }

  body.admin-onepage #dashboard
  .admin-dashboard-setting-link-card
  .admin-dashboard-setting-link,
  body.admin-onepage #dashboard
  .admin-dashboard-invitation-source {
    min-width: 6.8rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.admin-onepage #dashboard
  .admin-dashboard-invitation-reveal.is-opening
  .admin-dashboard-invitation-reveal-content,
  body.admin-onepage #dashboard
  .admin-dashboard-invitation-reveal.is-closing
  .admin-dashboard-invitation-reveal-content {
    animation: none;
  }
}

/* Sikrer identisk titteltypografi mot eldre, mer spesifikke Dashboard-regler. */
body.admin-onepage #dashboard
.admin-dashboard-invitation-summary
.admin-dashboard-invitation-summary-title {
  color: rgba(31, 29, 26, 0.72);
  font-family: var(--font-serif);
  font-size: 1.03rem;
  font-weight: 500;
  letter-spacing: -0.01em;
  line-height: 1.2;
  text-transform: none;
}

body.admin-onepage #dashboard
.admin-dashboard-setting-row,
body.admin-onepage #dashboard
.admin-dashboard-invitation-tracking-card,
body.admin-onepage #dashboard
.admin-dashboard-setting-link-card {
  border: 1px solid rgba(31, 29, 26, 0.075) !important;
}


/* ==========================================================================
   Admin RSVP · rolig titteldeler på Ny RSVP og Endre RSVP
   ========================================================================== */

body.admin-onepage .admin-new-rsvp-section .admin-rsvp-title-divider,
body.admin-onepage .admin-edit-rsvp-section .admin-rsvp-title-divider {
  width: 100%;
  height: 1px;
  margin: 0.78rem 0 1.25rem;
  background: linear-gradient(
    90deg,
    rgba(205, 179, 138, 0.62) 0%,
    rgba(205, 179, 138, 0.34) 52%,
    rgba(205, 179, 138, 0) 100%
  );
}

@media (max-width: 780px) {
  body.admin-onepage .admin-new-rsvp-section .admin-rsvp-title-divider,
  body.admin-onepage .admin-edit-rsvp-section .admin-rsvp-title-divider {
    margin-top: 0.68rem;
    margin-bottom: 1rem;
  }
}

/* ========================================================================== 
   Gjesteliste · diskret sideinndeling
   ========================================================================== */

body.admin-onepage #gjesteliste .admin-list-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1rem;
  padding: 0.78rem 0.9rem;
  border: 1px solid rgba(31, 29, 26, 0.075);
  border-radius: 1rem;
  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.76),
      rgba(255, 253, 249, 0.56)
    );
  box-shadow:
    0 8px 22px rgba(31, 29, 26, 0.025),
    inset 0 1px 0 rgba(255, 255, 255, 0.72);
}

body.admin-onepage #gjesteliste .admin-list-pagination[hidden] {
  display: none !important;
}

body.admin-onepage #gjesteliste .admin-list-pagination-summary {
  margin: 0;
  color: rgba(31, 29, 26, 0.46);
  font-size: 0.66rem;
  font-weight: 680;
  letter-spacing: 0.045em;
  white-space: nowrap;
}

body.admin-onepage #gjesteliste .admin-list-pagination-controls,
body.admin-onepage #gjesteliste .admin-list-pagination-pages {
  display: flex;
  align-items: center;
}

body.admin-onepage #gjesteliste .admin-list-pagination-controls {
  gap: 0.35rem;
}

body.admin-onepage #gjesteliste .admin-list-pagination-pages {
  gap: 0.22rem;
}

body.admin-onepage #gjesteliste .admin-list-pagination button {
  min-width: 2.1rem;
  min-height: 2.1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 0.48rem 0.65rem;
  background: transparent;
  color: rgba(31, 29, 26, 0.56);
  font: inherit;
  font-size: 0.64rem;
  font-weight: 720;
  letter-spacing: 0.025em;
  line-height: 1;
  cursor: pointer;
  transition:
    border-color 180ms ease,
    background 180ms ease,
    color 180ms ease,
    transform 180ms ease,
    box-shadow 180ms ease;
}

body.admin-onepage #gjesteliste .admin-list-pagination button:hover:not(:disabled),
body.admin-onepage #gjesteliste .admin-list-pagination button:focus-visible {
  outline: none;
  border-color: rgba(205, 179, 138, 0.36);
  background: rgba(205, 179, 138, 0.1);
  color: rgba(31, 29, 26, 0.82);
  transform: translateY(-1px);
}

body.admin-onepage #gjesteliste .admin-list-pagination-page.is-active {
  border-color: rgba(205, 179, 138, 0.52);
  background:
    linear-gradient(
      180deg,
      rgba(205, 179, 138, 0.18),
      rgba(205, 179, 138, 0.1)
    );
  color: rgba(31, 29, 26, 0.86);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
}

body.admin-onepage #gjesteliste .admin-list-pagination-nav {
  padding-inline: 0.78rem !important;
}

body.admin-onepage #gjesteliste .admin-list-pagination button:disabled {
  opacity: 0.3;
  cursor: default;
  transform: none;
}

body.admin-onepage #gjesteliste .admin-list-pagination-ellipsis {
  min-width: 1.35rem;
  color: rgba(31, 29, 26, 0.34);
  font-size: 0.72rem;
  text-align: center;
}

@media (max-width: 760px) {
  body.admin-onepage #gjesteliste .admin-list-pagination {
    align-items: stretch;
    flex-direction: column;
    padding: 0.72rem;
  }

  body.admin-onepage #gjesteliste .admin-list-pagination-summary {
    text-align: center;
  }

  body.admin-onepage #gjesteliste .admin-list-pagination-controls {
    justify-content: space-between;
  }

  body.admin-onepage #gjesteliste .admin-list-pagination-nav span:not([aria-hidden="true"]) {
    display: none;
  }

  body.admin-onepage #gjesteliste .admin-list-pagination-nav {
    padding-inline: 0.55rem !important;
  }
}

/* ========================================================================== 
   Admin · felles mobilramme

   En egen, kompakt mobilheader erstatter desktopheaderen under 781 px.
   Hovednavigasjonen åpnes som et rolig bunnpanel med samme krem-, champagne-
   og typografispråk som resten av adminpanelet.
   ========================================================================== */

.admin-mobile-header,
.admin-mobile-menu-layer {
  display: none;
}

@media (max-width: 780px) {
  body.admin-onepage {
    --admin-mobile-header-height: 4rem;
    --admin-utility-height: 0px;
    --admin-header-height: var(--admin-mobile-header-height);
  }

  body.admin-onepage > .admin-utility-bar,
  body.admin-onepage > .admin-site-header {
    display: none !important;
  }

  body.admin-onepage .admin-mobile-header {
    position: fixed;
    z-index: 2150;
    top: 0;
    right: 0;
    left: 0;

    display: block;
    height: var(--admin-mobile-header-height);

    background: rgba(255, 253, 249, 0.9);
    border-bottom: 1px solid rgba(31, 29, 26, 0.055);
    box-shadow: 0 8px 28px rgba(31, 29, 26, 0.035);

    backdrop-filter: blur(22px) saturate(145%);
    -webkit-backdrop-filter: blur(22px) saturate(145%);
  }

  body.admin-onepage .admin-mobile-header::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 1px;
    pointer-events: none;
    background: linear-gradient(
      90deg,
      rgba(205, 179, 138, 0.02),
      rgba(205, 179, 138, 0.48) 18%,
      rgba(205, 179, 138, 0.18) 72%,
      rgba(205, 179, 138, 0)
    );
  }

  body.admin-onepage .admin-mobile-header-inner {
    box-sizing: border-box;
    width: 100%;
    height: 100%;

    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr) 4rem;
    align-items: center;
    gap: 0.5rem;

    padding:
      env(safe-area-inset-top, 0px)
      max(0.85rem, env(safe-area-inset-right, 0px))
      0
      max(0.85rem, env(safe-area-inset-left, 0px));
  }

  body.admin-onepage .admin-mobile-header .brand {
    position: relative;
    justify-self: start;
    width: 2.7rem;
    height: 2.7rem;
    min-width: 0;
    gap: 0.18rem;
    transform: none;
  }

  body.admin-onepage .admin-mobile-header .brand-a,
  body.admin-onepage .admin-mobile-header .brand-m {
    font-size: 1.32rem;
    line-height: 1;
  }

  body.admin-onepage .admin-mobile-header .brand-divider {
    width: 0.58rem;
    height: 1.65rem;
  }

  body.admin-onepage .admin-mobile-header .brand-divider::before,
  body.admin-onepage .admin-mobile-header .brand-divider::after {
    width: 1px;
  }

  body.admin-onepage .admin-mobile-header .brand-divider::before {
    height: calc(50% - 0.4rem);
  }

  body.admin-onepage .admin-mobile-header .brand-divider::after {
    height: calc(50% - 0.4rem);
  }

  body.admin-onepage .admin-mobile-header .brand-divider span {
    font-size: 0.56rem;
  }

  body.admin-onepage .admin-mobile-current {
    min-width: 0;
    justify-self: center;
    text-align: center;
  }

  body.admin-onepage .admin-mobile-current span {
    display: block;
    max-width: min(48vw, 13.5rem);
    overflow: hidden;
    color: rgba(31, 29, 26, 0.76);
    font-size: 0.63rem;
    font-weight: 800;
    letter-spacing: 0.17em;
    line-height: 1;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
  }

  body.admin-onepage .admin-mobile-menu-toggle {
    justify-self: end;
    width: 3.85rem;
    min-height: 2.5rem;

    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.55rem;

    border: 0;
    padding: 0;
    background: transparent;
    color: rgba(31, 29, 26, 0.67);

    font: inherit;
    font-size: 0.55rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    cursor: pointer;
  }

  body.admin-onepage .admin-mobile-menu-toggle > i {
    width: 1.02rem;
    height: 0.76rem;
    display: grid;
    align-content: center;
    gap: 0.28rem;
  }

  body.admin-onepage .admin-mobile-menu-toggle > i > b {
    display: block;
    width: 100%;
    height: 1px;
    border-radius: 999px;
    background: currentColor;
    transition: transform 220ms ease, width 220ms ease;
  }

  body.admin-onepage .admin-mobile-menu-toggle[aria-expanded="true"] > i > b:first-child {
    width: 82%;
    transform: translate(0.08rem, 0.14rem) rotate(36deg);
  }

  body.admin-onepage .admin-mobile-menu-toggle[aria-expanded="true"] > i > b:last-child {
    width: 82%;
    transform: translate(0.08rem, -0.14rem) rotate(-36deg);
  }

  body.admin-onepage .admin-scroll-root {
    top: var(--admin-mobile-header-height) !important;
  }

  body.admin-onepage.admin-mobile-menu-open .admin-scroll-root {
    overflow: hidden !important;
    pointer-events: none;
  }

  body.admin-onepage .admin-mobile-menu-layer {
    position: fixed;
    z-index: 3200;
    inset: 0;

    display: grid;
    align-items: end;

    padding-top: max(1.25rem, env(safe-area-inset-top, 0px));
  }

  body.admin-onepage .admin-mobile-menu-layer[hidden] {
    display: none !important;
  }

  body.admin-onepage .admin-mobile-menu-backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    padding: 0;
    background: rgba(31, 29, 26, 0.28);
    opacity: 0;
    cursor: pointer;
    transition: opacity 220ms ease;

    backdrop-filter: blur(10px) saturate(110%);
    -webkit-backdrop-filter: blur(10px) saturate(110%);
  }

  body.admin-onepage .admin-mobile-menu-sheet {
    position: relative;
    z-index: 2;

    box-sizing: border-box;
    width: 100%;
    max-height: min(88svh, 48rem);
    overflow-y: auto;
    overscroll-behavior: contain;

    padding:
      1rem
      max(1rem, env(safe-area-inset-right, 0px))
      max(1.1rem, calc(0.75rem + env(safe-area-inset-bottom, 0px)))
      max(1rem, env(safe-area-inset-left, 0px));

    border: 1px solid rgba(205, 179, 138, 0.24);
    border-bottom: 0;
    border-radius: 1.55rem 1.55rem 0 0;

    background:
      radial-gradient(circle at 12% 0%, rgba(205, 179, 138, 0.13), transparent 16rem),
      rgba(255, 253, 249, 0.985);

    box-shadow:
      0 -24px 70px rgba(31, 29, 26, 0.16),
      inset 0 1px 0 rgba(255, 255, 255, 0.96);

    opacity: 0;
    outline: none;
    transform: translateY(1.25rem);
    transition: opacity 220ms ease, transform 260ms cubic-bezier(.22, 1, .36, 1);
  }

  body.admin-onepage .admin-mobile-menu-sheet::before {
    content: "";
    display: block;
    width: 2.45rem;
    height: 0.2rem;
    margin: -0.35rem auto 0.85rem;
    border-radius: 999px;
    background: rgba(31, 29, 26, 0.14);
  }

  body.admin-onepage .admin-mobile-menu-layer.is-open .admin-mobile-menu-backdrop {
    opacity: 1;
  }

  body.admin-onepage .admin-mobile-menu-layer.is-open .admin-mobile-menu-sheet {
    opacity: 1;
    transform: translateY(0);
  }

  body.admin-onepage .admin-mobile-menu-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.2rem 0 0.95rem;
  }

  body.admin-onepage .admin-mobile-menu-branding {
    display: inline-flex;
    flex-direction: row;
    align-items: flex-end;
    gap: 0.28rem;
    min-width: 0;
  }

  body.admin-onepage .admin-mobile-menu-branding .brand {
    gap: 0.32rem;
    color: #1f1d1a;
    flex: 0 0 auto;
  }

  body.admin-onepage .admin-mobile-menu-branding .brand-a,
  body.admin-onepage .admin-mobile-menu-branding .brand-m {
    font-size: 1.98rem;
  }

  body.admin-onepage .admin-mobile-menu-branding .brand-divider {
    width: 0.72rem;
    height: 2.18rem;
  }

  body.admin-onepage .admin-mobile-menu-branding .brand-divider::before,
  body.admin-onepage .admin-mobile-menu-branding .brand-divider::after {
    opacity: 0.7;
  }

  body.admin-onepage .admin-mobile-menu-branding .brand-divider::before {
    height: calc(50% - 0.45rem);
  }

  body.admin-onepage .admin-mobile-menu-branding .brand-divider::after {
    height: calc(50% - 0.45rem);
  }

  body.admin-onepage .admin-mobile-menu-branding .brand-divider span {
    font-size: 0.74rem;
  }

  body.admin-onepage .admin-mobile-menu-branding p {
    position: relative;
    margin: 0 0 0.24rem;
    padding-left: 0;
    color: rgba(168, 143, 104, 0.92);
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    line-height: 1;
    white-space: nowrap;
    transform: none;
  }


  body.admin-onepage .admin-mobile-menu-close {
    flex: 0 0 auto;
    width: 2.55rem;
    height: 2.55rem;
    display: grid;
    place-items: center;
    border: 1px solid rgba(31, 29, 26, 0.09);
    border-radius: 50%;
    padding: 0;
    background: rgba(255, 255, 255, 0.58);
    color: rgba(31, 29, 26, 0.54);
    font: inherit;
    font-size: 1.25rem;
    cursor: pointer;
  }

  body.admin-onepage .admin-mobile-main-nav {
    display: grid;
    border-top: 1px solid rgba(205, 179, 138, 0.22);
  }

  body.admin-onepage .admin-mobile-main-nav a {
    position: relative;
    min-width: 0;

    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.72rem;

    min-height: 3.58rem;
    border-bottom: 0;
    padding: 0.18rem 0.12rem;

    color: rgba(31, 29, 26, 0.7);
    text-decoration: none;
  }

  body.admin-onepage .admin-mobile-main-nav a:not(:last-child)::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 1px;
    pointer-events: none;
    background: linear-gradient(
      90deg,
      rgba(205, 179, 138, 0.34) 0%,
      rgba(205, 179, 138, 0.22) 58%,
      rgba(205, 179, 138, 0.08) 82%,
      transparent 100%
    );
  }

  body.admin-onepage .admin-mobile-main-nav a > span {
    color: rgba(168, 143, 104, 0.72);
    font-size: 0.55rem;
    font-weight: 800;
    letter-spacing: 0.13em;
  }

  body.admin-onepage .admin-mobile-main-nav a > strong {
    min-width: 0;
    overflow: hidden;
    font-size: 0.74rem;
    font-weight: 780;
    letter-spacing: 0.135em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
  }

  body.admin-onepage .admin-mobile-main-nav a > i {
    color: rgba(31, 29, 26, 0.3);
    font-size: 0.9rem;
    font-style: normal;
    transition: transform 180ms ease, color 180ms ease;
  }

  body.admin-onepage .admin-mobile-main-nav a.active {
    color: rgba(31, 29, 26, 0.94);
  }

  body.admin-onepage .admin-mobile-main-nav a.active::before {
    content: "";
    position: absolute;
    left: -1rem;
    width: 0.18rem;
    height: 1.55rem;
    border-radius: 0 999px 999px 0;
    background: rgba(181, 146, 94, 0.78);
  }

  body.admin-onepage .admin-mobile-main-nav a.active > i {
    color: rgba(168, 143, 104, 0.88);
    transform: translateX(0.12rem);
  }

  body.admin-onepage .admin-mobile-menu-footer {
    position: relative;
    display: grid;
    gap: 0.62rem;
    margin-top: 1rem;
    padding-top: 0;
    border-top: 0;
  }


  body.admin-onepage .admin-mobile-profile {
    position: relative;
    display: grid;
    gap: 0.42rem;
    padding: 0.82rem 0.9rem 0.78rem;
    border: 1px solid rgba(205, 179, 138, 0.18);
    border-radius: 1rem;
    background:
      linear-gradient(135deg, rgba(205, 179, 138, 0.07), rgba(255, 255, 255, 0.48));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
  }

  body.admin-onepage .admin-mobile-profile > span {
    color: rgba(31, 29, 26, 0.38);
    font-size: 0.51rem;
    font-weight: 760;
    letter-spacing: 0.14em;
    text-transform: uppercase;
  }

  body.admin-onepage .admin-mobile-profile-line {
    min-width: 0;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.7rem;
  }

  body.admin-onepage .admin-mobile-profile-line > strong {
    min-width: 0;
    overflow: hidden;
    color: rgba(31, 29, 26, 0.86);
    font-family: var(--font-serif);
    font-size: 1.34rem;
    font-weight: 400;
    letter-spacing: -0.025em;
    line-height: 1;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.admin-onepage .admin-mobile-profile-line > small {
    flex: 0 0 auto;
    color: rgba(168, 143, 104, 0.86);
    font-size: 0.53rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  body.admin-onepage .admin-mobile-menu-footer > nav {
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 0.48rem;
  }

  body.admin-onepage .admin-mobile-menu-footer > nav .admin-mobile-destination {
    position: relative;
    min-width: 0;
    min-height: 3.05rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    padding: 0.68rem 0.82rem 0.68rem 0.92rem;
    border: 1px solid rgba(205, 179, 138, 0.18);
    border-radius: 0.82rem;
    background: rgba(255, 255, 255, 0.34);
    color: rgba(31, 29, 26, 0.6);
    font-size: 0.55rem;
    font-weight: 760;
    letter-spacing: 0.11em;
    line-height: 1;
    text-decoration: none;
    text-transform: uppercase;
    transition:
      border-color 160ms ease,
      background 160ms ease,
      color 160ms ease,
      transform 160ms ease;
    -webkit-tap-highlight-color: transparent;
  }

  body.admin-onepage .admin-mobile-menu-footer > nav .admin-mobile-destination:active,
  body.admin-onepage .admin-mobile-menu-footer > nav .admin-mobile-destination:focus-visible {
    border-color: rgba(205, 179, 138, 0.34);
    background: rgba(205, 179, 138, 0.09);
    color: rgba(31, 29, 26, 0.82);
  }

  body.admin-onepage .admin-mobile-menu-footer > nav .admin-mobile-destination:active {
    transform: scale(0.992);
  }

  body.admin-onepage .admin-mobile-destination > span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.admin-onepage .admin-mobile-destination-arrow {
    flex: 0 0 auto;
    width: 0.68rem;
    height: 0.68rem;
    margin-left: auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.35;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: 0.72;
  }

  body.admin-onepage .admin-mobile-menu-footer > nav .admin-mobile-logout {
    position: relative;
    justify-self: start;
    min-height: 2.55rem;
    display: inline-flex;
    align-items: center;
    margin-top: 0.34rem;
    padding: 0.5rem 0.18rem;
    border: 0;
    border-radius: 0.5rem;
    background: transparent;
    color: rgba(31, 29, 26, 0.43);
    font-size: 0.51rem;
    font-weight: 760;
    letter-spacing: 0.1em;
    line-height: 1;
    text-decoration: none;
    text-transform: uppercase;
    transition: color 160ms ease, background 160ms ease;
    -webkit-tap-highlight-color: transparent;
  }

  body.admin-onepage .admin-mobile-menu-footer > nav .admin-mobile-logout:active,
  body.admin-onepage .admin-mobile-menu-footer > nav .admin-mobile-logout:focus-visible {
    background: rgba(205, 179, 138, 0.08);
    color: rgba(31, 29, 26, 0.72);
  }

  body.admin-onepage .admin-mobile-logout::before {
    content: none;
  }
}

@media (max-width: 390px) {
  body.admin-onepage .admin-mobile-header-inner {
    grid-template-columns: 2.7rem minmax(0, 1fr) 3.65rem;
    padding-inline: 0.72rem;
  }

  body.admin-onepage .admin-mobile-current span {
    max-width: 46vw;
    font-size: 0.58rem;
    letter-spacing: 0.14em;
  }

  body.admin-onepage .admin-mobile-menu-toggle {
    gap: 0.42rem;
    font-size: 0.51rem;
  }

  body.admin-onepage .admin-mobile-management > div {
    grid-template-columns: 1fr;
  }
}

/* ========================================================================== 
   Admin mobil · dra-ned-meny og finjustert bordplanstatus
   ========================================================================== */

.admin-mobile-menu-drag-handle {
  display: none;
}

@media (max-width: 780px) {
  body.admin-onepage .admin-mobile-menu-sheet {
    transform: translateY(100%);
    transition:
      opacity 220ms ease,
      transform 300ms cubic-bezier(.22, 1, .36, 1);
  }

  body.admin-onepage .admin-mobile-menu-layer.is-open .admin-mobile-menu-sheet {
    transform: translateY(var(--admin-mobile-menu-drag-y, 0px));
  }

  body.admin-onepage .admin-mobile-menu-layer.is-dragging .admin-mobile-menu-sheet {
    transition: none;
  }

  body.admin-onepage .admin-mobile-menu-layer.is-open .admin-mobile-menu-backdrop {
    opacity: calc(1 - var(--admin-mobile-menu-drag-progress, 0));
  }

  body.admin-onepage .admin-mobile-menu-layer.is-dragging .admin-mobile-menu-backdrop {
    transition: none;
  }

  body.admin-onepage .admin-mobile-menu-sheet::before {
    content: none;
  }

  body.admin-onepage .admin-mobile-menu-drag-handle {
    width: 100%;
    height: 1.15rem;
    display: grid;
    place-items: start center;
    border: 0;
    padding: 0.18rem 0 0;
    background: transparent;
    cursor: grab;
    touch-action: none;
  }

  body.admin-onepage .admin-mobile-menu-drag-handle:active {
    cursor: grabbing;
  }

  body.admin-onepage .admin-mobile-menu-drag-handle > span {
    display: block;
    width: 2.55rem;
    height: 0.2rem;
    border-radius: 999px;
    background: rgba(31, 29, 26, 0.15);
  }

  body.admin-onepage .admin-mobile-menu-heading {
    padding-top: 0;
  }
}

@media (max-width: 480px) {
  body.admin-onepage .admin-board-publication-status {
    align-items: center;
    padding-top: 0.62rem;
    padding-bottom: 0.56rem;
  }

  body.admin-onepage .admin-board-publication-status-dot {
    margin-top: 0;
  }

  body.admin-onepage .admin-board-publication-status-copy {
    position: relative;
    top: 0.08rem;
  }

  body.admin-onepage .admin-board-publication-status > a {
    margin-top: 0.06rem;
  }
}


/* ========================================================================== 
   Mobilrunde 3 · status på én linje og enklere dra-ned-meny
   ========================================================================== */

@media (max-width: 780px) {
  body.admin-onepage .admin-mobile-menu-drag-handle {
    height: 1.65rem;
    place-items: center;
    padding: 0;
  }

  body.admin-onepage .admin-mobile-menu-heading {
    cursor: grab;
    touch-action: none;
  }

  body.admin-onepage .admin-mobile-menu-layer.is-dragging
  .admin-mobile-menu-heading {
    cursor: grabbing;
  }
}

@media (max-width: 480px) {
  body.admin-onepage .admin-board-publication-status,
  body.admin-onepage .admin-board-publication-status--reports {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.56rem;
    min-height: 2.72rem;
    padding: 0.5rem 0.48rem 0.5rem 0.62rem;
    flex-wrap: nowrap;
  }

  body.admin-onepage .admin-board-publication-status-dot {
    align-self: center;
    margin-top: 0;
  }

  body.admin-onepage .admin-board-publication-status-copy {
    position: static;
    top: auto;
    min-width: 0;
    align-self: center;
  }

  body.admin-onepage .admin-board-publication-status-copy strong {
    overflow: hidden;
    line-height: 1.22;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.admin-onepage .admin-board-publication-status-copy span {
    overflow: hidden;
    margin-top: 0.05rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.admin-onepage .admin-board-publication-status > a {
    justify-self: end;
    align-self: center;
    width: auto;
    margin: 0;
    padding: 0.32rem 0.26rem;
    white-space: nowrap;
  }
}

/* ==========================================================================
   Status mobil · tydelig visningsvelger, matnotater og statistikk
   ========================================================================== */

body.admin-onepage .admin-status-mobile-nav {
  display: none;
}

body.admin-onepage .admin-status-mobile-sheet[hidden] {
  display: none !important;
}

@media (max-width: 780px) {
  body.admin-onepage.admin-status-mobile-menu-open .admin-scroll-root {
    overflow: hidden !important;
  }

  body.admin-onepage #kpi .admin-status-titlebar-with-tabs {
    gap: 0.9rem;
  }

  body.admin-onepage #kpi .admin-status-tabs-inline {
    display: none !important;
  }

  body.admin-onepage .admin-status-mobile-nav {
    display: block;
    width: 100%;
    min-width: 0;
  }

  body.admin-onepage .admin-status-mobile-trigger {
    box-sizing: border-box;
    width: 100%;
    min-height: 3.7rem;

    display: grid;
    grid-template-columns: minmax(0, 1fr) 2.35rem;
    align-items: center;
    gap: 0.85rem;

    padding: 0.72rem 0.72rem 0.72rem 1rem;

    border: 1px solid rgba(205, 179, 138, 0.3);
    border-radius: 1rem;

    background:
      radial-gradient(circle at 9% 0%, rgba(205, 179, 138, 0.13), transparent 8rem),
      linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(255, 253, 249, 0.72));

    color: rgba(31, 29, 26, 0.84);
    font: inherit;
    text-align: left;
    cursor: pointer;

    box-shadow:
      0 8px 24px rgba(31, 29, 26, 0.04),
      inset 0 1px 0 rgba(255, 255, 255, 0.9);
  }

  body.admin-onepage .admin-status-mobile-trigger-copy {
    min-width: 0;
    display: grid;
    gap: 0.2rem;
  }

  body.admin-onepage .admin-status-mobile-trigger-copy small {
    color: rgba(168, 143, 104, 0.84);
    font-size: 0.55rem;
    font-weight: 800;
    letter-spacing: 0.15em;
    line-height: 1;
    text-transform: uppercase;
  }

  body.admin-onepage .admin-status-mobile-trigger-copy strong {
    overflow: hidden;
    color: rgba(31, 29, 26, 0.88);
    font-size: 0.82rem;
    font-weight: 780;
    letter-spacing: 0.12em;
    line-height: 1.2;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
  }

  body.admin-onepage .admin-status-mobile-trigger-icon {
    position: relative;
    width: 2.35rem;
    height: 2.35rem;
    display: grid;
    place-items: center;
    border: 1px solid rgba(31, 29, 26, 0.085);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.58);
    color: rgba(31, 29, 26, 0.46);
    transition: transform 240ms cubic-bezier(0.22, 1, 0.36, 1);
  }

  body.admin-onepage .admin-status-mobile-trigger-icon::before,
  body.admin-onepage .admin-status-mobile-trigger-icon::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 0.82rem;
    height: 1px;
    border-radius: 999px;
    background: currentColor;
    transform: translate(-50%, -50%);
  }

  body.admin-onepage .admin-status-mobile-trigger-icon::after {
    transform: translate(-50%, -50%) rotate(90deg);
  }

  body.admin-onepage .admin-status-mobile-trigger[aria-expanded="true"]
  .admin-status-mobile-trigger-icon {
    transform: rotate(45deg);
  }

  body.admin-onepage .admin-status-mobile-sheet {
    position: fixed;
    z-index: 3300;
    inset: 0;

    display: grid;
    align-items: end;
  }

  body.admin-onepage .admin-status-mobile-backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    padding: 0;
    background: rgba(31, 29, 26, 0.3);
    opacity: 0;
    cursor: pointer;

    backdrop-filter: blur(10px) saturate(110%);
    -webkit-backdrop-filter: blur(10px) saturate(110%);

    transition: opacity 220ms ease;
  }

  body.admin-onepage .admin-status-mobile-panel {
    position: relative;
    z-index: 2;

    box-sizing: border-box;
    width: 100%;
    max-height: min(82svh, 38rem);
    overflow-y: auto;
    overscroll-behavior: contain;

    padding:
      0.55rem
      max(1rem, env(safe-area-inset-right, 0px))
      max(1.1rem, calc(0.75rem + env(safe-area-inset-bottom, 0px)))
      max(1rem, env(safe-area-inset-left, 0px));

    border: 1px solid rgba(205, 179, 138, 0.24);
    border-bottom: 0;
    border-radius: 1.55rem 1.55rem 0 0;

    background:
      radial-gradient(circle at 12% 0%, rgba(205, 179, 138, 0.14), transparent 16rem),
      rgba(255, 253, 249, 0.99);

    box-shadow:
      0 -24px 70px rgba(31, 29, 26, 0.17),
      inset 0 1px 0 rgba(255, 255, 255, 0.96);

    opacity: 0;
    outline: none;
    transform: translateY(100%);

    transition:
      opacity 220ms ease,
      transform 300ms cubic-bezier(.22, 1, .36, 1);
  }

  body.admin-onepage .admin-status-mobile-sheet.is-open
  .admin-status-mobile-backdrop {
    opacity: 1;
  }

  body.admin-onepage .admin-status-mobile-sheet.is-open
  .admin-status-mobile-panel {
    opacity: 1;
    transform: translateY(0);
  }

  body.admin-onepage .admin-status-mobile-handle {
    display: block;
    width: 2.55rem;
    height: 0.2rem;
    margin: 0.1rem auto 0.65rem;
    border-radius: 999px;
    background: rgba(31, 29, 26, 0.15);
  }

  body.admin-onepage .admin-status-mobile-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.15rem 0 0.85rem;
  }

  body.admin-onepage .admin-status-mobile-heading p {
    margin: 0;
    color: rgba(168, 143, 104, 0.9);
    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.19em;
    text-transform: uppercase;
  }

  body.admin-onepage .admin-status-mobile-heading h3 {
    margin: 0.24rem 0 0;
    font-family: var(--font-serif);
    font-size: 1.9rem;
    font-weight: 400;
    letter-spacing: -0.04em;
    line-height: 1;
  }

  body.admin-onepage .admin-status-mobile-close {
    flex: 0 0 auto;
    width: 2.55rem;
    height: 2.55rem;
    display: grid;
    place-items: center;
    border: 1px solid rgba(31, 29, 26, 0.09);
    border-radius: 50%;
    padding: 0;
    background: rgba(255, 255, 255, 0.58);
    color: rgba(31, 29, 26, 0.54);
    font: inherit;
    font-size: 1.25rem;
    cursor: pointer;
  }

  body.admin-onepage .admin-status-mobile-options {
    display: grid;
    border-top: 1px solid rgba(205, 179, 138, 0.22);
  }

  body.admin-onepage .admin-status-mobile-options button {
    position: relative;
    min-width: 0;
    min-height: 4.25rem;

    display: grid;
    grid-template-columns: minmax(0, 1fr) 1.5rem;
    align-items: center;
    gap: 0.85rem;

    border: 0;
    border-bottom: 1px solid rgba(31, 29, 26, 0.065);
    padding: 0.65rem 0.12rem;

    background: transparent;
    color: rgba(31, 29, 26, 0.68);
    font: inherit;
    text-align: left;
    cursor: pointer;
  }

  body.admin-onepage .admin-status-mobile-options button > span {
    min-width: 0;
    display: grid;
    gap: 0.22rem;
  }

  body.admin-onepage .admin-status-mobile-options button strong {
    color: inherit;
    font-size: 0.76rem;
    font-weight: 790;
    letter-spacing: 0.12em;
    line-height: 1.2;
    text-transform: uppercase;
  }

  body.admin-onepage .admin-status-mobile-options button small {
    color: rgba(31, 29, 26, 0.43);
    font-size: 0.74rem;
    line-height: 1.35;
  }

  body.admin-onepage .admin-status-mobile-options button i {
    display: grid;
    place-items: center;
    width: 1.35rem;
    height: 1.35rem;
    border: 1px solid rgba(205, 179, 138, 0.5);
    border-radius: 50%;
    color: rgba(168, 143, 104, 0.96);
    font-size: 0.7rem;
    font-style: normal;
    opacity: 0;
    transform: scale(0.75);
    transition: opacity 180ms ease, transform 180ms ease;
  }

  body.admin-onepage .admin-status-mobile-options button.active {
    color: rgba(31, 29, 26, 0.94);
  }

  body.admin-onepage .admin-status-mobile-options button.active::before {
    content: "";
    position: absolute;
    left: -1rem;
    width: 0.18rem;
    height: 1.7rem;
    border-radius: 0 999px 999px 0;
    background: rgba(181, 146, 94, 0.78);
  }

  body.admin-onepage .admin-status-mobile-options button.active i {
    opacity: 1;
    transform: scale(1);
  }

  /* Mat: alle kort og notater får naturlig mobilflyt. */
  body.admin-onepage #kpi [data-status-panel="food"] .admin-status-panel-grid {
    gap: 0.85rem;
  }

  body.admin-onepage #kpi [data-status-panel="food"] .admin-status-block {
    min-width: 0;
    padding: 1rem 0.9rem;
    border-radius: 1rem;
  }

  body.admin-onepage #kpi .admin-status-review-list,
  body.admin-onepage #kpi .admin-status-review-list.has-review-overflow {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    padding-right: 0 !important;
    scrollbar-gutter: auto;
  }

  body.admin-onepage #kpi .admin-status-review-card {
    min-width: 0;
    gap: 0.75rem;
    padding: 0.95rem;
    border-radius: 0.95rem;
  }

  body.admin-onepage #kpi .admin-status-review-card-top {
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 0.65rem;
  }

  body.admin-onepage #kpi .admin-status-review-card-top strong,
  body.admin-onepage #kpi .admin-status-review-card p,
  body.admin-onepage #kpi .admin-status-dietary-note p {
    overflow-wrap: anywhere;
    word-break: normal;
  }

  body.admin-onepage #kpi .admin-status-review-card p {
    display: block;
    overflow: visible;
    -webkit-line-clamp: unset;
    -webkit-box-orient: initial;
    font-size: 0.88rem;
    line-height: 1.58;
  }

  body.admin-onepage #kpi .admin-status-review-link {
    width: 100%;
    min-height: 2.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(205, 179, 138, 0.3);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.58);
    opacity: 1;
  }

  body.admin-onepage #kpi .admin-status-review-form {
    margin-top: 0;
  }

  body.admin-onepage #kpi .admin-status-block-heading-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.75rem;
  }

  body.admin-onepage #kpi .admin-status-notes-toggle {
    width: 100%;
  }

  body.admin-onepage #kpi .admin-status-note-list {
    min-width: 0;
  }

  body.admin-onepage #kpi .admin-status-dietary-note {
    min-width: 0;
    gap: 0.72rem;
    padding: 0.9rem;
    border: 1px solid rgba(31, 29, 26, 0.075) !important;
    border-radius: 0.95rem !important;
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.76), rgba(255, 253, 249, 0.5)) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.74) !important;
  }

  body.admin-onepage #kpi .admin-status-dietary-note + .admin-status-dietary-note {
    margin-top: 0.7rem;
  }

  body.admin-onepage #kpi .admin-status-dietary-note:first-child,
  body.admin-onepage #kpi .admin-status-dietary-note:last-child {
    padding: 0.9rem;
  }

  body.admin-onepage #kpi .admin-status-dietary-note-header {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: stretch !important;
    gap: 0.75rem !important;
  }

  body.admin-onepage #kpi .admin-status-dietary-note-title {
    width: 100%;
    min-width: 0;
  }

  body.admin-onepage #kpi .admin-status-note-categories {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 0.45rem;
  }

  body.admin-onepage #kpi .admin-status-note-category-list {
    width: 100%;
  }

  body.admin-onepage #kpi .admin-status-note-category {
    max-width: 100%;
    white-space: normal;
    text-align: center;
  }

  body.admin-onepage #kpi .admin-status-dietary-note .admin-table-button {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
  }

  body.admin-onepage #kpi .admin-status-note-list-collapsible {
    max-width: 100%;
    overflow-x: hidden;
  }

  /* Statistikk: 2 × 2 nøkkeltall og lesbar fullbreddevisning. */
  body.admin-onepage #kpi .admin-status-development-stack {
    gap: 0.85rem;
  }

  body.admin-onepage #kpi .admin-status-development-summary,
  body.admin-onepage #kpi .admin-status-development-summary:last-child {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.6rem;
  }

  body.admin-onepage #kpi .admin-status-development-card {
    min-height: 9.5rem;
    padding: 0.85rem;
    border-radius: 0.95rem;
  }

  body.admin-onepage #kpi .admin-status-development-card > strong {
    margin-top: 0.45rem;
    font-size: clamp(2rem, 10vw, 2.8rem);
  }

  body.admin-onepage #kpi .admin-status-development-card > span {
    font-size: 0.57rem;
    letter-spacing: 0.075em;
    overflow-wrap: anywhere;
  }

  body.admin-onepage #kpi .admin-status-development-card > small {
    font-size: 0.67rem;
    line-height: 1.38;
    overflow-wrap: anywhere;
  }

  body.admin-onepage #kpi .admin-status-development-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.85rem;
  }

  body.admin-onepage #kpi .admin-status-development-grid > .admin-status-block {
    min-width: 0;
    padding: 1rem 0.85rem;
    border-radius: 1rem;
  }

  body.admin-onepage #kpi .admin-status-development-heading {
    gap: 0.75rem;
    margin-bottom: 0.9rem;
  }

  body.admin-onepage #kpi .admin-status-development-heading-actions,
  body.admin-onepage #kpi .admin-status-development-range {
    width: 100%;
    max-width: 100%;
  }

  body.admin-onepage #kpi .admin-status-development-range a {
    flex: 1 1 0;
    min-width: 0;
    padding-inline: 0.45rem;
    font-size: 0.54rem;
  }

  body.admin-onepage #kpi .admin-status-development-chart-scroll {
    max-width: 100%;
    padding-bottom: 0.38rem;
    scrollbar-width: auto;
  }

  body.admin-onepage #kpi .admin-status-development-chart {
    width: 100%;
    min-width: 0 !important;
    min-height: 9.3rem;
    gap: 0.25rem;
    padding-inline: 0;
  }

  body.admin-onepage #kpi .admin-status-development-chart.is-weeks {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }

  body.admin-onepage #kpi .admin-status-development-chart.is-year {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    min-width: 0 !important;
  }

  body.admin-onepage #kpi .admin-status-development-chart.is-all {
    grid-template-columns:
      repeat(var(--development-chart-items), minmax(2.4rem, 1fr));
    min-width:
      max(100%, calc(var(--development-chart-items) * 2.65rem)) !important;
  }

  body.admin-onepage #kpi .admin-status-development-chart article {
    grid-template-rows: auto 6.15rem auto;
    gap: 0.28rem;
  }

  body.admin-onepage #kpi .admin-status-development-chart article > strong {
    font-size: 0.88rem;
  }

  body.admin-onepage #kpi .admin-status-development-bar {
    height: 6.15rem;
    padding-inline: 0.12rem;
    border-radius: 999px 999px 0.55rem 0.55rem;
  }

  body.admin-onepage #kpi .admin-status-development-chart article > span {
    min-width: 0;
    font-size: 0.49rem;
    letter-spacing: 0;
    line-height: 1.12;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  body.admin-onepage #kpi .admin-status-development-now {
    min-width: 0;
  }

  body.admin-onepage #kpi .admin-status-development-note {
    margin-top: 1rem;
    font-size: 0.76rem;
    line-height: 1.55;
  }
}

@media (max-width: 360px) {
  body.admin-onepage #kpi .admin-status-development-card {
    min-height: 9.1rem;
    padding: 0.75rem;
  }

  body.admin-onepage #kpi .admin-status-development-card > strong {
    font-size: 2rem;
  }

  body.admin-onepage #kpi .admin-status-development-card > span {
    font-size: 0.53rem;
  }

  body.admin-onepage #kpi .admin-status-development-card > small {
    font-size: 0.62rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.admin-onepage .admin-status-mobile-backdrop,
  body.admin-onepage .admin-status-mobile-panel,
  body.admin-onepage .admin-status-mobile-trigger-icon,
  body.admin-onepage .admin-status-mobile-options button i {
    transition: none !important;
  }
}


/* ========================================================================== 
   Mobil · datofelt og Rediger RSVP innenfor skjermbredden
   Native dato-/tidskontroller kan beholde en egen minimumsbredde på mobil.
   Rediger RSVP trenger samtidig eksplisitt min-width: 0 i alle grid-/flexledd.
   ========================================================================== */
@media (max-width: 780px) {
  body.admin-onepage input[type="date"],
  body.admin-onepage input[type="datetime-local"],
  body.admin-onepage input[type="month"],
  body.admin-onepage input[type="time"] {
    display: block !important;
    box-sizing: border-box !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    inline-size: 100% !important;
    max-inline-size: 100% !important;
    min-inline-size: 0 !important;
    -webkit-min-logical-width: 0 !important;

    padding-right: 0.78rem !important;
    padding-left: 0.78rem !important;
    overflow: hidden;
  }

  body.admin-onepage input[type="date"]::-webkit-date-and-time-value,
  body.admin-onepage input[type="datetime-local"]::-webkit-date-and-time-value,
  body.admin-onepage input[type="month"]::-webkit-date-and-time-value,
  body.admin-onepage input[type="time"]::-webkit-date-and-time-value {
    width: 100%;
    min-width: 0;
    padding: 0;
    text-align: left;
  }

  body.admin-onepage input[type="date"]::-webkit-calendar-picker-indicator,
  body.admin-onepage input[type="datetime-local"]::-webkit-calendar-picker-indicator,
  body.admin-onepage input[type="month"]::-webkit-calendar-picker-indicator,
  body.admin-onepage input[type="time"]::-webkit-calendar-picker-indicator {
    flex: 0 0 auto;
    margin: 0;
    padding-left: 0.45rem;
  }

  body.admin-onepage label:has(> input[type="date"]),
  body.admin-onepage label:has(> input[type="datetime-local"]),
  body.admin-onepage label:has(> input[type="month"]),
  body.admin-onepage label:has(> input[type="time"]),
  body.admin-onepage .site-control-field:has(input[type="date"]),
  body.admin-onepage .site-control-field:has(input[type="datetime-local"]),
  body.admin-onepage .site-control-field:has(input[type="month"]),
  body.admin-onepage .site-control-field:has(input[type="time"]) {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-inline-size: 0;
    overflow: hidden;
  }

  /* Parentseksjonen har allerede mobilpadding; 92vw her ga noen få px overløp. */
  body.admin-onepage.site-rsvp-settings-page
  .site-control-section
  .admin-section-inner-wide {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.admin-onepage.site-rsvp-settings-page
  :where(
    .site-control-grid,
    .site-control-card,
    .site-control-field,
    .site-control-field-pair,
    .site-control-field-pair > *
  ) {
    max-width: 100%;
    min-width: 0;
    min-inline-size: 0;
  }

  /* Rediger RSVP skal aldri kunne gjøre selve siden bredere enn viewporten. */
  body.admin-onepage .admin-edit-rsvp-section {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden;
    overflow-x: clip;
  }

  body.admin-onepage .admin-edit-rsvp-section
  > .admin-section-inner-wide {
    box-sizing: border-box;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.admin-onepage .admin-edit-rsvp-section
  :where(
    .admin-titlebar,
    .admin-titlebar > div,
    .admin-rsvp-public-form,
    .rsvp-form-layout,
    .rsvp-form-group,
    .rsvp-form-wide,
    .rsvp-name-row,
    .rsvp-toggle-field,
    .rsvp-toggle-legend,
    .rsvp-segmented,
    .admin-live-seating-group,
    .admin-live-seating-heading,
    .admin-live-seating-grid,
    .admin-live-seating-card,
    .admin-rsvp-public-actions,
    .admin-rsvp-tools-grid,
    .admin-rsvp-tool-note,
    .admin-rsvp-tool-actions,
    .admin-rsvp-restore-row,
    .admin-rsvp-permanent-delete,
    .admin-rsvp-permanent-delete-copy,
    .admin-rsvp-permanent-delete-form,
    .admin-rsvp-permanent-confirm,
    .admin-rsvp-log-note,
    .admin-rsvp-log-table-wrap
  ) {
    box-sizing: border-box;
    max-width: 100%;
    min-width: 0;
    min-inline-size: 0;
  }

  body.admin-onepage .admin-edit-rsvp-section
  .admin-titlebar h2.tittel {
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: normal;
  }

  body.admin-onepage .admin-edit-rsvp-section
  .admin-rsvp-public-form
  :where(input, textarea, select, button) {
    max-width: 100%;
    min-width: 0;
  }

  body.admin-onepage .admin-edit-rsvp-section
  :where(
    .course-label,
    .rsvp-inline-note,
    .admin-live-seating-heading p,
    .admin-live-seating-heading > a,
    .admin-live-seating-card > strong,
    .admin-rsvp-tool-note,
    .admin-rsvp-tool-note p,
    .admin-rsvp-permanent-delete-copy > strong,
    .admin-rsvp-permanent-delete-copy > p,
    .admin-rsvp-permanent-confirm span
  ) {
    overflow-wrap: anywhere;
    word-break: normal;
  }

  body.admin-onepage .admin-edit-rsvp-section
  .admin-live-seating-card > strong {
    white-space: normal;
    text-overflow: clip;
  }

  body.admin-onepage .admin-edit-rsvp-section
  :where(.admin-rsvp-public-actions .button, .admin-rsvp-tool-actions .button) {
    white-space: normal;
    text-align: center;
  }

  body.admin-onepage .admin-edit-rsvp-section
  .admin-rsvp-log-table-wrap {
    width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
  }
}

/* ========================================================================== 
   Mobil · robust ramme rundt native dato- og tidspunktfelt
   Native mobilkontroller kan beholde en egen intrinsisk bredde selv med
   width: 100%. Rammen eier derfor bredden, mens inputen vokser fra width: 0.
   ========================================================================== */
@media (max-width: 780px) {
  body.admin-onepage .admin-date-input-shell {
    display: flex;
    align-items: stretch;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-inline-size: 0;
    overflow: hidden;
    border: 1px solid rgba(31, 29, 26, 0.12);
    border-radius: 0.95rem;
    background: rgba(255, 253, 249, 0.9);
    box-shadow: none;
    isolation: isolate;
  }

  body.admin-onepage .admin-date-input-shell:focus-within {
    border-color: rgba(168, 143, 104, 0.62);
    background: #fffdf9;
    box-shadow: 0 0 0 4px rgba(205, 179, 138, 0.12);
  }

  body.admin-onepage .admin-date-input-shell
  > input[type="date"],
  body.admin-onepage .admin-date-input-shell
  > input[type="datetime-local"],
  body.admin-onepage .admin-date-input-shell
  > input[type="month"],
  body.admin-onepage .admin-date-input-shell
  > input[type="time"] {
    flex: 1 1 0% !important;
    align-self: stretch;
    box-sizing: border-box !important;

    width: 0 !important;
    min-width: 0 !important;
    max-width: none !important;

    inline-size: 0 !important;
    min-inline-size: 0 !important;
    max-inline-size: none !important;
    -webkit-min-logical-width: 0 !important;

    min-height: 3.15rem;
    margin: 0 !important;
    padding: 0.78rem 0.82rem !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    outline: 0 !important;
    overflow: hidden;
    font-size: 1rem;
  }

  body.admin-onepage .admin-date-input-shell
  > input[type="date"]::-webkit-date-and-time-value,
  body.admin-onepage .admin-date-input-shell
  > input[type="datetime-local"]::-webkit-date-and-time-value,
  body.admin-onepage .admin-date-input-shell
  > input[type="month"]::-webkit-date-and-time-value,
  body.admin-onepage .admin-date-input-shell
  > input[type="time"]::-webkit-date-and-time-value {
    width: auto;
    min-width: 0;
    margin: 0;
    padding: 0;
    text-align: left;
  }

  body.admin-onepage .admin-date-input-shell
  > input[type="date"]::-webkit-calendar-picker-indicator,
  body.admin-onepage .admin-date-input-shell
  > input[type="datetime-local"]::-webkit-calendar-picker-indicator,
  body.admin-onepage .admin-date-input-shell
  > input[type="month"]::-webkit-calendar-picker-indicator,
  body.admin-onepage .admin-date-input-shell
  > input[type="time"]::-webkit-calendar-picker-indicator {
    flex: 0 0 auto;
    margin: 0;
    padding: 0 0 0 0.42rem;
  }

  body.admin-onepage.admin-activity-page .admin-activity-filters
  .admin-date-input-shell {
    height: 3rem;
    min-height: 3rem;
    border-color: rgba(31, 29, 26, 0.1);
    background: rgba(255, 253, 249, 0.92);
  }

  body.admin-onepage.admin-activity-page .admin-activity-filters
  .admin-date-input-shell > input[type="date"] {
    min-height: 100%;
    height: 100%;
    padding-top: 0.75rem !important;
    padding-bottom: 0.75rem !important;
  }
}

@media (max-width: 780px) {
  body.admin-onepage .site-control-field > .admin-date-input-shell,
  body.admin-onepage.admin-activity-page
  .admin-activity-filters label > .admin-date-input-shell {
    color: inherit;
    font: inherit;
    font-weight: inherit;
    letter-spacing: normal;
    line-height: normal;
    text-transform: none;
  }
}

/* Wrapperen er også nøytral på desktop; inputen beholder da eksisterende stil. */
body.admin-onepage .admin-date-input-shell {
  display: block;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-inline-size: 0;
  color: inherit;
  font: inherit;
  font-weight: inherit;
  letter-spacing: normal;
  line-height: normal;
  text-transform: none;
}

body.admin-onepage .site-control-field > .admin-date-input-shell,
body.admin-onepage.admin-activity-page
.admin-activity-filters label > .admin-date-input-shell {
  color: inherit;
  font: inherit;
  font-weight: inherit;
  letter-spacing: normal;
  line-height: normal;
  text-transform: none;
}

@media (max-width: 780px) {
  body.admin-onepage .admin-date-input-shell {
    display: flex;
  }
}

/* ========================================================================== 
   Admin · kompakt og elegant innlogget-profil i den mørke topplinjen
   ========================================================================== */

@media (min-width: 781px) {
  body.admin-section-page {
    --admin-utility-height: 38px;
  }
}

body.rsvp-public {
  --rsvp-admin-utility-height: 38px;
}

body.admin-section-page .admin-utility-bar,
body.rsvp-public .rsvp-admin-utility-bar {
  background:
    linear-gradient(180deg, rgba(44, 41, 37, 0.985), rgba(31, 29, 26, 0.985));
  border-bottom-color: rgba(205, 179, 138, 0.13);
  box-shadow: 0 3px 12px rgba(20, 18, 16, 0.06);
}

body.admin-section-page .admin-utility-profile,
body.rsvp-public .rsvp-admin-utility-bar .admin-utility-profile {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.56rem;
  color: inherit;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
}

body.admin-section-page .admin-utility-profile > span,
body.rsvp-public .rsvp-admin-utility-bar .admin-utility-profile > span {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 0.56rem;
  color: rgba(255, 253, 249, 0.52);
  font-size: 0.5rem;
  font-weight: 720;
  letter-spacing: 0.105em;
  line-height: 1;
  text-transform: uppercase;
  transform: translateY(1px);
}

body.admin-section-page .admin-utility-profile > span::after,
body.rsvp-public .rsvp-admin-utility-bar .admin-utility-profile > span::after {
  content: "";
  width: 1px;
  height: 0.72rem;
  background: rgba(205, 179, 138, 0.34);
}

body.admin-section-page .admin-utility-profile-line,
body.rsvp-public .rsvp-admin-utility-bar .admin-utility-profile-line {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.48rem;
}

body.admin-section-page .admin-utility-profile-line > strong,
body.rsvp-public .rsvp-admin-utility-bar .admin-utility-profile-line > strong {
  min-width: 0;
  overflow: hidden;
  color: rgba(255, 253, 249, 0.96);
  font-family: inherit;
  font-size: 0.72rem;
  font-weight: 740;
  letter-spacing: 0.025em;
  line-height: 1;
  text-overflow: ellipsis;
  text-transform: none;
  white-space: nowrap;
}

body.admin-section-page .admin-utility-profile-line > small,
body.rsvp-public .rsvp-admin-utility-bar .admin-utility-profile-line > small {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 0.46rem;
  color: rgba(217, 194, 157, 0.84);
  font-size: 0.5rem;
  font-weight: 750;
  letter-spacing: 0.105em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
  transform: translateY(1px);
}

body.admin-section-page .admin-utility-profile-line > small::before,
body.rsvp-public .rsvp-admin-utility-bar .admin-utility-profile-line > small::before {
  content: "";
  width: 0.17rem;
  height: 0.17rem;
  border-radius: 50%;
  background: rgba(205, 179, 138, 0.62);
}

body.admin-section-page .admin-utility-actions > span,
body.rsvp-public .rsvp-admin-utility-bar .admin-utility-actions > span {
  color: rgba(255, 253, 249, 0.18);
}

body.admin-section-page .admin-utility-actions a,
body.rsvp-public .rsvp-admin-utility-bar .admin-utility-actions a {
  transition: color 160ms ease, opacity 160ms ease;
}

@media (max-width: 780px) {
  body.rsvp-public {
    --rsvp-admin-utility-height: 46px;
  }

  /* Mobil: navn + handlinger på én rad, uten horisontal scrolling. */
  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-inner {
    width: 100%;
    height: 100%;
    padding: 0.22rem 0.44rem;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 0.4rem;
  }

  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-profile {
    width: auto;
    max-width: 5.8rem;
    min-width: 0;
    min-height: 30px;
    padding: 0 0.06rem;
    display: flex;
    align-items: center;
    gap: 0;
    border: 0;
    background: transparent;
  }

  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-profile > span,
  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-profile-line > small {
    display: none;
  }

  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-profile-line {
    width: 100%;
    min-width: 0;
    display: flex;
    align-items: center;
  }

  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-profile-line > strong {
    min-width: 0;
    overflow: hidden;
    font-size: 0.64rem;
    font-weight: 740;
    line-height: 1;
    text-align: left;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-actions {
    width: 100%;
    min-width: 0;
    padding: 0.1rem;
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    align-items: stretch;
    gap: 0.05rem;
    overflow: visible;
    border: 1px solid rgba(255, 255, 255, 0.075);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.028);
  }

  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-actions a {
    min-width: 0;
    min-height: 32px;
    padding: 0.3rem 0.12rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.2rem;
    border-radius: 999px;
    color: rgba(255, 253, 249, 0.76);
    font-size: clamp(0.44rem, 1.95vw, 0.53rem);
    font-weight: 740;
    letter-spacing: 0.055em;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-actions a:active,
  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-actions a:focus-visible {
    background: rgba(255, 255, 255, 0.07);
    color: rgba(255, 253, 249, 0.98);
  }

  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-destination .admin-utility-arrow {
    width: 0.54rem;
    height: 0.54rem;
    flex: 0 0 auto;
    fill: none;
    stroke: rgba(217, 194, 157, 0.82);
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.25;
  }

  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-action-divider {
    display: none;
  }
}

/* ========================================================================== 
   Nettside og RSVP – gjestetilgang med samme hovedoverskrifter som øvrige kort
   ========================================================================== */
body.site-rsvp-settings-page
.site-control-guest-access-panels
.site-control-subsection-label {
  display: block;
  margin: 0;
  color: rgba(31, 29, 26, 0.92);
  font-family: var(--font-serif);
  font-size: clamp(1.55rem, 2.8vw, 2.15rem);
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 1;
  text-transform: none;
}

@media (max-width: 780px) {
  body.site-rsvp-settings-page
  .site-control-guest-access-panels
  .site-control-subsection-label {
    font-size: clamp(1.5rem, 6vw, 1.9rem);
    letter-spacing: -0.03em;
  }
}

/* ========================================================================== 
   Admin · ryddigere hurtiglenker i høyre side av topplinjen
   ========================================================================== */

@media (min-width: 781px) {
  body.admin-section-page .admin-utility-actions {
    gap: 1.18rem;
  }

  body.admin-section-page .admin-utility-actions a {
    display: inline-flex;
    align-items: center;
    gap: 0.32rem;
    color: rgba(255, 253, 249, 0.72);
    font-family: inherit;
    font-size: 0.53rem;
    font-weight: 740;
    letter-spacing: 0.105em;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
    transform: translateY(1px);
  }

  body.admin-section-page .admin-utility-actions a:hover {
    color: rgba(255, 253, 249, 0.98);
  }

  body.admin-section-page .admin-utility-destination .admin-utility-arrow {
    width: 0.62rem;
    height: 0.62rem;
    overflow: visible;
    color: rgba(217, 194, 157, 0.76);
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.25;
    transition: color 160ms ease, transform 160ms ease;
  }

  body.admin-section-page .admin-utility-destination:hover .admin-utility-arrow {
    color: rgba(231, 211, 177, 0.98);
    transform: translate(1px, -1px);
  }

  body.admin-section-page .admin-utility-action-divider {
    width: 1px;
    height: 0.72rem;
    margin-inline: 0.08rem 0.02rem;
    background: rgba(205, 179, 138, 0.28);
  }

  body.admin-section-page .admin-utility-actions .admin-utility-logout {
    color: rgba(255, 253, 249, 0.82);
  }
}

/* ========================================================================== 
   Admin · marginalt større typografi i hele topplinjen
   ========================================================================== */

@media (min-width: 781px) {
  body.admin-section-page .admin-utility-profile > span,
  body.admin-section-page .admin-utility-profile-line > small {
    font-size: 0.53rem;
  }

  body.admin-section-page .admin-utility-profile-line > strong {
    font-size: 0.75rem;
  }

  body.admin-section-page .admin-utility-actions a {
    font-size: 0.56rem;
  }
}

/* ========================================================================== 
   Admin · finjustert linjering i topplinjen etter typografiøkning
   ========================================================================== */

@media (min-width: 781px) {
  body.admin-section-page .admin-utility-profile,
  body.admin-section-page .admin-utility-profile-line {
    align-items: baseline;
  }

  body.admin-section-page .admin-utility-profile > span,
  body.admin-section-page .admin-utility-profile-line > small {
    transform: none;
  }
}

/* ========================================================================== 
   RSVP-forside · samme topplinjestil som admin
   ========================================================================== */

@media (min-width: 781px) {
  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-profile,
  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-profile-line {
    align-items: baseline;
  }

  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-profile > span,
  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-profile-line > small {
    font-size: 0.53rem;
    transform: none;
  }

  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-profile-line > strong {
    font-size: 0.75rem;
  }

  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-actions {
    gap: 1.18rem;
  }

  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-actions a {
    display: inline-flex;
    align-items: center;
    gap: 0.32rem;
    color: rgba(255, 253, 249, 0.72);
    font-family: inherit;
    font-size: 0.56rem;
    font-weight: 740;
    letter-spacing: 0.105em;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
    transform: translateY(1px);
  }

  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-actions a:hover {
    color: rgba(255, 253, 249, 0.98);
  }

  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-destination .admin-utility-arrow {
    width: 0.62rem;
    height: 0.62rem;
    overflow: visible;
    color: rgba(217, 194, 157, 0.76);
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.25;
    transition: color 160ms ease, transform 160ms ease;
  }

  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-destination:hover .admin-utility-arrow {
    color: rgba(231, 211, 177, 0.98);
    transform: translate(1px, -1px);
  }

  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-action-divider {
    width: 1px;
    height: 0.72rem;
    margin-inline: 0.08rem 0.02rem;
    background: rgba(205, 179, 138, 0.28);
  }

  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-actions .admin-utility-logout {
    color: rgba(255, 253, 249, 0.82);
  }
}

/* ========================================================================== 
   Admin og RSVP · vertikalt midtstilt innhold i topplinjen
   ========================================================================== */

@media (min-width: 781px) {
  body.admin-section-page .admin-utility-inner,
  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-inner {
    height: 100%;
    align-items: center;
  }

  body.admin-section-page .admin-utility-profile,
  body.admin-section-page .admin-utility-profile-line,
  body.admin-section-page .admin-utility-actions,
  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-profile,
  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-profile-line,
  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-actions {
    align-items: center;
  }

  body.admin-section-page .admin-utility-profile > span,
  body.admin-section-page .admin-utility-profile-line > small,
  body.admin-section-page .admin-utility-actions a,
  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-profile > span,
  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-profile-line > small,
  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-actions a {
    transform: none;
  }
}

/* ========================================================================== 
   Admin og RSVP · optisk løft av navn kun på desktop
   ========================================================================== */

@media (min-width: 1024px) and (hover: hover) and (pointer: fine) {
  body.admin-section-page .admin-utility-profile-line > strong,
  body.rsvp-public .rsvp-admin-utility-bar .admin-utility-profile-line > strong {
    position: relative;
    top: -2px;
  }
}

/* ========================================================================== 
   RSVP-header · diskret destinasjonsikon for Bryllupssiden
   ========================================================================== */

@media (min-width: 781px) {
  body.rsvp-public .rsvp-site-header .nav .rsvp-nav-destination {
    display: inline-flex;
    align-items: center;
    gap: 0.36rem;
  }

  body.rsvp-public .rsvp-site-header .rsvp-nav-destination-icon {
    width: 0.72rem;
    height: 0.72rem;
    flex: 0 0 auto;
    overflow: visible;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.2;
    opacity: 0.62;
    transition: opacity 180ms ease, transform 180ms ease;
  }

  body.rsvp-public .rsvp-site-header .rsvp-nav-destination:hover .rsvp-nav-destination-icon {
    opacity: 0.9;
    transform: translate(1px, -1px);
  }
}

/* ========================================================================== 
   Dokumentarkiv · adminintegrasjon
   ========================================================================== */

@media (min-width: 901px) {
  body.site-rsvp-settings-page .site-control-overview {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.admin-report-document-actions {
  align-items: center;
  flex-wrap: wrap;
}

.admin-report-document-access {
  min-width: 10.5rem;
  display: grid;
  gap: 0.28rem;
}

.admin-report-document-access > span {
  color: rgba(31, 29, 26, 0.45);
  font-size: 0.56rem;
  font-weight: 780;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.admin-report-document-access select {
  min-height: 2.65rem;
  padding: 0.55rem 2rem 0.55rem 0.75rem;
  border: 1px solid rgba(31, 29, 26, 0.11);
  border-radius: 0.72rem;
  background: rgba(255, 255, 255, 0.82);
  color: rgba(31, 29, 26, 0.76);
  font: inherit;
  font-size: 0.7rem;
}

.admin-report-documents-link {
  text-decoration: none;
}

.site-control-document-access-card .site-control-subsection-header small {
  display: block;
  margin-top: 0.28rem;
  color: rgba(31, 29, 26, 0.46);
  font-size: 0.7rem;
  line-height: 1.45;
}

.site-control-document-access-card .site-control-card-footer {
  gap: 0.55rem;
  justify-content: flex-end;
}

@media (max-width: 780px) {
  .admin-report-document-actions {
    width: 100%;
  }

  .admin-report-document-access {
    width: 100%;
  }

  .admin-report-document-access select,
  .admin-report-document-actions .button {
    width: 100%;
  }
}

/* ========================================================================== 
   Nettside og tilgang · samlet tilgangskort + ryddigere statusoversikt
   2026-08-09
   ========================================================================== */

/* Fire statuser hører sammen og skal ikke la dokumentstatus falle ned alene. */
body.site-rsvp-settings-page .site-control-overview {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

body.site-rsvp-settings-page .site-control-overview article {
  border-right: 1px solid rgba(31, 29, 26, 0.065) !important;
  border-bottom: 0 !important;
}

body.site-rsvp-settings-page .site-control-overview article:last-child {
  border-right: 0 !important;
}

/* Gjestetilgang og dokumentdeling er én logisk innstillingsgruppe. */
body.site-rsvp-settings-page .site-control-access-hub-card {
  grid-column: 1 / -1 !important;
  padding: clamp(1.35rem, 2.8vw, 2rem) !important;
  overflow: hidden;
}

body.site-rsvp-settings-page .site-control-access-hub-heading {
  margin-bottom: clamp(1.4rem, 3vw, 2rem) !important;
}

body.site-rsvp-settings-page .site-control-access-hub-heading p {
  max-width: 48rem;
}

body.site-rsvp-settings-page .site-control-access-hub-section {
  min-width: 0;
}

body.site-rsvp-settings-page .site-control-access-hub-section-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: 1.25rem;
}

body.site-rsvp-settings-page .site-control-access-hub-section-heading > div {
  min-width: 0;
  max-width: 52rem;
}

body.site-rsvp-settings-page .site-control-access-hub-kicker {
  display: block;
  margin-bottom: 0.34rem;
  color: rgba(168, 143, 104, 0.92);
  font-size: 0.61rem;
  font-weight: 800;
  letter-spacing: 0.2em;
  line-height: 1.2;
  text-transform: uppercase;
}

body.site-rsvp-settings-page .site-control-access-hub-section-heading h3 {
  margin: 0;
  color: rgba(31, 29, 26, 0.94);
  font-family: var(--font-serif);
  font-size: clamp(1.55rem, 2.4vw, 2rem);
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 1.05;
}

body.site-rsvp-settings-page .site-control-access-hub-section-heading p {
  margin: 0.48rem 0 0;
  color: rgba(31, 29, 26, 0.53);
  font-size: 0.8rem;
  line-height: 1.6;
}

body.site-rsvp-settings-page .site-control-access-hub-section-heading p strong {
  color: rgba(31, 29, 26, 0.72);
  font-weight: 720;
}

body.site-rsvp-settings-page .site-control-access-hub-state {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  min-height: 1.9rem;
  margin-top: 0.1rem;
  padding: 0.42rem 0.68rem;
  border: 1px solid rgba(31, 29, 26, 0.08);
  border-radius: 999px;
  background: rgba(31, 29, 26, 0.035);
  color: rgba(31, 29, 26, 0.52);
  font-size: 0.54rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}

body.site-rsvp-settings-page .site-control-access-hub-state.is-ready {
  border-color: rgba(113, 129, 109, 0.18);
  background: rgba(113, 129, 109, 0.08);
  color: rgba(80, 101, 76, 0.86);
}

body.site-rsvp-settings-page .site-control-access-hub-state.is-open {
  border-color: rgba(205, 179, 138, 0.28);
  background: rgba(205, 179, 138, 0.09);
  color: rgba(120, 91, 52, 0.86);
}

body.site-rsvp-settings-page .site-control-access-hub-state.is-missing {
  border-color: rgba(162, 80, 69, 0.18);
  background: rgba(162, 80, 69, 0.065);
  color: rgba(128, 66, 57, 0.84);
}

body.site-rsvp-settings-page .site-control-access-hub-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.03fr) minmax(21rem, 0.97fr);
  gap: clamp(1.35rem, 3.4vw, 2.65rem);
  align-items: stretch;
}

body.site-rsvp-settings-page .site-control-access-hub-grid > .site-control-access-form,
body.site-rsvp-settings-page .site-control-access-hub-grid > .site-control-password-area {
  display: flex;
  flex-direction: column;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.site-rsvp-settings-page .site-control-access-hub-grid > .site-control-password-area {
  position: relative;
  padding-left: clamp(1.25rem, 2.4vw, 2rem) !important;
}

/* Diskré vertikal champagne-fade skiller modus fra passord uten nye "kort". */
body.site-rsvp-settings-page .site-control-access-hub-grid > .site-control-password-area::before {
  content: "";
  position: absolute;
  top: 0.3rem;
  bottom: 0.3rem;
  left: 0;
  width: 1px;
  background: linear-gradient(
    180deg,
    transparent 0%,
    rgba(205, 179, 138, 0.18) 12%,
    rgba(205, 179, 138, 0.52) 48%,
    rgba(205, 179, 138, 0.16) 88%,
    transparent 100%
  );
}

body.site-rsvp-settings-page .site-control-access-hub-card .site-control-subsection-header,
body.site-rsvp-settings-page .site-control-access-hub-card .site-control-password-heading {
  display: block !important;
  width: 100%;
  margin: 0 0 0.95rem !important;
}

body.site-rsvp-settings-page .site-control-access-hub-card .site-control-subsection-label {
  display: block;
  margin: 0;
  color: rgba(168, 143, 104, 0.96);
  font-family: var(--font-sans);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  line-height: 1.2;
  text-transform: uppercase;
}

body.site-rsvp-settings-page .site-control-access-hub-card .site-control-subsection-header small,
body.site-rsvp-settings-page .site-control-access-hub-card .site-control-password-heading > div:first-child > small {
  display: block;
  max-width: 36rem;
  margin-top: 0.38rem;
  color: rgba(31, 29, 26, 0.46);
  font-size: 0.72rem;
  line-height: 1.5;
}

body.site-rsvp-settings-page .site-control-access-hub-card .site-control-password-heading .site-control-security-status {
  display: flex !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0.8rem 0 0 !important;
  padding: 0.8rem 0.92rem !important;
  border: 0 !important;
  border-radius: 0.86rem;
  background: rgba(31, 29, 26, 0.026);
}

body.site-rsvp-settings-page .site-control-access-hub-card .site-control-access-options {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 0.72rem !important;
  margin: 0 !important;
}

body.site-rsvp-settings-page .site-control-access-hub-card .site-control-access-options label {
  width: 100%;
  min-height: 5.2rem !important;
  padding: 0.92rem 4.2rem 0.92rem 1rem !important;
}

body.site-rsvp-settings-page .site-control-access-hub-card .site-control-password-form {
  display: flex !important;
  flex: 1 1 auto;
  flex-direction: column !important;
  gap: 0.82rem !important;
}

body.site-rsvp-settings-page .site-control-access-hub-card .site-control-password-fields {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 0.78rem !important;
}

body.site-rsvp-settings-page .site-control-access-hub-card .site-control-password-fields .site-control-field {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

body.site-rsvp-settings-page .site-control-access-hub-card .site-control-card-footer-tight,
body.site-rsvp-settings-page .site-control-access-hub-card .site-control-password-footer {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 0.7rem !important;
  width: 100% !important;
  margin-top: auto !important;
  padding-top: 1rem !important;
  border: 0 !important;
}

body.site-rsvp-settings-page .site-control-access-hub-card .site-control-password-footer {
  justify-content: space-between !important;
}

body.site-rsvp-settings-page .site-control-access-hub-card .site-control-password-footer .site-control-note {
  flex: 1 1 auto;
  margin: 0 !important;
}

body.site-rsvp-settings-page .site-control-document-actions .button-secondary {
  border-color: rgba(31, 29, 26, 0.16);
  background: transparent;
  color: rgba(31, 29, 26, 0.78);
}

body.site-rsvp-settings-page .site-control-document-actions .button-secondary:hover {
  border-color: rgba(205, 179, 138, 0.58);
  background: rgba(205, 179, 138, 0.07);
}

/* Hovedskillet mellom gjester og dokumenter: champagne som fader ut i begge ender. */
body.site-rsvp-settings-page .site-control-access-hub-divider {
  position: relative;
  height: 1px;
  margin: clamp(1.65rem, 4vw, 2.6rem) 0;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(205, 179, 138, 0.18) 8%,
    rgba(205, 179, 138, 0.6) 42%,
    rgba(205, 179, 138, 0.6) 58%,
    rgba(205, 179, 138, 0.16) 92%,
    transparent 100%
  );
}

body.site-rsvp-settings-page .site-control-access-hub-divider span {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.38rem;
  height: 0.38rem;
  border: 1px solid rgba(205, 179, 138, 0.64);
  background: rgba(255, 253, 249, 0.98);
  transform: translate(-50%, -50%) rotate(45deg);
}

@media (max-width: 1040px) {
  body.site-rsvp-settings-page .site-control-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.site-rsvp-settings-page .site-control-overview article:nth-child(2) {
    border-right: 0 !important;
  }

  body.site-rsvp-settings-page .site-control-overview article:nth-child(-n+2) {
    border-bottom: 1px solid rgba(31, 29, 26, 0.065) !important;
  }

  body.site-rsvp-settings-page .site-control-access-hub-grid {
    grid-template-columns: 1fr;
  }

  body.site-rsvp-settings-page .site-control-access-hub-grid > .site-control-password-area {
    margin-top: 0.4rem !important;
    padding-top: 1.4rem !important;
    padding-left: 0 !important;
  }

  body.site-rsvp-settings-page .site-control-access-hub-grid > .site-control-password-area::before {
    top: 0;
    right: 0;
    bottom: auto;
    width: auto;
    height: 1px;
    background: linear-gradient(90deg, rgba(205, 179, 138, 0.4), rgba(205, 179, 138, 0.06), transparent);
  }
}

@media (max-width: 620px) {
  body.site-rsvp-settings-page .site-control-overview {
    grid-template-columns: 1fr !important;
  }

  body.site-rsvp-settings-page .site-control-overview article,
  body.site-rsvp-settings-page .site-control-overview article:nth-child(2),
  body.site-rsvp-settings-page .site-control-overview article:nth-child(-n+2) {
    border-right: 0 !important;
    border-bottom: 1px solid rgba(31, 29, 26, 0.065) !important;
  }

  body.site-rsvp-settings-page .site-control-overview article:last-child {
    border-bottom: 0 !important;
  }

  body.site-rsvp-settings-page .site-control-access-hub-section-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.8rem;
  }

  body.site-rsvp-settings-page .site-control-access-hub-card .site-control-card-footer-tight,
  body.site-rsvp-settings-page .site-control-access-hub-card .site-control-password-footer,
  body.site-rsvp-settings-page .site-control-document-actions {
    align-items: stretch !important;
    flex-direction: column !important;
  }

  body.site-rsvp-settings-page .site-control-access-hub-card .site-control-card-footer-tight .button,
  body.site-rsvp-settings-page .site-control-access-hub-card .site-control-password-footer .button {
    width: 100%;
  }
}

/* ========================================================================== 
   Nettside og tilgang · to separate tilgangskort · 2026-08-09
   ========================================================================== */

body.site-rsvp-settings-page .site-control-access-card {
  grid-column: 1 / -1 !important;
  overflow: hidden;
}

body.site-rsvp-settings-page .site-control-access-card .site-control-card-heading {
  margin-bottom: 1.35rem !important;
}

body.site-rsvp-settings-page .site-control-access-card .site-control-card-heading p {
  max-width: 52rem;
}

/* De to funksjonene hører sammen internt, men hvert område er sitt eget kort. */
body.site-rsvp-settings-page .site-control-access-card .site-control-access-hub-grid {
  padding-top: 0.2rem;
}

body.site-rsvp-settings-page .site-control-document-sharing-note {
  display: grid;
  gap: 0.22rem;
  margin-top: 0.85rem;
  padding: 0.78rem 0.9rem;
  border-left: 2px solid rgba(205, 179, 138, 0.52);
  background: linear-gradient(90deg, rgba(205,179,138,.08), rgba(205,179,138,.025) 62%, transparent);
  color: rgba(31, 29, 26, 0.54);
  font-size: 0.72rem;
  line-height: 1.5;
}

body.site-rsvp-settings-page .site-control-document-sharing-note strong {
  color: rgba(31, 29, 26, 0.74);
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

body.site-rsvp-settings-page .site-control-document-actions {
  flex-wrap: wrap;
}

@media (max-width: 620px) {
  body.site-rsvp-settings-page .site-control-access-card .site-control-card-heading {
    margin-bottom: 1rem !important;
  }
}

/* ========================================================================== 
   Nettside og tilgang · Dokumenttilgang følger Gjestepassord-stilen · 2026-08-09
   ========================================================================== */

body.site-rsvp-settings-page .site-control-access-card .site-control-card-heading h2 {
  font-family: var(--font-serif);
  font-size: clamp(1.55rem, 3vw, 2.15rem);
  font-weight: 400;
  letter-spacing: -0.035em;
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-card-heading {
  margin-bottom: 1.35rem !important;
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-card-heading p {
  max-width: 52rem;
  margin-top: 0.55rem;
  color: rgba(31, 29, 26, 0.56);
  font-size: 0.82rem;
  line-height: 1.6;
  white-space: normal;
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-access-hub-grid {
  grid-template-columns: minmax(0, 1.03fr) minmax(21rem, 0.97fr);
  gap: clamp(1.35rem, 3.4vw, 2.65rem);
  padding-top: 0.2rem;
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-subsection-header,
body.site-rsvp-settings-page .site-control-document-access-card .site-control-password-heading {
  margin-bottom: 0.95rem !important;
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-subsection-header small,
body.site-rsvp-settings-page .site-control-document-access-card .site-control-password-heading > div:first-child > small {
  max-width: 36rem;
  margin-top: 0.38rem;
  color: rgba(31, 29, 26, 0.46);
  font-size: 0.72rem;
  line-height: 1.5;
  white-space: normal;
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-access-options {
  gap: 0.72rem !important;
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-access-options label {
  min-height: 5.2rem !important;
  padding: 0.92rem 4.2rem 0.92rem 1rem !important;
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-password-heading .site-control-security-status {
  display: flex !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0.8rem 0 0 !important;
  padding: 0.8rem 0.92rem !important;
  border: 0 !important;
  border-radius: 0.86rem;
  background: rgba(31, 29, 26, 0.026);
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-password-form {
  display: flex !important;
  flex: 1 1 auto;
  flex-direction: column !important;
  gap: 0.82rem !important;
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-password-fields {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 0.78rem !important;
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-password-fields .site-control-field {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-card-footer-tight,
body.site-rsvp-settings-page .site-control-document-access-card .site-control-password-footer {
  display: flex !important;
  align-items: center !important;
  gap: 0.7rem !important;
  width: 100% !important;
  margin-top: auto !important;
  padding-top: 1rem !important;
  border: 0 !important;
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-password-footer {
  justify-content: space-between !important;
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-password-footer .site-control-note {
  flex: 1 1 auto;
  margin: 0 !important;
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-document-actions {
  display: flex;
  justify-content: space-between !important;
  flex-wrap: wrap;
}

@media (max-width: 1040px) {
  body.site-rsvp-settings-page .site-control-document-access-card .site-control-access-hub-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  body.site-rsvp-settings-page .site-control-document-access-card .site-control-document-actions {
    flex-direction: column !important;
    align-items: stretch !important;
  }
}

/* Statusoversikten trenger bare publisering og RSVP; tilgang styres i kortene under. */
body.site-rsvp-settings-page .site-control-overview {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body.site-rsvp-settings-page .site-control-overview article:nth-child(2) {
  border-right: 0 !important;
}


/* ========================================================================== 
   Nettside og tilgang · gjestepassord og dokumentpassord skal matche · 2026-08-09
   ========================================================================== */

body.site-rsvp-settings-page .site-control-access-card .site-control-card-heading h2 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(1.55rem, 3vw, 2.15rem);
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 1;
}

body.site-rsvp-settings-page .site-control-access-card .site-control-card-heading > span {
  border-color: rgba(205, 179, 138, 0.46);
  background: rgba(205, 179, 138, 0.11);
  color: rgba(112, 82, 40, 0.9);
}

body.site-rsvp-settings-page .site-control-access-hub-card .site-control-subsection-label {
  color: rgba(168, 143, 104, 0.96) !important;
  font-family: var(--font-sans);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-password-heading {
  display: block !important;
  width: 100%;
  margin: 0 0 0.95rem !important;
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-password-heading .site-control-security-status {
  display: flex !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0.8rem 0 0 !important;
  padding: 0.8rem 0.92rem !important;
  border: 0 !important;
  border-radius: 0.86rem;
  background: rgba(31, 29, 26, 0.026);
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-password-form {
  display: flex !important;
  flex: 1 1 auto;
  flex-direction: column !important;
  gap: 0.82rem !important;
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-password-fields {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 0.78rem !important;
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-password-fields .site-control-field {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-password-footer {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 0.7rem !important;
  width: 100% !important;
  margin-top: auto !important;
  padding-top: 1rem !important;
  border: 0 !important;
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-password-footer .site-control-note {
  flex: 1 1 auto;
  margin: 0 !important;
}

/* ========================================================================== 
   Nettside og tilgang · harmonisert typografi · 2026-08-09
   ========================================================================== */

body.site-rsvp-settings-page .site-control-access-card .site-control-card-heading h2 {
  margin: 0 !important;
  color: rgba(168, 143, 104, 0.96) !important;
  font-family: var(--font-serif) !important;
  font-size: clamp(1.55rem, 2.8vw, 2.15rem) !important;
  font-weight: 400 !important;
  letter-spacing: -0.035em !important;
  line-height: 1 !important;
  text-transform: none !important;
}

body.site-rsvp-settings-page .site-control-access-card .site-control-card-heading p {
  display: none !important;
}

body.site-rsvp-settings-page .site-control-access-hub-card .site-control-subsection-label,
body.site-rsvp-settings-page .site-control-access-hub-card .site-control-password-heading .site-control-subsection-label {
  color: rgba(168, 143, 104, 0.96) !important;
  font-family: var(--font-sans) !important;
  font-size: 0.68rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.16em !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
}

/* Dokumentpassord arver nøyaktig samme rytme som Gjestepassord. */
body.site-rsvp-settings-page .site-control-document-access-card .site-control-password-area {
  display: flex !important;
  flex-direction: column !important;
  min-width: 0 !important;
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-password-heading {
  display: block !important;
  width: 100% !important;
  margin: 0 0 0.95rem !important;
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-password-heading .site-control-security-status {
  display: flex !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0.8rem 0 0 !important;
  padding: 0.8rem 0.92rem !important;
  border: 0 !important;
  border-radius: 0.86rem !important;
  background: rgba(31, 29, 26, 0.026) !important;
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-password-form {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  gap: 0.82rem !important;
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-password-fields {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 0.78rem !important;
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-password-fields .site-control-field {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-password-footer {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 0.7rem !important;
  width: 100% !important;
  margin-top: auto !important;
  padding-top: 1rem !important;
  border: 0 !important;
}

body.site-rsvp-settings-page .site-control-document-access-card .site-control-password-footer .site-control-note {
  flex: 1 1 auto !important;
  margin: 0 !important;
}


/* ========================================================================== 
   Nettside og tilgang · mørke hovedtitler, champagne-undertitler · 2026-08-09
   ========================================================================== */
body.site-rsvp-settings-page .site-control-access-card .site-control-card-heading h2 {
  color: rgba(31, 29, 26, 0.94) !important;
}

body.site-rsvp-settings-page .site-control-access-hub-card .site-control-subsection-label,
body.site-rsvp-settings-page .site-control-access-hub-card .site-control-password-heading .site-control-subsection-label {
  color: rgba(168, 143, 104, 0.96) !important;
}

/* ========================================================================== 
   Rapporter · tilgang som en del av dokumentarkivet · 2026-08-09
   ========================================================================== */
body.admin-onepage #rapporter .admin-report-archive-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.95rem;
}

body.admin-onepage #rapporter .admin-report-archive-panel .admin-report-panel-heading {
  align-items: center;
  margin-bottom: 0 !important;
}

body.admin-onepage #rapporter .admin-report-archive-link {
  display: inline-flex;
  align-items: center;
  gap: 0.36rem;
  color: rgba(31, 29, 26, 0.5);
  font-size: 0.68rem;
  font-weight: 720;
  letter-spacing: 0.025em;
  text-decoration: none;
  white-space: nowrap;
}

body.admin-onepage #rapporter .admin-report-archive-link svg {
  width: 0.68rem;
  height: 0.68rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.35;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 160ms ease;
}

body.admin-onepage #rapporter .admin-report-archive-link:hover {
  color: rgba(130, 106, 72, 0.96);
}

body.admin-onepage #rapporter .admin-report-archive-link:hover svg {
  transform: translate(1px, -1px);
}

body.admin-onepage #rapporter .admin-report-document-access {
  width: min(23rem, 100%);
  min-width: 0;
  display: grid;
  gap: 0.42rem;
}

body.admin-onepage #rapporter .admin-report-document-access > span {
  color: rgba(168, 143, 104, 0.94);
  font-size: 0.61rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

body.admin-onepage #rapporter .admin-report-document-access .admin-report-dropdown {
  width: 100%;
}

body.admin-onepage #rapporter .admin-report-document-access .admin-report-select-toggle {
  min-height: 3rem;
  padding-block: 0.72rem;
  font-size: 0.7rem;
  text-transform: none;
  letter-spacing: 0.025em;
}

body.admin-onepage #rapporter .admin-report-document-access .admin-report-select-menu {
  min-width: min(23rem, calc(100vw - 2rem));
}

body.admin-onepage #rapporter .admin-report-document-actions {
  align-items: center;
  gap: 0.65rem;
}

@media (max-width: 780px) {
  body.admin-onepage #rapporter .admin-report-archive-panel .admin-report-panel-heading {
    align-items: flex-start;
  }
  body.admin-onepage #rapporter .admin-report-document-access {
    width: 100%;
  }
  body.admin-onepage #rapporter .admin-report-document-access .admin-report-select-menu {
    min-width: 100%;
  }
}

/* ========================================================================== 
   Rapporter · genererikon og tilgangsdropdown finpuss · 2026-08-09
   ========================================================================== */
body.admin-onepage #rapporter .admin-report-generate-document {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}

body.admin-onepage #rapporter .admin-report-generate-document svg {
  width: 0.92rem;
  height: 0.92rem;
  flex: 0 0 0.92rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.55;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Dokumentarkiv-dropdownen bruker samme grunnspråk som filtrene i Gjesteliste. */
body.admin-onepage #rapporter .admin-report-document-access .admin-report-select-toggle {
  min-height: 3rem;
  border-color: rgba(31,29,26,.095);
  border-radius: 0.95rem;
  background: linear-gradient(180deg, rgba(255,253,249,.98), rgba(255,253,249,.74));
  box-shadow: 0 8px 22px rgba(31,29,26,.035), inset 0 1px 0 rgba(255,255,255,.72);
  color: rgba(31,29,26,.72);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: .025em;
  text-transform: none;
}

body.admin-onepage #rapporter .admin-report-document-access .admin-report-select-menu {
  width: 100%;
  min-width: 100%;
  border-color: rgba(31,29,26,.08);
  background: rgba(255,253,249,.98);
  box-shadow: 0 20px 48px rgba(31,29,26,.13), inset 0 1px 0 rgba(255,255,255,.78);
}

body.admin-onepage #rapporter .admin-report-document-access .admin-report-select-menu button {
  color: rgba(31,29,26,.62);
  font-size: 0.7rem;
  letter-spacing: .025em;
  text-transform: none;
}

body.admin-onepage #rapporter .admin-report-document-access .admin-report-select-menu button:hover,
body.admin-onepage #rapporter .admin-report-document-access .admin-report-select-menu button.active {
  background: rgba(205,179,138,.12);
  color: var(--ink);
}

/* ========================================================================== 
   Admin auth · egen portal-identitet · 2026-08-10
   ========================================================================== */

body.admin-auth-page {
  min-height: 100svh;
  overflow-x: hidden;
  background: #f5f1ea;
  color: var(--ink);
}

body.admin-auth-page::before,
body.admin-auth-page::after {
  display: none;
}

body.admin-auth-page .admin-auth-shell {
  min-height: 100svh;
  display: grid;
  grid-template-columns: minmax(20rem, 0.92fr) minmax(30rem, 1.08fr);
  background: #fffdf9;
}

/* --------------------------------------------------------------------------
   Venstre identitetsflate
   -------------------------------------------------------------------------- */
body.admin-auth-page .admin-auth-brand-panel {
  position: relative;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  padding: clamp(2rem, 4vw, 4.25rem);
  background:
    radial-gradient(circle at 25% 22%, rgba(255,255,255,.72), transparent 22rem),
    linear-gradient(145deg, #e9dfd0 0%, #d8c3a4 52%, #cbb08a 100%);
  color: #211e19;
}

body.admin-auth-page .admin-auth-brand-panel::before {
  content: "";
  position: absolute;
  inset: 1.15rem;
  border: 1px solid rgba(255,255,255,.34);
  border-radius: 1.8rem;
  pointer-events: none;
}

body.admin-auth-page .admin-auth-brand-panel::after {
  content: "";
  position: absolute;
  width: min(32vw, 30rem);
  aspect-ratio: 1;
  right: -12%;
  bottom: 2%;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 50%;
  box-shadow:
    0 0 0 4rem rgba(255,255,255,.035),
    0 0 0 8rem rgba(255,255,255,.025);
  pointer-events: none;
}

body.admin-auth-page .admin-auth-brand-inner {
  position: relative;
  z-index: 1;
  display: grid;
  align-content: center;
  gap: clamp(2rem, 5vw, 4rem);
  min-height: 72vh;
  padding-inline: clamp(.5rem, 2vw, 1.75rem);
}

body.admin-auth-page .admin-auth-monogram {
  display: inline-flex;
  align-items: center;
  gap: clamp(.8rem, 1.8vw, 1.25rem);
  width: fit-content;
  font-family: var(--font-serif);
  line-height: 1;
}

body.admin-auth-page .admin-auth-monogram > span {
  font-size: clamp(4.8rem, 9vw, 8.5rem);
  font-weight: 400;
  letter-spacing: -.055em;
}

body.admin-auth-page .admin-auth-monogram > i {
  position: relative;
  width: clamp(1.6rem, 2.7vw, 2.5rem);
  height: clamp(5.3rem, 9vw, 9rem);
  display: grid;
  place-items: center;
  font-style: normal;
}

body.admin-auth-page .admin-auth-monogram > i::before,
body.admin-auth-page .admin-auth-monogram > i::after {
  content: "";
  position: absolute;
  left: 50%;
  width: 1px;
  height: calc(50% - .85rem);
  background: currentColor;
  opacity: .46;
}

body.admin-auth-page .admin-auth-monogram > i::before { top: 0; }
body.admin-auth-page .admin-auth-monogram > i::after { bottom: 0; }

body.admin-auth-page .admin-auth-monogram b {
  font-size: clamp(1rem, 1.6vw, 1.35rem);
  font-weight: 400;
}

body.admin-auth-page .admin-auth-brand-copy {
  max-width: 32rem;
}

body.admin-auth-page .admin-auth-brand-copy p {
  margin: 0 0 .65rem;
  color: rgba(75,59,40,.72);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .23em;
  text-transform: uppercase;
}

body.admin-auth-page .admin-auth-brand-copy h2 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(2.5rem, 5vw, 4.4rem);
  font-weight: 400;
  letter-spacing: -.045em;
  line-height: .98;
}

body.admin-auth-page .admin-auth-brand-copy > span {
  display: block;
  margin-top: 1.35rem;
  color: rgba(55,45,33,.56);
  font-size: .63rem;
  font-weight: 760;
  letter-spacing: .16em;
}

body.admin-auth-page .admin-auth-brand-foot {
  position: relative;
  z-index: 1;
  color: rgba(55,45,33,.48);
  font-size: .68rem;
  font-weight: 760;
  letter-spacing: .18em;
}

/* --------------------------------------------------------------------------
   Høyre arbeidsflate
   -------------------------------------------------------------------------- */
body.admin-auth-page .admin-auth-workspace {
  min-width: 0;
  min-height: 100svh;
  display: grid;
  grid-template-rows: auto 1fr auto;
  padding: clamp(1.3rem, 3vw, 2.4rem) clamp(1.4rem, 5vw, 5rem) clamp(1.2rem, 2.5vw, 2rem);
  background:
    radial-gradient(circle at 72% 12%, rgba(205,179,138,.11), transparent 24rem),
    #fffdf9;
}

body.admin-auth-page .admin-auth-workspace-top {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  min-height: 2.5rem;
}

body.admin-auth-page .admin-auth-workspace-top > a {
  display: inline-flex;
  align-items: center;
  gap: .36rem;
  color: rgba(31,29,26,.48);
  font-size: .69rem;
  font-weight: 760;
  letter-spacing: .08em;
  text-decoration: none;
  text-transform: uppercase;
  transition: color 160ms ease;
}

body.admin-auth-page .admin-auth-workspace-top > a:hover {
  color: var(--ink);
}

body.admin-auth-page .admin-auth-workspace-top svg {
  width: .82rem;
  height: .82rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.4;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 160ms ease;
}

body.admin-auth-page .admin-auth-workspace-top > a:hover svg:not(:first-child) {
  transform: translate(1px, -1px);
}

body.admin-auth-page .admin-auth-back-link svg:first-child {
  width: .9rem;
  height: .9rem;
}

body.admin-auth-page .admin-auth-form-shell {
  width: min(100%, 31rem);
  align-self: center;
  justify-self: center;
  padding-block: clamp(2rem, 5vh, 4rem);
}

body.admin-auth-page .admin-auth-heading {
  margin-bottom: 2rem;
}

body.admin-auth-page .admin-auth-heading > span {
  display: block;
  margin-bottom: .85rem;
  color: rgba(168,143,104,.95);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .2em;
  text-transform: uppercase;
}

body.admin-auth-page .admin-auth-heading h1 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(3rem, 6vw, 4.8rem);
  font-weight: 400;
  letter-spacing: -.055em;
  line-height: .95;
  text-wrap: balance;
}

body.admin-auth-page .admin-auth-heading p {
  max-width: 28rem;
  margin: 1.05rem 0 0;
  color: rgba(31,29,26,.54);
  font-size: .9rem;
  line-height: 1.7;
}

body.admin-auth-page .admin-auth-form {
  display: grid;
  gap: 1rem;
}

body.admin-auth-page .admin-auth-field {
  display: grid;
  gap: .48rem;
  margin: 0;
}

body.admin-auth-page .admin-auth-field > span:not(.admin-auth-field-row),
body.admin-auth-page .admin-auth-field-row > span {
  color: rgba(31,29,26,.52);
  font-size: .69rem;
  font-weight: 760;
  letter-spacing: .06em;
}

body.admin-auth-page .admin-auth-field-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

body.admin-auth-page .admin-auth-field-row > a {
  color: rgba(127,99,62,.78);
  font-size: .69rem;
  font-weight: 720;
  text-decoration: none;
}

body.admin-auth-page .admin-auth-field-row > a:hover {
  color: rgba(98,73,43,1);
}

body.admin-auth-page .admin-auth-field input,
body.admin-auth-page .admin-auth-context-note input {
  width: 100%;
  min-height: 3.55rem;
  padding: .9rem 1rem;
  border: 1px solid rgba(31,29,26,.11);
  border-radius: .92rem;
  background: rgba(255,255,255,.88);
  color: var(--ink);
  font: inherit;
  font-size: .92rem;
  outline: none;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.86);
  transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

body.admin-auth-page .admin-auth-field input:hover {
  border-color: rgba(31,29,26,.18);
}

body.admin-auth-page .admin-auth-field input:focus,
body.admin-auth-page .admin-auth-context-note input:focus {
  border-color: rgba(181,143,94,.68);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(205,179,138,.09), inset 0 1px 0 rgba(255,255,255,.92);
}

body.admin-auth-page .admin-auth-submit {
  min-height: 3.55rem;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: .35rem;
  padding: .9rem 1.1rem .9rem 1.25rem;
  border: 1px solid #211f1b;
  border-radius: .92rem;
  background: #211f1b;
  color: #fffdf9;
  font: inherit;
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .1em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: 0 10px 24px rgba(31,29,26,.12);
  transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

body.admin-auth-page .admin-auth-submit svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 160ms ease;
}

body.admin-auth-page .admin-auth-submit:hover {
  background: #181714;
  box-shadow: 0 14px 30px rgba(31,29,26,.17);
  transform: translateY(-1px);
}

body.admin-auth-page .admin-auth-submit:hover svg {
  transform: translateX(2px);
}

body.admin-auth-page .admin-auth-submit.is-link {
  width: 100%;
}

body.admin-auth-page .admin-auth-note {
  margin: -.15rem 0 0;
  padding: .8rem .9rem;
  border-left: 2px solid rgba(205,179,138,.55);
  background: linear-gradient(90deg, rgba(205,179,138,.08), transparent);
  color: rgba(31,29,26,.52);
  font-size: .72rem;
  line-height: 1.55;
}

body.admin-auth-page .admin-auth-context-note {
  margin-top: 1.3rem;
  padding: 1rem 1.05rem;
  border: 1px solid rgba(205,179,138,.24);
  border-radius: 1rem;
  background: rgba(205,179,138,.055);
}

body.admin-auth-page .admin-auth-context-note > span,
body.admin-auth-page .admin-auth-context-note label > span {
  display: block;
  margin-bottom: .4rem;
  color: rgba(139,107,67,.88);
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

body.admin-auth-page .admin-auth-context-note p {
  margin: 0 0 .85rem;
  color: rgba(31,29,26,.56);
  font-size: .75rem;
  line-height: 1.55;
}

body.admin-auth-page .admin-auth-context-note input {
  min-height: 2.85rem;
  border-radius: .72rem;
  font-size: .74rem;
}

body.admin-auth-page .admin-auth-message {
  margin: 0 0 1rem;
  padding: .85rem .95rem;
  border-radius: .9rem;
  font-size: .78rem;
  line-height: 1.55;
}

body.admin-auth-page .admin-auth-message.is-error {
  border: 1px solid rgba(162,80,69,.18);
  background: rgba(162,80,69,.065);
  color: #773f38;
}

body.admin-auth-page .admin-auth-secondary-actions {
  display: grid;
  gap: .75rem;
}

body.admin-auth-page .admin-auth-secondary-button {
  min-height: 3.35rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .85rem 1rem;
  border: 1px solid rgba(31,29,26,.11);
  border-radius: .9rem;
  background: rgba(255,255,255,.72);
  color: rgba(31,29,26,.68);
  font-size: .75rem;
  font-weight: 760;
  text-decoration: none;
}

body.admin-auth-page .alert,
body.admin-auth-page .flash-message,
body.admin-auth-page .flash {
  width: 100%;
  margin: 0 0 1rem;
  border-radius: .9rem;
  padding: .85rem .95rem;
  font-size: .78rem;
  line-height: 1.5;
}

body.admin-auth-page .admin-auth-workspace-foot {
  justify-self: end;
  align-self: end;
  color: rgba(31,29,26,.32);
  font-size: .63rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

@media (max-width: 980px) {
  body.admin-auth-page .admin-auth-shell {
    grid-template-columns: minmax(17rem, .78fr) minmax(26rem, 1.22fr);
  }

  body.admin-auth-page .admin-auth-brand-panel {
    padding: 2rem;
  }

  body.admin-auth-page .admin-auth-brand-panel::before {
    inset: .8rem;
    border-radius: 1.35rem;
  }
}

@media (max-width: 760px) {
  body.admin-auth-page .admin-auth-shell {
    display: block;
    min-height: 100svh;
    background: #fffdf9;
  }

  body.admin-auth-page .admin-auth-brand-panel {
    min-height: auto;
    padding: 1.4rem 1.2rem 1.25rem;
    background: linear-gradient(135deg, #e8dccb, #d4bd9c);
  }

  body.admin-auth-page .admin-auth-brand-panel::before,
  body.admin-auth-page .admin-auth-brand-panel::after,
  body.admin-auth-page .admin-auth-brand-foot {
    display: none;
  }

  body.admin-auth-page .admin-auth-brand-inner {
    min-height: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0;
  }

  body.admin-auth-page .admin-auth-monogram {
    gap: .45rem;
  }

  body.admin-auth-page .admin-auth-monogram > span {
    font-size: 2.35rem;
  }

  body.admin-auth-page .admin-auth-monogram > i {
    width: .8rem;
    height: 2.55rem;
  }

  body.admin-auth-page .admin-auth-monogram > i::before,
  body.admin-auth-page .admin-auth-monogram > i::after {
    height: calc(50% - .35rem);
  }

  body.admin-auth-page .admin-auth-monogram b {
    font-size: .62rem;
  }

  body.admin-auth-page .admin-auth-brand-copy {
    text-align: right;
  }

  body.admin-auth-page .admin-auth-brand-copy p,
  body.admin-auth-page .admin-auth-brand-copy > span {
    display: none;
  }

  body.admin-auth-page .admin-auth-brand-copy h2 {
    font-size: 1rem;
    font-family: var(--font-sans);
    font-weight: 800;
    letter-spacing: .13em;
    line-height: 1;
    text-transform: uppercase;
  }

  body.admin-auth-page .admin-auth-workspace {
    min-height: calc(100svh - 5.1rem);
    padding: 1rem 1.15rem 1.25rem;
  }

  body.admin-auth-page .admin-auth-workspace-top {
    justify-content: flex-start;
  }

  body.admin-auth-page .admin-auth-form-shell {
    width: min(100%, 31rem);
    padding-block: 2.2rem;
  }

  body.admin-auth-page .admin-auth-heading h1 {
    font-size: clamp(2.8rem, 14vw, 4.1rem);
  }

  body.admin-auth-page .admin-auth-workspace-foot {
    justify-self: start;
  }
}

@media (max-width: 420px) {
  body.admin-auth-page .admin-auth-brand-panel {
    padding-inline: 1rem;
  }

  body.admin-auth-page .admin-auth-workspace {
    padding-inline: 1rem;
  }

  body.admin-auth-page .admin-auth-heading p {
    font-size: .84rem;
  }

  body.admin-auth-page .admin-auth-field input {
    min-height: 3.4rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.admin-auth-page .admin-auth-submit,
  body.admin-auth-page .admin-auth-submit svg,
  body.admin-auth-page .admin-auth-workspace-top svg {
    transition: none;
  }
}

/* ========================================================================== 
   Admin auth · sentrert flate · gjeste-login-palett · 2026-08-10 v16
   Fargene bruker samme faktiske palett som gjesteinnloggingen.
   ========================================================================== */
body.admin-auth-page {
  min-height: 100svh;
  color: var(--ink);
  background:
    radial-gradient(circle at 50% 12%, rgba(205, 179, 138, 0.18), transparent 34%),
    #fffdf9;
}

body.admin-auth-page .admin-auth-shell {
  min-height: 100svh;
  display: block;
  background: transparent;
}

body.admin-auth-page .admin-auth-workspace {
  position: relative;
  width: 100%;
  min-height: 100svh;
  display: grid;
  grid-template-rows: auto 1fr;
  padding: clamp(1.25rem, 3vw, 2.35rem) clamp(1rem, 4vw, 3rem) clamp(1.25rem, 3vw, 2.35rem);
  background: transparent;
}

body.admin-auth-page .admin-auth-workspace-top {
  width: min(100%, 42rem);
  justify-self: center;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  min-height: 2.5rem;
}

body.admin-auth-page .admin-auth-workspace-top > a {
  color: rgba(31, 29, 26, 0.46);
}

body.admin-auth-page .admin-auth-workspace-top > a:hover {
  color: var(--ink);
}

body.admin-auth-page .admin-auth-form-shell {
  width: min(92vw, 440px);
  align-self: center;
  justify-self: center;
  padding: 2rem;
  border: 1px solid rgba(255,255,255,0.55);
  border-radius: 1.5rem;
  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,0.82),
      rgba(255,255,255,0.70)
    );
  box-shadow:
    0 20px 60px rgba(31,29,26,0.10),
    inset 0 1px 0 rgba(255,255,255,0.6);
  -webkit-backdrop-filter: blur(18px) saturate(150%);
  backdrop-filter: blur(18px) saturate(150%);
}

body.admin-auth-page .admin-auth-heading {
  margin-bottom: 2rem;
}

body.admin-auth-page .admin-auth-heading > span {
  color: rgba(168, 143, 104, 0.9);
}

body.admin-auth-page .admin-auth-heading h1 {
  color: var(--ink);
  font-size: clamp(3rem, 7vw, 4.7rem);
}

body.admin-auth-page .admin-auth-heading p {
  max-width: 29rem;
  color: var(--muted);
}

body.admin-auth-page .admin-auth-field > span:not(.admin-auth-field-row),
body.admin-auth-page .admin-auth-field-row > span {
  color: rgba(31, 29, 26, 0.58);
}

body.admin-auth-page .admin-auth-field-row > a {
  color: rgba(168, 143, 104, 0.95);
}

body.admin-auth-page .admin-auth-field-row > a:hover {
  color: var(--ink);
}

body.admin-auth-page .admin-auth-field input,
body.admin-auth-page .admin-auth-context-note input {
  border-color: var(--line);
  background: #fff;
  color: var(--ink);
  box-shadow: none;
}

body.admin-auth-page .admin-auth-field input:hover,
body.admin-auth-page .admin-auth-context-note input:hover {
  border-color: rgba(31, 29, 26, 0.22);
}

body.admin-auth-page .admin-auth-field input:focus,
body.admin-auth-page .admin-auth-context-note input:focus {
  border-color: rgba(31, 29, 26, 0.42);
  background: #fff;
  box-shadow: none;
}

/* Chrome/Safari autofill skal se ut som samme hvite gjeste-login-felt. */
body.admin-auth-page .admin-auth-field input:-webkit-autofill,
body.admin-auth-page .admin-auth-field input:-webkit-autofill:hover,
body.admin-auth-page .admin-auth-field input:-webkit-autofill:focus,
body.admin-auth-page .admin-auth-field input:-webkit-autofill:active,
body.admin-auth-page .admin-auth-context-note input:-webkit-autofill,
body.admin-auth-page .admin-auth-context-note input:-webkit-autofill:hover,
body.admin-auth-page .admin-auth-context-note input:-webkit-autofill:focus,
body.admin-auth-page .admin-auth-context-note input:-webkit-autofill:active {
  -webkit-text-fill-color: var(--ink) !important;
  caret-color: var(--ink);
  -webkit-box-shadow: 0 0 0 1000px #fff inset !important;
  box-shadow: 0 0 0 1000px #fff inset !important;
  border-color: var(--line) !important;
  transition: background-color 9999s ease-out 0s;
}

body.admin-auth-page .admin-auth-field input:autofill,
body.admin-auth-page .admin-auth-context-note input:autofill {
  color: var(--ink) !important;
  background: #fff !important;
  box-shadow: 0 0 0 1000px #fff inset !important;
}

body.admin-auth-page .admin-auth-field input:-webkit-autofill:focus,
body.admin-auth-page .admin-auth-context-note input:-webkit-autofill:focus {
  border-color: rgba(31, 29, 26, 0.42) !important;
}

body.admin-auth-page .admin-auth-submit,
body.admin-auth-page .admin-auth-submit.is-link {
  width: auto;
  min-width: 9.4rem;
  max-width: 100%;
  justify-self: end;
  justify-content: space-between;
  padding-inline: 1.25rem 1rem;
  border-color: var(--ink);
  background: var(--ink);
  color: var(--paper);
  box-shadow: none;
}

body.admin-auth-page .admin-auth-submit:hover,
body.admin-auth-page .admin-auth-submit.is-link:hover {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--paper);
  box-shadow: none;
}

body.admin-auth-page .admin-auth-note {
  border-left-color: rgba(205, 179, 138, 0.55);
  background: linear-gradient(90deg, rgba(205, 179, 138, 0.08), transparent);
  color: rgba(31, 29, 26, 0.52);
}

body.admin-auth-page .admin-auth-context-note {
  border-color: rgba(205, 179, 138, 0.24);
  background: rgba(205, 179, 138, 0.055);
}

body.admin-auth-page .admin-auth-context-note > span,
body.admin-auth-page .admin-auth-context-note label > span {
  color: rgba(168, 143, 104, 0.95);
}

body.admin-auth-page .admin-auth-context-note p {
  color: rgba(31, 29, 26, 0.56);
}

body.admin-auth-page .admin-auth-secondary-actions {
  justify-items: end;
}

body.admin-auth-page .admin-auth-secondary-button {
  border-color: var(--line);
  background: rgba(255,255,255,0.72);
  color: rgba(31,29,26,0.68);
}

body.admin-auth-page .admin-auth-secondary-button:hover {
  border-color: rgba(31, 29, 26, 0.22);
  background: #fff;
  color: var(--ink);
}

/* Feil skal fortsatt være tydelige, men bruker samme dempede rødtone som gjeste-login. */
body.admin-auth-page .admin-auth-message.is-error,
body.admin-auth-page .alert.is-error,
body.admin-auth-page .flash-message.is-error,
body.admin-auth-page .flash.is-error {
  color: #773f38;
  background: rgba(162, 80, 69, 0.08);
  border-color: rgba(162, 80, 69, 0.20);
}

@media (max-width: 760px) {
  body.admin-auth-page .admin-auth-workspace {
    min-height: 100svh;
    padding: 1rem;
  }

  body.admin-auth-page .admin-auth-workspace-top {
    width: min(100%, 440px);
    justify-content: flex-start;
  }

  body.admin-auth-page .admin-auth-form-shell {
    width: min(100%, 440px);
    padding: 1.75rem 1.35rem 1.5rem;
    border-radius: 1.5rem;
  }
}

@media (max-width: 420px) {
  body.admin-auth-page .admin-auth-form-shell {
    padding-inline: 1.1rem;
  }

  body.admin-auth-page .admin-auth-submit,
  body.admin-auth-page .admin-auth-submit.is-link {
    min-width: 8.9rem;
  }
}


/* ==========================================================================
   Auth-felt · felles feltstil fra admin-auth v15 · 2026-08-10 v17
   ========================================================================== */
body.admin-auth-page .admin-auth-field input,
body.admin-auth-page .admin-auth-context-note input {
  width: 100%;
  min-height: 3.55rem;
  padding: .9rem 1rem;
  border: 1px solid rgba(31,29,26,.11);
  border-radius: .92rem;
  background: rgba(255,255,255,.88);
  color: var(--ink);
  font: inherit;
  font-size: .92rem;
  outline: none;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.86);
  transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

body.admin-auth-page .admin-auth-field input:hover,
body.admin-auth-page .admin-auth-context-note input:hover {
  border-color: rgba(31,29,26,.18);
}

body.admin-auth-page .admin-auth-field input:focus,
body.admin-auth-page .admin-auth-context-note input:focus {
  border-color: rgba(181,143,94,.68);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(205,179,138,.09), inset 0 1px 0 rgba(255,255,255,.92);
}

/* Chrome/Safari autofill skal beholde den samme feltstilen. */
body.admin-auth-page .admin-auth-field input:-webkit-autofill,
body.admin-auth-page .admin-auth-field input:-webkit-autofill:hover,
body.admin-auth-page .admin-auth-field input:-webkit-autofill:active,
body.admin-auth-page .admin-auth-context-note input:-webkit-autofill,
body.admin-auth-page .admin-auth-context-note input:-webkit-autofill:hover,
body.admin-auth-page .admin-auth-context-note input:-webkit-autofill:active {
  -webkit-text-fill-color: var(--ink) !important;
  caret-color: var(--ink);
  -webkit-box-shadow: 0 0 0 1000px rgba(255,255,255,.98) inset !important;
  box-shadow: 0 0 0 1000px rgba(255,255,255,.98) inset !important;
  border-color: rgba(31,29,26,.11) !important;
  transition: background-color 9999s ease-out 0s;
}

body.admin-auth-page .admin-auth-field input:-webkit-autofill:focus,
body.admin-auth-page .admin-auth-context-note input:-webkit-autofill:focus {
  border-color: rgba(181,143,94,.68) !important;
  -webkit-box-shadow: 0 0 0 4px rgba(205,179,138,.09), 0 0 0 1000px #fff inset !important;
  box-shadow: 0 0 0 4px rgba(205,179,138,.09), 0 0 0 1000px #fff inset !important;
}


/* ========================================================================== 
   Nettside og tilgang · komplett statusoversikt · 2026-08-10 v23
   ========================================================================== */
body.site-rsvp-settings-page .site-control-overview {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

body.site-rsvp-settings-page .site-control-overview article {
  border-right: 1px solid rgba(31, 29, 26, 0.065) !important;
  border-bottom: 0 !important;
}

body.site-rsvp-settings-page .site-control-overview article:last-child {
  border-right: 0 !important;
}

@media (max-width: 1040px) {
  body.site-rsvp-settings-page .site-control-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.site-rsvp-settings-page .site-control-overview article:nth-child(2n) {
    border-right: 0 !important;
  }

  body.site-rsvp-settings-page .site-control-overview article:nth-child(-n+2) {
    border-bottom: 1px solid rgba(31, 29, 26, 0.065) !important;
  }
}

@media (max-width: 620px) {
  body.site-rsvp-settings-page .site-control-overview {
    grid-template-columns: 1fr !important;
  }

  body.site-rsvp-settings-page .site-control-overview article,
  body.site-rsvp-settings-page .site-control-overview article:nth-child(2n),
  body.site-rsvp-settings-page .site-control-overview article:nth-child(-n+2) {
    border-right: 0 !important;
    border-bottom: 1px solid rgba(31, 29, 26, 0.065) !important;
  }

  body.site-rsvp-settings-page .site-control-overview article:last-child {
    border-bottom: 0 !important;
  }
}

/* ========================================================================== 
   Rapporter · roligere Dokumentarkiv · 2026-08-10 v31
   ========================================================================== */
body.admin-onepage #rapporter .admin-report-archive-panel {
  gap: 0.78rem;
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}

body.admin-onepage #rapporter .admin-report-archive-panel .admin-report-panel-heading {
  min-height: 1.4rem;
}

/* Behold champagne kun som seksjonsmarkør. */
body.admin-onepage #rapporter .admin-report-archive-panel .admin-report-eyebrow {
  color: rgba(168,143,104,0.92);
}

/* Selve innstillingen er nøytral, så vi unngår champagne på champagne. */
body.admin-onepage #rapporter .admin-report-document-access {
  width: min(38rem, 100%);
  grid-template-columns: minmax(8.8rem, auto) minmax(15rem, 23rem);
  align-items: center;
  gap: 0.9rem;
}

body.admin-onepage #rapporter .admin-report-document-access > span {
  color: rgba(31,29,26,0.48);
  font-size: 0.59rem;
  font-weight: 760;
  letter-spacing: 0.105em;
  line-height: 1.25;
  text-transform: uppercase;
}

body.admin-onepage #rapporter .admin-report-document-access .admin-report-dropdown {
  min-width: 0;
}

body.admin-onepage #rapporter .admin-report-document-access .admin-report-select-toggle {
  min-height: 2.72rem;
  padding-block: 0.62rem;
  border-color: rgba(31,29,26,.085);
  border-radius: 0.82rem;
  background: rgba(255,255,255,.72);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.86),
    0 5px 16px rgba(31,29,26,.018);
  color: rgba(31,29,26,.72);
  font-size: 0.68rem;
}

body.admin-onepage #rapporter .admin-report-document-access .admin-report-select-toggle:hover {
  border-color: rgba(168,143,104,.34);
  background: rgba(255,253,249,.9);
}

body.admin-onepage #rapporter .admin-report-document-access .admin-report-dropdown.is-open .admin-report-select-toggle,
body.admin-onepage #rapporter .admin-report-document-access .admin-report-select-toggle:focus-visible {
  border-color: rgba(168,143,104,.5);
  box-shadow: 0 0 0 3px rgba(205,179,138,.075);
}

body.admin-onepage #rapporter .admin-report-archive-link {
  color: rgba(31,29,26,.46);
}

@media (max-width: 780px) {
  body.admin-onepage #rapporter .admin-report-document-access {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.42rem;
  }
}


/* ========================================================================== 
   Rapporter · dokumenttilgang integrert i genereringsområdet · 2026-08-10 v33
   ========================================================================== */
body.admin-onepage #rapporter .admin-report-archive-panel {
  display: none !important;
}

body.admin-onepage #rapporter .admin-report-builder-actions {
  align-items: flex-end;
  padding-top: 0.5rem;
}

body.admin-onepage #rapporter .admin-report-document-actions {
  align-items: flex-end;
  flex-wrap: nowrap;
}

body.admin-onepage #rapporter .admin-report-document-access-inline {
  width: min(15rem, 26vw);
  min-width: 11.5rem;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.38rem;
  margin: 0 0.08rem 0 0;
}

body.admin-onepage #rapporter .admin-report-document-access-inline > span {
  color: rgba(168, 143, 104, 0.94);
  font-size: 0.54rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1;
  text-transform: uppercase;
}

body.admin-onepage #rapporter .admin-report-document-access-inline .admin-report-dropdown {
  width: 100%;
  min-width: 0;
}

body.admin-onepage #rapporter .admin-report-document-access-inline .admin-report-select-toggle {
  width: 100%;
  min-height: 3rem;
  padding: 0.64rem 2.3rem 0.64rem 0.82rem;
  border: 1px solid rgba(31, 29, 26, 0.09);
  border-radius: 0.92rem;
  background: rgba(255, 253, 249, 0.82);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.88),
    0 5px 16px rgba(31, 29, 26, 0.02);
  color: rgba(31, 29, 26, 0.72);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: none;
}

body.admin-onepage #rapporter .admin-report-document-access-inline .admin-report-select-toggle:hover {
  border-color: rgba(168, 143, 104, 0.36);
  background: rgba(255, 253, 249, 0.96);
}

body.admin-onepage #rapporter .admin-report-document-access-inline .admin-report-dropdown.is-open .admin-report-select-toggle,
body.admin-onepage #rapporter .admin-report-document-access-inline .admin-report-select-toggle:focus-visible {
  border-color: rgba(168, 143, 104, 0.54);
  background: #fffdf9;
  box-shadow: 0 0 0 3px rgba(205, 179, 138, 0.08);
}

body.admin-onepage #rapporter .admin-report-document-access-inline .admin-report-select-menu {
  width: 100%;
  min-width: max(100%, 13.5rem);
}

body.admin-onepage #rapporter .admin-report-document-access-inline .admin-report-select-menu button {
  font-size: 0.66rem;
}

@media (max-width: 980px) {
  body.admin-onepage #rapporter .admin-report-builder-actions {
    align-items: stretch;
  }

  body.admin-onepage #rapporter .admin-report-document-actions {
    flex-wrap: wrap;
  }

  body.admin-onepage #rapporter .admin-report-document-access-inline {
    width: min(15rem, 100%);
  }
}

@media (max-width: 780px) {
  body.admin-onepage #rapporter .admin-report-builder-actions {
    gap: 0.8rem;
  }

  body.admin-onepage #rapporter .admin-report-document-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.72rem;
  }

  body.admin-onepage #rapporter .admin-report-document-access-inline,
  body.admin-onepage #rapporter .admin-report-document-access-inline .admin-report-select-toggle,
  body.admin-onepage #rapporter .admin-report-document-actions .button {
    width: 100%;
  }
}


/* ========================================================================== 
   Dashboard · rapportdropdown + enkel footer · 2026-08-10 v34
   ========================================================================== */
body.admin-onepage #rapporter .admin-report-builder-actions {
  transition: padding-bottom 180ms ease;
}

body.admin-onepage #rapporter .admin-report-builder-actions:has(.admin-report-document-access-inline .admin-report-dropdown.is-open) {
  padding-bottom: 6.25rem;
}

body.admin-onepage .admin-dashboard-footer {
  width: 100%;
  flex: 0 0 auto;
  margin-top: 0;
  background: rgba(255, 253, 249, 0.92);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-top: 1px solid rgba(31, 29, 26, 0.08);
}

body.admin-onepage .admin-dashboard-footer-inner {
  width: min(90vw, 1200px);
  margin: 0 auto;
  justify-content: flex-start;
  padding: 1.55rem 0;
  color: var(--muted);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
}

@media (max-width: 780px) {
  body.admin-onepage #rapporter .admin-report-builder-actions:has(.admin-report-document-access-inline .admin-report-dropdown.is-open) {
    padding-bottom: 6.75rem;
  }

  body.admin-onepage .admin-dashboard-footer-inner {
    width: min(88vw, 900px);
    padding: 1.35rem 0;
    font-size: 0.72rem;
    line-height: 1.55;
  }
}

/* ========================================================================== 
   Rapporter · flytende Dokumenttilgang + høyrestilte handlinger · 2026-08-10 v35
   ========================================================================== */
body.admin-onepage #rapporter .admin-report-builder-actions {
  justify-content: flex-end;
  padding-bottom: 0.25rem;
  transition: none;
  overflow: visible;
}

/* v34 la inn ekstra bunnplass mens menyen var åpen. Menyen skal i stedet
   flyte over innholdet, slik at dashboard-footer aldri flyttes. */
body.admin-onepage #rapporter .admin-report-builder-actions:has(.admin-report-document-access-inline .admin-report-dropdown.is-open) {
  padding-bottom: 0.25rem;
}

body.admin-onepage #rapporter .admin-report-document-actions {
  width: auto;
  margin-left: auto;
  justify-content: flex-end;
  overflow: visible;
}

body.admin-onepage #rapporter .admin-report-document-access-inline,
body.admin-onepage #rapporter .admin-report-document-access-inline .admin-report-dropdown {
  position: relative;
  overflow: visible;
}

body.admin-onepage #rapporter .admin-report-document-access-inline .admin-report-dropdown.is-open {
  z-index: 80;
}

/* Dokumenttilgang ligger nederst i rapportbyggeren. Åpne derfor akkurat
   denne menyen oppover i stedet for ned mot footeren. */
body.admin-onepage #rapporter .admin-report-document-access-inline .admin-report-select-menu {
  top: auto;
  bottom: calc(100% + 0.45rem);
  right: 0;
  left: auto;
  z-index: 90;
}

@media (max-width: 780px) {
  body.admin-onepage #rapporter .admin-report-builder-actions,
  body.admin-onepage #rapporter .admin-report-builder-actions:has(.admin-report-document-access-inline .admin-report-dropdown.is-open) {
    padding-bottom: 0.25rem;
  }

  body.admin-onepage #rapporter .admin-report-document-actions {
    width: 100%;
    margin-left: 0;
  }

  body.admin-onepage #rapporter .admin-report-document-access-inline .admin-report-select-menu {
    right: auto;
    left: 0;
  }
}


/* ========================================================================== 
   Rapporter · Dokumenttilgang til venstre, handlinger til høyre · 2026-08-10 v55
   ========================================================================== */
@media (min-width: 781px) {
  body.admin-onepage #rapporter .admin-report-builder-actions {
    width: 100%;
    justify-content: stretch;
  }

  body.admin-onepage #rapporter .admin-report-document-actions {
    width: 100%;
    margin-left: 0;
    justify-content: flex-end;
  }

  body.admin-onepage #rapporter .admin-report-document-access-inline {
    margin-right: auto;
  }

  body.admin-onepage #rapporter .admin-report-document-access-inline .admin-report-select-menu {
    right: auto;
    left: 0;
  }
}

/* ========================================================================== 
   Admin mobilmeny · undermeny som linjer · 2026-08-12 v101
   ========================================================================== */
@media (max-width: 780px) {
  body.admin-onepage .admin-mobile-menu-footer > nav {
    gap: 0;
  }

  body.admin-onepage .admin-mobile-menu-footer > nav .admin-mobile-destination {
    min-height: 3.2rem;
    padding: 0.82rem 0.18rem 0.82rem 0.12rem;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: rgba(31, 29, 26, 0.58);
    box-shadow: none;
    transition: color 160ms ease, background 160ms ease;
  }

  body.admin-onepage .admin-mobile-menu-footer > nav .admin-mobile-destination + .admin-mobile-destination {
    border-top: 1px solid rgba(31, 29, 26, 0.075);
  }

  body.admin-onepage .admin-mobile-menu-footer > nav .admin-mobile-destination:active,
  body.admin-onepage .admin-mobile-menu-footer > nav .admin-mobile-destination:focus-visible {
    border-color: rgba(31, 29, 26, 0.075);
    background: rgba(205, 179, 138, 0.045);
    color: rgba(31, 29, 26, 0.82);
    transform: none;
  }

  body.admin-onepage .admin-mobile-destination-arrow {
    margin-right: 0.08rem;
  }

  body.admin-onepage .admin-mobile-menu-footer > nav .admin-mobile-logout {
    margin-top: 0.48rem;
  }
}

/* ========================================================================== 
   Admin mobilmeny · kompakt undermeny · 2026-08-12 v102
   ========================================================================== */
@media (max-width: 780px) {
  body.admin-onepage .admin-mobile-menu-footer > nav .admin-mobile-destination {
    min-height: 2.75rem;
    padding: 0.62rem 0.12rem 0.62rem 0.1rem;
    color: rgba(31, 29, 26, 0.48);
    font-size: 0.5rem;
    font-weight: 740;
    letter-spacing: 0.105em;
  }

  body.admin-onepage .admin-mobile-menu-footer > nav .admin-mobile-destination + .admin-mobile-destination {
    border-top-color: rgba(31, 29, 26, 0.06);
  }

  body.admin-onepage .admin-mobile-destination-arrow {
    width: 0.61rem;
    height: 0.61rem;
    margin-right: 0.05rem;
    opacity: 0.58;
  }

  body.admin-onepage .admin-mobile-menu-footer > nav .admin-mobile-logout {
    margin-top: 0.34rem;
  }
}

/* ========================================================================== 
   Admin mobilmeny · hovedmeny først, sekundærinnhold ved scroll · 2026-08-12 v103
   ========================================================================== */
@media (max-width: 780px) {
  body.admin-onepage .admin-mobile-menu-sheet {
    height: var(--admin-mobile-menu-primary-height, auto);
    max-height: calc(100dvh - max(1.25rem, env(safe-area-inset-top, 0px)));
    overflow-y: auto;
    overscroll-behavior-y: contain;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  body.admin-onepage .admin-mobile-menu-sheet::-webkit-scrollbar {
    display: none;
  }

  body.admin-onepage .admin-mobile-main-nav {
    align-content: start;
  }

  body.admin-onepage .admin-mobile-menu-footer {
    margin-top: 1rem;
    padding-top: 0.9rem;
    border-top: 1px solid rgba(205, 179, 138, 0.18);
  }
}

/* ========================================================================== 
   Admin mobilmeny · subtil lukkeanimasjon · 2026-08-12 v105
   ========================================================================== */
@media (max-width: 780px) {
  body.admin-onepage .admin-mobile-menu-layer.is-closing .admin-mobile-menu-sheet {
    opacity: 0;
    transform: translateY(0.55rem);
    transition:
      opacity 150ms ease,
      transform 180ms cubic-bezier(.4, 0, .2, 1);
  }

  body.admin-onepage .admin-mobile-menu-layer.is-closing .admin-mobile-menu-backdrop {
    opacity: 0;
    transition: opacity 160ms ease;
  }
}

@media (max-width: 780px) and (prefers-reduced-motion: reduce) {
  body.admin-onepage .admin-mobile-menu-layer.is-closing .admin-mobile-menu-sheet,
  body.admin-onepage .admin-mobile-menu-layer.is-closing .admin-mobile-menu-backdrop {
    transition: none !important;
  }
}

/* ========================================================================== 
   Admin mobil · tydelig ark-lukking, enklere dra-ned og robuste datofelt · v106
   ========================================================================== */
@media (max-width: 780px) {
  /* Lukking skal oppleves som at hele menyarket trekker seg tilbake ned. */
  body.admin-onepage .admin-mobile-menu-layer.is-closing .admin-mobile-menu-sheet {
    opacity: 1;
    transform: translateY(100%);
    transition:
      transform 340ms cubic-bezier(.4, 0, .2, 1),
      opacity 280ms ease 40ms;
  }

  body.admin-onepage .admin-mobile-menu-layer.is-closing .admin-mobile-menu-backdrop {
    opacity: 0;
    transition: opacity 300ms ease;
  }

  /* Større usynlig gripeflate; selve den visuelle streken forblir liten. */
  body.admin-onepage .admin-mobile-menu-drag-handle {
    height: 2.65rem;
    margin-top: -0.48rem;
    margin-bottom: -0.38rem;
    padding: 0;
    place-items: center;
  }

  body.admin-onepage .admin-mobile-menu-heading {
    touch-action: none;
  }

  /*
   * iOS kan gi native date/datetime-felt en egen intrinsisk bredde og hvit
   * kontrollflate. I Nettside og tilgang eier skallet derfor hele bredden,
   * mens inputen rendres som en nøytral, transparent del av kortet.
   */
  body.site-rsvp-settings-page .site-control-field > .admin-date-input-shell {
    position: relative;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden;
    border: 1px solid rgba(31, 29, 26, 0.11);
    border-radius: 0.95rem;
    background: rgba(255, 253, 249, 0.78) !important;
    color-scheme: light;
  }

  body.site-rsvp-settings-page .site-control-field > .admin-date-input-shell
  > input[type="date"],
  body.site-rsvp-settings-page .site-control-field > .admin-date-input-shell
  > input[type="datetime-local"] {
    display: block !important;
    box-sizing: border-box !important;
    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;
    flex: none !important;
    min-height: 3.1rem;
    margin: 0 !important;
    padding: 0.78rem 0.88rem !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: rgba(31, 29, 26, 0.9) !important;
    box-shadow: none !important;
    font: inherit;
    font-size: 1rem;
    line-height: 1.2;
    -webkit-text-fill-color: rgba(31, 29, 26, 0.9);
  }

  body.site-rsvp-settings-page .site-control-field > .admin-date-input-shell
  > input[type="date"]::-webkit-date-and-time-value,
  body.site-rsvp-settings-page .site-control-field > .admin-date-input-shell
  > input[type="datetime-local"]::-webkit-date-and-time-value {
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
    text-align: left;
  }

  body.site-rsvp-settings-page .site-control-field > .admin-date-input-shell
  > input[type="date"]::-webkit-calendar-picker-indicator,
  body.site-rsvp-settings-page .site-control-field > .admin-date-input-shell
  > input[type="datetime-local"]::-webkit-calendar-picker-indicator {
    flex: 0 0 auto;
    margin: 0 0 0 0.35rem;
    padding: 0;
    opacity: 0.62;
  }

  /* Dokumentpassord skal ha samme venstreakse som Gjestepassord. */
  body.site-rsvp-settings-page
  .site-control-document-access-card
  .site-control-password-footer
  .site-control-note {
    align-self: stretch !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    text-align: left !important;
  }
}

@media (max-width: 780px) and (prefers-reduced-motion: reduce) {
  body.admin-onepage .admin-mobile-menu-layer.is-closing .admin-mobile-menu-sheet,
  body.admin-onepage .admin-mobile-menu-layer.is-closing .admin-mobile-menu-backdrop {
    transition: none !important;
  }
}

/* Dokumentpassord · samme venstreakse som gjestepassord på alle flater. */
body.site-rsvp-settings-page
.site-control-document-access-card
.site-control-password-footer
.site-control-note {
  text-align: left !important;
}

/* ========================================================================== 
   Nettside og tilgang · Svarfrist på mobil · typografi, sentrering og kalender · v107
   ========================================================================== */
@media (max-width: 780px) {
  body.site-rsvp-settings-page .site-control-deadline-card
  .site-control-field > .admin-date-input-shell {
    position: relative;
    display: flex !important;
    align-items: center !important;
    min-height: 3.15rem;
    overflow: hidden;
  }

  body.site-rsvp-settings-page .site-control-deadline-card
  .site-control-field > .admin-date-input-shell::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0.92rem;
    z-index: 2;
    width: 1.05rem;
    height: 1.05rem;
    pointer-events: none;
    opacity: 0.62;
    transform: translateY(-50%);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% 100%;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23736b61' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5.5' width='17' height='15' rx='2.5'/%3E%3Cpath d='M8 3.5v4M16 3.5v4M3.5 10h17'/%3E%3C/svg%3E");
  }

  body.site-rsvp-settings-page .site-control-deadline-card
  .site-control-field > .admin-date-input-shell > input[type="date"],
  body.site-rsvp-settings-page .site-control-deadline-card
  .site-control-field > .admin-date-input-shell > input[type="datetime-local"] {
    box-sizing: border-box !important;
    height: 3.15rem !important;
    min-height: 3.15rem !important;
    padding: 0 3rem 0 0.95rem !important;
    color: rgba(31, 29, 26, 0.88) !important;
    font-family: var(--font-sans) !important;
    font-size: 0.94rem !important;
    font-weight: 500 !important;
    font-style: normal !important;
    font-variant: normal !important;
    letter-spacing: 0 !important;
    line-height: normal !important;
    text-transform: none !important;
    -webkit-text-fill-color: rgba(31, 29, 26, 0.88) !important;
  }

  body.site-rsvp-settings-page .site-control-deadline-card
  .site-control-field > .admin-date-input-shell > input[type="date"]::-webkit-date-and-time-value,
  body.site-rsvp-settings-page .site-control-deadline-card
  .site-control-field > .admin-date-input-shell > input[type="datetime-local"]::-webkit-date-and-time-value {
    display: flex;
    align-items: center;
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    min-height: 100%;
    margin: 0;
    padding: 0;
    color: inherit;
    font: inherit;
    line-height: normal;
    text-align: left;
  }

  body.site-rsvp-settings-page .site-control-deadline-card
  .site-control-field > .admin-date-input-shell > input[type="date"]::-webkit-datetime-edit,
  body.site-rsvp-settings-page .site-control-deadline-card
  .site-control-field > .admin-date-input-shell > input[type="datetime-local"]::-webkit-datetime-edit {
    display: flex;
    align-items: center;
    height: 100%;
    margin: 0;
    padding: 0;
    color: inherit;
    font: inherit;
    line-height: normal;
  }

  body.site-rsvp-settings-page .site-control-deadline-card
  .site-control-field > .admin-date-input-shell > input[type="date"]::-webkit-calendar-picker-indicator,
  body.site-rsvp-settings-page .site-control-deadline-card
  .site-control-field > .admin-date-input-shell > input[type="datetime-local"]::-webkit-calendar-picker-indicator {
    position: absolute;
    top: 0;
    right: 0;
    width: 3rem;
    height: 100%;
    margin: 0;
    padding: 0;
    opacity: 0;
    cursor: pointer;
  }
}

/* ========================================================================== 
   v108 – Adminbrukere: mobiloptimalisering
   ========================================================================== */
@media (max-width: 780px) {
  body.admin-onepage .admin-users-section .admin-section-inner-wide {
    width: min(100%, calc(100vw - 1.1rem));
    max-width: none;
  }

  /* Rolleforklaring: behold hierarkiet, men bruk mindre høyde på telefon. */
  body.admin-onepage .admin-users-intro-grid {
    gap: 0.65rem;
    margin-bottom: 0.8rem;
  }

  body.admin-onepage .admin-users-role-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 0.45rem 0.75rem;
    padding: 0.95rem 1rem;
    border-radius: 1.05rem;
  }

  body.admin-onepage .admin-users-role-card .admin-role-badge {
    grid-column: 1;
    grid-row: 1;
  }

  body.admin-onepage .admin-users-role-card h3 {
    grid-column: 2;
    grid-row: 1;
    margin: 0;
    font-size: 1.35rem;
    letter-spacing: -0.025em;
  }

  body.admin-onepage .admin-users-role-card p {
    grid-column: 1 / -1;
    margin: 0.12rem 0 0;
    font-size: 0.86rem;
    line-height: 1.55;
  }

  /* Panelene skal lese som egne seksjoner, ikke store desktopkort presset inn på mobil. */
  body.admin-onepage .admin-users-panel {
    margin-top: 0.8rem;
    padding: 1rem;
    border-radius: 1.1rem;
  }

  body.admin-onepage .admin-users-panel-heading {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.9rem;
  }

  body.admin-onepage .admin-users-panel-heading > div {
    min-width: 0;
  }

  body.admin-onepage .admin-users-panel-heading > span {
    flex: 0 0 auto;
    margin: 0;
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    white-space: nowrap;
  }

  /* iOS: minst 16 px på tekstfeltene hindrer automatisk zoom ved fokus. */
  body.admin-onepage .admin-users-invite-form,
  body.admin-onepage .admin-user-fields {
    gap: 0.72rem;
  }

  body.admin-onepage .admin-users-invite-form label,
  body.admin-onepage .admin-user-fields label,
  body.admin-onepage .admin-users-select-field,
  body.admin-onepage .admin-invitation-preview label {
    min-width: 0;
  }

  body.admin-onepage .admin-users-invite-form input,
  body.admin-onepage .admin-user-fields input,
  body.admin-onepage .admin-invitation-preview input,
  body.admin-onepage .admin-users-dropdown .admin-filter-toggle {
    width: 100%;
    min-width: 0;
    min-height: 3rem;
    font-size: 1rem;
  }

  body.admin-onepage .admin-users-dropdown .admin-filter-toggle {
    padding-right: 2.8rem;
    letter-spacing: 0.065em;
  }

  body.admin-onepage .admin-function-input {
    padding-right: 3.25rem;
  }

  body.admin-onepage .admin-function-toggle {
    right: 0.34rem;
    width: 2.25rem;
    height: 2.25rem;
  }

  body.admin-onepage .admin-function-menu,
  body.admin-onepage .admin-users-dropdown .admin-filter-menu {
    max-width: 100%;
    max-height: min(18rem, 45dvh);
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  body.admin-onepage .admin-function-menu button,
  body.admin-onepage .admin-users-dropdown .admin-filter-menu button {
    min-height: 2.85rem;
    padding-top: 0.72rem;
    padding-bottom: 0.72rem;
  }

  body.admin-onepage .admin-users-invite-form .button {
    min-height: 3rem;
    margin-top: 0.12rem;
  }

  /* Delte lenker kan være lange; aldri la dem presse siden horisontalt. */
  body.admin-onepage .admin-invitation-preview {
    gap: 0.75rem;
    padding: 1rem;
    border-radius: 1.05rem;
    overflow: hidden;
  }

  body.admin-onepage .admin-invitation-preview > div,
  body.admin-onepage .admin-invitation-preview label {
    min-width: 0;
  }

  body.admin-onepage .admin-invitation-preview > div > span {
    overflow-wrap: anywhere;
  }

  body.admin-onepage .admin-invitation-preview input {
    text-overflow: ellipsis;
  }

  /* Ventende invitasjoner: tydelig informasjon først, handlinger samlet under. */
  body.admin-onepage .admin-invitation-list,
  body.admin-onepage .admin-user-list {
    gap: 0.7rem;
  }

  body.admin-onepage .admin-invitation-card {
    gap: 0.85rem;
    padding: 0.95rem;
    border-radius: 1rem;
  }

  body.admin-onepage .admin-invitation-card > div:first-child {
    min-width: 0;
  }

  body.admin-onepage .admin-invitation-card strong,
  body.admin-onepage .admin-invitation-card span:not(.admin-role-badge),
  body.admin-onepage .admin-invitation-card small {
    overflow-wrap: anywhere;
  }

  body.admin-onepage .admin-invitation-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
  }

  body.admin-onepage .admin-invitation-actions form,
  body.admin-onepage .admin-invitation-actions .button {
    width: 100%;
    min-width: 0;
  }

  body.admin-onepage .admin-invitation-actions .button {
    min-height: 2.8rem;
  }

  /* Brukerkort: mindre dekor, tydeligere skanning og ingen horisontal overflow. */
  body.admin-onepage .admin-user-card {
    gap: 0.9rem;
    padding: 1rem;
    border-radius: 1.05rem;
    box-shadow:
      0 9px 24px rgba(31,29,26,0.035),
      inset 0 1px 0 rgba(255,255,255,0.72);
  }

  body.admin-onepage .admin-user-card::before {
    top: 0.95rem;
    bottom: 0.95rem;
    opacity: 0.72;
  }

  body.admin-onepage .admin-user-card-heading {
    padding-bottom: 0.8rem;
  }

  body.admin-onepage .admin-user-card-identity {
    gap: 0.55rem;
  }

  body.admin-onepage .admin-user-card-identity > strong {
    font-size: 1.55rem;
    line-height: 1.04;
    overflow-wrap: anywhere;
  }

  body.admin-onepage .admin-user-card-badges {
    gap: 0.3rem;
  }

  body.admin-onepage .admin-role-badge,
  body.admin-onepage .admin-user-self-badge,
  body.admin-onepage .admin-user-inactive-badge {
    padding: 0.36rem 0.56rem;
    font-size: 0.58rem;
    letter-spacing: 0.1em;
  }

  body.admin-onepage .admin-user-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.45rem 0.8rem;
    padding-top: 0.8rem;
    font-size: 0.72rem;
  }

  body.admin-onepage .admin-user-meta span {
    display: grid;
    gap: 0.12rem;
    min-width: 0;
  }

  body.admin-onepage .admin-user-meta strong {
    font-size: 0.78rem;
    overflow-wrap: anywhere;
  }

  body.admin-onepage .admin-user-card-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    padding-top: 0.05rem;
  }

  body.admin-onepage .admin-user-card-actions .button {
    width: 100%;
    min-width: 0;
    min-height: 2.85rem;
    padding-inline: 0.7rem;
  }

  /* Primærhandlingen skal være tydeligst og få full bredde. */
  body.admin-onepage .admin-user-card-actions .button:not(.button-secondary) {
    grid-column: 1 / -1;
  }
}

@media (max-width: 430px) {
  body.admin-onepage .admin-users-section .admin-section-inner-wide {
    width: min(100%, calc(100vw - 0.8rem));
  }

  body.admin-onepage .admin-users-panel,
  body.admin-onepage .admin-user-card,
  body.admin-onepage .admin-users-role-card,
  body.admin-onepage .admin-invitation-preview {
    border-radius: 0.95rem;
  }

  body.admin-onepage .admin-users-panel {
    padding: 0.88rem;
  }

  body.admin-onepage .admin-user-card {
    padding: 0.9rem;
  }

  body.admin-onepage .admin-user-meta {
    grid-template-columns: 1fr;
  }

  /* På de aller smaleste telefonene er to destruktive/sekundære knapper side ved side unødvendig trangt. */
  body.admin-onepage .admin-user-card-actions {
    grid-template-columns: 1fr;
  }

  body.admin-onepage .admin-user-card-actions .button:not(.button-secondary) {
    grid-column: 1;
  }
}

/* ========================================================================== 
   v109 – Adminbrukere: roligere dropdown-typografi på mobil
   ========================================================================== */
@media (max-width: 780px) {
  /* Custom dropdown-knapper trenger ikke 16 px iOS-fiksen som tekst-input gjør. */
  body.admin-onepage .admin-users-dropdown .admin-filter-toggle {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1;
  }

  body.admin-onepage .admin-users-dropdown .admin-filter-menu button,
  body.admin-onepage .admin-function-menu button {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1.15;
  }
}

/* ========================================================================== 
   v111 · Dashboard · Automatisk og Administrer har identisk kontrollbredde
   ========================================================================== */
body.admin-onepage #dashboard
.admin-dashboard-setting-link-card
.admin-dashboard-setting-link,
body.admin-onepage #dashboard
.admin-dashboard-invitation-summary
.admin-dashboard-invitation-source {
  width: 7.35rem;
  min-width: 7.35rem;
  max-width: 7.35rem;
}

body.admin-onepage #dashboard
.admin-dashboard-invitation-summary
.admin-dashboard-invitation-source {
  gap: 0.18rem;
}

@media (max-width: 680px) {
  body.admin-onepage #dashboard
  .admin-dashboard-setting-link-card
  .admin-dashboard-setting-link,
  body.admin-onepage #dashboard
  .admin-dashboard-invitation-summary
  .admin-dashboard-invitation-source {
    width: 6.8rem;
    min-width: 6.8rem;
    max-width: 6.8rem;
  }
}


/* ========================================================================== 
   Admin Rapporter · mobiloptimalisert forhåndsvisning
   Desktop beholder ordinær tabell. På telefon vises hver RSVP som et eget
   lesbart kort, slik at forhåndsvisningen ikke krever horisontal scrolling.
   ========================================================================== */
@media (max-width: 780px) {
  body.admin-onepage #rapporter .admin-report-preview-card {
    padding: 1rem;
    border-radius: 1.15rem;
  }

  body.admin-onepage #rapporter .admin-report-preview-heading {
    gap: 0.45rem;
    margin-bottom: 0.8rem;
  }

  body.admin-onepage #rapporter .admin-report-preview-heading h3 {
    margin-top: 0.3rem;
    font-size: clamp(1.55rem, 8vw, 2.05rem);
    line-height: 1.02;
  }

  body.admin-onepage #rapporter .admin-report-preview-heading > span {
    margin: 0;
    font-size: 0.64rem;
    line-height: 1.35;
    letter-spacing: 0.065em;
  }

  body.admin-onepage #rapporter .admin-report-preview-meta {
    gap: 0.38rem;
    margin-bottom: 0.8rem;
  }

  body.admin-onepage #rapporter .admin-report-preview-meta span {
    min-height: 1.65rem;
    padding: 0.28rem 0.52rem;
    font-size: 0.61rem;
    line-height: 1.25;
    letter-spacing: 0.045em;
  }

  body.admin-onepage #rapporter .admin-report-preview-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
    margin-bottom: 0.8rem;
  }

  body.admin-onepage #rapporter .admin-report-preview-kpi {
    min-width: 0;
    padding: 0.72rem 0.75rem;
    border-radius: 0.8rem;
  }

  body.admin-onepage #rapporter .admin-report-preview-kpi span {
    font-size: 0.58rem;
    line-height: 1.25;
    letter-spacing: 0.08em;
  }

  body.admin-onepage #rapporter .admin-report-preview-kpi strong {
    margin-top: 0.32rem;
    font-size: clamp(1.55rem, 8vw, 2.05rem);
  }

  body.admin-onepage #rapporter .admin-report-preview-table-wrap {
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  body.admin-onepage #rapporter .admin-report-preview-table {
    display: block;
    width: 100%;
    min-width: 0 !important;
  }

  body.admin-onepage #rapporter .admin-report-preview-table thead {
    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;
  }

  body.admin-onepage #rapporter .admin-report-preview-table tbody {
    display: grid;
    gap: 0.62rem;
    width: 100%;
  }

  body.admin-onepage #rapporter .admin-report-preview-table tr {
    display: block;
    min-width: 0;
    overflow: hidden;
    border: 1px solid rgba(31,29,26,0.075);
    border-radius: 0.9rem;
    background: rgba(255,253,249,0.66);
  }

  body.admin-onepage #rapporter .admin-report-preview-table td {
    display: grid;
    grid-template-columns: minmax(6.4rem, 0.72fr) minmax(0, 1.28fr);
    align-items: start;
    gap: 0.65rem;
    width: 100%;
    max-width: none;
    min-width: 0;
    padding: 0.62rem 0.72rem;
    border-bottom: 1px solid rgba(31,29,26,0.06);
    color: rgba(31,29,26,0.72);
    font-size: 0.75rem;
    line-height: 1.42;
    overflow-wrap: anywhere;
  }

  body.admin-onepage #rapporter .admin-report-preview-table td::before {
    content: attr(data-label);
    min-width: 0;
    color: rgba(31,29,26,0.44);
    font-size: 0.58rem;
    font-weight: 750;
    letter-spacing: 0.085em;
    line-height: 1.35;
    text-transform: uppercase;
    overflow-wrap: anywhere;
  }

  body.admin-onepage #rapporter .admin-report-preview-table tr td:last-child {
    border-bottom: 0;
  }

  body.admin-onepage #rapporter .admin-report-preview-limit {
    margin-top: 0.65rem;
    font-size: 0.7rem;
    line-height: 1.45;
  }

  body.admin-onepage #rapporter .admin-report-preview-empty,
  body.admin-onepage #rapporter .admin-report-preview-error {
    padding: 0.9rem;
    border-radius: 0.9rem;
    font-size: 0.8rem;
    line-height: 1.5;
  }

  /* Animasjon av en stor tabell/kortliste via grid-template-rows er dyrt på
     mobil. Behold reveal-følelsen, men la telefonen bruke en lettere fade. */
  body.admin-onepage #rapporter .admin-report-preview-reveal {
    transition:
      opacity 220ms ease,
      transform 280ms cubic-bezier(.22,1,.36,1),
      margin-top 280ms cubic-bezier(.22,1,.36,1);
  }
}

@media (max-width: 420px) {
  body.admin-onepage #rapporter .admin-report-preview-card {
    padding: 0.85rem;
  }

  body.admin-onepage #rapporter .admin-report-preview-table td {
    grid-template-columns: minmax(5.7rem, 0.68fr) minmax(0, 1.32fr);
    gap: 0.55rem;
    padding: 0.58rem 0.62rem;
  }
}


/* ========================================================================== 
   Gjesteliste · mobil arbeidsliste
   Mobilvisningen prioriterer søk → skann → åpne, mens desktop-tabellen er
   uendret. Hver RSVP blir én kompakt, trygg trykkflate med bare den viktigste
   informasjonen synlig før redigering.
   ========================================================================== */

body.admin-onepage #gjesteliste .admin-rsvp-mobile-card {
  display: none;
}

@media (max-width: 780px) {
  body.admin-onepage #gjesteliste .admin-section-inner-wide {
    width: min(calc(100% - 1rem), 42rem);
    max-width: calc(100% - 1rem);
    min-width: 0;
  }

  body.admin-onepage #gjesteliste .admin-list-titlebar {
    margin-bottom: 0.8rem;
  }

  body.admin-onepage #gjesteliste .admin-list-toolbar-flat {
    position: static;
    top: auto;
    z-index: auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.5rem;
    margin-inline: 0;
    margin-bottom: 0.7rem;
    padding: 0;
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  body.admin-onepage #gjesteliste .admin-live-search,
  body.admin-onepage #gjesteliste .admin-filter-dropdown {
    min-width: 0;
  }

  body.admin-onepage #gjesteliste .admin-live-search input,
  body.admin-onepage #gjesteliste .admin-filter-toggle {
    min-height: 2.75rem;
  }

  body.admin-onepage #gjesteliste .admin-live-search input {
    width: 100%;
    padding-inline: 0.82rem;
    font-size: 0.86rem;
    font-weight: 500;
  }

  body.admin-onepage #gjesteliste .admin-filter-toggle {
    width: auto;
    min-width: 7.2rem;
    padding-inline: 0.82rem 2rem;
    font-size: 0.67rem;
    letter-spacing: 0.07em;
  }

  body.admin-onepage #gjesteliste .admin-filter-menu {
    right: 0;
    left: auto;
    width: min(16rem, calc(100vw - 1.25rem));
    max-height: min(23rem, 58dvh);
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  body.admin-onepage #gjesteliste .admin-list-table-flat {
    margin-top: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    overflow: visible;
  }

  body.admin-onepage #gjesteliste .admin-list-table-flat .table-responsive {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow: visible;
    border-radius: 0;
  }

  body.admin-onepage #gjesteliste .admin-list-table-flat table,
  body.admin-onepage #gjesteliste .admin-list-table-flat tbody {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0 !important;
  }

  body.admin-onepage #gjesteliste .admin-list-table-flat thead {
    display: none;
  }

  body.admin-onepage #gjesteliste .admin-list-table-flat tbody {
    display: grid;
    gap: 0.5rem;
  }

  body.admin-onepage #gjesteliste .admin-list-table-flat tbody tr[data-admin-rsvp-row] {
    position: relative;
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 6.25rem;
    border: 1px solid rgba(31, 29, 26, 0.075);
    border-radius: 1rem;
    background:
      linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.76),
        rgba(255, 253, 249, 0.57)
      );
    box-shadow:
      0 7px 18px rgba(31, 29, 26, 0.025),
      inset 0 1px 0 rgba(255, 255, 255, 0.74);
    cursor: pointer;
    overflow: hidden;
    -webkit-tap-highlight-color: transparent;
    transition:
      border-color 150ms ease,
      background 150ms ease,
      transform 150ms ease;
  }

  body.admin-onepage #gjesteliste .admin-list-table-flat tbody tr[data-admin-rsvp-row]:active {
    border-color: rgba(205, 179, 138, 0.38);
    background: rgba(205, 179, 138, 0.075);
    transform: scale(0.995);
  }

  body.admin-onepage #gjesteliste .admin-list-table-flat tbody tr[data-admin-rsvp-row] > td {
    display: none;
    border: 0;
  }

  body.admin-onepage #gjesteliste .admin-list-table-flat tbody tr[data-admin-rsvp-row] > .admin-rsvp-primary-cell {
    display: block;
    padding: 0;
  }

  body.admin-onepage #gjesteliste .admin-rsvp-desktop-name {
    display: none;
  }

  body.admin-onepage #gjesteliste .admin-rsvp-mobile-card {
    display: grid;
    gap: 0.48rem;
    padding: 0.82rem 0.9rem 0.78rem;
  }

  body.admin-onepage #gjesteliste .admin-rsvp-mobile-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    min-width: 0;
  }

  body.admin-onepage #gjesteliste .admin-rsvp-mobile-identity {
    display: grid;
    gap: 0.16rem;
    min-width: 0;
  }

  body.admin-onepage #gjesteliste .admin-rsvp-mobile-identity > strong {
    min-width: 0;
    overflow-wrap: anywhere;
    color: rgba(31, 29, 26, 0.9);
    font-family: inherit;
    font-size: 0.94rem;
    font-weight: 680;
    letter-spacing: -0.012em;
    line-height: 1.18;
  }

  body.admin-onepage #gjesteliste .admin-rsvp-mobile-identity > small {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: rgba(31, 29, 26, 0.43);
    font-size: 0.68rem;
    font-weight: 500;
    line-height: 1.25;
  }

  body.admin-onepage #gjesteliste .admin-rsvp-mobile-chevron {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.8rem;
    height: 1.8rem;
    border: 1px solid rgba(31, 29, 26, 0.08);
    border-radius: 999px;
    background: rgba(255, 253, 249, 0.62);
    color: rgba(31, 29, 26, 0.38);
    font-family: Arial, sans-serif;
    font-size: 1.22rem;
    font-weight: 300;
    line-height: 1;
  }

  body.admin-onepage #gjesteliste .admin-rsvp-mobile-companion {
    margin: -0.02rem 0 0;
    color: rgba(31, 29, 26, 0.5);
    font-size: 0.67rem;
    line-height: 1.3;
  }

  body.admin-onepage #gjesteliste .admin-rsvp-mobile-companion strong {
    color: rgba(31, 29, 26, 0.66);
    font-weight: 650;
  }

  body.admin-onepage #gjesteliste .admin-rsvp-mobile-statuses {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.28rem;
  }

  body.admin-onepage #gjesteliste .admin-rsvp-mobile-status {
    display: inline-flex;
    align-items: center;
    min-height: 1.45rem;
    padding: 0.3rem 0.5rem;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 0.57rem;
    font-weight: 760;
    letter-spacing: 0.055em;
    line-height: 1;
    white-space: nowrap;
  }

  body.admin-onepage #gjesteliste .admin-rsvp-mobile-status.is-yes {
    border-color: rgba(82, 113, 90, 0.12);
    background: rgba(82, 113, 90, 0.09);
    color: rgba(54, 81, 61, 0.94);
  }

  body.admin-onepage #gjesteliste .admin-rsvp-mobile-status.is-no,
  body.admin-onepage #gjesteliste .admin-rsvp-mobile-status.is-deleted {
    border-color: rgba(162, 80, 69, 0.12);
    background: rgba(162, 80, 69, 0.075);
    color: rgba(117, 53, 46, 0.92);
  }

  body.admin-onepage #gjesteliste .admin-rsvp-mobile-status.is-unsure,
  body.admin-onepage #gjesteliste .admin-rsvp-mobile-status.is-attention {
    border-color: rgba(165, 130, 77, 0.17);
    background: rgba(205, 179, 138, 0.12);
    color: rgba(112, 82, 43, 0.94);
  }

  body.admin-onepage #gjesteliste .admin-rsvp-mobile-status.is-not_applicable,
  body.admin-onepage #gjesteliste .admin-rsvp-mobile-status.is-neutral {
    border-color: rgba(31, 29, 26, 0.07);
    background: rgba(31, 29, 26, 0.035);
    color: rgba(31, 29, 26, 0.52);
  }

  body.admin-onepage #gjesteliste .admin-rsvp-mobile-seating {
    display: flex;
    flex-wrap: wrap;
    gap: 0.28rem 0.65rem;
    padding-top: 0.44rem;
    border-top: 1px solid rgba(205, 179, 138, 0.13);
  }

  body.admin-onepage #gjesteliste .admin-rsvp-mobile-seating > span {
    position: relative;
    padding-left: 0.55rem;
    color: rgba(31, 29, 26, 0.48);
    font-size: 0.61rem;
    font-weight: 560;
    line-height: 1.35;
  }

  body.admin-onepage #gjesteliste .admin-rsvp-mobile-seating > span::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.4em;
    width: 0.3rem;
    height: 0.3rem;
    border-radius: 999px;
    background: rgba(31, 29, 26, 0.18);
  }

  body.admin-onepage #gjesteliste .admin-rsvp-mobile-seating > span.is-placed::before {
    background: rgba(82, 113, 90, 0.62);
  }

  body.admin-onepage #gjesteliste .admin-rsvp-mobile-seating > span.is-unplaced::before {
    background: rgba(165, 130, 77, 0.64);
  }

  body.admin-onepage #gjesteliste .admin-rsvp-mobile-seating > span.is-not_linked::before {
    background: rgba(162, 80, 69, 0.48);
  }

  body.admin-onepage #gjesteliste .admin-list-table-flat tbody tr[data-admin-empty-row] {
    display: block;
    border: 1px dashed rgba(31, 29, 26, 0.1);
    border-radius: 1rem;
    background: rgba(255, 253, 249, 0.42);
  }

  body.admin-onepage #gjesteliste .admin-list-table-flat tbody tr[data-admin-empty-row] > td {
    display: block;
    padding: 1.2rem 0.8rem;
    border: 0;
  }

  body.admin-onepage #gjesteliste .admin-list-pagination {
    margin-top: 0.65rem;
    border-radius: 0.9rem;
    box-shadow: none;
  }
}

@media (max-width: 380px) {
  body.admin-onepage #gjesteliste .admin-list-toolbar-flat {
    grid-template-columns: 1fr;
  }

  body.admin-onepage #gjesteliste .admin-filter-toggle {
    width: 100%;
  }

  body.admin-onepage #gjesteliste .admin-filter-menu {
    right: 0;
    left: 0;
    width: 100%;
  }
}


/* ==========================================================================
   v125 · Dashboard · Automatisk + skal aldri brytes over to linjer
   Beholder kontrollbredden fra v111; kun tekstflyten låses.
   ========================================================================== */
body.admin-onepage #dashboard
.admin-dashboard-invitation-summary
.admin-dashboard-invitation-source {
  flex-wrap: nowrap;
  white-space: nowrap;
}

/* ========================================================================== 
   v126 · Dashboard · Automatisk + matcher Administrer-typografien
   ========================================================================== */
body.admin-onepage #dashboard
.admin-dashboard-setting-link-card
.admin-dashboard-setting-link,
body.admin-onepage #dashboard
.admin-dashboard-invitation-summary
.admin-dashboard-invitation-source {
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1;
}

/* ========================================================================== 
   v127 · Dashboard · geometrisk sentrering av Administrer og Automatisk +
   Begge kontrollene bruker samme faktiske boks og ingen intern vertikal
   padding, slik at teksten sentreres av flex-layouten i begge akser.
   ========================================================================== */
body.admin-onepage #dashboard
.admin-dashboard-setting-link-card
.admin-dashboard-setting-link,
body.admin-onepage #dashboard
.admin-dashboard-invitation-summary
.admin-dashboard-invitation-source {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  height: 2.45rem;
  min-height: 2.45rem;
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  vertical-align: middle;
}

/* ========================================================================== 
   v128 · Dashboard · roligere optisk balanse for Automatisk
   Selve ordet sentreres i pillen. Plussikonet tas ut av tekstflyten og
   plasseres diskret på høyre side, slik at etiketten ikke ser forskjøvet ut.
   ========================================================================== */
body.admin-onepage #dashboard
.admin-dashboard-invitation-summary
.admin-dashboard-invitation-source {
  position: relative;
  gap: 0;
  padding-right: 1.55rem;
  padding-left: 1.55rem;
}

body.admin-onepage #dashboard
.admin-dashboard-invitation-summary
.admin-dashboard-invitation-source::after {
  position: absolute;
  top: 50%;
  right: 0.72rem;
  width: auto;
  height: auto;
  margin: 0;
  font-size: 0.68rem;
  font-weight: 500;
  line-height: 1;
  opacity: 0.68;
  transform: translateY(-50%);
}

body.admin-onepage #dashboard
.admin-dashboard-invitation-reveal[open]
.admin-dashboard-invitation-source::after {
  margin: 0;
  transform: translateY(-50%) rotate(45deg);
}

/* ==========================================================================
   v129 · Dashboard · luft mellom Automatisk og pluss
   Beholder optisk sentrering fra v128, men gir teksten reell plass og flytter
   plussindikatoren litt ut mot høyrekanten slik at den ikke klemmes inn.
   ========================================================================== */
body.admin-onepage #dashboard
.admin-dashboard-invitation-summary
.admin-dashboard-invitation-source {
  padding-left: 0.95rem;
  padding-right: 1.35rem;
}

body.admin-onepage #dashboard
.admin-dashboard-invitation-summary
.admin-dashboard-invitation-source::after {
  right: 0.48rem;
  width: 0.9rem;
  height: 0.9rem;
  opacity: 0.76;
}

/* ========================================================================== 
   Nettside og tilgang · raffinert statusstripe · 2026-08-17 v139
   Én samlet statusflate med stabile skillelinjer. Vi bruker et eget ::after-
   skille i stedet for border-right slik at eldre nth-child-regler ikke kan
   fjerne skillet mellom RSVP-status og Gjestetilgang.
   ========================================================================== */
body.site-rsvp-settings-page .site-control-overview {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 0 !important;
  padding: 0 !important;
  overflow: hidden;
  border: 1px solid rgba(31, 29, 26, 0.075);
  border-radius: 1.12rem;
  background: rgba(255, 253, 249, 0.62);
  box-shadow:
    0 12px 30px rgba(31, 29, 26, 0.028),
    inset 0 1px 0 rgba(255, 255, 255, 0.82);
}

body.site-rsvp-settings-page .site-control-overview article,
body.site-rsvp-settings-page .site-control-overview article:nth-child(2),
body.site-rsvp-settings-page .site-control-overview article:last-child {
  position: relative;
  min-width: 0;
  min-height: 6.25rem;
  padding: 1rem 1.1rem 0.95rem 2.18rem;
  border-right: 0 !important;
  border-bottom: 0 !important;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

/* Stabil, optisk lettere vertikal separator mellom alle fire feltene. */
body.site-rsvp-settings-page .site-control-overview article:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 0.9rem;
  right: 0;
  bottom: 0.9rem;
  width: 1px;
  background: linear-gradient(
    180deg,
    transparent,
    rgba(205, 179, 138, 0.24) 20%,
    rgba(31, 29, 26, 0.09) 50%,
    rgba(205, 179, 138, 0.2) 80%,
    transparent
  );
  pointer-events: none;
}

body.site-rsvp-settings-page .site-control-overview article::before {
  top: 1.13rem;
  left: 1.08rem;
  width: 0.43rem;
  height: 0.43rem;
  box-shadow: 0 0 0 0.2rem rgba(205, 179, 138, 0.1);
}

body.site-rsvp-settings-page .site-control-overview article.is-danger::before,
body.site-rsvp-settings-page .site-control-overview article.is-error::before,
body.site-rsvp-settings-page .site-control-overview article.is-closed::before,
body.site-rsvp-settings-page .site-control-overview article.is-missing::before {
  box-shadow: 0 0 0 0.2rem rgba(162, 80, 69, 0.085);
}

body.site-rsvp-settings-page .site-control-overview article.is-success::before,
body.site-rsvp-settings-page .site-control-overview article.is-open::before,
body.site-rsvp-settings-page .site-control-overview article.is-ready::before,
body.site-rsvp-settings-page .site-control-overview article.is-open-access::before {
  box-shadow: 0 0 0 0.2rem rgba(113, 129, 109, 0.09);
}

body.site-rsvp-settings-page .site-control-overview span {
  display: block;
  margin: 0 0 0.34rem;
  color: rgba(31, 29, 26, 0.46);
  font-size: 0.59rem;
  font-weight: 760;
  letter-spacing: 0.145em;
  line-height: 1.2;
}

body.site-rsvp-settings-page .site-control-overview strong {
  display: block;
  margin: 0;
  color: rgba(31, 29, 26, 0.94);
  font-family: var(--font-serif);
  font-size: clamp(1.14rem, 1.55vw, 1.32rem);
  font-weight: 400;
  letter-spacing: -0.018em;
  line-height: 1.12;
}

body.site-rsvp-settings-page .site-control-overview small {
  display: block;
  margin: 0.32rem 0 0;
  color: rgba(31, 29, 26, 0.46);
  font-size: 0.66rem;
  line-height: 1.38;
}

@media (max-width: 1040px) {
  body.site-rsvp-settings-page .site-control-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.site-rsvp-settings-page .site-control-overview article,
  body.site-rsvp-settings-page .site-control-overview article:nth-child(2),
  body.site-rsvp-settings-page .site-control-overview article:last-child {
    border-right: 0 !important;
    border-bottom: 0 !important;
  }

  body.site-rsvp-settings-page .site-control-overview article::after {
    display: none;
  }

  body.site-rsvp-settings-page .site-control-overview article:nth-child(odd)::after {
    content: "";
    display: block;
    position: absolute;
    top: 0.85rem;
    right: 0;
    bottom: 0.85rem;
    width: 1px;
    background: linear-gradient(
      180deg,
      transparent,
      rgba(205, 179, 138, 0.22) 22%,
      rgba(31, 29, 26, 0.085) 50%,
      rgba(205, 179, 138, 0.18) 78%,
      transparent
    );
  }

  body.site-rsvp-settings-page .site-control-overview article:nth-child(-n+2) {
    border-bottom: 1px solid rgba(31, 29, 26, 0.065) !important;
  }
}

@media (max-width: 620px) {
  body.site-rsvp-settings-page .site-control-overview {
    grid-template-columns: 1fr !important;
  }

  body.site-rsvp-settings-page .site-control-overview article,
  body.site-rsvp-settings-page .site-control-overview article:nth-child(2),
  body.site-rsvp-settings-page .site-control-overview article:nth-child(-n+2) {
    min-height: 0;
    padding: 0.88rem 1rem 0.84rem 2.08rem;
    border-right: 0 !important;
    border-bottom: 1px solid rgba(31, 29, 26, 0.065) !important;
  }

  body.site-rsvp-settings-page .site-control-overview article:last-child {
    border-bottom: 0 !important;
  }

  body.site-rsvp-settings-page .site-control-overview article::after,
  body.site-rsvp-settings-page .site-control-overview article:nth-child(odd)::after {
    display: none;
  }

  body.site-rsvp-settings-page .site-control-overview article::before {
    top: 1.03rem;
    left: 1rem;
  }
}

/* ========================================================================== 
   v141 – Adminbrukere: roligere linjebruk i brukerkort
   Én tydelig intern separator er nok. Den dekorative venstrelinjen og
   skillelinjen under identiteten fjernes, mens metadata/footer får én svak
   overgang fra redigeringsfeltene.
   ========================================================================== */
body.admin-onepage .admin-user-card {
  gap: 1rem;
}

body.admin-onepage .admin-user-card::before {
  content: none;
  display: none;
}

body.admin-onepage .admin-user-card-heading {
  padding-bottom: 0.15rem;
  border-bottom: 0;
}

body.admin-onepage .admin-user-meta {
  position: relative;
  padding-top: 0.9rem;
  border-top: 0;
}

body.admin-onepage .admin-user-meta::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(
    90deg,
    rgba(31,29,26,0.07),
    rgba(31,29,26,0.035) 72%,
    rgba(31,29,26,0)
  );
  pointer-events: none;
}

@media (max-width: 780px) {
  body.admin-onepage .admin-user-card {
    gap: 0.82rem;
  }

  body.admin-onepage .admin-user-card-heading {
    padding-bottom: 0.05rem;
  }

  body.admin-onepage .admin-user-meta {
    padding-top: 0.75rem;
  }
}

/* ========================================================================== 
   v146 · Nettside og tilgang · redusert teksthierarki
   Fire logiske områder beholdes, men trinnnumre og gjentatte undertitler er fjernet.
   Funksjonene er de samme; champagne-markører gir rolig visuelt anker.
   ========================================================================== */
body.site-rsvp-settings-page .site-control-redesign-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  align-items: start;
  gap: 1rem !important;
}

/* Hovednettside + RSVP ligger som to likeverdige kontrollkort. */
body.site-rsvp-settings-page .site-control-redesign-grid > .site-control-top-card {
  grid-column: auto !important;
  display: flex;
  flex-direction: column;
  min-width: 0;
  height: 100%;
  padding: 1.35rem !important;
}

body.site-rsvp-settings-page .site-control-redesign-grid > .site-control-top-card .site-control-card-heading,
body.site-rsvp-settings-page .site-control-group-heading {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 0.72rem !important;
  margin: 0 0 1rem !important;
  padding: 0 !important;
  border: 0 !important;
}

/* Diskret champagne-detalj i stedet for trinnnummer. */
body.site-rsvp-settings-page .site-control-redesign-grid > .site-control-top-card .site-control-card-heading::before,
body.site-rsvp-settings-page .site-control-group-heading::before {
  content: "";
  display: block;
  width: 1.35rem;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(168, 143, 104, 0.92), rgba(205, 179, 138, 0.46));
  box-shadow: 0 1px 4px rgba(168, 143, 104, 0.12);
}

body.site-rsvp-settings-page .site-control-redesign-grid > .site-control-top-card .site-control-card-heading h2,
body.site-rsvp-settings-page .site-control-group-heading h2 {
  margin: 0;
  font-size: clamp(1.42rem, 2vw, 1.72rem);
  letter-spacing: -0.03em;
  line-height: 1.08;
}

body.site-rsvp-settings-page .site-control-redesign-grid > .site-control-top-card .site-control-options {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 0.56rem !important;
}

body.site-rsvp-settings-page .site-control-redesign-grid > .site-control-top-card .site-control-options label {
  min-height: 4.65rem !important;
  padding: 0.78rem 3.8rem 0.8rem 0.88rem !important;
  border-radius: 0.9rem !important;
}

body.site-rsvp-settings-page .site-control-redesign-grid > .site-control-top-card .site-control-options label:has(input:checked)::after {
  top: 50% !important;
  right: 0.72rem !important;
  min-height: 1.45rem;
  padding: 0.3rem 0.42rem;
  font-size: 0.48rem;
  transform: translateY(-50%) !important;
}

body.site-rsvp-settings-page .site-control-redesign-grid > .site-control-top-card .site-control-options strong {
  font-size: 0.69rem;
}

body.site-rsvp-settings-page .site-control-redesign-grid > .site-control-top-card .site-control-options small {
  font-size: 0.76rem;
  line-height: 1.4;
}

body.site-rsvp-settings-page .site-control-redesign-grid > .site-control-top-card > .site-control-field:not([hidden]) {
  width: 100% !important;
  max-width: none !important;
  margin: 0.7rem 0 0 !important;
}

body.site-rsvp-settings-page .site-control-redesign-grid > .site-control-top-card .site-control-note {
  margin: 0.7rem 0 0;
  font-size: 0.72rem;
  line-height: 1.48;
}

body.site-rsvp-settings-page .site-control-redesign-grid > .site-control-top-card .site-control-deadline-explanation {
  margin-top: 0.7rem;
}

body.site-rsvp-settings-page .site-control-redesign-grid > .site-control-top-card .site-control-card-footer {
  margin-top: auto !important;
  padding-top: 0.9rem !important;
}

/* Datoer og Tilgang er brede samleområder, ikke flere store kort etter hverandre. */
body.site-rsvp-settings-page .site-control-group-card {
  grid-column: 1 / -1 !important;
  padding: 1.35rem !important;
  overflow: hidden;
}

body.site-rsvp-settings-page .site-control-date-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin-top: 0.1rem;
  border: 1px solid rgba(31, 29, 26, 0.065);
  border-radius: 1rem;
  background: rgba(255, 253, 249, 0.34);
  overflow: hidden;
}

body.site-rsvp-settings-page .site-control-date-form {
  display: flex !important;
  flex-direction: column;
  min-width: 0;
  margin: 0 !important;
  padding: 1.15rem !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.site-rsvp-settings-page .site-control-date-form + .site-control-date-form {
  border-left: 1px solid rgba(31, 29, 26, 0.07) !important;
}

body.site-rsvp-settings-page .site-control-date-form .site-control-field > span:first-child {
  color: rgba(31, 29, 26, 0.86);
  font-family: var(--font-serif);
  font-size: 1.12rem;
  font-weight: 400;
  letter-spacing: -0.018em;
  line-height: 1.15;
}

body.site-rsvp-settings-page .site-control-date-note {
  margin: 0.72rem 0 0;
  color: rgba(31, 29, 26, 0.48);
  font-size: 0.7rem;
  line-height: 1.48;
}

body.site-rsvp-settings-page .site-control-date-form > .site-control-field {
  display: grid !important;
  align-content: start !important;
  gap: 0.42rem !important;
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.site-rsvp-settings-page .site-control-date-form .admin-date-input-shell {
  width: 100%;
}

body.site-rsvp-settings-page .site-control-date-form .site-control-deadline-warning {
  margin: 0.85rem 0 0;
}

body.site-rsvp-settings-page .site-control-date-form .site-control-card-footer {
  margin-top: auto !important;
  padding-top: 0.9rem !important;
  border: 0 !important;
}

/* Ett samlet tilgangskort, med Bryllupssiden og Dokumenter som to rolige rader. */
body.site-rsvp-settings-page .site-control-access-master-body {
  display: block;
  margin-top: 0.1rem;
  border: 1px solid rgba(31, 29, 26, 0.065);
  border-radius: 1rem;
  background: rgba(255, 253, 249, 0.34);
  overflow: hidden;
}

body.site-rsvp-settings-page .site-control-access-section {
  display: block !important;
  margin: 0 !important;
  padding: 1.15rem !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.site-rsvp-settings-page .site-control-access-section + .site-control-access-section {
  border-top: 1px solid rgba(31, 29, 26, 0.07) !important;
}

body.site-rsvp-settings-page .site-control-service-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 0 0 0.92rem;
}

body.site-rsvp-settings-page .site-control-service-heading h3 {
  margin: 0;
  color: rgba(31, 29, 26, 0.9);
  font-family: var(--font-serif);
  font-size: 1.22rem;
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.12;
}

body.site-rsvp-settings-page .site-control-service-status {
  display: inline-flex;
  align-items: center;
  min-height: 1.5rem;
  padding: 0.25rem 0.52rem;
  border: 1px solid rgba(31, 29, 26, 0.07);
  border-radius: 999px;
  background: rgba(31, 29, 26, 0.025);
  color: rgba(31, 29, 26, 0.58);
  font-size: 0.56rem;
  font-weight: 750;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}

body.site-rsvp-settings-page .site-control-service-status.is-good {
  border-color: rgba(87, 123, 91, 0.16);
  background: rgba(87, 123, 91, 0.055);
  color: rgba(64, 101, 69, 0.78);
}

body.site-rsvp-settings-page .site-control-service-status.is-warning {
  border-color: rgba(168, 143, 104, 0.2);
  background: rgba(205, 179, 138, 0.07);
  color: rgba(112, 82, 40, 0.76);
}

body.site-rsvp-settings-page .site-control-service-status.is-ready {
  border-color: rgba(87, 123, 91, 0.16);
  background: rgba(87, 123, 91, 0.055);
  color: rgba(64, 101, 69, 0.78);
}

body.site-rsvp-settings-page .site-control-service-status.is-open-access {
  border-color: rgba(168, 143, 104, 0.2);
  background: rgba(205, 179, 138, 0.07);
  color: rgba(112, 82, 40, 0.76);
}

body.site-rsvp-settings-page .site-control-service-status.is-closed {
  color: rgba(31, 29, 26, 0.48);
}

body.site-rsvp-settings-page .site-control-service-status.is-missing {
  border-color: rgba(162, 80, 69, 0.14);
  background: rgba(162, 80, 69, 0.045);
  color: rgba(132, 69, 59, 0.74);
}

body.site-rsvp-settings-page .site-control-access-section .site-control-access-hub-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr) !important;
  align-items: start;
  gap: 1.35rem !important;
}

body.site-rsvp-settings-page .site-control-access-section .site-control-access-form,
body.site-rsvp-settings-page .site-control-access-section .site-control-password-area {
  min-width: 0;
  width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.site-rsvp-settings-page .site-control-access-section .site-control-password-area {
  padding-left: 1.35rem !important;
  border-left: 1px solid rgba(31, 29, 26, 0.065) !important;
}

body.site-rsvp-settings-page .site-control-access-section .site-control-subsection-header,
body.site-rsvp-settings-page .site-control-access-section .site-control-password-heading {
  margin: 0 0 0.72rem !important;
}

body.site-rsvp-settings-page .site-control-access-section .site-control-subsection-label {
  font-size: 0.59rem;
  letter-spacing: 0.16em;
}

body.site-rsvp-settings-page .site-control-access-section .site-control-subsection-header small,
body.site-rsvp-settings-page .site-control-access-section .site-control-password-heading > div:first-child > small {
  display: block;
  margin-top: 0.25rem;
  color: rgba(31, 29, 26, 0.44);
  font-size: 0.7rem;
  line-height: 1.4;
}

body.site-rsvp-settings-page .site-control-access-section .site-control-access-options {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 0.55rem !important;
}

body.site-rsvp-settings-page .site-control-access-section .site-control-access-options label {
  min-height: 4.35rem !important;
  padding: 0.76rem 3.65rem 0.78rem 0.85rem !important;
  border-radius: 0.82rem !important;
}

body.site-rsvp-settings-page .site-control-access-section .site-control-access-options label:has(input:checked)::after {
  top: 50% !important;
  right: 0.68rem !important;
  min-height: 1.4rem;
  padding: 0.28rem 0.4rem;
  font-size: 0.47rem;
  transform: translateY(-50%) !important;
}

body.site-rsvp-settings-page .site-control-access-section .site-control-open-access-warning {
  margin: 0.65rem 0 0 !important;
  padding: 0.78rem !important;
}

body.site-rsvp-settings-page .site-control-access-section .site-control-card-footer-tight {
  margin-top: 0.75rem !important;
  padding-top: 0 !important;
  border: 0 !important;
}

body.site-rsvp-settings-page .site-control-access-section .site-control-password-heading {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: start !important;
  gap: 0.8rem !important;
}

body.site-rsvp-settings-page .site-control-access-section .site-control-password-heading .site-control-security-status {
  width: auto !important;
  max-width: 15rem !important;
  margin: 0 !important;
  padding: 0.58rem 0.7rem !important;
  border: 0 !important;
  background: rgba(31, 29, 26, 0.026) !important;
}

body.site-rsvp-settings-page .site-control-access-section .site-control-password-heading .site-control-security-status strong {
  font-size: 0.68rem;
}

body.site-rsvp-settings-page .site-control-access-section .site-control-password-heading .site-control-security-status small {
  font-size: 0.64rem;
  line-height: 1.32;
}

body.site-rsvp-settings-page .site-control-access-section .site-control-password-form {
  gap: 0.72rem !important;
}

body.site-rsvp-settings-page .site-control-access-section .site-control-password-fields {
  gap: 0.62rem !important;
}

body.site-rsvp-settings-page .site-control-access-section .site-control-password-footer {
  gap: 0.7rem !important;
  padding-top: 0 !important;
  border: 0 !important;
}

body.site-rsvp-settings-page .site-control-access-section .site-control-password-footer .site-control-note {
  font-size: 0.68rem;
}

/* Litt mindre tung kortflate generelt i den nye strukturen. */
body.site-rsvp-settings-page .site-control-redesign-grid > .site-control-card {
  border-color: rgba(31, 29, 26, 0.065);
  background: rgba(255, 253, 249, 0.54);
  box-shadow:
    0 8px 24px rgba(31, 29, 26, 0.025),
    inset 0 1px 0 rgba(255, 255, 255, 0.78);
}

@media (max-width: 1050px) {
  body.site-rsvp-settings-page .site-control-redesign-grid {
    grid-template-columns: 1fr !important;
  }

  body.site-rsvp-settings-page .site-control-redesign-grid > .site-control-top-card,
  body.site-rsvp-settings-page .site-control-group-card {
    grid-column: 1 !important;
  }

  body.site-rsvp-settings-page .site-control-access-section .site-control-access-hub-grid {
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }

  body.site-rsvp-settings-page .site-control-access-section .site-control-password-area {
    padding: 1rem 0 0 !important;
    border-left: 0 !important;
    border-top: 1px solid rgba(31, 29, 26, 0.065) !important;
  }
}

@media (max-width: 760px) {
  body.site-rsvp-settings-page .site-control-redesign-grid {
    gap: 0.78rem !important;
  }

  body.site-rsvp-settings-page .site-control-redesign-grid > .site-control-top-card,
  body.site-rsvp-settings-page .site-control-group-card {
    padding: 1.05rem !important;
    border-radius: 1.05rem !important;
  }

  body.site-rsvp-settings-page .site-control-date-grid {
    grid-template-columns: 1fr;
  }

  body.site-rsvp-settings-page .site-control-date-form {
    padding: 1rem !important;
  }

  body.site-rsvp-settings-page .site-control-date-form + .site-control-date-form {
    border-left: 0 !important;
    border-top: 1px solid rgba(31, 29, 26, 0.07) !important;
  }

  body.site-rsvp-settings-page .site-control-access-section {
    padding: 1rem !important;
  }

  body.site-rsvp-settings-page .site-control-service-heading {
    align-items: center;
    flex-direction: row;
    gap: 0.65rem;
  }

  body.site-rsvp-settings-page .site-control-service-status {
    flex: 0 0 auto;
    font-size: 0.52rem;
  }

  body.site-rsvp-settings-page .site-control-access-section .site-control-password-heading {
    grid-template-columns: 1fr !important;
  }

  body.site-rsvp-settings-page .site-control-access-section .site-control-password-heading .site-control-security-status {
    width: 100% !important;
    max-width: none !important;
  }

  body.site-rsvp-settings-page .site-control-access-section .site-control-password-fields {
    grid-template-columns: 1fr !important;
  }

  body.site-rsvp-settings-page .site-control-access-section .site-control-password-footer,
  body.site-rsvp-settings-page .site-control-access-section .site-control-document-actions {
    align-items: stretch !important;
    flex-direction: column !important;
  }

  body.site-rsvp-settings-page .site-control-access-section .site-control-password-footer .button,
  body.site-rsvp-settings-page .site-control-access-section .site-control-document-actions .button {
    width: 100%;
  }
}

@media (max-width: 520px) {
  body.site-rsvp-settings-page .site-control-redesign-grid > .site-control-top-card .site-control-card-heading,
  body.site-rsvp-settings-page .site-control-group-heading {
    gap: 0.58rem !important;
  }

  body.site-rsvp-settings-page .site-control-redesign-grid > .site-control-top-card .site-control-card-heading::before,
  body.site-rsvp-settings-page .site-control-group-heading::before {
    width: 1.1rem;
  }

  body.site-rsvp-settings-page .site-control-redesign-grid > .site-control-top-card .site-control-card-heading h2,
  body.site-rsvp-settings-page .site-control-group-heading h2 {
    font-size: 1.34rem;
  }

  body.site-rsvp-settings-page .site-control-redesign-grid > .site-control-top-card .site-control-options label {
    min-height: 4.45rem !important;
  }
}

/* ========================================================================== 
   v147 · Nettside og tilgang · typografi harmonisert med resten av admin
   Serif brukes kun på hovedtitler. Felter, undernivåer, status og hjelpetekst
   følger samme sans-serif-hierarki som øvrige adminskjemaer.
   ========================================================================== */
body.site-rsvp-settings-page .site-control-redesign-grid > .site-control-top-card .site-control-card-heading h2,
body.site-rsvp-settings-page .site-control-group-heading h2 {
  font-family: var(--font-serif);
  font-size: clamp(1.55rem, 1.9vw, 1.72rem);
  font-weight: 400;
  letter-spacing: -0.032em;
  line-height: 1.04;
}

/* Samme labelstil som feltetiketter i resten av admin. */
body.site-rsvp-settings-page .site-control-redesign-grid .site-control-options legend,
body.site-rsvp-settings-page .site-control-date-form .site-control-field > span:first-child,
body.site-rsvp-settings-page .site-control-access-section .site-control-subsection-label {
  color: rgba(31, 29, 26, 0.52);
  font-family: var(--font-sans);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.11em;
  line-height: 1.2;
  text-transform: uppercase;
}

/* Bryllupssiden / Dokumenter er undernivåer, ikke nye serif-overskrifter. */
body.site-rsvp-settings-page .site-control-service-heading h3 {
  color: rgba(31, 29, 26, 0.86);
  font-family: var(--font-sans);
  font-size: 0.84rem;
  font-weight: 720;
  letter-spacing: 0.015em;
  line-height: 1.25;
}

/* Valgtekst følger adminens vanlige kontrolltypografi. */
body.site-rsvp-settings-page .site-control-redesign-grid .site-control-options strong {
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 720;
  letter-spacing: 0.08em;
  line-height: 1.3;
}

body.site-rsvp-settings-page .site-control-redesign-grid .site-control-options small,
body.site-rsvp-settings-page .site-control-access-section .site-control-subsection-header small,
body.site-rsvp-settings-page .site-control-access-section .site-control-password-heading > div:first-child > small {
  color: rgba(31, 29, 26, 0.5);
  font-family: var(--font-sans);
  font-size: 0.76rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.48;
  text-transform: none;
}

/* Hjelpetekst skal være rolig brødtekst, ikke egen kursiv stil. */
body.site-rsvp-settings-page .site-control-note,
body.site-rsvp-settings-page .site-control-date-note,
body.site-rsvp-settings-page .site-control-access-section .site-control-password-footer .site-control-note {
  color: rgba(31, 29, 26, 0.48);
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.5;
}

body.site-rsvp-settings-page .site-control-access-section .site-control-password-heading .site-control-security-status strong {
  font-family: var(--font-sans);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.25;
}

body.site-rsvp-settings-page .site-control-access-section .site-control-password-heading .site-control-security-status small {
  font-family: var(--font-sans);
  font-size: 0.66rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.38;
}

body.site-rsvp-settings-page .site-control-service-status {
  font-family: var(--font-sans);
  font-weight: 700;
  letter-spacing: 0.09em;
}

@media (max-width: 520px) {
  body.site-rsvp-settings-page .site-control-redesign-grid > .site-control-top-card .site-control-card-heading h2,
  body.site-rsvp-settings-page .site-control-group-heading h2 {
    font-size: 1.45rem;
    letter-spacing: -0.028em;
  }
}

/* ========================================================================== 
   v148 · Nettside og tilgang · passordfelter på samme linje
   En eldre :last-of-type-margin gjorde at bekreftelsesfeltet fikk annen
   grid-høyde enn første passordfelt. Begge felt nullstilles lokalt her.
   ========================================================================== */
body.site-rsvp-settings-page
.site-control-access-section
.site-control-password-fields {
  align-items: start !important;
}

body.site-rsvp-settings-page
.site-control-access-section
.site-control-password-fields
.site-control-field,
body.site-rsvp-settings-page
.site-control-access-section
.site-control-password-form
.site-control-password-fields
.site-control-field:last-of-type {
  align-content: start !important;
  margin: 0 !important;
}


/* ========================================================================== 
   v150 · Nettside og tilgang · ett typografisk system
   Alle fire hovedområdene bruker samme tittel + champagne-undertittel.
   Interne seksjonsnavn bruker ett felles sans-serif-nivå.
   ========================================================================== */
body.site-rsvp-settings-page .site-control-redesign-grid > .site-control-top-card .site-control-card-heading,
body.site-rsvp-settings-page .site-control-group-heading {
  display: block !important;
  margin: 0 0 1rem !important;
  padding: 0 !important;
  border: 0 !important;
}

/* Den gamle champagne-streken erstattes av en faktisk undertittel. */
body.site-rsvp-settings-page .site-control-redesign-grid > .site-control-top-card .site-control-card-heading::before,
body.site-rsvp-settings-page .site-control-group-heading::before {
  content: none !important;
  display: none !important;
}

body.site-rsvp-settings-page .site-control-heading-copy {
  display: grid;
  gap: 0.28rem;
  min-width: 0;
}

body.site-rsvp-settings-page .site-control-redesign-grid > .site-control-top-card .site-control-card-heading h2,
body.site-rsvp-settings-page .site-control-group-heading h2 {
  margin: 0 !important;
  color: rgba(31, 29, 26, 0.94) !important;
  font-family: var(--font-serif) !important;
  font-size: clamp(1.55rem, 1.9vw, 1.72rem) !important;
  font-weight: 400 !important;
  letter-spacing: -0.032em !important;
  line-height: 1.04 !important;
}

body.site-rsvp-settings-page .site-control-heading-subtitle {
  margin: 0 !important;
  color: rgba(168, 143, 104, 0.96) !important;
  font-family: var(--font-sans) !important;
  font-size: 0.61rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.17em !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
}

/*
 * Samme undernivå i alle fire områder: Publisert versjon / Nye RSVP-svar /
 * Bryllupsdato / Svarfrist / Bryllupssiden / Dokumenter.
 */
body.site-rsvp-settings-page .site-control-redesign-grid .site-control-options legend:not(.visually-hidden),
body.site-rsvp-settings-page .site-control-date-form .site-control-field > span:first-child,
body.site-rsvp-settings-page .site-control-service-heading h3 {
  margin: 0 !important;
  color: rgba(31, 29, 26, 0.66) !important;
  font-family: var(--font-sans) !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.035em !important;
  line-height: 1.3 !important;
  text-transform: none !important;
}

body.site-rsvp-settings-page .site-control-redesign-grid .site-control-options legend:not(.visually-hidden) {
  margin-bottom: 0.72rem !important;
}

body.site-rsvp-settings-page .site-control-date-form .site-control-field > span:first-child {
  width: auto !important;
}

body.site-rsvp-settings-page .site-control-service-heading {
  min-height: 1.7rem;
  align-items: center !important;
}

/* Passord-underetiketter følger samme rolige kontrollspråk, men er mindre. */
body.site-rsvp-settings-page .site-control-access-section .site-control-subsection-label {
  color: rgba(31, 29, 26, 0.54) !important;
  font-family: var(--font-sans) !important;
  font-size: 0.66rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.055em !important;
  line-height: 1.25 !important;
  text-transform: none !important;
}

@media (max-width: 520px) {
  body.site-rsvp-settings-page .site-control-redesign-grid > .site-control-top-card .site-control-card-heading h2,
  body.site-rsvp-settings-page .site-control-group-heading h2 {
    font-size: 1.45rem !important;
    letter-spacing: -0.028em !important;
  }

  body.site-rsvp-settings-page .site-control-heading-subtitle {
    font-size: 0.58rem !important;
    letter-spacing: 0.15em !important;
  }
}


/* ========================================================================== 
   v151 · Nettside og tilgang · naturlige champagne-undertitler
   Hovednettsiden og RSVP bruker sine eksisterende fieldset-legender som
   undertittel. Datoer og Tilgang beholder et eget tilsvarende undertittelnivå.
   ========================================================================== */
body.site-rsvp-settings-page
.site-control-redesign-grid
> .site-control-top-card
.site-control-options
legend:not(.visually-hidden) {
  margin: 0 0 0.72rem !important;
  color: rgba(168, 143, 104, 0.96) !important;
  font-family: var(--font-sans) !important;
  font-size: 0.61rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.17em !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
}

/* Når eksisterende legend er undertittel skal avstanden fra hovedtittelen
   være lik avstanden til undertittelen i Datoer/Tilgang. */
body.site-rsvp-settings-page
.site-control-redesign-grid
> .site-control-top-card
.site-control-card-heading {
  margin-bottom: 0.28rem !important;
}

body.site-rsvp-settings-page
.site-control-redesign-grid
> .site-control-top-card
.site-control-options {
  margin-top: 0 !important;
}

/* Datoer/Tilgang: egen undertittel fordi disse områdene ikke har en naturlig
   legend rett under hovedtittelen. */
body.site-rsvp-settings-page .site-control-group-heading {
  margin-bottom: 1rem !important;
}

/* ========================================================================== 
   Nettside og tilgang · sentrert statusinnhold · v158
   Sentrerer innholdsgruppen i hver statuskolonne på desktop, samtidig som
   label, hovedstatus og hjelpetekst beholder en felles venstre kant.
   ========================================================================== */
@media (min-width: 1041px) {
  body.site-rsvp-settings-page .site-control-overview article,
  body.site-rsvp-settings-page .site-control-overview article:nth-child(2),
  body.site-rsvp-settings-page .site-control-overview article:last-child {
    display: grid;
    grid-template-columns: 0.48rem max-content;
    grid-template-rows: auto auto auto;
    column-gap: 0.62rem;
    align-content: center;
    justify-content: center;
    padding: 0.95rem 1.05rem;
    text-align: left;
  }

  body.site-rsvp-settings-page .site-control-overview article::before {
    position: static;
    grid-column: 1;
    grid-row: 1;
    align-self: center;
    justify-self: center;
    width: 0.43rem;
    height: 0.43rem;
    margin: 0;
  }

  body.site-rsvp-settings-page .site-control-overview article > span,
  body.site-rsvp-settings-page .site-control-overview article > strong,
  body.site-rsvp-settings-page .site-control-overview article > small {
    grid-column: 2;
    min-width: 0;
    max-width: 100%;
    text-align: left;
  }

  body.site-rsvp-settings-page .site-control-overview article > span {
    grid-row: 1;
  }

  body.site-rsvp-settings-page .site-control-overview article > strong {
    grid-row: 2;
  }

  body.site-rsvp-settings-page .site-control-overview article > small {
    grid-row: 3;
  }
}

/* ========================================================================== 
   Nettside og tilgang · balansert statusstripe · v159
   Lik, fast innholdssone i alle fire kolonner. Hele sonen sentreres i
   kolonnen, mens tekst og status beholdes venstrejustert internt.
   ========================================================================== */
@media (min-width: 1041px) {
  body.site-rsvp-settings-page .site-control-overview article,
  body.site-rsvp-settings-page .site-control-overview article:nth-child(2),
  body.site-rsvp-settings-page .site-control-overview article:last-child {
    grid-template-columns: 0.48rem minmax(0, 12.75rem);
    column-gap: 0.62rem;
    justify-content: center;
    padding-inline: 0.9rem;
  }

  body.site-rsvp-settings-page .site-control-overview article > span,
  body.site-rsvp-settings-page .site-control-overview article > strong,
  body.site-rsvp-settings-page .site-control-overview article > small {
    width: 100%;
    min-width: 0;
    max-width: none;
    text-align: left;
  }
}

/* Admin onepage · ingen separator mellom Dashboard og Gjesteliste. */
body.admin-onepage #gjesteliste.admin-full-section {
  border-top: 0 !important;
}


/* ========================================================================== 
   Dashboard · stabil desktop-canvas og mer aktuell arbeidsflyt
   ========================================================================== */
@media (min-width: 1280px) {
  body.admin-onepage #dashboard .admin-dashboard-followup-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.72rem;
  }

  body.admin-onepage #dashboard .admin-dashboard-followup-card {
    min-height: 7rem;
    gap: 0.72rem;
    padding: 0.9rem 0.92rem;
  }

  body.admin-onepage #dashboard .admin-dashboard-followup-card > strong {
    min-width: 1.9rem;
    font-size: clamp(2.25rem, 3vw, 3rem);
  }

  body.admin-onepage #dashboard .admin-dashboard-followup-card div span {
    font-size: 0.73rem;
  }

  body.admin-onepage #dashboard .admin-dashboard-followup-card p {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    font-size: 0.7rem;
    line-height: 1.45;
  }
}

body.admin-onepage #dashboard .admin-dashboard-workflow-step {
  opacity: 1;
}

body.admin-onepage #dashboard .admin-dashboard-workflow-state {
  display: block;
  margin: 0;
  color: rgba(168, 143, 104, 0.92);
  font-size: 0.54rem;
  font-weight: 850;
  letter-spacing: 0.16em;
  line-height: 1;
  text-transform: uppercase;
}

body.admin-onepage #dashboard .admin-dashboard-workflow-step.is-now
.admin-dashboard-workflow-marker {
  border-color: rgba(205, 179, 138, 0.82);
  background: #fffaf1;
  color: rgba(112, 79, 38, 0.96);
  box-shadow:
    0 0 0 4px rgba(205, 179, 138, 0.11),
    0 5px 14px rgba(31, 29, 26, 0.05);
}

body.admin-onepage #dashboard .admin-dashboard-workflow-step.is-now strong {
  color: rgba(31, 29, 26, 0.94);
}

body.admin-onepage #dashboard .admin-dashboard-workflow-step.is-next
.admin-dashboard-workflow-marker {
  border-color: rgba(168, 143, 104, 0.34);
  background: #fffdf9;
  color: rgba(112, 79, 38, 0.72);
}

body.admin-onepage #dashboard .admin-dashboard-workflow-step.is-next
.admin-dashboard-workflow-copy {
  opacity: 0.82;
}

body.admin-onepage #dashboard .admin-dashboard-workflow-step.is-later
.admin-dashboard-workflow-marker {
  border-color: rgba(31, 29, 26, 0.1);
  background: rgba(255, 253, 249, 0.76);
  color: rgba(31, 29, 26, 0.36);
}

body.admin-onepage #dashboard .admin-dashboard-workflow-step.is-later
.admin-dashboard-workflow-copy {
  opacity: 0.58;
}

body.admin-onepage #dashboard .admin-dashboard-workflow-step.is-complete
.admin-dashboard-workflow-copy {
  opacity: 0.72;
}

@media (min-width: 1280px) {
  body.admin-onepage #dashboard .admin-dashboard-workflow-panel {
    padding-top: 1.05rem;
    padding-bottom: 1.12rem;
  }

  body.admin-onepage #dashboard .admin-dashboard-workflow-panel
  .admin-dashboard-panel-heading {
    margin-bottom: 0.65rem;
  }

  body.admin-onepage #dashboard .admin-dashboard-workflow-copy {
    margin-top: 0.5rem;
  }

  body.admin-onepage #dashboard .admin-dashboard-workflow-step small {
    margin-top: 0.22rem;
  }
}

@media (max-width: 680px) {
  body.admin-onepage #dashboard .admin-dashboard-workflow-state {
    margin-right: 0.35rem;
    margin-bottom: 0.15rem;
    vertical-align: middle;
  }
}

/* ==========================================================================
   Adminbrukere · individuelle tilganger
   ========================================================================== */
body.admin-onepage .admin-user-permissions {
  border: 1px solid rgba(31, 29, 26, 0.08);
  border-radius: 0.95rem;
  background: rgba(255, 255, 255, 0.42);
  overflow: clip;
}

body.admin-onepage .admin-user-permissions > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.9rem 1rem;
  cursor: pointer;
  list-style: none;
  user-select: none;
}

body.admin-onepage .admin-user-permissions > summary::-webkit-details-marker {
  display: none;
}

body.admin-onepage .admin-user-permissions > summary > span {
  display: grid;
  gap: 0.16rem;
  min-width: 0;
}

body.admin-onepage .admin-user-permissions > summary strong {
  font-size: 0.83rem;
  letter-spacing: 0.01em;
}

body.admin-onepage .admin-user-permissions > summary small {
  color: rgba(31, 29, 26, 0.56);
  font-size: 0.7rem;
  line-height: 1.35;
}

body.admin-onepage .admin-user-permissions > summary > i {
  position: relative;
  display: block;
  width: 1.75rem;
  height: 1.75rem;
  flex: 0 0 1.75rem;
  border-radius: 50%;
  background: var(--gold-soft);
  color: transparent;
  font-size: 0;
  font-style: normal;
  line-height: 0;
  transition: transform 180ms ease;
}

body.admin-onepage .admin-user-permissions > summary > i::before,
body.admin-onepage .admin-user-permissions > summary > i::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.62rem;
  height: 1.5px;
  border-radius: 999px;
  background: rgba(31, 29, 26, 0.72);
  transform: translate(-50%, -50%);
}

body.admin-onepage .admin-user-permissions > summary > i::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

body.admin-onepage .admin-user-permissions[open] > summary > i {
  transform: rotate(45deg);
}

body.admin-onepage .admin-user-permissions-body {
  display: grid;
  gap: 1rem;
  padding: 0 1rem 1rem;
  border-top: 1px solid rgba(31, 29, 26, 0.055);
}

body.admin-onepage .admin-user-permissions-owner-note {
  margin-top: 1rem;
  padding: 0.72rem 0.8rem;
  border-radius: 0.75rem;
  background: rgba(205, 179, 138, 0.12);
  color: rgba(31, 29, 26, 0.68);
  font-size: 0.72rem;
  line-height: 1.45;
}

body.admin-onepage .admin-user-permission-group {
  display: grid;
  gap: 0.48rem;
}

body.admin-onepage .admin-user-permission-group:first-of-type {
  margin-top: 1rem;
}

body.admin-onepage .admin-user-permission-group > header strong {
  display: block;
  color: rgba(31, 29, 26, 0.58);
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.105em;
  text-transform: uppercase;
}

body.admin-onepage .admin-user-permission-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.42rem;
}

body.admin-onepage .admin-user-permission-option {
  display: flex;
  align-items: flex-start;
  gap: 0.68rem;
  min-width: 0;
  padding: 0.72rem;
  border: 1px solid rgba(31, 29, 26, 0.065);
  border-radius: 0.78rem;
  background: rgba(255, 255, 255, 0.56);
  cursor: pointer;
}

body.admin-onepage .admin-user-permission-option:has(input:checked) {
  border-color: rgba(205, 179, 138, 0.48);
  background: rgba(205, 179, 138, 0.08);
}

body.admin-onepage .admin-user-permission-option.is-locked {
  cursor: default;
}

body.admin-onepage .admin-user-permission-control {
  position: relative;
  width: 1.15rem;
  height: 1.15rem;
  flex: 0 0 1.15rem;
  margin-top: 0.05rem;
}

body.admin-onepage .admin-user-permission-control input {
  position: absolute;
  inset: 0;
  margin: 0;
  opacity: 0;
}

body.admin-onepage .admin-user-permission-control i {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  border: 1px solid rgba(31, 29, 26, 0.22);
  border-radius: 0.34rem;
  background: rgba(255, 255, 255, 0.9);
}

body.admin-onepage .admin-user-permission-control input:checked + i {
  border-color: var(--gold);
  background: var(--gold);
}

body.admin-onepage .admin-user-permission-control input:checked + i::after {
  content: "✓";
  color: #fff;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1;
}

body.admin-onepage .admin-user-permission-control input:focus-visible + i {
  outline: 2px solid rgba(205, 179, 138, 0.48);
  outline-offset: 2px;
}

body.admin-onepage .admin-user-permission-copy {
  display: grid;
  gap: 0.12rem;
  min-width: 0;
}

body.admin-onepage .admin-user-permission-copy strong {
  color: rgba(31, 29, 26, 0.85);
  font-size: 0.76rem;
  line-height: 1.25;
}

body.admin-onepage .admin-user-permission-copy small {
  color: rgba(31, 29, 26, 0.52);
  font-size: 0.66rem;
  line-height: 1.38;
}

body.admin-onepage .admin-rsvp-readonly-fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

@media (max-width: 780px) {
  body.admin-onepage .admin-user-permission-list {
    grid-template-columns: 1fr;
  }

  body.admin-onepage .admin-user-permissions > summary,
  body.admin-onepage .admin-user-permissions-body {
    padding-left: 0.82rem;
    padding-right: 0.82rem;
  }
}

/* ==========================================================================
   v214 · Adminbrukere – tydelig handlingshierarki og dirty state
   ========================================================================== */
body.admin-onepage .admin-user-save-state {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  max-height: 0;
  margin: 0;
  padding: 0 0.9rem;
  border: 1px solid transparent;
  border-radius: 0.9rem;
  background: rgba(205, 179, 138, 0.1);
  opacity: 0;
  overflow: hidden;
  visibility: hidden;
  transform: translateY(-0.35rem);
  pointer-events: none;
  transition:
    max-height 240ms ease,
    margin 240ms ease,
    padding 240ms ease,
    opacity 180ms ease,
    transform 240ms ease,
    visibility 0s linear 240ms,
    border-color 180ms ease;
}

body.admin-onepage .admin-user-card.is-dirty .admin-user-save-state {
  max-height: 6rem;
  margin-top: 0.15rem;
  padding: 0.72rem 0.82rem;
  border-color: rgba(205, 179, 138, 0.38);
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
  transition:
    max-height 240ms ease,
    margin 240ms ease,
    padding 240ms ease,
    opacity 180ms ease,
    transform 240ms ease,
    visibility 0s linear 0s,
    border-color 180ms ease;
}

body.admin-onepage .admin-user-save-state-copy {
  display: flex;
  align-items: center;
  gap: 0.66rem;
  min-width: 0;
}

body.admin-onepage .admin-user-save-state-copy > span:last-child {
  display: grid;
  gap: 0.08rem;
  min-width: 0;
}

body.admin-onepage .admin-user-save-state-copy strong {
  color: rgba(31, 29, 26, 0.86);
  font-size: 0.76rem;
  line-height: 1.25;
}

body.admin-onepage .admin-user-save-state-copy small {
  color: rgba(31, 29, 26, 0.52);
  font-size: 0.65rem;
  line-height: 1.35;
}

body.admin-onepage .admin-user-save-state-dot {
  width: 0.52rem;
  height: 0.52rem;
  flex: 0 0 0.52rem;
  border-radius: 50%;
  background: var(--gold);
  box-shadow: 0 0 0 0.22rem rgba(205, 179, 138, 0.13);
}

body.admin-onepage .admin-user-save-button {
  flex: 0 0 auto;
  min-height: 2.55rem;
  padding: 0.7rem 1rem;
  white-space: nowrap;
}

/* Kontohandlinger er bevisst roligere enn lagring og visuelt separert. */
body.admin-onepage .admin-user-card-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.05rem;
  padding-top: 0.72rem;
  border-top: 1px solid rgba(31, 29, 26, 0.055);
}

body.admin-onepage .admin-user-utility-button,
body.admin-onepage .admin-user-danger-button {
  appearance: none;
  border: 0;
  background: transparent;
  font: inherit;
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.055em;
  text-transform: uppercase;
  cursor: pointer;
  transition:
    color 180ms ease,
    background 180ms ease,
    border-color 180ms ease,
    transform 180ms ease;
}

body.admin-onepage .admin-user-utility-button {
  padding: 0.48rem 0.18rem;
  color: rgba(31, 29, 26, 0.52);
}

body.admin-onepage .admin-user-utility-button:hover,
body.admin-onepage .admin-user-utility-button:focus-visible {
  color: rgba(31, 29, 26, 0.88);
}

body.admin-onepage .admin-user-danger-button {
  margin-left: auto;
  padding: 0.5rem 0.68rem;
  border: 1px solid rgba(162, 80, 69, 0.28);
  border-radius: 0.66rem;
  background: rgba(162, 80, 69, 0.045);
  color: var(--danger);
}

body.admin-onepage .admin-user-danger-button:hover,
body.admin-onepage .admin-user-danger-button:focus-visible {
  border-color: rgba(162, 80, 69, 0.52);
  background: rgba(162, 80, 69, 0.1);
  color: #873f36;
  transform: translateY(-1px);
}

body.admin-onepage .admin-user-utility-button:focus-visible,
body.admin-onepage .admin-user-danger-button:focus-visible {
  outline: 2px solid rgba(205, 179, 138, 0.42);
  outline-offset: 2px;
}

@media (max-width: 780px) {
  body.admin-onepage .admin-user-save-state,
  body.admin-onepage .admin-user-card.is-dirty .admin-user-save-state {
    align-items: stretch;
  }

  body.admin-onepage .admin-user-card.is-dirty .admin-user-save-state {
    display: grid;
    gap: 0.72rem;
    max-height: 9rem;
  }

  body.admin-onepage .admin-user-save-button {
    width: 100%;
  }

  body.admin-onepage .admin-user-card-actions {
    display: flex;
    flex-direction: row;
    align-items: center;
  }

  body.admin-onepage .admin-user-card-actions .admin-user-utility-button,
  body.admin-onepage .admin-user-card-actions .admin-user-danger-button {
    width: auto;
    min-height: 0;
  }
}

@media (max-width: 430px) {
  body.admin-onepage .admin-user-card-actions {
    align-items: stretch;
    flex-direction: column;
  }

  body.admin-onepage .admin-user-utility-button {
    align-self: flex-start;
  }

  body.admin-onepage .admin-user-danger-button {
    align-self: stretch;
    margin-left: 0;
    text-align: center;
  }
}


/* ==========================================================================
   v215 · Adminbrukere – egen dialog for permanent sletting
   ========================================================================== */
body.has-admin-delete-dialog {
  overflow: hidden;
}

body.admin-onepage .admin-delete-dialog-layer {
  position: fixed;
  z-index: 1200;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 1rem;
  opacity: 0;
  visibility: hidden;
  transition: opacity 180ms ease, visibility 0s linear 180ms;
}

body.admin-onepage .admin-delete-dialog-layer[hidden] {
  display: none;
}

body.admin-onepage .admin-delete-dialog-layer.is-open {
  opacity: 1;
  visibility: visible;
  transition: opacity 180ms ease, visibility 0s linear 0s;
}

body.admin-onepage .admin-delete-dialog-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: rgba(31, 29, 26, 0.3);
  cursor: default;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

body.admin-onepage .admin-delete-dialog {
  position: relative;
  z-index: 1;
  width: min(33rem, 100%);
  padding: 1.45rem;
  border: 1px solid rgba(255, 255, 255, 0.58);
  border-radius: 1.4rem;
  background: #fffdf9;
  box-shadow: 0 28px 80px rgba(31, 29, 26, 0.22);
  opacity: 0;
  transform: translateY(0.55rem) scale(0.985);
  transition: opacity 180ms ease, transform 220ms cubic-bezier(.2,.75,.25,1);
}

body.admin-onepage .admin-delete-dialog-layer.is-open .admin-delete-dialog {
  opacity: 1;
  transform: translateY(0) scale(1);
}

body.admin-onepage .admin-delete-dialog-kicker {
  margin-bottom: 0.58rem;
  color: var(--danger);
  font-size: 0.61rem;
  font-weight: 800;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

body.admin-onepage .admin-delete-dialog h2 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(2rem, 6vw, 2.45rem);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.045em;
}

body.admin-onepage .admin-delete-dialog-intro {
  margin: 0.95rem 0 0;
  color: rgba(31, 29, 26, 0.56);
  font-size: 0.8rem;
  line-height: 1.58;
}

body.admin-onepage .admin-delete-dialog-intro strong {
  color: rgba(31, 29, 26, 0.88);
  font-weight: 700;
}

body.admin-onepage .admin-delete-dialog-user {
  display: grid;
  gap: 0.1rem;
  margin-top: 0.95rem;
  padding: 0.78rem 0.88rem;
  border: 1px solid rgba(31, 29, 26, 0.075);
  border-radius: 0.86rem;
  background: rgba(255, 255, 255, 0.62);
}

body.admin-onepage .admin-delete-dialog-user-name {
  color: rgba(31, 29, 26, 0.88);
  font-size: 0.8rem;
  font-weight: 750;
  line-height: 1.3;
}

body.admin-onepage .admin-delete-dialog-user-meta {
  color: rgba(31, 29, 26, 0.5);
  font-size: 0.67rem;
  line-height: 1.4;
}

body.admin-onepage .admin-delete-dialog-info {
  margin-top: 0.72rem;
  padding: 0.86rem 0.92rem;
  border: 1px solid rgba(162, 80, 69, 0.16);
  border-radius: 0.9rem;
  background: rgba(162, 80, 69, 0.045);
}

body.admin-onepage .admin-delete-dialog-info > strong {
  display: block;
  margin-bottom: 0.46rem;
  color: rgba(31, 29, 26, 0.76);
  font-size: 0.69rem;
  letter-spacing: 0.02em;
}

body.admin-onepage .admin-delete-dialog-info ul {
  display: grid;
  gap: 0.36rem;
  margin: 0;
  padding: 0 0 0 1rem;
  color: rgba(31, 29, 26, 0.55);
  font-size: 0.69rem;
  line-height: 1.5;
}

body.admin-onepage .admin-delete-dialog-info li::marker {
  color: rgba(162, 80, 69, 0.62);
}

body.admin-onepage .admin-delete-dialog-warning {
  margin: 0.72rem 0 0;
  color: var(--danger);
  font-size: 0.68rem;
  font-weight: 700;
}

body.admin-onepage .admin-delete-dialog-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.6rem;
  margin-top: 1.05rem;
}

body.admin-onepage .admin-delete-dialog-actions button {
  min-height: 2.35rem;
  padding: 0.7rem 1rem;
  border-radius: 999px;
  font: inherit;
  font-size: 0.66rem;
  font-weight: 750;
  letter-spacing: 0.085em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 180ms ease, color 180ms ease, border-color 180ms ease, transform 180ms ease;
}

body.admin-onepage .admin-delete-dialog-cancel {
  border: 1px solid rgba(31, 29, 26, 0.24);
  background: transparent;
  color: var(--ink);
}

body.admin-onepage .admin-delete-dialog-cancel:hover,
body.admin-onepage .admin-delete-dialog-cancel:focus-visible {
  border-color: rgba(31, 29, 26, 0.5);
  background: rgba(31, 29, 26, 0.035);
}

body.admin-onepage .admin-delete-dialog-confirm {
  border: 1px solid var(--danger);
  background: var(--danger);
  color: #fff;
}

body.admin-onepage .admin-delete-dialog-confirm:hover,
body.admin-onepage .admin-delete-dialog-confirm:focus-visible {
  border-color: var(--danger);
  background: transparent;
  color: var(--danger);
}

body.admin-onepage .admin-delete-dialog-confirm:disabled {
  opacity: 0.62;
  cursor: wait;
  transform: none;
}

body.admin-onepage .admin-delete-dialog-actions button:focus-visible {
  outline: 2px solid rgba(205, 179, 138, 0.52);
  outline-offset: 2px;
}

@media (max-width: 560px) {
  body.admin-onepage .admin-delete-dialog-layer {
    align-items: end;
    padding: 0.7rem;
  }

  body.admin-onepage .admin-delete-dialog {
    width: 100%;
    padding: 1.2rem;
    border-radius: 1.2rem;
  }

  body.admin-onepage .admin-delete-dialog-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  body.admin-onepage .admin-delete-dialog-actions button {
    width: 100%;
  }

  body.admin-onepage .admin-delete-dialog-confirm {
    grid-row: 1;
  }
}

/* ========================================================================== 
   v216 · Adminbrukere – rettigheter ved invitasjon + kompakt kontofooter
   ========================================================================== */
body.admin-onepage .admin-users-invite-form .admin-invite-permissions {
  grid-column: 1 / -1;
  width: 100%;
  margin-top: 0.15rem;
  align-self: stretch;
}

body.admin-onepage .admin-invite-permissions [data-admin-invite-owner-note][hidden] {
  display: none !important;
}

body.admin-onepage .admin-invitation-access-state strong {
  color: rgba(31, 29, 26, 0.74);
  font-weight: 700;
}

body.admin-onepage .admin-user-card-footer {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  min-width: 0;
  padding-top: 0.72rem;
  border-top: 1px solid rgba(31, 29, 26, 0.055);
}

body.admin-onepage .admin-user-meta.admin-user-meta-compact {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.28rem 0.42rem;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  color: rgba(31, 29, 26, 0.48);
  font-size: 0.66rem;
  line-height: 1.35;
}

body.admin-onepage .admin-user-meta.admin-user-meta-compact span {
  display: inline-flex;
  align-items: baseline;
  gap: 0.22rem;
  white-space: nowrap;
}

body.admin-onepage .admin-user-meta.admin-user-meta-compact strong {
  color: rgba(31, 29, 26, 0.68);
  font-size: inherit;
  font-weight: 650;
}

body.admin-onepage .admin-user-meta.admin-user-meta-compact > i {
  color: rgba(31, 29, 26, 0.25);
  font-style: normal;
}

body.admin-onepage .admin-user-account-menu {
  position: relative;
  flex: 0 0 auto;
}

body.admin-onepage .admin-user-account-menu > summary {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(31, 29, 26, 0.08);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.54);
  color: rgba(31, 29, 26, 0.5);
  cursor: pointer;
  list-style: none;
  transition: background 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
}

body.admin-onepage .admin-user-account-menu > summary::-webkit-details-marker {
  display: none;
}

body.admin-onepage .admin-user-account-menu > summary:hover,
body.admin-onepage .admin-user-account-menu > summary:focus-visible,
body.admin-onepage .admin-user-account-menu[open] > summary {
  border-color: rgba(205, 179, 138, 0.36);
  background: rgba(205, 179, 138, 0.09);
  color: rgba(31, 29, 26, 0.82);
}

body.admin-onepage .admin-user-account-menu > summary:focus-visible {
  outline: 2px solid rgba(205, 179, 138, 0.42);
  outline-offset: 2px;
}

body.admin-onepage .admin-user-menu-dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.16rem;
}

body.admin-onepage .admin-user-menu-dots i {
  width: 0.2rem;
  height: 0.2rem;
  border-radius: 50%;
  background: currentColor;
}

body.admin-onepage .admin-user-account-menu-popover {
  position: absolute;
  right: 0;
  bottom: calc(100% + 0.45rem);
  z-index: 80;
  display: grid;
  min-width: 12.5rem;
  padding: 0.42rem;
  border: 1px solid rgba(31, 29, 26, 0.08);
  border-radius: 0.82rem;
  background: rgba(255, 253, 249, 0.98);
  box-shadow: 0 16px 38px rgba(31, 29, 26, 0.13);
  opacity: 0;
  transform: translateY(0.28rem) scale(0.985);
  transform-origin: right bottom;
  pointer-events: none;
  transition: opacity 150ms ease, transform 180ms cubic-bezier(.22, 1, .36, 1);
}

body.admin-onepage .admin-user-account-menu[open] .admin-user-account-menu-popover {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

body.admin-onepage .admin-user-card:has(.admin-user-account-menu[open]) {
  z-index: 70;
}

body.admin-onepage .admin-user-menu-action {
  appearance: none;
  width: 100%;
  min-height: 2.35rem;
  padding: 0.58rem 0.68rem;
  border: 0;
  border-radius: 0.58rem;
  background: transparent;
  color: rgba(31, 29, 26, 0.76);
  font: inherit;
  font-size: 0.72rem;
  font-weight: 650;
  line-height: 1.25;
  text-align: left;
  cursor: pointer;
  transition: background 160ms ease, color 160ms ease;
}

body.admin-onepage .admin-user-menu-action:hover,
body.admin-onepage .admin-user-menu-action:focus-visible {
  background: rgba(31, 29, 26, 0.045);
  color: rgba(31, 29, 26, 0.94);
}

body.admin-onepage .admin-user-menu-action.is-danger {
  color: var(--danger);
}

body.admin-onepage .admin-user-menu-action.is-danger:hover,
body.admin-onepage .admin-user-menu-action.is-danger:focus-visible {
  background: rgba(162, 80, 69, 0.08);
  color: #873f36;
}

body.admin-onepage .admin-user-menu-action:focus-visible {
  outline: 2px solid rgba(205, 179, 138, 0.4);
  outline-offset: -1px;
}

body.admin-onepage .admin-user-menu-divider {
  display: block;
  height: 1px;
  margin: 0.3rem 0.45rem;
  background: rgba(31, 29, 26, 0.065);
}

@media (max-width: 600px) {
  body.admin-onepage .admin-user-card-footer {
    align-items: flex-start;
  }

  body.admin-onepage .admin-user-meta.admin-user-meta-compact {
    display: grid;
    gap: 0.18rem;
  }

  body.admin-onepage .admin-user-meta.admin-user-meta-compact > i {
    display: none;
  }

  body.admin-onepage .admin-user-meta.admin-user-meta-compact span {
    white-space: normal;
  }

  body.admin-onepage .admin-user-account-menu-popover {
    min-width: min(13.5rem, calc(100vw - 3rem));
  }
}
body.admin-onepage .admin-user-meta.admin-user-meta-compact {
  position: static;
}

body.admin-onepage .admin-user-meta.admin-user-meta-compact::before {
  content: none;
  display: none;
}

/* ========================================================================== 
   v217 · Adminbrukere – roligere kontofooter + lik permission-typografi ved invitasjon
   ========================================================================== */
/* Når dirty-state er skjult skal det ikke skape en ekstra hel grid-gap mellom
   Tilganger og kontofooteren. Behold tilsvarende én vanlig kortavstand. */
body.admin-onepage .admin-user-card:not(.is-dirty) .admin-user-save-state {
  margin-block: -0.5rem;
  border-width: 0;
}

/* Metadataene er allerede visuelt sekundære; egen separator blir unødvendig. */
body.admin-onepage .admin-user-card-footer {
  padding-top: 0;
  border-top: 0;
}

/* Invitasjonsskjemaets generelle label-stil skal ikke lekke inn i
   permission-kortene. De skal se identiske ut med Tilganger på brukerkortet. */
body.admin-onepage .admin-users-invite-form .admin-invite-permissions .admin-user-permission-option {
  color: inherit;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}

body.admin-onepage .admin-users-invite-form .admin-invite-permissions .admin-user-permission-copy strong {
  color: rgba(31, 29, 26, 0.85);
  font-size: 0.76rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0;
  text-transform: none;
}

body.admin-onepage .admin-users-invite-form .admin-invite-permissions .admin-user-permission-copy small {
  color: rgba(31, 29, 26, 0.52);
  font-size: 0.66rem;
  font-weight: 400;
  line-height: 1.38;
  letter-spacing: 0;
  text-transform: none;
}

@media (max-width: 780px) {
  body.admin-onepage .admin-user-card:not(.is-dirty) .admin-user-save-state {
    margin-block: -0.41rem;
  }
}

/* ========================================================================== 
   v218 · Adminbrukere – vertikalt midtstilt permission-checkbox
   ========================================================================== */
body.admin-onepage .admin-user-permission-control {
  align-self: center;
  margin-top: 0;
}

/* ========================================================================== 
   v220 · Globale tilgangsoppsett
   ========================================================================== */
body.admin-onepage .admin-access-templates-panel {
  overflow: hidden;
}

body.admin-onepage .admin-access-templates-heading {
  align-items: flex-start;
}

body.admin-onepage .admin-access-templates-intro,
body.admin-onepage .admin-access-templates-footnote {
  max-width: 48rem;
  margin: 0.2rem 0 0;
  color: rgba(31, 29, 26, 0.52);
  font-size: 0.7rem;
  line-height: 1.5;
}

body.admin-onepage .admin-access-template-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(12.5rem, 1fr));
  gap: 0.6rem;
  margin-top: 0.9rem;
}

body.admin-onepage .admin-access-template-card {
  appearance: none;
  display: grid;
  gap: 0.38rem;
  min-width: 0;
  min-height: 7.2rem;
  padding: 0.85rem 0.9rem;
  border: 1px solid rgba(31, 29, 26, 0.075);
  border-radius: 0.9rem;
  background: rgba(255, 255, 255, 0.5);
  color: var(--ink);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: transform 180ms ease, border-color 180ms ease, background 180ms ease, box-shadow 180ms ease;
}

body.admin-onepage .admin-access-template-card:hover,
body.admin-onepage .admin-access-template-card:focus-visible {
  border-color: rgba(205, 179, 138, 0.42);
  background: rgba(255, 253, 249, 0.88);
  box-shadow: 0 8px 22px rgba(31, 29, 26, 0.055);
  transform: translateY(-1px);
}

body.admin-onepage .admin-access-template-card:focus-visible {
  outline: 2px solid rgba(205, 179, 138, 0.4);
  outline-offset: 2px;
}

body.admin-onepage .admin-access-template-card.is-default {
  border-color: rgba(205, 179, 138, 0.44);
  background: rgba(205, 179, 138, 0.075);
}

body.admin-onepage .admin-access-template-card-topline {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.55rem;
}

body.admin-onepage .admin-access-template-card strong {
  color: rgba(31, 29, 26, 0.88);
  font-size: 0.79rem;
  line-height: 1.3;
}

body.admin-onepage .admin-access-template-card small,
body.admin-onepage .admin-access-template-card-meta {
  color: rgba(31, 29, 26, 0.5);
  font-size: 0.65rem;
  line-height: 1.42;
}

body.admin-onepage .admin-access-template-card-meta {
  margin-top: auto;
  color: rgba(31, 29, 26, 0.38);
}

body.admin-onepage .admin-access-template-default-badge,
body.admin-onepage .admin-access-profile-summary-badge {
  display: inline-flex;
  align-items: center;
  max-width: 12rem;
  padding: 0.28rem 0.52rem;
  border: 1px solid rgba(205, 179, 138, 0.36);
  border-radius: 999px;
  background: rgba(205, 179, 138, 0.1);
  color: rgba(112, 79, 38, 0.86);
  font-size: 0.56rem;
  font-weight: 750;
  letter-spacing: 0.055em;
  line-height: 1.15;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

body.admin-onepage .admin-access-profile-summary-badge.is-custom {
  border-color: rgba(31, 29, 26, 0.11);
  background: rgba(31, 29, 26, 0.035);
  color: rgba(31, 29, 26, 0.56);
}

body.admin-onepage .admin-user-permissions > summary .admin-access-profile-summary-badge {
  margin-left: auto;
}

body.admin-onepage .admin-access-template-card.is-new {
  place-content: center;
  justify-items: center;
  text-align: center;
  border-style: dashed;
  background: rgba(255, 255, 255, 0.28);
}

body.admin-onepage .admin-access-template-new-icon {
  display: grid;
  place-items: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 50%;
  background: var(--gold-soft);
  color: rgba(31, 29, 26, 0.66);
  font-size: 1rem;
  line-height: 1;
}

body.admin-onepage .admin-access-profile-picker {
  display: grid;
  gap: 0.6rem;
  margin-top: 1rem;
  padding: 0.78rem;
  border: 1px solid rgba(31, 29, 26, 0.06);
  border-radius: 0.82rem;
  background: rgba(31, 29, 26, 0.018);
}

body.admin-onepage .admin-access-profile-picker-heading strong {
  display: block;
  color: rgba(31, 29, 26, 0.78);
  font-size: 0.71rem;
}

body.admin-onepage .admin-access-profile-picker-heading small,
body.admin-onepage .admin-access-profile-explainer {
  display: block;
  margin: 0.1rem 0 0;
  color: rgba(31, 29, 26, 0.48);
  font-size: 0.64rem;
  line-height: 1.42;
}

body.admin-onepage .admin-access-profile-options {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

body.admin-onepage .admin-access-profile-option {
  position: relative;
  display: grid;
  min-width: 8.8rem;
  padding: 0.55rem 0.68rem;
  border: 1px solid rgba(31, 29, 26, 0.08);
  border-radius: 0.7rem;
  background: rgba(255, 255, 255, 0.66);
  cursor: pointer;
}

body.admin-onepage .admin-access-profile-option:has(input:checked),
body.admin-onepage .admin-access-profile-option.is-selected {
  border-color: rgba(205, 179, 138, 0.5);
  background: rgba(205, 179, 138, 0.09);
}

body.admin-onepage .admin-access-profile-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

body.admin-onepage .admin-access-profile-option strong,
body.admin-onepage .admin-access-profile-option small {
  display: block;
  letter-spacing: 0;
  text-transform: none;
}

body.admin-onepage .admin-access-profile-option strong {
  color: rgba(31, 29, 26, 0.82);
  font-size: 0.7rem;
}

body.admin-onepage .admin-access-profile-option small {
  margin-top: 0.08rem;
  color: rgba(31, 29, 26, 0.45);
  font-size: 0.59rem;
  font-weight: 400;
}

body.admin-onepage .admin-access-profile-option:has(input:disabled) {
  cursor: default;
  opacity: 0.68;
}

body.admin-onepage.has-admin-access-template-dialog {
  overflow: hidden;
}

body.admin-onepage .admin-access-template-dialog-layer[hidden] {
  display: none !important;
}

body.admin-onepage .admin-access-template-dialog-layer {
  position: fixed;
  inset: 0;
  z-index: 1300;
  display: grid;
  place-items: center;
  padding: 1rem;
}

body.admin-onepage .admin-access-template-dialog-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  background: rgba(24, 22, 19, 0.32);
  backdrop-filter: blur(7px);
  opacity: 0;
  cursor: default;
  transition: opacity 180ms ease;
}

body.admin-onepage .admin-access-template-dialog {
  position: relative;
  z-index: 1;
  width: min(58rem, calc(100vw - 2rem));
  max-height: min(88vh, 56rem);
  overflow: hidden;
  border: 1px solid rgba(205, 179, 138, 0.22);
  border-radius: 1.2rem;
  background: rgba(255, 253, 249, 0.99);
  box-shadow: 0 28px 90px rgba(31, 29, 26, 0.24);
  opacity: 0;
  transform: translateY(0.75rem) scale(0.985);
  transition: opacity 180ms ease, transform 220ms cubic-bezier(.22, 1, .36, 1);
}

body.admin-onepage .admin-access-template-dialog-layer.is-open .admin-access-template-dialog-backdrop,
body.admin-onepage .admin-access-template-dialog-layer.is-open .admin-access-template-dialog {
  opacity: 1;
}

body.admin-onepage .admin-access-template-dialog-layer.is-open .admin-access-template-dialog {
  transform: translateY(0) scale(1);
}

body.admin-onepage .admin-access-template-dialog > form {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  max-height: inherit;
}

body.admin-onepage .admin-access-template-dialog-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.15rem 1.2rem 0.95rem;
  border-bottom: 1px solid rgba(31, 29, 26, 0.055);
}

body.admin-onepage .admin-access-template-dialog-header h2 {
  margin: 0.12rem 0 0;
  font-size: 1.15rem;
  font-weight: 650;
}

body.admin-onepage .admin-access-template-dialog-header p:last-child {
  max-width: 42rem;
  margin: 0.28rem 0 0;
  color: rgba(31, 29, 26, 0.5);
  font-size: 0.68rem;
  line-height: 1.45;
}

body.admin-onepage .admin-access-template-dialog-close {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  flex: 0 0 2rem;
  padding: 0;
  border: 1px solid rgba(31, 29, 26, 0.08);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.58);
  color: rgba(31, 29, 26, 0.58);
  font: inherit;
  font-size: 1rem;
  cursor: pointer;
}

body.admin-onepage .admin-access-template-dialog-scroll {
  display: grid;
  gap: 0.9rem;
  overflow: auto;
  padding: 1rem 1.2rem 1.2rem;
  scrollbar-color: var(--gold) transparent;
}

body.admin-onepage .admin-access-template-fields {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
  gap: 0.65rem;
}

body.admin-onepage .admin-access-template-fields label,
body.admin-onepage .admin-access-template-delete-panel label {
  display: grid;
  gap: 0.32rem;
  color: rgba(31, 29, 26, 0.62);
  font-size: 0.65rem;
  font-weight: 700;
}

body.admin-onepage .admin-access-template-fields input,
body.admin-onepage .admin-access-template-delete-panel select {
  width: 100%;
  min-height: 2.55rem;
  padding: 0.65rem 0.72rem;
  border: 1px solid rgba(31, 29, 26, 0.1);
  border-radius: 0.72rem;
  background: rgba(255, 255, 255, 0.8);
  color: var(--ink);
  font: inherit;
  font-size: 0.74rem;
}

body.admin-onepage .admin-access-template-settings {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
}

body.admin-onepage .admin-access-template-setting {
  display: flex;
  align-items: center;
  gap: 0.68rem;
  min-width: 0;
  padding: 0.72rem;
  border: 1px solid rgba(31, 29, 26, 0.065);
  border-radius: 0.78rem;
  background: rgba(255, 255, 255, 0.55);
  cursor: pointer;
}

body.admin-onepage .admin-access-template-setting:has(input:checked) {
  border-color: rgba(205, 179, 138, 0.44);
  background: rgba(205, 179, 138, 0.075);
}

body.admin-onepage .admin-access-template-setting:has(input:disabled) {
  cursor: default;
}

body.admin-onepage .admin-access-template-setting-control {
  position: relative;
  width: 1.15rem;
  height: 1.15rem;
  flex: 0 0 1.15rem;
}

body.admin-onepage .admin-access-template-setting-control input {
  position: absolute;
  inset: 0;
  opacity: 0;
}

body.admin-onepage .admin-access-template-setting-control i {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  border: 1px solid rgba(31, 29, 26, 0.22);
  border-radius: 0.34rem;
  background: #fff;
}

body.admin-onepage .admin-access-template-setting-control input:checked + i {
  border-color: var(--gold);
  background: var(--gold);
}

body.admin-onepage .admin-access-template-setting-control input:checked + i::after {
  content: "✓";
  color: #fff;
  font-size: 0.72rem;
  font-weight: 800;
}

body.admin-onepage .admin-access-template-setting > span:last-child {
  display: grid;
  gap: 0.1rem;
  min-width: 0;
}

body.admin-onepage .admin-access-template-setting strong {
  color: rgba(31, 29, 26, 0.8);
  font-size: 0.72rem;
}

body.admin-onepage .admin-access-template-setting small {
  color: rgba(31, 29, 26, 0.48);
  font-size: 0.62rem;
  font-weight: 400;
  line-height: 1.4;
}

body.admin-onepage .admin-access-template-impact {
  padding: 0.68rem 0.76rem;
  border-radius: 0.72rem;
  background: rgba(205, 179, 138, 0.08);
  color: rgba(31, 29, 26, 0.58);
  font-size: 0.66rem;
  line-height: 1.45;
}

body.admin-onepage .admin-access-template-permissions {
  display: grid;
  gap: 0.85rem;
}

body.admin-onepage .admin-access-template-permissions .admin-user-permission-group:first-of-type {
  margin-top: 0;
}

body.admin-onepage .admin-access-template-permissions.is-all .admin-user-permission-option {
  cursor: default;
  opacity: 0.72;
}

body.admin-onepage .admin-access-template-delete-panel[hidden] {
  display: none !important;
}

body.admin-onepage .admin-access-template-delete-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(12rem, 0.55fr);
  gap: 0.7rem;
  align-items: end;
  padding: 0.8rem;
  border: 1px solid rgba(162, 80, 69, 0.2);
  border-radius: 0.82rem;
  background: rgba(162, 80, 69, 0.055);
}

body.admin-onepage .admin-access-template-delete-panel > div:first-child {
  display: grid;
  gap: 0.16rem;
}

body.admin-onepage .admin-access-template-delete-panel strong {
  color: var(--danger);
  font-size: 0.72rem;
}

body.admin-onepage .admin-access-template-delete-panel small {
  color: rgba(31, 29, 26, 0.52);
  font-size: 0.63rem;
  line-height: 1.4;
}

body.admin-onepage .admin-access-template-delete-actions {
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
}

body.admin-onepage .admin-access-template-delete-confirm,
body.admin-onepage .admin-access-template-delete-trigger {
  border: 0;
  background: transparent;
  color: var(--danger);
  font: inherit;
  font-size: 0.67rem;
  font-weight: 700;
  cursor: pointer;
}

body.admin-onepage .admin-access-template-delete-confirm {
  padding: 0.65rem 0.85rem;
  border: 1px solid var(--danger);
  border-radius: 999px;
  background: var(--danger);
  color: #fff;
}

body.admin-onepage .admin-access-template-dialog-actions {
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  align-items: center;
  gap: 0.55rem;
  padding: 0.85rem 1.2rem;
  border-top: 1px solid rgba(31, 29, 26, 0.055);
  background: rgba(255, 253, 249, 0.98);
}

@media (max-width: 720px) {
  body.admin-onepage .admin-access-template-strip {
    display: flex;
    overflow-x: auto;
    padding-bottom: 0.2rem;
    scroll-snap-type: x proximity;
  }
  body.admin-onepage .admin-access-template-card {
    flex: 0 0 min(78vw, 15rem);
    scroll-snap-align: start;
  }
  body.admin-onepage .admin-access-template-fields,
  body.admin-onepage .admin-access-template-settings,
  body.admin-onepage .admin-access-template-delete-panel {
    grid-template-columns: 1fr;
  }
  body.admin-onepage .admin-access-template-dialog-layer {
    align-items: end;
    padding: 0.55rem;
  }
  body.admin-onepage .admin-access-template-dialog {
    width: 100%;
    max-height: 92vh;
    border-radius: 1.15rem;
  }
  body.admin-onepage .admin-access-template-dialog-actions {
    grid-template-columns: 1fr 1fr;
  }
  body.admin-onepage .admin-access-template-dialog-actions > span {
    display: none;
  }
  body.admin-onepage .admin-access-template-delete-trigger {
    grid-column: 1 / -1;
    justify-self: start;
  }
}

body.admin-onepage .admin-user-permissions > summary > .admin-access-profile-summary-badge {
  display: inline-flex;
  gap: 0;
  min-width: 0;
}

body.admin-onepage .admin-users-invite-form .admin-access-profile-option {
  display: grid;
  gap: 0;
  color: inherit;
  font-size: inherit;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}

/* ========================================================================== 
   v222 · Tilgangsoppsett flyttet til dialog + kompakt oppsettvelger
   ========================================================================== */
body.admin-onepage .admin-users-panel-heading-tools {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.7rem;
  flex-shrink: 0;
}

body.admin-onepage .admin-users-panel-heading-tools > span {
  color: rgba(31, 29, 26, 0.45);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  white-space: nowrap;
}

body.admin-onepage .admin-access-templates-launch,
body.admin-onepage .admin-access-profile-manage {
  appearance: none;
  border: 0;
  background: transparent;
  color: rgba(112, 79, 38, 0.82);
  font: inherit;
  font-size: 0.68rem;
  font-weight: 760;
  letter-spacing: 0.015em;
  line-height: 1.2;
  cursor: pointer;
  transition: color 160ms ease, opacity 160ms ease;
}

body.admin-onepage .admin-access-templates-launch {
  padding: 0.35rem 0.5rem;
  border: 1px solid rgba(205, 179, 138, 0.28);
  border-radius: 999px;
  background: rgba(205, 179, 138, 0.065);
}

body.admin-onepage .admin-access-templates-launch:hover,
body.admin-onepage .admin-access-templates-launch:focus-visible,
body.admin-onepage .admin-access-profile-manage:hover,
body.admin-onepage .admin-access-profile-manage:focus-visible {
  color: rgba(92, 61, 24, 0.98);
}

body.admin-onepage .admin-access-templates-launch:focus-visible,
body.admin-onepage .admin-access-profile-manage:focus-visible {
  outline: 2px solid rgba(205, 179, 138, 0.36);
  outline-offset: 2px;
}

/* Oppsettvelgeren skal lese som én kompakt kontrollrad, ikke som en ny seksjon. */
body.admin-onepage .admin-access-profile-picker {
  gap: 0.46rem;
  margin-top: 0.68rem;
  padding: 0.62rem 0.68rem 0.58rem;
  border-radius: 0.78rem;
}

body.admin-onepage .admin-access-profile-picker-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

body.admin-onepage .admin-access-profile-picker-heading > strong {
  color: rgba(31, 29, 26, 0.78);
  font-size: 0.76rem;
  font-weight: 760;
  line-height: 1.2;
}

body.admin-onepage .admin-access-profile-manage {
  flex-shrink: 0;
  padding: 0.15rem 0;
  font-size: 0.64rem;
}

body.admin-onepage .admin-access-profile-options {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0.36rem;
  width: 100%;
  overflow-x: auto;
  padding: 0.02rem 0 0.08rem;
  scrollbar-width: thin;
  scrollbar-color: rgba(205, 179, 138, 0.68) transparent;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

body.admin-onepage .admin-access-profile-options::-webkit-scrollbar {
  height: 4px;
}

body.admin-onepage .admin-access-profile-options::-webkit-scrollbar-track {
  background: transparent;
}

body.admin-onepage .admin-access-profile-options::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(205, 179, 138, 0.68);
}

body.admin-onepage .admin-access-profile-option {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  min-width: 0;
  min-height: 2.45rem;
  padding: 0.48rem 0.68rem;
  border-radius: 0.68rem;
}

body.admin-onepage .admin-access-profile-option > span {
  display: flex;
  align-items: center;
  gap: 0.42rem;
  min-width: 0;
}

body.admin-onepage .admin-access-profile-option strong {
  font-size: 0.78rem;
  font-weight: 720;
  line-height: 1.15;
  white-space: nowrap;
}

body.admin-onepage .admin-access-profile-option small {
  margin: 0;
  padding: 0.18rem 0.34rem;
  border-radius: 999px;
  background: rgba(31, 29, 26, 0.045);
  color: rgba(31, 29, 26, 0.46);
  font-size: 0.57rem;
  font-weight: 650;
  line-height: 1;
  white-space: nowrap;
}

body.admin-onepage .admin-access-profile-option:has(input:checked) small,
body.admin-onepage .admin-access-profile-option.is-selected small {
  background: rgba(205, 179, 138, 0.13);
  color: rgba(112, 79, 38, 0.78);
}

body.admin-onepage .admin-access-profile-explainer {
  margin: 0;
  font-size: 0.66rem;
  line-height: 1.35;
}

/* Eget administrasjonsvindu for globale oppsett. */
body.admin-onepage.has-admin-access-template-manager,
body.admin-onepage.has-admin-access-template-dialog {
  overflow: hidden;
}

body.admin-onepage .admin-access-template-manager-layer[hidden] {
  display: none !important;
}

body.admin-onepage .admin-access-template-manager-layer {
  position: fixed;
  inset: 0;
  z-index: 1240;
  display: grid;
  place-items: center;
  padding: 1rem;
}

body.admin-onepage .admin-access-template-manager-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  background: rgba(24, 22, 19, 0.28);
  backdrop-filter: blur(7px);
  opacity: 0;
  cursor: default;
  transition: opacity 180ms ease;
}

body.admin-onepage .admin-access-template-manager {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: min(64rem, calc(100vw - 2rem));
  max-height: min(46rem, calc(100dvh - 2rem));
  overflow: hidden;
  border: 1px solid rgba(31, 29, 26, 0.085);
  border-radius: 1.2rem;
  background: rgba(255, 253, 249, 0.975);
  box-shadow: 0 28px 80px rgba(31, 29, 26, 0.16);
  opacity: 0;
  transform: translateY(10px) scale(0.985);
  transition: opacity 180ms ease, transform 180ms ease;
}

body.admin-onepage .admin-access-template-manager-layer.is-open .admin-access-template-manager-backdrop,
body.admin-onepage .admin-access-template-manager-layer.is-open .admin-access-template-manager {
  opacity: 1;
}

body.admin-onepage .admin-access-template-manager-layer.is-open .admin-access-template-manager {
  transform: translateY(0) scale(1);
}

body.admin-onepage .admin-access-template-manager-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.1rem 1.2rem 0.95rem;
  border-bottom: 1px solid rgba(31, 29, 26, 0.06);
}

body.admin-onepage .admin-access-template-manager-header h2 {
  margin: 0.28rem 0 0;
  font-family: var(--font-serif);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 400;
  letter-spacing: -0.03em;
  line-height: 1.05;
}

body.admin-onepage .admin-access-template-manager-header p:last-child {
  max-width: 46rem;
  margin: 0.42rem 0 0;
  color: rgba(31, 29, 26, 0.52);
  font-size: 0.72rem;
  line-height: 1.5;
}

body.admin-onepage .admin-access-template-manager-close {
  appearance: none;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  border: 1px solid rgba(31, 29, 26, 0.08);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.72);
  color: rgba(31, 29, 26, 0.56);
  font-size: 1.15rem;
  line-height: 1;
  cursor: pointer;
}

body.admin-onepage .admin-access-template-manager-scroll {
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 1rem 1.2rem 1.2rem;
  scrollbar-width: thin;
  scrollbar-color: rgba(205, 179, 138, 0.7) transparent;
}

body.admin-onepage .admin-access-template-manager .admin-access-template-strip {
  margin-top: 0;
}

body.admin-onepage .admin-access-template-manager .admin-access-templates-footnote {
  margin-top: 0.8rem;
}

@media (max-width: 680px) {
  body.admin-onepage .admin-users-panel-heading-tools {
    gap: 0.45rem;
  }

  body.admin-onepage .admin-users-panel-heading-tools > span {
    font-size: 0.58rem;
  }

  body.admin-onepage .admin-access-templates-launch {
    padding: 0.3rem 0.42rem;
    font-size: 0.62rem;
  }

  body.admin-onepage .admin-access-profile-picker {
    padding: 0.58rem 0.6rem 0.54rem;
  }

  body.admin-onepage .admin-access-profile-picker-heading {
    gap: 0.55rem;
  }

  body.admin-onepage .admin-access-profile-picker-heading > strong {
    font-size: 0.74rem;
  }

  body.admin-onepage .admin-access-profile-option {
    min-height: 2.4rem;
    padding: 0.46rem 0.62rem;
  }

  body.admin-onepage .admin-access-profile-option strong {
    font-size: 0.76rem;
  }

  body.admin-onepage .admin-access-template-manager-layer {
    align-items: end;
    padding: 0;
  }

  body.admin-onepage .admin-access-template-manager {
    width: 100%;
    max-height: min(85dvh, 46rem);
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: 1.25rem 1.25rem 0 0;
    transform: translateY(24px);
  }

  body.admin-onepage .admin-access-template-manager-header {
    padding: 1rem 1rem 0.85rem;
  }

  body.admin-onepage .admin-access-template-manager-scroll {
    padding: 0.9rem 1rem max(1rem, env(safe-area-inset-bottom));
  }
}

/* ========================================================================== 
   v223 · Én flate for tilgangsoppsett + roligere redigering
   ========================================================================== */
body.admin-onepage.has-admin-access-template-manager {
  overflow: hidden;
}

/* Samme modal brukes både til oversikt og redigering. */
body.admin-onepage .admin-access-template-manager {
  width: min(58rem, calc(100vw - 2rem));
  max-height: min(88vh, 54rem);
  background: #fffdfa;
}

body.admin-onepage .admin-access-template-manager-scroll[hidden],
body.admin-onepage .admin-access-template-editor[hidden] {
  display: none !important;
}

body.admin-onepage .admin-access-template-manager-scroll {
  padding: 0.9rem 1.2rem 1.2rem;
}

body.admin-onepage .admin-access-template-list-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.05rem 0 0.72rem;
}

body.admin-onepage .admin-access-template-list-toolbar > div {
  display: grid;
  gap: 0.1rem;
}

body.admin-onepage .admin-access-template-list-toolbar strong {
  color: rgba(31, 29, 26, 0.78);
  font-size: 0.74rem;
  font-weight: 720;
}

body.admin-onepage .admin-access-template-list-toolbar small {
  color: rgba(31, 29, 26, 0.44);
  font-size: 0.64rem;
  font-weight: 400;
}

body.admin-onepage .admin-access-template-new-button {
  appearance: none;
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
  flex: 0 0 auto;
  padding: 0.48rem 0.7rem;
  border: 1px solid rgba(205, 179, 138, 0.32);
  border-radius: 999px;
  background: rgba(205, 179, 138, 0.07);
  color: rgba(98, 67, 29, 0.9);
  font: inherit;
  font-size: 0.68rem;
  font-weight: 720;
  cursor: pointer;
  transition: background 160ms ease, border-color 160ms ease, transform 160ms ease;
}

body.admin-onepage .admin-access-template-new-button:hover,
body.admin-onepage .admin-access-template-new-button:focus-visible {
  border-color: rgba(205, 179, 138, 0.52);
  background: rgba(205, 179, 138, 0.12);
  transform: translateY(-1px);
}

body.admin-onepage .admin-access-template-new-button:focus-visible {
  outline: 2px solid rgba(205, 179, 138, 0.34);
  outline-offset: 2px;
}

body.admin-onepage .admin-access-template-new-button > span {
  display: grid;
  place-items: center;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 50%;
  background: rgba(205, 179, 138, 0.15);
  font-size: 0.8rem;
  line-height: 1;
}

body.admin-onepage .admin-access-template-list {
  display: grid;
  border-top: 1px solid rgba(31, 29, 26, 0.065);
}

body.admin-onepage .admin-access-template-list-row {
  appearance: none;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  width: 100%;
  padding: 0.78rem 0.15rem;
  border: 0;
  border-bottom: 1px solid rgba(31, 29, 26, 0.065);
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: padding 160ms ease, background 160ms ease;
}

body.admin-onepage .admin-access-template-list-row:hover,
body.admin-onepage .admin-access-template-list-row:focus-visible {
  padding-inline: 0.55rem;
  background: rgba(205, 179, 138, 0.045);
}

body.admin-onepage .admin-access-template-list-row:focus-visible {
  outline: 2px solid rgba(205, 179, 138, 0.3);
  outline-offset: -2px;
}

body.admin-onepage .admin-access-template-list-copy,
body.admin-onepage .admin-access-template-list-meta {
  min-width: 0;
}

body.admin-onepage .admin-access-template-list-copy {
  display: grid;
  gap: 0.15rem;
}

body.admin-onepage .admin-access-template-list-copy strong {
  color: rgba(31, 29, 26, 0.86);
  font-size: 0.8rem;
  font-weight: 700;
}

body.admin-onepage .admin-access-template-list-copy small,
body.admin-onepage .admin-access-template-list-meta > small {
  color: rgba(31, 29, 26, 0.45);
  font-size: 0.64rem;
  font-weight: 400;
  line-height: 1.35;
}

body.admin-onepage .admin-access-template-list-meta {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.55rem;
  white-space: nowrap;
}

body.admin-onepage .admin-access-template-list-meta > i {
  color: rgba(31, 29, 26, 0.34);
  font-style: normal;
  font-size: 1.15rem;
  line-height: 1;
}

/* Redigering erstatter listen inne i samme modal – ingen ny backdrop/modal. */
body.admin-onepage .admin-access-template-editor {
  min-height: 0;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
}

body.admin-onepage .admin-access-template-editor-scroll {
  min-height: 0;
  display: grid;
  align-content: start;
  gap: 1rem;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 0.85rem 1.2rem 1.2rem;
  scrollbar-width: thin;
  scrollbar-color: rgba(205, 179, 138, 0.7) transparent;
}

body.admin-onepage .admin-access-template-back {
  appearance: none;
  justify-self: start;
  display: inline-flex;
  align-items: center;
  gap: 0.36rem;
  padding: 0.12rem 0;
  border: 0;
  background: transparent;
  color: rgba(112, 79, 38, 0.78);
  font: inherit;
  font-size: 0.65rem;
  font-weight: 700;
  cursor: pointer;
}

body.admin-onepage .admin-access-template-back:hover,
body.admin-onepage .admin-access-template-back:focus-visible {
  color: rgba(92, 61, 24, 0.98);
}

/* Inputinnhold skal ikke arve den fete label-vekten. */
body.admin-onepage .admin-access-template-fields input,
body.admin-onepage .admin-access-template-delete-panel select {
  min-height: 2.45rem;
  font-family: inherit;
  font-size: 0.74rem;
  font-weight: 400;
  letter-spacing: 0;
}

body.admin-onepage .admin-access-template-fields input::placeholder {
  color: rgba(31, 29, 26, 0.42);
  font-weight: 400;
  opacity: 1;
}

body.admin-onepage .admin-access-template-impact {
  margin: -0.25rem 0 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: rgba(31, 29, 26, 0.44);
  font-size: 0.64rem;
  line-height: 1.4;
}

body.admin-onepage .admin-access-template-impact[hidden] {
  display: none !important;
}

body.admin-onepage .admin-access-template-options-section,
body.admin-onepage .admin-access-template-permissions-section {
  display: grid;
  gap: 0.5rem;
}

body.admin-onepage .admin-access-template-section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.8rem;
  padding-top: 0.15rem;
}

body.admin-onepage .admin-access-template-section-heading > div {
  display: grid;
  gap: 0.08rem;
}

body.admin-onepage .admin-access-template-section-heading strong {
  color: rgba(31, 29, 26, 0.82);
  font-size: 0.74rem;
  font-weight: 720;
}

body.admin-onepage .admin-access-template-section-heading small,
body.admin-onepage .admin-access-template-section-heading > span {
  color: rgba(31, 29, 26, 0.43);
  font-size: 0.61rem;
  font-weight: 400;
  line-height: 1.35;
}

body.admin-onepage .admin-access-template-section-heading > span {
  padding: 0.2rem 0.42rem;
  border-radius: 999px;
  background: rgba(31, 29, 26, 0.035);
  white-space: nowrap;
}

/* Tilleggsvalg leses som valgfrie innstillinger, ikke som to permission-kort. */
body.admin-onepage .admin-access-template-settings {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  border-top: 1px solid rgba(31, 29, 26, 0.07);
}

body.admin-onepage .admin-access-template-setting {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  min-width: 0;
  padding: 0.72rem 0.08rem;
  border: 0;
  border-bottom: 1px solid rgba(31, 29, 26, 0.07);
  border-radius: 0;
  background: transparent;
  cursor: pointer;
}

body.admin-onepage .admin-access-template-setting:has(input:checked),
body.admin-onepage .admin-access-template-setting:has(input:disabled) {
  border-color: rgba(31, 29, 26, 0.07);
  background: transparent;
}

body.admin-onepage .admin-access-template-setting-copy {
  display: grid;
  gap: 0.1rem;
  min-width: 0;
}

body.admin-onepage .admin-access-template-setting strong {
  color: rgba(31, 29, 26, 0.82);
  font-size: 0.72rem;
  font-weight: 680;
}

body.admin-onepage .admin-access-template-setting small {
  color: rgba(31, 29, 26, 0.46);
  font-size: 0.62rem;
  font-weight: 400;
  line-height: 1.4;
}

/* Toggle fremfor checkbox: dette er egenskaper ved oppsettet, ikke rettigheter. */
body.admin-onepage .admin-access-template-setting-control {
  position: relative;
  width: 2.15rem;
  height: 1.22rem;
  flex: 0 0 2.15rem;
}

body.admin-onepage .admin-access-template-setting-control input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}

body.admin-onepage .admin-access-template-setting-control i {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  border: 1px solid rgba(31, 29, 26, 0.14);
  border-radius: 999px;
  background: rgba(31, 29, 26, 0.08);
  transition: border-color 170ms ease, background 170ms ease;
}

body.admin-onepage .admin-access-template-setting-control i::after,
body.admin-onepage .admin-access-template-setting-control input:checked + i::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0.14rem;
  width: 0.86rem;
  height: 0.86rem;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(31, 29, 26, 0.16);
  transform: translateY(-50%);
  transition: transform 180ms cubic-bezier(.22, 1, .36, 1);
}

body.admin-onepage .admin-access-template-setting-control input:checked + i {
  border-color: rgba(190, 156, 106, 0.75);
  background: var(--gold);
}

body.admin-onepage .admin-access-template-setting-control input:checked + i::after {
  transform: translate(0.9rem, -50%);
}

body.admin-onepage .admin-access-template-setting-control input:focus-visible + i {
  outline: 2px solid rgba(205, 179, 138, 0.34);
  outline-offset: 2px;
}

body.admin-onepage .admin-access-template-setting-control input:disabled {
  cursor: default;
}

body.admin-onepage .admin-access-template-setting:has(input:disabled) {
  opacity: 0.68;
  cursor: default;
}

body.admin-onepage .admin-access-template-permissions {
  padding-top: 0.05rem;
}

body.admin-onepage .admin-access-template-permissions.is-all {
  opacity: 0.6;
}

body.admin-onepage .admin-access-template-dialog-actions {
  padding: 0.78rem 1.2rem;
}

@media (max-width: 680px) {
  body.admin-onepage .admin-access-template-manager {
    width: 100%;
    max-height: 92dvh;
  }

  body.admin-onepage .admin-access-template-list-toolbar {
    align-items: flex-end;
  }

  body.admin-onepage .admin-access-template-list-toolbar small {
    display: none;
  }

  body.admin-onepage .admin-access-template-list-row {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.65rem;
  }

  body.admin-onepage .admin-access-template-list-meta > small {
    display: none;
  }

  body.admin-onepage .admin-access-template-default-badge {
    font-size: 0.52rem;
  }

  body.admin-onepage .admin-access-template-editor-scroll {
    padding: 0.8rem 1rem 1rem;
  }

  body.admin-onepage .admin-access-template-fields {
    grid-template-columns: 1fr;
  }

  body.admin-onepage .admin-access-template-dialog-actions {
    padding: 0.75rem 1rem max(0.75rem, env(safe-area-inset-bottom));
  }
}

/* ========================================================================== 
   v224 · Tilgangsoppsett – kortoversikt + rolige sideoverganger
   ========================================================================== */

/* Litt roligere modalflate: én flate, uten følelsen av modal inni modal. */
body.admin-onepage .admin-access-template-manager-backdrop {
  background: rgba(24, 22, 19, 0.24);
  backdrop-filter: blur(5px);
}

body.admin-onepage .admin-access-template-manager {
  width: min(60rem, calc(100vw - 2rem));
  border-color: rgba(31, 29, 26, 0.075);
  background: rgba(255, 253, 249, 0.99);
  box-shadow: 0 26px 72px rgba(31, 29, 26, 0.14);
}

body.admin-onepage .admin-access-template-manager-header > div.is-changing {
  animation: adminAccessTemplateHeadingIn 210ms cubic-bezier(.22, 1, .36, 1) both;
}

@keyframes adminAccessTemplateHeadingIn {
  from { opacity: 0.42; transform: translateY(3px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Oversikten går tilbake til kort, men uten store hover-bevegelser. */
body.admin-onepage .admin-access-template-manager-scroll {
  padding: 0.95rem 1.2rem 1.25rem;
}

body.admin-onepage .admin-access-template-list-toolbar {
  padding: 0 0 0.7rem;
}

body.admin-onepage .admin-access-template-list-toolbar strong {
  font-size: 0.72rem;
  font-weight: 700;
}

body.admin-onepage .admin-access-template-list-toolbar small {
  font-size: 0.63rem;
}

body.admin-onepage .admin-access-template-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(15.5rem, 1fr));
  gap: 0.68rem;
  border: 0;
}

body.admin-onepage .admin-access-template-list-card {
  appearance: none;
  display: grid;
  grid-template-rows: auto minmax(2.1rem, auto) auto;
  gap: 0.42rem;
  min-width: 0;
  min-height: 7.35rem;
  padding: 0.88rem 0.92rem 0.82rem;
  border: 1px solid rgba(31, 29, 26, 0.085);
  border-radius: 0.92rem;
  background: rgba(255, 255, 255, 0.58);
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  box-shadow: 0 1px 0 rgba(31, 29, 26, 0.015);
  transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

body.admin-onepage .admin-access-template-list-card:hover,
body.admin-onepage .admin-access-template-list-card:focus-visible {
  border-color: rgba(205, 179, 138, 0.45);
  background: rgba(255, 253, 249, 0.94);
  box-shadow: 0 5px 16px rgba(31, 29, 26, 0.045);
}

body.admin-onepage .admin-access-template-list-card:focus-visible {
  outline: 2px solid rgba(205, 179, 138, 0.32);
  outline-offset: 2px;
}

body.admin-onepage .admin-access-template-list-card.is-default {
  border-color: rgba(205, 179, 138, 0.42);
  background: linear-gradient(145deg, rgba(205, 179, 138, 0.085), rgba(255, 255, 255, 0.64));
}

body.admin-onepage .admin-access-template-list-card .admin-access-template-card-topline {
  align-items: center;
}

body.admin-onepage .admin-access-template-list-card .admin-access-template-card-topline > strong {
  color: rgba(31, 29, 26, 0.88);
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.25;
}

body.admin-onepage .admin-access-template-card-description {
  color: rgba(31, 29, 26, 0.48);
  font-size: 0.64rem;
  font-weight: 400;
  line-height: 1.45;
}

body.admin-onepage .admin-access-template-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: auto;
  padding-top: 0.26rem;
}

body.admin-onepage .admin-access-template-card-footer > small {
  min-width: 0;
  color: rgba(31, 29, 26, 0.38);
  font-size: 0.61rem;
  font-weight: 400;
  line-height: 1.3;
}

body.admin-onepage .admin-access-template-edit-cue {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  flex: 0 0 auto;
  color: rgba(112, 79, 38, 0.72);
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1;
}

body.admin-onepage .admin-access-template-edit-cue i {
  font-style: normal;
  font-size: 0.76rem;
  line-height: 1;
}

/* Nytt oppsett er igjen et eget kort – samme høyde og rytme som resten. */
body.admin-onepage .admin-access-template-list-card.is-new {
  grid-template-rows: auto auto auto;
  place-content: center;
  justify-items: center;
  gap: 0.32rem;
  border-style: dashed;
  border-color: rgba(205, 179, 138, 0.38);
  background: rgba(205, 179, 138, 0.035);
  text-align: center;
}

body.admin-onepage .admin-access-template-list-card.is-new:hover,
body.admin-onepage .admin-access-template-list-card.is-new:focus-visible {
  border-color: rgba(205, 179, 138, 0.62);
  background: rgba(205, 179, 138, 0.07);
}

body.admin-onepage .admin-access-template-list-card.is-new .admin-access-template-new-icon {
  width: 1.85rem;
  height: 1.85rem;
  margin-bottom: 0.05rem;
  background: rgba(205, 179, 138, 0.13);
  color: rgba(96, 68, 34, 0.72);
}

body.admin-onepage .admin-access-template-list-card.is-new > strong {
  color: rgba(31, 29, 26, 0.84);
  font-size: 0.79rem;
  font-weight: 700;
}

body.admin-onepage .admin-access-template-list-card.is-new > small {
  color: rgba(31, 29, 26, 0.44);
  font-size: 0.62rem;
  font-weight: 400;
}

/* Redigeringssiden får tydelige seksjoner uten nye innrammede bokser. */
body.admin-onepage .admin-access-template-editor-scroll {
  gap: 0.95rem;
  padding: 0.86rem 1.2rem 1.2rem;
}

body.admin-onepage .admin-access-template-back {
  min-height: 1.8rem;
  padding: 0.18rem 0.36rem 0.18rem 0.12rem;
  border-radius: 999px;
  color: rgba(112, 79, 38, 0.72);
  transition: color 150ms ease, background 150ms ease;
}

body.admin-onepage .admin-access-template-back:hover,
body.admin-onepage .admin-access-template-back:focus-visible {
  background: rgba(205, 179, 138, 0.07);
  color: rgba(92, 61, 24, 0.96);
}

body.admin-onepage .admin-access-template-fields {
  gap: 0.72rem;
}

body.admin-onepage .admin-access-template-fields input {
  background: rgba(255, 255, 255, 0.68);
  transition: border-color 150ms ease, box-shadow 150ms ease, background 150ms ease;
}

body.admin-onepage .admin-access-template-fields input:focus {
  border-color: rgba(205, 179, 138, 0.56);
  background: #fff;
  outline: 0;
  box-shadow: 0 0 0 3px rgba(205, 179, 138, 0.09);
}

body.admin-onepage .admin-access-template-options-section,
body.admin-onepage .admin-access-template-permissions-section {
  padding-top: 0.82rem;
  border-top: 1px solid rgba(31, 29, 26, 0.06);
}

body.admin-onepage .admin-access-template-options-section {
  margin-top: 0.05rem;
}

/* Rolig sideovergang i samme modal. */
body.admin-onepage .admin-access-template-manager.is-switching .admin-access-template-manager-scroll,
body.admin-onepage .admin-access-template-manager.is-switching .admin-access-template-editor {
  pointer-events: none;
}

body.admin-onepage .admin-access-template-manager-scroll.is-exiting-forward,
body.admin-onepage .admin-access-template-editor.is-exiting-forward {
  animation: adminAccessTemplateViewOutForward 125ms ease both;
}

body.admin-onepage .admin-access-template-manager-scroll.is-entering-forward,
body.admin-onepage .admin-access-template-editor.is-entering-forward {
  animation: adminAccessTemplateViewInForward 210ms cubic-bezier(.22, 1, .36, 1) both;
}

body.admin-onepage .admin-access-template-manager-scroll.is-exiting-back,
body.admin-onepage .admin-access-template-editor.is-exiting-back {
  animation: adminAccessTemplateViewOutBack 125ms ease both;
}

body.admin-onepage .admin-access-template-manager-scroll.is-entering-back,
body.admin-onepage .admin-access-template-editor.is-entering-back {
  animation: adminAccessTemplateViewInBack 210ms cubic-bezier(.22, 1, .36, 1) both;
}

@keyframes adminAccessTemplateViewOutForward {
  from { opacity: 1; transform: translateX(0); }
  to { opacity: 0; transform: translateX(-10px); }
}

@keyframes adminAccessTemplateViewInForward {
  from { opacity: 0; transform: translateX(12px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes adminAccessTemplateViewOutBack {
  from { opacity: 1; transform: translateX(0); }
  to { opacity: 0; transform: translateX(10px); }
}

@keyframes adminAccessTemplateViewInBack {
  from { opacity: 0; transform: translateX(-12px); }
  to { opacity: 1; transform: translateX(0); }
}

@media (max-width: 680px) {
  body.admin-onepage .admin-access-template-list {
    grid-template-columns: 1fr;
  }

  body.admin-onepage .admin-access-template-list-card {
    min-height: 6.7rem;
  }

  body.admin-onepage .admin-access-template-card-footer {
    gap: 0.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.admin-onepage .admin-access-template-manager-header > div.is-changing,
  body.admin-onepage .admin-access-template-manager-scroll.is-exiting-forward,
  body.admin-onepage .admin-access-template-editor.is-exiting-forward,
  body.admin-onepage .admin-access-template-manager-scroll.is-entering-forward,
  body.admin-onepage .admin-access-template-editor.is-entering-forward,
  body.admin-onepage .admin-access-template-manager-scroll.is-exiting-back,
  body.admin-onepage .admin-access-template-editor.is-exiting-back,
  body.admin-onepage .admin-access-template-manager-scroll.is-entering-back,
  body.admin-onepage .admin-access-template-editor.is-entering-back {
    animation: none !important;
  }
}

/* ========================================================================== 
   v225 · Tilgangsoppsettvelger – skjult teknisk scrollbar
   Beholder horisontal scroll ved faktisk overflow, men uten synlig scrollbar.
   ========================================================================== */
body.admin-onepage .admin-access-profile-options {
  scrollbar-width: none;
  -ms-overflow-style: none;
}

body.admin-onepage .admin-access-profile-options::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

/* ========================================================================== 
   v226 · Tilgangsoppsett – blankt nytt oppsett og kompakte tilleggsvalg
   ========================================================================== */

/* Administrer oppsett skal oppleves som en rolig navigasjonshandling. */
body.admin-onepage .admin-access-profile-manage,
body.admin-onepage .admin-access-templates-launch {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.42rem;
}

body.admin-onepage .admin-access-profile-manage {
  padding: 0.16rem 0.18rem 0.16rem 0.34rem;
  border-radius: 999px;
  background: transparent;
}

body.admin-onepage .admin-access-profile-manage i,
body.admin-onepage .admin-access-templates-launch i {
  display: inline-grid;
  place-items: center;
  width: 1.18rem;
  height: 1.18rem;
  border-radius: 50%;
  background: rgba(205, 179, 138, 0.13);
  color: rgba(112, 79, 38, 0.82);
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 0.92rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1;
  transition: background 160ms ease, color 160ms ease;
}

body.admin-onepage .admin-access-profile-manage:hover,
body.admin-onepage .admin-access-profile-manage:focus-visible {
  background: rgba(205, 179, 138, 0.055);
}

body.admin-onepage .admin-access-profile-manage:hover i,
body.admin-onepage .admin-access-profile-manage:focus-visible i,
body.admin-onepage .admin-access-templates-launch:hover i,
body.admin-onepage .admin-access-templates-launch:focus-visible i {
  background: rgba(205, 179, 138, 0.21);
  color: rgba(92, 61, 24, 0.98);
}

body.admin-onepage .admin-access-templates-launch {
  padding-right: 0.3rem;
}

/* Tilleggsvalg er metadata for oppsettet, ikke en egen stor innholdsseksjon. */
body.admin-onepage .admin-access-template-options-section {
  gap: 0.34rem;
  margin-top: 0;
  padding-top: 0.62rem;
}

body.admin-onepage .admin-access-template-section-heading.is-compact {
  align-items: center;
}

body.admin-onepage .admin-access-template-section-heading.is-compact > strong {
  color: rgba(31, 29, 26, 0.78);
  font-size: 0.7rem;
  font-weight: 700;
}

body.admin-onepage .admin-access-template-section-heading.is-compact > span {
  padding: 0;
  background: transparent;
  color: rgba(31, 29, 26, 0.38);
  font-size: 0.59rem;
}

body.admin-onepage .admin-access-template-settings {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  overflow: hidden;
  border: 1px solid rgba(31, 29, 26, 0.075);
  border-radius: 0.72rem;
  background: rgba(255, 255, 255, 0.34);
}

body.admin-onepage .admin-access-template-setting {
  min-height: 2.55rem;
  padding: 0.46rem 0.62rem;
  border: 0;
  border-radius: 0;
  background: transparent;
}

body.admin-onepage .admin-access-template-setting + .admin-access-template-setting {
  border-left: 1px solid rgba(31, 29, 26, 0.07);
}

body.admin-onepage .admin-access-template-setting:has(input:checked) {
  background: rgba(205, 179, 138, 0.055);
}

body.admin-onepage .admin-access-template-setting:has(input:disabled) {
  background: rgba(31, 29, 26, 0.018);
}

body.admin-onepage .admin-access-template-setting-copy {
  display: flex;
  align-items: center;
  gap: 0.34rem;
}

body.admin-onepage .admin-access-template-setting strong {
  font-size: 0.68rem;
  font-weight: 650;
  line-height: 1.2;
}

body.admin-onepage .admin-access-template-setting-info {
  display: inline-grid;
  place-items: center;
  width: 0.88rem;
  height: 0.88rem;
  flex: 0 0 0.88rem;
  border: 1px solid rgba(31, 29, 26, 0.12);
  border-radius: 50%;
  color: rgba(31, 29, 26, 0.42);
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 0.58rem;
  font-style: italic;
  font-weight: 600;
  line-height: 1;
  cursor: help;
}

/* Litt mindre brytere passer bedre i den kompakte raden. */
body.admin-onepage .admin-access-template-setting-control {
  width: 1.92rem;
  height: 1.08rem;
  flex-basis: 1.92rem;
}

body.admin-onepage .admin-access-template-setting-control i::after,
body.admin-onepage .admin-access-template-setting-control input:checked + i::after {
  left: 0.12rem;
  width: 0.76rem;
  height: 0.76rem;
}

body.admin-onepage .admin-access-template-setting-control input:checked + i::after {
  transform: translate(0.78rem, -50%);
}

/* Rolig status på rettighetsvalget, særlig nyttig når et nytt oppsett starter tomt. */
body.admin-onepage .admin-access-template-permission-status {
  padding: 0.18rem 0.4rem !important;
  background: rgba(31, 29, 26, 0.032) !important;
  color: rgba(31, 29, 26, 0.42) !important;
  font-size: 0.58rem !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

@media (max-width: 680px) {
  body.admin-onepage .admin-access-template-settings {
    grid-template-columns: 1fr;
  }

  body.admin-onepage .admin-access-template-setting + .admin-access-template-setting {
    border-left: 0;
    border-top: 1px solid rgba(31, 29, 26, 0.07);
  }
}

/* ========================================================================== 
   v227 · Tilgangsoppsett – roligere tilleggsvalg + Ingen tilgang
   ========================================================================== */

/* Tilleggsvalg ligger som lette champagne-kontroller, ikke som en settings-boks. */
body.admin-onepage .admin-access-template-options-section {
  gap: 0.42rem;
  padding-top: 0.72rem;
}

body.admin-onepage .admin-access-template-section-heading.is-compact {
  justify-content: flex-start;
  gap: 0.5rem;
}

body.admin-onepage .admin-access-template-section-heading.is-compact > strong {
  color: rgba(31, 29, 26, 0.72);
  font-size: 0.68rem;
  font-weight: 650;
}

body.admin-onepage .admin-access-template-section-heading.is-compact > span {
  position: relative;
  padding-left: 0.55rem;
  color: rgba(31, 29, 26, 0.34);
  font-size: 0.58rem;
  font-weight: 400;
}

body.admin-onepage .admin-access-template-section-heading.is-compact > span::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 0.16rem;
  height: 0.16rem;
  border-radius: 50%;
  background: rgba(190, 156, 106, 0.55);
  transform: translateY(-50%);
}

body.admin-onepage .admin-access-template-settings {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.52rem;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
}

body.admin-onepage .admin-access-template-setting,
body.admin-onepage .admin-access-template-setting + .admin-access-template-setting {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.7rem;
  width: auto;
  min-width: 12.4rem;
  min-height: 2.18rem;
  padding: 0.36rem 0.48rem 0.36rem 0.7rem;
  border: 1px solid rgba(205, 179, 138, 0.22);
  border-radius: 999px;
  background: rgba(205, 179, 138, 0.028);
  box-shadow: none;
  transition: border-color 150ms ease, background 150ms ease;
}

body.admin-onepage .admin-access-template-setting:hover {
  border-color: rgba(205, 179, 138, 0.38);
  background: rgba(205, 179, 138, 0.05);
}

body.admin-onepage .admin-access-template-setting:has(input:checked) {
  border-color: rgba(190, 156, 106, 0.46);
  background: rgba(205, 179, 138, 0.075);
}

body.admin-onepage .admin-access-template-setting:has(input:disabled) {
  border-color: rgba(31, 29, 26, 0.08);
  background: rgba(31, 29, 26, 0.018);
}

body.admin-onepage .admin-access-template-setting-copy {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  white-space: nowrap;
}

body.admin-onepage .admin-access-template-setting strong {
  color: rgba(31, 29, 26, 0.76);
  font-size: 0.66rem;
  font-weight: 650;
}

body.admin-onepage .admin-access-template-setting-info {
  width: 0.8rem;
  height: 0.8rem;
  flex-basis: 0.8rem;
  border-color: rgba(31, 29, 26, 0.1);
  background: rgba(255, 255, 255, 0.55);
  color: rgba(31, 29, 26, 0.38);
  font-size: 0.53rem;
}

body.admin-onepage .admin-access-template-setting-control {
  width: 1.78rem;
  height: 1rem;
  flex: 0 0 1.78rem;
}

body.admin-onepage .admin-access-template-setting-control i {
  border-color: rgba(31, 29, 26, 0.12);
  background: rgba(31, 29, 26, 0.055);
}

body.admin-onepage .admin-access-template-setting-control i::after,
body.admin-onepage .admin-access-template-setting-control input:checked + i::after {
  left: 0.11rem;
  width: 0.7rem;
  height: 0.7rem;
}

body.admin-onepage .admin-access-template-setting-control input:checked + i::after {
  transform: translate(0.72rem, -50%);
}

/* Bevisst 0-tilgangstilstand. Brukeren forblir innlogget og kan sjekke på nytt. */
body.admin-no-access-page .admin-no-access-shell {
  gap: 1.35rem;
}

body.admin-no-access-page .admin-no-access-note {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.78rem;
  align-items: start;
  padding: 0.92rem 1rem;
  border: 1px solid rgba(205, 179, 138, 0.26);
  border-radius: 0.9rem;
  background: rgba(205, 179, 138, 0.055);
}

body.admin-no-access-page .admin-no-access-note-mark {
  display: grid;
  place-items: center;
  width: 1.45rem;
  height: 1.45rem;
  margin-top: 0.02rem;
  border: 1px solid rgba(190, 156, 106, 0.42);
  border-radius: 50%;
  color: rgba(112, 79, 38, 0.78);
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 0.76rem;
  font-style: italic;
  line-height: 1;
}

body.admin-no-access-page .admin-no-access-note > div {
  display: grid;
  gap: 0.18rem;
}

body.admin-no-access-page .admin-no-access-note strong {
  color: rgba(31, 29, 26, 0.84);
  font-size: 0.76rem;
  font-weight: 680;
}

body.admin-no-access-page .admin-no-access-note p {
  margin: 0;
  color: rgba(31, 29, 26, 0.54);
  font-size: 0.69rem;
  font-weight: 400;
  line-height: 1.55;
}

body.admin-no-access-page .admin-no-access-actions {
  display: grid;
  gap: 0.58rem;
}

body.admin-no-access-page .admin-no-access-actions .admin-auth-submit {
  width: 100%;
}

body.admin-no-access-page .admin-no-access-logout {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.7rem;
  width: 100%;
  text-decoration: none;
}

@media (max-width: 680px) {
  body.admin-onepage .admin-access-template-settings {
    display: grid;
    grid-template-columns: 1fr;
  }

  body.admin-onepage .admin-access-template-setting,
  body.admin-onepage .admin-access-template-setting + .admin-access-template-setting {
    width: 100%;
    min-width: 0;
  }
}

/* ========================================================================== 
   v228 · Tilgangsoppsett – integrerte tilleggsvalg
   ========================================================================== */

/* Tilleggsvalg skal oppleves som en naturlig del av skjemaet, ikke som kort/pills. */
body.admin-onepage .admin-access-template-options-section {
  gap: 0.2rem;
  margin-top: 0;
  padding-top: 0.72rem;
}

body.admin-onepage .admin-access-template-section-heading.is-compact {
  justify-content: flex-start;
  align-items: baseline;
  gap: 0.48rem;
}

body.admin-onepage .admin-access-template-section-heading.is-compact > strong {
  color: rgba(31, 29, 26, 0.76);
  font-size: 0.69rem;
  font-weight: 650;
}

body.admin-onepage .admin-access-template-section-heading.is-compact > span {
  position: static;
  padding: 0;
  background: transparent;
  color: rgba(31, 29, 26, 0.35);
  font-size: 0.59rem;
  font-weight: 400;
}

body.admin-onepage .admin-access-template-section-heading.is-compact > span::before {
  content: "·";
  position: static;
  display: inline;
  width: auto;
  height: auto;
  margin-right: 0.35rem;
  border-radius: 0;
  background: transparent;
  color: rgba(190, 156, 106, 0.64);
  transform: none;
}

body.admin-onepage .admin-access-template-settings {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
}

body.admin-onepage .admin-access-template-setting,
body.admin-onepage .admin-access-template-setting + .admin-access-template-setting {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  width: 100%;
  min-width: 0;
  min-height: 2.62rem;
  padding: 0.56rem 0.08rem;
  border: 0;
  border-bottom: 1px solid rgba(31, 29, 26, 0.07);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
  transition: border-color 150ms ease, background 150ms ease;
}

body.admin-onepage .admin-access-template-setting:first-child {
  border-top: 1px solid rgba(31, 29, 26, 0.055);
}

body.admin-onepage .admin-access-template-setting:hover {
  border-color: rgba(31, 29, 26, 0.085);
  background: rgba(205, 179, 138, 0.018);
}

body.admin-onepage .admin-access-template-setting:has(input:checked) {
  border-color: rgba(31, 29, 26, 0.075);
  background: rgba(205, 179, 138, 0.028);
}

body.admin-onepage .admin-access-template-setting:has(input:disabled) {
  border-color: rgba(31, 29, 26, 0.06);
  background: rgba(31, 29, 26, 0.012);
}

body.admin-onepage .admin-access-template-setting-copy {
  display: inline-flex;
  align-items: center;
  gap: 0.32rem;
  min-width: 0;
  white-space: normal;
}

body.admin-onepage .admin-access-template-setting strong {
  color: rgba(31, 29, 26, 0.77);
  font-size: 0.68rem;
  font-weight: 600;
  line-height: 1.25;
}

body.admin-onepage .admin-access-template-setting-info {
  width: 0.8rem;
  height: 0.8rem;
  flex: 0 0 0.8rem;
  border-color: rgba(31, 29, 26, 0.09);
  background: transparent;
  color: rgba(31, 29, 26, 0.36);
  font-size: 0.52rem;
}

body.admin-onepage .admin-access-template-setting:hover .admin-access-template-setting-info {
  border-color: rgba(190, 156, 106, 0.28);
  color: rgba(112, 79, 38, 0.58);
}

body.admin-onepage .admin-access-template-setting-control {
  width: 1.92rem;
  height: 1.08rem;
  flex: 0 0 1.92rem;
  margin-right: 0.04rem;
}

body.admin-onepage .admin-access-template-setting-control i {
  border-color: rgba(31, 29, 26, 0.13);
  background: rgba(31, 29, 26, 0.055);
}

body.admin-onepage .admin-access-template-setting-control i::after,
body.admin-onepage .admin-access-template-setting-control input:checked + i::after {
  left: 0.12rem;
  width: 0.76rem;
  height: 0.76rem;
}

body.admin-onepage .admin-access-template-setting-control input:checked + i::after {
  transform: translate(0.78rem, -50%);
}

@media (max-width: 680px) {
  body.admin-onepage .admin-access-template-setting,
  body.admin-onepage .admin-access-template-setting + .admin-access-template-setting {
    width: 100%;
    min-width: 0;
    padding-left: 0.02rem;
    padding-right: 0.02rem;
  }
}

/* ========================================================================== 
   v229 · Tilgangsoppsett – færre skillelinjer
   ========================================================================== */

/* Tilleggsvalg skal være integrert i arbeidsflaten uten å dele opp skjemaet
   med linjer for hver enkelt kontroll. Rettigheter beholder én tydelig
   seksjonsdeling nedenfor. */
body.admin-onepage .admin-access-template-options-section {
  border-top: 0;
  padding-top: 0.46rem;
  gap: 0.28rem;
}

body.admin-onepage .admin-access-template-settings {
  gap: 0.12rem;
}

body.admin-onepage .admin-access-template-setting,
body.admin-onepage .admin-access-template-setting + .admin-access-template-setting {
  min-height: 2.48rem;
  padding: 0.5rem 0.28rem;
  border: 0;
  border-radius: 0.48rem;
  background: transparent;
}

body.admin-onepage .admin-access-template-setting:first-child {
  border-top: 0;
}

body.admin-onepage .admin-access-template-setting:hover {
  border-color: transparent;
  background: rgba(205, 179, 138, 0.026);
}

body.admin-onepage .admin-access-template-setting:has(input:checked) {
  border-color: transparent;
  background: rgba(205, 179, 138, 0.04);
}

body.admin-onepage .admin-access-template-setting:has(input:disabled) {
  border-color: transparent;
  background: rgba(31, 29, 26, 0.012);
}

/* Én seksjonslinje er nok: marker overgangen til selve rettighetslisten. */
body.admin-onepage .admin-access-template-permissions-section {
  margin-top: 0.18rem;
  padding-top: 0.92rem;
  border-top: 1px solid rgba(31, 29, 26, 0.055);
}

/* ========================================================================== 
   v230 · Tilleggsvalg – subtil separator mellom valgene + sentrert info-ikon
   ========================================================================== */

/* Behold en rolig, innebygget seksjon uten topplinje, men skill de to valgene
   med én subtil separator mellom radene. */
body.admin-onepage .admin-access-template-settings {
  display: block;
  gap: 0;
}

body.admin-onepage .admin-access-template-setting,
body.admin-onepage .admin-access-template-setting + .admin-access-template-setting {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 2.46rem;
  margin: 0;
  padding: 0.5rem 0.28rem;
  border: 0;
  border-radius: 0.42rem;
  background: transparent;
}

body.admin-onepage .admin-access-template-setting + .admin-access-template-setting {
  border-top: 1px solid rgba(31, 29, 26, 0.065);
}

body.admin-onepage .admin-access-template-setting-copy {
  display: inline-flex;
  align-items: center;
  gap: 0.34rem;
}

/* Sørg for at info-ikonet sitter optisk midt på raden. */
body.admin-onepage .admin-access-template-setting-info {
  display: inline-grid;
  place-items: center;
  align-self: center;
  vertical-align: middle;
  width: 0.86rem;
  height: 0.86rem;
  flex: 0 0 0.86rem;
  line-height: 1;
  transform: translateY(0.01rem);
}

/* Hover/aktiv via svak bakgrunn, ikke flere rammer. */
body.admin-onepage .admin-access-template-setting:hover {
  background: rgba(205, 179, 138, 0.026);
}

body.admin-onepage .admin-access-template-setting:has(input:checked) {
  background: rgba(205, 179, 138, 0.04);
}

body.admin-onepage .admin-access-template-setting:has(input:disabled) {
  background: rgba(31, 29, 26, 0.012);
}

@media (max-width: 680px) {
  body.admin-onepage .admin-access-template-setting,
  body.admin-onepage .admin-access-template-setting + .admin-access-template-setting {
    padding-left: 0.08rem;
    padding-right: 0.08rem;
  }
}

/* ========================================================================== 
   v231 · Tilleggsvalg – topplinje over første rad, bunnlinje under siste rad,
   ingen seksjonslinje før Rettigheter
   ========================================================================== */

/* Legg en subtil innramming rundt selve valgene: over Standardvalg og under
   Full tilgang, i tillegg til separatoren mellom dem. */
body.admin-onepage .admin-access-template-setting:first-child {
  border-top: 1px solid rgba(31, 29, 26, 0.065);
}

body.admin-onepage .admin-access-template-setting:last-child {
  border-bottom: 1px solid rgba(31, 29, 26, 0.065);
}

/* Fjern den ekstra seksjonslinjen mellom Tilleggsvalg og Rettigheter. */
body.admin-onepage .admin-access-template-permissions-section {
  margin-top: 0.18rem;
  padding-top: 0.7rem;
  border-top: 0;
}

/* ========================================================================== 
   v232 · Tilleggsvalg – champagnefargede, mykere separatorer
   ========================================================================== */

/* Bytt de tekniske grå border-linjene med myke champagne-linjer som fader
   svakt ut mot sidene. */
body.admin-onepage .admin-access-template-setting,
body.admin-onepage .admin-access-template-setting + .admin-access-template-setting,
body.admin-onepage .admin-access-template-setting:first-child,
body.admin-onepage .admin-access-template-setting:last-child {
  position: relative;
  border-top: 0;
  border-bottom: 0;
}

body.admin-onepage .admin-access-template-setting:first-child::before,
body.admin-onepage .admin-access-template-setting + .admin-access-template-setting::before,
body.admin-onepage .admin-access-template-setting:last-child::after {
  content: "";
  position: absolute;
  left: 0.22rem;
  right: 0.22rem;
  height: 1px;
  pointer-events: none;
  background: linear-gradient(
    90deg,
    rgba(205, 179, 138, 0.04) 0%,
    rgba(190, 156, 106, 0.24) 12%,
    rgba(190, 156, 106, 0.24) 88%,
    rgba(205, 179, 138, 0.04) 100%
  );
}

body.admin-onepage .admin-access-template-setting:first-child::before,
body.admin-onepage .admin-access-template-setting + .admin-access-template-setting::before {
  top: 0;
}

body.admin-onepage .admin-access-template-setting:last-child::after {
  bottom: 0;
}

/* ========================================================================== 
   v233 · Tilgangsoppsett direkte i velgeren – velg, rediger eller opprett
   ========================================================================== */

/* Ingen separat administrasjonslenke i picker-headeren. */
body.admin-onepage .admin-access-profile-picker-heading {
  justify-content: flex-start;
}

/* Globale oppsett er split-actions: venstre velger, høyre redigerer. */
body.admin-onepage .admin-access-profile-item {
  display: inline-flex;
  align-items: stretch;
  flex: 0 0 auto;
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(31, 29, 26, 0.085);
  border-radius: 0.72rem;
  background: rgba(255, 255, 255, 0.62);
  transition: border-color 150ms ease, background 150ms ease, box-shadow 150ms ease;
}

body.admin-onepage .admin-access-profile-item:hover,
body.admin-onepage .admin-access-profile-item:focus-within {
  border-color: rgba(205, 179, 138, 0.34);
  background: rgba(255, 253, 249, 0.92);
}

body.admin-onepage .admin-access-profile-item:has(input:checked),
body.admin-onepage .admin-access-profile-item.is-selected {
  border-color: rgba(205, 179, 138, 0.52);
  background: rgba(205, 179, 138, 0.075);
  box-shadow: 0 1px 0 rgba(205, 179, 138, 0.05);
}

body.admin-onepage .admin-access-profile-item .admin-access-profile-option {
  min-height: 2.45rem;
  padding: 0.48rem 0.66rem;
  border: 0 !important;
  border-radius: 0;
  background: transparent !important;
}

body.admin-onepage .admin-access-profile-item .admin-access-profile-option:hover {
  background: rgba(205, 179, 138, 0.025) !important;
}

body.admin-onepage .admin-access-profile-item .admin-access-profile-option:has(input:disabled) {
  opacity: 0.68;
}

/* Rediger er bevisst tekstlig – mer entydig enn en chevron. */
body.admin-onepage .admin-access-profile-edit {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-width: 3.7rem;
  padding: 0.42rem 0.58rem;
  border: 0;
  border-left: 1px solid rgba(205, 179, 138, 0.18);
  background: rgba(205, 179, 138, 0.025);
  color: rgba(112, 79, 38, 0.72);
  font: inherit;
  font-size: 0.59rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  transition: background 150ms ease, color 150ms ease, border-color 150ms ease;
}

body.admin-onepage .admin-access-profile-edit:hover,
body.admin-onepage .admin-access-profile-edit:focus-visible {
  border-left-color: rgba(205, 179, 138, 0.34);
  background: rgba(205, 179, 138, 0.11);
  color: rgba(92, 61, 24, 0.98);
}

body.admin-onepage .admin-access-profile-edit:focus-visible,
body.admin-onepage .admin-access-profile-new:focus-visible {
  outline: 2px solid rgba(205, 179, 138, 0.34);
  outline-offset: -2px;
}

/* Egendefinert er fortsatt et vanlig valg, uten global redigeringshandling. */
body.admin-onepage .admin-access-profile-option.is-custom {
  flex: 0 0 auto;
}

/* Et lite visuelt skille før opprettelse av en ny global mal. */
body.admin-onepage .admin-access-profile-new-divider {
  align-self: center;
  flex: 0 0 1px;
  width: 1px;
  height: 1.7rem;
  margin: 0 0.12rem;
  background: linear-gradient(
    to bottom,
    rgba(205, 179, 138, 0),
    rgba(205, 179, 138, 0.34) 28%,
    rgba(205, 179, 138, 0.34) 72%,
    rgba(205, 179, 138, 0)
  );
}

body.admin-onepage .admin-access-profile-new {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.42rem;
  flex: 0 0 auto;
  min-height: 2.45rem;
  padding: 0.46rem 0.66rem 0.46rem 0.52rem;
  border: 1px dashed rgba(205, 179, 138, 0.42);
  border-radius: 0.72rem;
  background: rgba(205, 179, 138, 0.025);
  color: rgba(96, 68, 34, 0.78);
  font: inherit;
  font-size: 0.66rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  transition: border-color 150ms ease, background 150ms ease, color 150ms ease;
}

body.admin-onepage .admin-access-profile-new:hover,
body.admin-onepage .admin-access-profile-new:focus-visible {
  border-color: rgba(205, 179, 138, 0.66);
  background: rgba(205, 179, 138, 0.075);
  color: rgba(82, 56, 24, 0.96);
}

body.admin-onepage .admin-access-profile-new-icon {
  display: grid;
  place-items: center;
  width: 1.28rem;
  height: 1.28rem;
  border-radius: 50%;
  background: rgba(205, 179, 138, 0.13);
  color: rgba(96, 68, 34, 0.72);
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1;
}

/* Manageren åpner nå rett i editoren. */
body.admin-onepage .admin-access-template-manager {
  grid-template-rows: auto minmax(0, 1fr);
}

body.admin-onepage .admin-access-template-editor {
  min-height: 0;
}

body.admin-onepage .admin-access-template-editor.is-direct-entering {
  animation: adminAccessTemplateDirectIn 230ms cubic-bezier(.22, 1, .36, 1) both;
}

@keyframes adminAccessTemplateDirectIn {
  from { opacity: 0.35; transform: translateY(5px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Tilbake er nå tilbake til tilganger, ikke til en mellomliggende oppsettliste. */
body.admin-onepage .admin-access-template-back {
  color: rgba(112, 79, 38, 0.72);
}

@media (max-width: 680px) {
  body.admin-onepage .admin-access-profile-edit {
    min-width: 3.35rem;
    padding-inline: 0.5rem;
    font-size: 0.57rem;
  }

  body.admin-onepage .admin-access-profile-new {
    padding-inline: 0.54rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.admin-onepage .admin-access-template-editor.is-direct-entering {
    animation: none !important;
  }
}

/* ========================================================================== 
   v236 · Tilgangsoppsett som integrert header i Tilganger
   ========================================================================== */

/* Fjern kort-i-kort-følelsen. Oppsettvelgeren er nå selve toppheaderen i
   Tilganger-panelet, mens de eksisterende valgene beholder knappestilen. */
body.admin-onepage .admin-access-profile-picker {
  position: relative;
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  align-items: center;
  column-gap: 0.82rem;
  row-gap: 0.42rem;
  margin-top: 0.44rem;
  padding: 0.12rem 0 0.72rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  overflow: visible;
}

/* Én myk champagne-separator markerer overgangen til rettighetslisten. */
body.admin-onepage .admin-access-profile-picker::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  pointer-events: none;
  background: linear-gradient(
    90deg,
    rgba(205, 179, 138, 0.02) 0%,
    rgba(190, 156, 106, 0.20) 10%,
    rgba(190, 156, 106, 0.20) 90%,
    rgba(205, 179, 138, 0.02) 100%
  );
}

body.admin-onepage .admin-access-profile-picker-heading {
  display: flex;
  align-items: center;
  align-self: center;
  min-width: max-content;
  margin: 0;
  padding: 0;
}

body.admin-onepage .admin-access-profile-picker-heading > strong {
  color: rgba(31, 29, 26, 0.76);
  font-size: 0.7rem;
  font-weight: 720;
  line-height: 1.2;
  white-space: nowrap;
}

body.admin-onepage .admin-access-profile-options {
  min-width: 0;
  width: 100%;
  margin: 0;
  padding: 0.02rem 0 0.05rem;
  align-items: center;
}

/* Litt strammere i header-kontekst uten å endre selve knappespråket. */
body.admin-onepage .admin-access-profile-item .admin-access-profile-option,
body.admin-onepage .admin-access-profile-option.is-custom,
body.admin-onepage .admin-access-profile-new {
  min-height: 2.36rem;
}

@media (max-width: 820px) {
  body.admin-onepage .admin-access-profile-picker {
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
    row-gap: 0.4rem;
    margin-top: 0.36rem;
    padding-bottom: 0.68rem;
  }

  body.admin-onepage .admin-access-profile-picker-heading {
    min-width: 0;
  }
}

/* ========================================================================== 
   v237 · Tilganger – én header, én oppsettvelger
   ========================================================================== */

/* Oppsettvelgeren er lokal navigasjon under Tilganger, ikke en egen navngitt
   komponent. Fjern derfor ekstra kolonne/label og la knappene fylle raden. */
body.admin-onepage .admin-access-profile-picker {
  display: block;
  margin-top: 0.22rem;
  padding: 0.3rem 0 0.68rem;
}

body.admin-onepage .admin-access-profile-picker-heading {
  display: none !important;
}

body.admin-onepage .admin-access-profile-options {
  width: 100%;
  padding: 0;
}

/* Litt roligere sekundærmarkører og ny-mal-handling, mens valgt oppsett
   fortsatt har samme tydelige knappespråk. */
body.admin-onepage .admin-access-profile-option small {
  opacity: 0.72;
}

body.admin-onepage .admin-access-profile-new {
  opacity: 0.88;
}

body.admin-onepage .admin-access-profile-new:hover,
body.admin-onepage .admin-access-profile-new:focus-visible {
  opacity: 1;
}

/* Når badge/undertittel er borte skal Tilganger-summaryen få en helt ren
   enkeltlinje og lukkeikonet ligge naturlig helt til høyre. */
body.admin-onepage .admin-user-permissions > summary {
  align-items: center;
}

body.admin-onepage .admin-user-permissions > summary > span:first-child {
  min-width: 0;
}

/* ========================================================================== 
   v238 · Adminbrukere – roligere Tilganger-kort + symmetrisk vertikal rytme
   ========================================================================== */

/* Tilganger skal føles som en integrert del av brukerkortet, ikke som en
   lys boks lagt oppå. Bruk en svært svak varm tone og mykere kontraster. */
body.admin-onepage .admin-user-permissions {
  border-color: rgba(31, 29, 26, 0.062);
  background:
    linear-gradient(
      180deg,
      rgba(255, 253, 249, 0.34),
      rgba(205, 179, 138, 0.022)
    );
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.36);
}

body.admin-onepage .admin-user-permissions > summary {
  color: rgba(31, 29, 26, 0.76);
}

body.admin-onepage .admin-user-permissions > summary strong {
  color: rgba(31, 29, 26, 0.78);
  font-weight: 650;
}

body.admin-onepage .admin-user-permissions > summary > i {
  background: rgba(205, 179, 138, 0.10);
}

body.admin-onepage .admin-user-permissions > summary > i::before,
body.admin-onepage .admin-user-permissions > summary > i::after {
  background: rgba(31, 29, 26, 0.58);
}

body.admin-onepage .admin-user-permissions:hover {
  border-color: rgba(190, 156, 106, 0.16);
}

/* Kortet bruker gap: 1.15rem. Når save-state er skjult ligger det som et
   nullhøyt grid-element mellom Tilganger og footeren. Trekk derfor nøyaktig
   en halv gap fra hver side, slik at den synlige avstanden blir én gap –
   identisk med avstanden over Tilganger. */
body.admin-onepage .admin-user-card:not(.is-dirty) .admin-user-save-state {
  margin-block: -0.575rem;
}

/* ========================================================================== 
   v239 · Adminbrukere – faktisk symmetrisk avstand rundt Tilganger
   ========================================================================== */

/* Save-state er et eget grid-element. Selv med høyde 0 skaper det et ekstra
   grid-gap mellom Tilganger og kontofooteren. Når kortet er rent tas det helt
   ut av layouten, slik at footeren får nøyaktig ett ordinært kort-gap. */
body.admin-onepage .admin-user-card:not(.is-dirty) .admin-user-save-state {
  display: none;
  margin: 0;
}

/* Når noe endres kommer feltet tilbake i layouten og beholder eksisterende
   reveal-styling. */
body.admin-onepage .admin-user-card.is-dirty .admin-user-save-state {
  display: flex;
}

@media (max-width: 780px) {
  body.admin-onepage .admin-user-card.is-dirty .admin-user-save-state {
    display: grid;
  }
}

/* ========================================================================== 
   v240 · Tilgangsoppsett – optisk vertikaljustering av navn og label
   ========================================================================== */
body.admin-onepage .admin-access-profile-option > span {
  align-items: center;
}

body.admin-onepage .admin-access-profile-option strong {
  display: inline-flex;
  align-items: center;
  min-height: 1.06rem;
  line-height: 1;
}

body.admin-onepage .admin-access-profile-option small {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 1.06rem;
  padding-top: 0;
  padding-bottom: 0;
  line-height: 1;
  vertical-align: middle;
}

/* ========================================================================== 
   v241 · Eier – test Medhjelper-tilgang
   ========================================================================== */

/* Test er en sekundær arbeidsflyt i selve oppsettvelgeren. */
body.admin-onepage .admin-access-profile-test-divider {
  align-self: center;
  flex: 0 0 1px;
  width: 1px;
  height: 1.7rem;
  margin: 0 0.08rem;
  background: linear-gradient(
    to bottom,
    rgba(205, 179, 138, 0),
    rgba(205, 179, 138, 0.24) 30%,
    rgba(205, 179, 138, 0.24) 70%,
    rgba(205, 179, 138, 0)
  );
}

body.admin-onepage .admin-access-profile-test {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  flex: 0 0 auto;
  min-height: 2.36rem;
  padding: 0.44rem 0.64rem;
  border: 0;
  border-radius: 0.7rem;
  background: rgba(31, 29, 26, 0.035);
  color: rgba(31, 29, 26, 0.64);
  font: inherit;
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  transition: background 150ms ease, color 150ms ease;
}

body.admin-onepage .admin-access-profile-test:hover,
body.admin-onepage .admin-access-profile-test:focus-visible {
  background: rgba(205, 179, 138, 0.09);
  color: rgba(82, 56, 24, 0.94);
}

body.admin-onepage .admin-access-profile-test:focus-visible {
  outline: 2px solid rgba(205, 179, 138, 0.3);
  outline-offset: 1px;
}

body.admin-onepage .admin-access-profile-test:disabled,
body.admin-onepage .admin-access-profile-test[hidden] {
  display: none !important;
}

body.admin-onepage .admin-access-profile-test-mark {
  display: grid;
  place-items: center;
  width: 1.18rem;
  height: 1.18rem;
  border-radius: 50%;
  background: rgba(205, 179, 138, 0.12);
  color: rgba(112, 79, 38, 0.68);
  font-size: 0.48rem;
  line-height: 1;
  transform: translateY(-0.01rem);
}

/* Samme testhandling er tilgjengelig før en global tilgangsmal lagres. */
body.admin-onepage .admin-access-template-test {
  appearance: none;
  justify-self: start;
  padding: 0.48rem 0.68rem;
  border: 0;
  border-radius: 999px;
  background: rgba(205, 179, 138, 0.07);
  color: rgba(96, 68, 34, 0.76);
  font: inherit;
  font-size: 0.64rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 150ms ease, color 150ms ease;
}

body.admin-onepage .admin-access-template-test:hover,
body.admin-onepage .admin-access-template-test:focus-visible {
  background: rgba(205, 179, 138, 0.13);
  color: rgba(82, 56, 24, 0.96);
}

body.admin-onepage .admin-access-template-test:focus-visible {
  outline: 2px solid rgba(205, 179, 138, 0.3);
  outline-offset: 2px;
}

/* Fast, men innholdsvennlig testlinje inne i adminens egen scrollflate. */
.admin-access-test-banner {
  position: sticky;
  z-index: 64;
  top: 0;
  width: 100%;
  margin: 0;
  background:
    linear-gradient(90deg, rgba(48, 43, 36, 0.985), rgba(39, 35, 30, 0.985));
  color: rgba(255, 253, 249, 0.9);
  border-bottom: 1px solid rgba(205, 179, 138, 0.24);
  box-shadow: 0 8px 24px rgba(31, 29, 26, 0.08);
}

.admin-access-test-banner-inner {
  width: min(92vw, 1180px);
  min-height: 2.75rem;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.42rem 0;
}

.admin-access-test-banner-copy {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  line-height: 1;
}

.admin-access-test-banner-mark {
  width: 0.5rem;
  height: 0.5rem;
  flex: 0 0 0.5rem;
  border-radius: 50%;
  background: rgba(221, 193, 147, 0.95);
  box-shadow: 0 0 0 4px rgba(205, 179, 138, 0.10);
}

.admin-access-test-banner-copy strong {
  color: #fffdf9;
  font-size: 0.68rem;
  font-weight: 760;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.admin-access-test-banner-copy > span:not(.admin-access-test-banner-mark) {
  color: rgba(230, 208, 172, 0.96);
  font-size: 0.72rem;
  font-weight: 700;
}

.admin-access-test-banner-copy small {
  color: rgba(255, 253, 249, 0.55);
  font-size: 0.61rem;
  font-weight: 500;
}

.admin-access-test-banner form {
  flex: 0 0 auto;
  margin: 0;
}

.admin-access-test-banner button {
  appearance: none;
  padding: 0.42rem 0.66rem;
  border: 1px solid rgba(221, 193, 147, 0.42);
  border-radius: 999px;
  background: rgba(205, 179, 138, 0.08);
  color: rgba(255, 253, 249, 0.88);
  font: inherit;
  font-size: 0.61rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;
}

.admin-access-test-banner button:hover,
.admin-access-test-banner button:focus-visible {
  border-color: rgba(221, 193, 147, 0.7);
  background: rgba(205, 179, 138, 0.16);
  color: #fffdf9;
}

/* På offentlige RSVP-sider ligger testlinjen under den mørke adminlinjen. */
body.rsvp-public .admin-access-test-banner {
  position: sticky;
  top: var(--rsvp-admin-utility-height, 0px);
  z-index: 115;
}

.admin-no-access-test-stop {
  margin: 0;
}

.admin-no-access-test-stop .admin-auth-submit {
  width: 100%;
}

@media (max-width: 780px) {
  body.admin-onepage .admin-access-profile-test-divider {
    display: none;
  }

  body.admin-onepage .admin-access-profile-test {
    min-height: 2.26rem;
    padding-inline: 0.56rem;
  }

  .admin-access-test-banner-inner {
    width: min(94vw, 42rem);
    min-height: 3rem;
    gap: 0.65rem;
  }

  .admin-access-test-banner-copy {
    flex-wrap: wrap;
    gap: 0.35rem 0.48rem;
  }

  .admin-access-test-banner-copy small {
    flex-basis: 100%;
    padding-left: 1.02rem;
  }

  .admin-access-test-banner button {
    white-space: nowrap;
  }
}

@media (max-width: 520px) {
  .admin-access-test-banner-inner {
    align-items: flex-start;
    padding-block: 0.5rem;
  }

  .admin-access-test-banner-copy > span:not(.admin-access-test-banner-mark) {
    max-width: 8.5rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .admin-access-test-banner-copy small {
    display: none;
  }
}

@media (max-width: 720px) {
  body.admin-onepage .admin-access-template-dialog-actions .admin-access-template-delete-trigger,
  body.admin-onepage .admin-access-template-dialog-actions .admin-access-template-test {
    grid-column: auto;
    justify-self: start;
  }
}

/* ========================================================================== 
   v242 · Test tilgang – flyttet til headernivå
   ========================================================================== */

/* Test av en konkret bruker/invitasjon hører hjemme i Tilganger-headeren,
   ikke blant oppsettvalgene. Den vises først når revealen er åpen. */
body.admin-onepage .admin-user-permissions > summary > .admin-user-permissions-test-action {
  appearance: none;
  display: none;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  margin-left: auto;
  padding: 0.34rem 0.5rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: rgba(112, 79, 38, 0.68);
  font: inherit;
  font-size: 0.61rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  transition: background 150ms ease, color 150ms ease;
}

body.admin-onepage .admin-user-permissions[open] > summary > .admin-user-permissions-test-action:not([hidden]) {
  display: inline-flex;
}

body.admin-onepage .admin-user-permissions > summary > .admin-user-permissions-test-action:hover,
body.admin-onepage .admin-user-permissions > summary > .admin-user-permissions-test-action:focus-visible {
  background: rgba(205, 179, 138, 0.08);
  color: rgba(82, 56, 24, 0.94);
}

body.admin-onepage .admin-user-permissions > summary > .admin-user-permissions-test-action:focus-visible {
  outline: 2px solid rgba(205, 179, 138, 0.25);
  outline-offset: 1px;
}

body.admin-onepage .admin-user-permissions > summary > .admin-user-permissions-test-action:disabled,
body.admin-onepage .admin-user-permissions > summary > .admin-user-permissions-test-action[hidden] {
  display: none !important;
}

/* Headeren i tilgangsmal-editoren får en egen handlinggruppe: Test tilgang
   som rolig champagnehandling, deretter den eksisterende X-knappen. */
body.admin-onepage .admin-access-template-manager-header-actions {
  display: flex;
  align-items: center;
  gap: 0.42rem;
  flex: 0 0 auto;
}

body.admin-onepage .admin-access-template-manager-header-actions .admin-access-template-test {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.1rem;
  padding: 0.35rem 0.58rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: rgba(112, 79, 38, 0.7);
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1;
}

body.admin-onepage .admin-access-template-manager-header-actions .admin-access-template-test:hover,
body.admin-onepage .admin-access-template-manager-header-actions .admin-access-template-test:focus-visible {
  background: rgba(205, 179, 138, 0.08);
  color: rgba(82, 56, 24, 0.96);
}

/* Footer er nå for redigering: slett / avbryt / lagre. */
body.admin-onepage .admin-access-template-dialog-actions {
  align-items: center;
}

@media (max-width: 680px) {
  body.admin-onepage .admin-user-permissions > summary > .admin-user-permissions-test-action {
    padding-inline: 0.42rem;
    font-size: 0.59rem;
  }

  body.admin-onepage .admin-access-template-manager-header-actions {
    gap: 0.3rem;
  }

  body.admin-onepage .admin-access-template-manager-header-actions .admin-access-template-test {
    padding-inline: 0.46rem;
    font-size: 0.59rem;
  }
}

/* Hold headerhandlingene tett samlet når testen er synlig. */
body.admin-onepage .admin-user-permissions[open] > summary:has(> .admin-user-permissions-test-action) {
  gap: 0.46rem;
}

body.admin-onepage .admin-user-permissions[open] > summary:has(> .admin-user-permissions-test-action) > span:first-child {
  margin-right: auto;
}

/* ========================================================================== 
   v243 · Test kun i maleditor + tydelig sletting + høyrejustert Lagre
   ========================================================================== */

/* Test tilgang skal bare finnes i selve tilgangsmal-editoren. */
body.admin-onepage .admin-user-permissions > summary > .admin-user-permissions-test-action {
  display: none !important;
}

/* Footer følger samme handlingshierarki som resten av admin: destruktiv handling
   til venstre, Avbryt/Lagre samlet til høyre, med Lagre helt ytterst. */
body.admin-onepage .admin-access-template-dialog-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.55rem;
}

body.admin-onepage .admin-access-template-dialog-actions .admin-access-template-delete-trigger {
  margin-right: auto;
}

body.admin-onepage .admin-access-template-delete-trigger:disabled,
body.admin-onepage .admin-access-template-delete-trigger.is-disabled {
  opacity: 0.38;
  cursor: not-allowed;
  text-decoration: none;
}

@media (max-width: 720px) {
  body.admin-onepage .admin-access-template-dialog-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
  }

  body.admin-onepage .admin-access-template-dialog-actions .admin-access-template-delete-trigger {
    flex-basis: 100%;
    margin-right: 0;
    margin-bottom: 0.12rem;
    text-align: left;
  }
}

/* ========================================================================== 
   v244 · Tilgangsoppsett – klikkbar mal til Egendefinert + lik kortstørrelse
   ========================================================================== */

/* Egendefinert skal ha samme visuelle grunnstørrelse som et vanlig globalt
   tilgangsoppsett, selv om det ikke har en separat Rediger-del. */
body.admin-onepage .admin-access-profile-item,
body.admin-onepage .admin-access-profile-option.is-custom {
  min-width: 12.8rem;
}

body.admin-onepage .admin-access-profile-option.is-custom {
  min-height: 2.45rem;
  padding: 0.48rem 0.66rem;
}

@media (max-width: 680px) {
  body.admin-onepage .admin-access-profile-item,
  body.admin-onepage .admin-access-profile-option.is-custom {
    min-width: 11.9rem;
  }
}

/* ========================================================================== 
   v245 · Adminbrukere – Avbryt ved ulagrede endringer
   ========================================================================== */
body.admin-onepage .admin-user-save-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.48rem;
  flex: 0 0 auto;
}

body.admin-onepage .admin-user-save-cancel {
  appearance: none;
  min-height: 2.55rem;
  padding: 0.66rem 0.62rem;
  border: 0;
  border-radius: 0.62rem;
  background: transparent;
  color: rgba(31, 29, 26, 0.46);
  font: inherit;
  font-size: 0.67rem;
  font-weight: 650;
  line-height: 1.2;
  letter-spacing: 0.045em;
  text-transform: uppercase;
  cursor: pointer;
  transition: color 160ms ease, background 160ms ease;
}

body.admin-onepage .admin-user-save-cancel:hover,
body.admin-onepage .admin-user-save-cancel:focus-visible {
  background: rgba(31, 29, 26, 0.035);
  color: rgba(31, 29, 26, 0.72);
}

body.admin-onepage .admin-user-save-cancel:focus-visible {
  outline: 2px solid rgba(205, 179, 138, 0.36);
  outline-offset: 2px;
}

@media (max-width: 780px) {
  body.admin-onepage .admin-user-save-actions {
    width: 100%;
  }

  body.admin-onepage .admin-user-save-cancel {
    flex: 0 0 auto;
  }

  body.admin-onepage .admin-user-save-button {
    flex: 1 1 auto;
    width: auto;
  }
}

/* ========================================================================== 
   v246 · Tilganger – rolig reveal + kompakt redigeringsikon
   ========================================================================== */

/* Den globale malen beholder hele kortflaten til selve valget. Redigering er
   en liten, separat ikonhandling i høyre kant. */
body.admin-onepage .admin-access-profile-edit {
  min-width: 2.28rem;
  width: 2.28rem;
  padding: 0;
}

body.admin-onepage .admin-access-profile-edit-icon {
  display: block;
  width: 0.86rem;
  height: 0.86rem;
  flex: 0 0 0.86rem;
  opacity: 0.76;
  transition: opacity 150ms ease, transform 150ms ease;
}

body.admin-onepage .admin-access-profile-edit:hover .admin-access-profile-edit-icon,
body.admin-onepage .admin-access-profile-edit:focus-visible .admin-access-profile-edit-icon {
  opacity: 1;
}

/* Myk reveal når Tilganger åpnes. Vi animerer selve arbeidsflaten og lar
   innholdet komme inn i svært korte, rolige trinn – uten hopp i layouten. */
body.admin-onepage .admin-user-permissions[open] > .admin-user-permissions-body {
  animation: adminPermissionsBodyReveal 220ms cubic-bezier(.22,.72,.28,1) both;
}

body.admin-onepage .admin-user-permissions[open] .admin-access-profile-options {
  animation: adminPermissionsToolbarReveal 230ms 35ms cubic-bezier(.22,.72,.28,1) both;
}

body.admin-onepage .admin-user-permissions[open] .admin-user-permission-group {
  animation: adminPermissionsGroupReveal 235ms cubic-bezier(.22,.72,.28,1) both;
}

body.admin-onepage .admin-user-permissions[open] .admin-user-permission-group:nth-of-type(1) { animation-delay: 55ms; }
body.admin-onepage .admin-user-permissions[open] .admin-user-permission-group:nth-of-type(2) { animation-delay: 75ms; }
body.admin-onepage .admin-user-permissions[open] .admin-user-permission-group:nth-of-type(3) { animation-delay: 95ms; }
body.admin-onepage .admin-user-permissions[open] .admin-user-permission-group:nth-of-type(4) { animation-delay: 115ms; }
body.admin-onepage .admin-user-permissions[open] .admin-user-permission-group:nth-of-type(5) { animation-delay: 135ms; }
body.admin-onepage .admin-user-permissions[open] .admin-user-permission-group:nth-of-type(n+6) { animation-delay: 150ms; }

@keyframes adminPermissionsBodyReveal {
  from {
    opacity: 0;
    transform: translateY(-0.28rem);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes adminPermissionsToolbarReveal {
  from {
    opacity: 0;
    transform: translateY(-0.18rem);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes adminPermissionsGroupReveal {
  from {
    opacity: 0;
    transform: translateY(0.24rem);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.admin-onepage .admin-user-permissions[open] > .admin-user-permissions-body,
  body.admin-onepage .admin-user-permissions[open] .admin-access-profile-options,
  body.admin-onepage .admin-user-permissions[open] .admin-user-permission-group {
    animation: none !important;
  }

  body.admin-onepage .admin-access-profile-edit-icon {
    transition: none;
  }
}

/* ========================================================================== 
   v247 · Tilgangsoppsett – korrekt smal redigeringskolonne
   ========================================================================== */

/* Split-action-kortet bruker en eksplisitt smal ikonkolonne. Dette hindrer
   at den gamle tekstknapp-bredden blir hengende igjen rundt blyanten. */
body.admin-onepage .admin-access-profile-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 1.92rem;
  align-items: stretch;
}

body.admin-onepage .admin-access-profile-item .admin-access-profile-option {
  min-width: 0;
  width: 100%;
}

body.admin-onepage .admin-access-profile-edit {
  box-sizing: border-box;
  width: 1.92rem;
  min-width: 1.92rem;
  max-width: 1.92rem;
  flex: none;
  padding: 0;
}

body.admin-onepage .admin-access-profile-edit-icon {
  width: 0.78rem;
  height: 0.78rem;
  flex-basis: 0.78rem;
}


/* ==========================================================================
   v248 · Tilgangsoppsett – label til høyre + balansert redigeringssone
   ========================================================================== */

/* Navnet holder venstresiden, mens statuslabelen ligger rolig mot høyre.
   Dette gir kortet en tydeligere og mer symmetrisk intern rytme. */
body.admin-onepage .admin-access-profile-option > span {
  width: 100%;
}

body.admin-onepage .admin-access-profile-option > span > strong {
  flex: 0 1 auto;
  min-width: 0;
}

body.admin-onepage .admin-access-profile-option > span > small {
  flex: 0 0 auto;
  margin-left: auto;
}

/* Blyanten får litt mer luft enn i v247, men er fortsatt klart mer kompakt
   enn den gamle tekstbaserte Rediger-handlingen. */
body.admin-onepage .admin-access-profile-item {
  grid-template-columns: minmax(0, 1fr) 2.34rem;
}

body.admin-onepage .admin-access-profile-edit {
  width: 2.34rem;
  min-width: 2.34rem;
  max-width: 2.34rem;
}

/* ========================================================================== 
   v249 · Tilganger – roligere seksjonslabel i lukket kort
   ========================================================================== */

/* Gjør Tilganger til en diskret seksjonslabel fremfor en tung knappetittel. */
body.admin-onepage .admin-user-permissions > summary strong {
  color: rgba(137, 103, 60, 0.78);
  font-size: 0.66rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.105em;
  text-transform: uppercase;
}

/* Når panelet er åpent beholdes samme labeluttrykk, slik at headeren ikke
   skifter typografisk karakter under reveal. */
body.admin-onepage .admin-user-permissions[open] > summary strong {
  color: rgba(137, 103, 60, 0.82);
}

/* ========================================================================== 
   v250 · Tilgangsmal-editor – testhandling tilbake i footer
   ========================================================================== */

/* Test tilgang er en verifiseringshandling og ligger nederst til venstre på
   samme handlingslinje som Avbryt og Lagre. Headeren beholdes ren med kun X. */
body.admin-onepage .admin-access-template-dialog-actions .admin-access-template-test {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-height: 2.1rem;
  padding: 0.4rem 0.62rem;
  border: 0;
  border-radius: 999px;
  background: rgba(205, 179, 138, 0.07);
  color: rgba(112, 79, 38, 0.72);
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1;
}

body.admin-onepage .admin-access-template-dialog-actions .admin-access-template-test:hover,
body.admin-onepage .admin-access-template-dialog-actions .admin-access-template-test:focus-visible {
  background: rgba(205, 179, 138, 0.13);
  color: rgba(82, 56, 24, 0.96);
}

/* Når både Test og Slett finnes, ligger de samlet på venstre side. Slett
   beholder rollen som spacer før Avbryt/Lagre-gruppen til høyre. */
body.admin-onepage .admin-access-template-dialog-actions .admin-access-template-test + .admin-access-template-delete-trigger {
  margin-left: 0.08rem;
}

@media (max-width: 720px) {
  body.admin-onepage .admin-access-template-dialog-actions .admin-access-template-test {
    order: 1;
  }

  body.admin-onepage .admin-access-template-dialog-actions .admin-access-template-delete-trigger {
    order: 2;
  }

  body.admin-onepage .admin-access-template-dialog-actions .button-secondary {
    order: 3;
  }

  body.admin-onepage .admin-access-template-dialog-actions [data-admin-access-template-save] {
    order: 4;
  }
}

/* v250 korrigering: venstre handlingsgruppe sørger for at Test tilgang alltid
   ligger nederst til venstre, også når Slett tilgangsmal er skjult på en ny mal. */
body.admin-onepage .admin-access-template-dialog-actions-left {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  margin-right: auto;
  min-width: 0;
}

body.admin-onepage .admin-access-template-dialog-actions-left .admin-access-template-delete-trigger {
  margin-right: 0;
}

@media (max-width: 720px) {
  body.admin-onepage .admin-access-template-dialog-actions-left {
    flex: 1 1 100%;
    width: 100%;
    margin-right: 0;
  }

  body.admin-onepage .admin-access-template-dialog-actions-left .admin-access-template-delete-trigger {
    flex-basis: auto;
    margin-bottom: 0;
  }
}


/* ========================================================================== 
   v251 · Tilgangsmal-editor – ren header, champagnefade og 3-prikk sletting
   ========================================================================== */

/* Headeren avsluttes med én elegant champagnefade som er tydeligst i midten. */
body.admin-onepage .admin-access-template-manager-header {
  position: relative;
  border-bottom: 0;
  padding-bottom: 1rem;
}

body.admin-onepage .admin-access-template-manager-header::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  pointer-events: none;
  background:
    linear-gradient(
      90deg,
      rgba(205, 179, 138, 0) 0%,
      rgba(205, 179, 138, 0.14) 18%,
      rgba(205, 179, 138, 0.42) 50%,
      rgba(205, 179, 138, 0.14) 82%,
      rgba(205, 179, 138, 0) 100%
    ) center bottom / 100% 1px no-repeat,
    radial-gradient(
      ellipse at center bottom,
      rgba(205, 179, 138, 0.38) 0%,
      rgba(205, 179, 138, 0.16) 38%,
      rgba(205, 179, 138, 0) 74%
    ) center bottom / 58% 3px no-repeat;
}

/* Sjeldne/destruktive malhandlinger ligger bak tre prikker før X. */
body.admin-onepage .admin-access-template-more-menu {
  position: relative;
  flex: 0 0 auto;
}

body.admin-onepage .admin-access-template-more-menu > summary {
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
}

body.admin-onepage .admin-access-template-more-menu .admin-user-account-menu-popover {
  top: calc(100% + 0.45rem);
  right: 0;
  bottom: auto;
  min-width: 11.8rem;
  transform: translateY(-0.22rem) scale(0.985);
  transform-origin: right top;
}

body.admin-onepage .admin-access-template-more-menu[open] .admin-user-account-menu-popover {
  transform: translateY(0) scale(1);
}

body.admin-onepage .admin-access-template-more-menu .admin-access-template-delete-trigger:disabled,
body.admin-onepage .admin-access-template-more-menu .admin-access-template-delete-trigger.is-disabled {
  opacity: 0.38;
  cursor: not-allowed;
  background: transparent;
}

/* Footeren er igjen konsekvent: Test til venstre, Avbryt/Lagre til høyre. */
body.admin-onepage .admin-access-template-dialog-actions-left {
  margin-right: auto;
}

/* Headeren har ikke lenger en forklaringslinje under tittelen. */
body.admin-onepage .admin-access-template-manager-header > div:first-child {
  min-width: 0;
}


/* ==========================================================================
   v252 · Tilgangsmal-editor – tilbake til den opprinnelige headerlinjen
   ========================================================================== */

body.admin-onepage .admin-access-template-manager-header {
  border-bottom: 1px solid rgba(31, 29, 26, 0.06);
  padding-bottom: 0.95rem;
}

body.admin-onepage .admin-access-template-manager-header::after {
  display: none;
}

@media (max-width: 720px) {
  body.admin-onepage .admin-access-template-manager-header {
    padding-bottom: 0.85rem;
  }
}

/* ========================================================================== 
   v253 · Tilgangsmal-editor – Test i 3-prikk, slett tilbake i footer
   ========================================================================== */

/* Test tilgang er en rolig verktøyhandling i menyen, ikke en footerknapp. */
body.admin-onepage .admin-access-template-more-menu .admin-access-template-test-menu {
  color: rgba(31, 29, 26, 0.72);
}

body.admin-onepage .admin-access-template-more-menu .admin-access-template-test-menu:hover,
body.admin-onepage .admin-access-template-more-menu .admin-access-template-test-menu:focus-visible {
  color: rgba(92, 61, 24, 0.95);
  background: rgba(205, 179, 138, 0.08);
}

/* Slett ligger igjen som den eneste venstrejusterte footerhandlingen. */
body.admin-onepage .admin-access-template-dialog-actions-left .admin-access-template-delete-trigger {
  display: inline-flex;
  align-items: center;
  min-height: 2.42rem;
  padding: 0.42rem 0.72rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: rgba(145, 73, 67, 0.62);
  font: inherit;
  font-size: 0.64rem;
  font-weight: 600;
  cursor: pointer;
  transition: color 160ms ease, background 160ms ease;
}

body.admin-onepage .admin-access-template-dialog-actions-left .admin-access-template-delete-trigger:hover,
body.admin-onepage .admin-access-template-dialog-actions-left .admin-access-template-delete-trigger:focus-visible {
  color: rgba(132, 57, 52, 0.92);
  background: rgba(164, 73, 67, 0.055);
}

body.admin-onepage .admin-access-template-dialog-actions-left .admin-access-template-delete-trigger:disabled,
body.admin-onepage .admin-access-template-dialog-actions-left .admin-access-template-delete-trigger.is-disabled {
  color: rgba(145, 73, 67, 0.28);
  background: transparent;
  cursor: not-allowed;
}

body.admin-onepage .admin-access-template-dialog-actions-left .admin-access-template-delete-trigger[hidden] {
  display: none !important;
}


/* ==========================================================================
   v254 · Tilgangsmal-editor – roligere Avbryt
   ========================================================================== */

body.admin-onepage .admin-access-template-dialog-actions [data-admin-access-template-back] {
  border-color: rgba(31, 29, 26, 0.10);
  background: transparent;
  color: rgba(31, 29, 26, 0.52);
  box-shadow: none;
  font-weight: 600;
}

body.admin-onepage .admin-access-template-dialog-actions [data-admin-access-template-back]:hover,
body.admin-onepage .admin-access-template-dialog-actions [data-admin-access-template-back]:focus-visible {
  border-color: rgba(190, 156, 106, 0.28);
  background: rgba(205, 179, 138, 0.045);
  color: rgba(82, 56, 24, 0.72);
  transform: none;
  box-shadow: none;
}


/* ========================================================================== 
   v255 · Tilgangsmal-editor – Brukes av i stedet for Beskrivelse
   ========================================================================== */

body.admin-onepage .admin-access-template-usage {
  display: grid;
  gap: 0.32rem;
  min-width: 0;
  color: rgba(31, 29, 26, 0.62);
  font-size: 0.65rem;
  font-weight: 700;
}

body.admin-onepage .admin-access-template-usage > strong {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 2.45rem;
  padding: 0.65rem 0.72rem;
  border: 1px solid rgba(205, 179, 138, 0.16);
  border-radius: 0.72rem;
  background: rgba(205, 179, 138, 0.035);
  color: rgba(31, 29, 26, 0.50);
  font-family: inherit;
  font-size: 0.72rem;
  font-weight: 500;
  line-height: 1.25;
}

@media (max-width: 680px) {
  body.admin-onepage .admin-access-template-usage > strong {
    min-height: 2.4rem;
  }
}


/* ==========================================================================
   v256 · Tilgangsmal-editor – ren Brukes av-metadata uten fake input
   ========================================================================== */

body.admin-onepage .admin-access-template-fields {
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
  column-gap: 1rem;
  align-items: end;
}

body.admin-onepage .admin-access-template-usage {
  display: grid;
  grid-template-rows: auto 2.55rem;
  gap: 0.32rem;
  min-width: 0;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
}

body.admin-onepage .admin-access-template-usage > span {
  color: rgba(112, 79, 38, 0.58);
  font-size: 0.57rem;
  font-weight: 700;
  letter-spacing: 0.075em;
  line-height: 1.15;
  text-transform: uppercase;
}

body.admin-onepage .admin-access-template-usage > strong {
  display: flex;
  align-items: center;
  width: auto;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: rgba(31, 29, 26, 0.48);
  font-family: inherit;
  font-size: 0.72rem;
  font-weight: 500;
  line-height: 1.3;
}

@media (max-width: 680px) {
  body.admin-onepage .admin-access-template-fields {
    grid-template-columns: 1fr;
    row-gap: 0.72rem;
    align-items: stretch;
  }

  body.admin-onepage .admin-access-template-usage {
    grid-template-rows: auto auto;
    gap: 0.22rem;
  }

  body.admin-onepage .admin-access-template-usage > strong {
    min-height: 0;
    padding-bottom: 0.08rem;
  }
}

/* ========================================================================== 
   v257 · Tilgangsmal-editor – Aktiv for med faktiske brukernavn
   ========================================================================== */
body.admin-onepage .admin-access-template-usage-copy {
  display: flex;
  min-height: 2.55rem;
  flex-direction: column;
  justify-content: center;
  gap: 0.16rem;
  min-width: 0;
}

body.admin-onepage .admin-access-template-usage-copy > strong {
  display: block;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(31, 29, 26, 0.48);
  font-size: 0.72rem;
  font-weight: 500;
  line-height: 1.25;
}

body.admin-onepage .admin-access-template-usage-copy > small {
  display: block;
  max-width: 100%;
  overflow-wrap: anywhere;
  color: rgba(112, 79, 38, 0.68);
  font-size: 0.64rem;
  font-weight: 500;
  line-height: 1.3;
}

body.admin-onepage .admin-access-template-usage-copy > small[hidden] {
  display: none !important;
}

@media (max-width: 680px) {
  body.admin-onepage .admin-access-template-usage-copy {
    min-height: 0;
  }
}

/* ==========================================================================
   v258 · Tilgangsmal-editor – Aktiv for viser kun faktiske adminbrukere
   ========================================================================== */
body.admin-onepage .admin-access-template-usage {
  grid-template-rows: auto 2.55rem;
  gap: 0.28rem;
}

body.admin-onepage .admin-access-template-usage > span {
  color: rgba(112, 79, 38, 0.55);
  font-size: 0.56rem;
  letter-spacing: 0.08em;
}

body.admin-onepage .admin-access-template-usage-copy {
  min-height: 2.55rem;
  justify-content: center;
  gap: 0;
}

body.admin-onepage .admin-access-template-usage-copy > strong {
  max-width: 100%;
  overflow-wrap: anywhere;
  color: rgba(31, 29, 26, 0.58);
  font-size: 0.72rem;
  font-weight: 500;
  line-height: 1.45;
}

@media (max-width: 680px) {
  body.admin-onepage .admin-access-template-usage {
    grid-template-rows: auto auto;
  }

  body.admin-onepage .admin-access-template-usage-copy {
    min-height: 0;
  }
}

/* ========================================================================== 
   v259 · Tilgangssystem – kompakt Aktiv for + helhetlig mobiltilpasning
   ========================================================================== */

/* Aktiv for: behold editorhodet lavt også når en mal brukes av mange. */
body.admin-onepage .admin-access-template-usage-copy {
  position: relative;
  overflow: visible;
}

body.admin-onepage .admin-access-template-usage-summary {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  min-width: 0;
}

body.admin-onepage .admin-access-template-usage-summary > strong {
  min-width: 0;
  overflow: hidden;
  color: rgba(31, 29, 26, 0.58);
  font-size: 0.72rem;
  font-weight: 500;
  line-height: 1.4;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.admin-onepage .admin-access-template-usage-more {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-width: 1.72rem;
  min-height: 1.42rem;
  padding: 0.18rem 0.42rem;
  border: 1px solid rgba(205, 179, 138, 0.24);
  border-radius: 999px;
  background: rgba(205, 179, 138, 0.055);
  color: rgba(112, 79, 38, 0.72);
  font: inherit;
  font-size: 0.58rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;
}

body.admin-onepage .admin-access-template-usage-more:hover,
body.admin-onepage .admin-access-template-usage-more:focus-visible,
body.admin-onepage .admin-access-template-usage-more[aria-expanded="true"] {
  border-color: rgba(190, 156, 106, 0.42);
  background: rgba(205, 179, 138, 0.11);
  color: rgba(82, 56, 24, 0.9);
}

body.admin-onepage .admin-access-template-usage-more:focus-visible {
  outline: 2px solid rgba(205, 179, 138, 0.28);
  outline-offset: 2px;
}

body.admin-onepage .admin-access-template-usage-popover[hidden] {
  display: none !important;
}

body.admin-onepage .admin-access-template-usage-popover {
  position: absolute;
  z-index: 28;
  top: calc(100% + 0.38rem);
  left: 0;
  display: grid;
  gap: 0;
  width: max-content;
  min-width: 11.5rem;
  max-width: min(20rem, 72vw);
  max-height: min(15rem, 38dvh);
  overflow-y: auto;
  padding: 0.34rem;
  border: 1px solid rgba(31, 29, 26, 0.08);
  border-radius: 0.78rem;
  background: rgba(255, 253, 249, 0.99);
  box-shadow: 0 16px 38px rgba(31, 29, 26, 0.12);
  scrollbar-width: thin;
  scrollbar-color: rgba(205, 179, 138, 0.62) transparent;
}

body.admin-onepage .admin-access-template-usage-popover > span {
  display: block;
  padding: 0.46rem 0.56rem;
  color: rgba(31, 29, 26, 0.68);
  font-size: 0.67rem;
  font-weight: 500;
  line-height: 1.3;
  white-space: nowrap;
}

body.admin-onepage .admin-access-template-usage-popover > span + span {
  border-top: 1px solid rgba(31, 29, 26, 0.045);
}

/* Ett samlet mobil-lag for funksjonene som er kommet etter den opprinnelige
   Adminbrukere-mobiltilpasningen. */
@media (max-width: 780px) {
  body.admin-onepage .admin-users-section .admin-section-inner-wide {
    width: min(100%, calc(100vw - 1rem));
  }

  body.admin-onepage .admin-users-panel {
    padding: 0.92rem;
  }

  body.admin-onepage .admin-users-invite-form {
    grid-template-columns: 1fr;
    gap: 0.72rem;
  }

  /* Tilgang velges før invitasjonen sendes på telefon. */
  body.admin-onepage .admin-users-invite-form .admin-invite-permissions {
    order: 20;
    margin-top: 0.04rem;
  }

  body.admin-onepage .admin-users-invite-form > .button[type="submit"] {
    order: 30;
    width: 100%;
    min-height: 3rem;
  }

  body.admin-onepage .admin-user-card {
    gap: 0.86rem;
    padding: 0.92rem;
  }

  body.admin-onepage .admin-user-fields {
    grid-template-columns: 1fr;
    gap: 0.68rem;
  }

  body.admin-onepage .admin-user-permissions > summary {
    min-height: 3.15rem;
    padding: 0.72rem 0.78rem;
  }

  body.admin-onepage .admin-user-permissions > summary > i {
    width: 1.82rem;
    height: 1.82rem;
    flex-basis: 1.82rem;
  }

  body.admin-onepage .admin-user-permissions-body {
    gap: 0.82rem;
    padding: 0 0.72rem 0.78rem;
  }

  /* På mobil er wrapping mer naturlig enn skjult horisontal scrolling. */
  body.admin-onepage .admin-access-profile-options {
    display: flex;
    flex-wrap: wrap;
    gap: 0.42rem;
    overflow: visible;
    padding: 0;
  }

  body.admin-onepage .admin-access-profile-item,
  body.admin-onepage .admin-access-profile-option.is-custom {
    flex: 1 1 calc(50% - 0.24rem);
    min-width: 10.5rem;
  }

  body.admin-onepage .admin-access-profile-item {
    grid-template-columns: minmax(0, 1fr) 2.42rem;
  }

  body.admin-onepage .admin-access-profile-edit {
    width: 2.42rem;
    min-width: 2.42rem;
    max-width: 2.42rem;
  }

  body.admin-onepage .admin-access-profile-new-divider {
    align-self: stretch;
    height: auto;
    min-height: 2.2rem;
  }

  body.admin-onepage .admin-access-profile-new {
    flex: 0 1 auto;
    min-height: 2.42rem;
  }

  body.admin-onepage .admin-user-permission-list,
  body.admin-onepage .admin-access-template-permissions .admin-user-permission-list {
    grid-template-columns: 1fr;
    gap: 0.38rem;
  }

  body.admin-onepage .admin-user-permission-option {
    align-items: center;
    gap: 0.62rem;
    min-height: 3.55rem;
    padding: 0.62rem 0.66rem;
  }

  body.admin-onepage .admin-user-permission-control {
    margin-top: 0;
  }

  body.admin-onepage .admin-user-permission-copy strong {
    font-size: 0.74rem;
  }

  body.admin-onepage .admin-user-permission-copy small {
    font-size: 0.64rem;
    line-height: 1.34;
  }

  body.admin-onepage .admin-user-card-footer {
    gap: 0.58rem;
    padding-top: 0;
  }

  body.admin-onepage .admin-user-meta.admin-user-meta-compact {
    gap: 0.2rem 0.36rem;
    font-size: 0.62rem;
  }

  body.admin-onepage .admin-user-account-menu > summary {
    width: 2.2rem;
    height: 2.2rem;
  }

  body.admin-onepage .admin-user-account-menu-popover {
    max-width: min(18rem, calc(100vw - 1.8rem));
  }

  body.admin-onepage .admin-user-card.is-dirty .admin-user-save-state {
    gap: 0.62rem;
    padding: 0.68rem;
  }

  body.admin-onepage .admin-user-save-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.46rem;
  }

  /* Maleditoren blir en ekte mobil-sheet med fast header/footer og bare
     innholdet i midten som scroller. */
  body.admin-onepage .admin-access-template-manager-layer {
    align-items: end;
    padding: 0;
  }

  body.admin-onepage .admin-access-template-manager {
    width: 100%;
    height: min(94dvh, 58rem);
    max-height: 94dvh;
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: 1.18rem 1.18rem 0 0;
    transform: translateY(22px);
  }

  body.admin-onepage .admin-access-template-manager-header {
    align-items: center;
    gap: 0.7rem;
    padding: 0.88rem 0.92rem 0.78rem;
  }

  body.admin-onepage .admin-access-template-manager-header h2 {
    margin-top: 0.18rem;
    font-size: clamp(1.35rem, 7vw, 1.7rem);
  }

  body.admin-onepage .admin-access-template-manager-header-actions {
    gap: 0.35rem;
  }

  body.admin-onepage .admin-access-template-more-menu > summary,
  body.admin-onepage .admin-access-template-manager-close {
    width: 2.42rem;
    height: 2.42rem;
  }

  body.admin-onepage .admin-access-template-more-menu .admin-user-account-menu-popover {
    right: 0;
    min-width: 12rem;
    max-width: calc(100vw - 1.5rem);
  }

  body.admin-onepage .admin-access-template-editor-scroll {
    gap: 0.82rem;
    padding: 0.78rem 0.9rem 1rem;
    -webkit-overflow-scrolling: touch;
  }

  body.admin-onepage .admin-access-template-fields {
    column-gap: 0.8rem;
  }

  body.admin-onepage .admin-access-template-options-section {
    padding-top: 0.42rem;
  }

  body.admin-onepage .admin-access-template-setting,
  body.admin-onepage .admin-access-template-setting + .admin-access-template-setting {
    min-height: 2.7rem;
    padding-inline: 0.18rem;
  }

  body.admin-onepage .admin-access-template-dialog-actions {
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 0.45rem;
    padding: 0.68rem 0.9rem max(0.68rem, env(safe-area-inset-bottom));
  }

  body.admin-onepage .admin-access-template-dialog-actions-left {
    width: auto;
    min-width: 0;
    margin-right: auto;
  }

  body.admin-onepage .admin-access-template-dialog-actions-left .admin-access-template-delete-trigger {
    min-height: 2.35rem;
    padding-inline: 0.3rem;
    font-size: 0.6rem;
    white-space: nowrap;
  }

  body.admin-onepage .admin-access-template-dialog-actions [data-admin-access-template-back],
  body.admin-onepage .admin-access-template-dialog-actions [data-admin-access-template-save] {
    min-height: 2.55rem;
    padding-inline: 0.82rem;
    white-space: nowrap;
  }

  body.admin-onepage .admin-access-template-delete-panel {
    grid-template-columns: 1fr;
    gap: 0.62rem;
    padding: 0.72rem;
  }

  body.admin-onepage .admin-access-template-delete-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.45rem;
  }

  body.admin-onepage .admin-access-template-delete-actions button {
    width: 100%;
  }

  /* Testmodus og Ingen tilgang skal også fungere uten horisontal klem. */
  .admin-access-test-banner-inner {
    width: calc(100% - 1rem);
  }

  body.admin-no-access-page .admin-no-access-shell {
    width: min(100%, calc(100vw - 1rem));
  }
}

@media (max-width: 520px) {
  body.admin-onepage .admin-users-section .admin-section-inner-wide {
    width: min(100%, calc(100vw - 0.7rem));
  }

  body.admin-onepage .admin-users-panel,
  body.admin-onepage .admin-user-card {
    border-radius: 0.9rem;
  }

  body.admin-onepage .admin-users-panel {
    padding: 0.76rem;
  }

  body.admin-onepage .admin-user-card {
    padding: 0.8rem;
  }

  body.admin-onepage .admin-user-card-identity > strong {
    font-size: 1.46rem;
  }

  body.admin-onepage .admin-user-permissions-body {
    padding-inline: 0.58rem;
  }

  body.admin-onepage .admin-access-profile-item,
  body.admin-onepage .admin-access-profile-option.is-custom,
  body.admin-onepage .admin-access-profile-new {
    flex: 1 1 100%;
    width: 100%;
    min-width: 0;
  }

  body.admin-onepage .admin-access-profile-new-divider {
    width: 100%;
    height: 1px;
    min-height: 1px;
    margin: 0.06rem 0;
    background: linear-gradient(90deg, transparent, rgba(205,179,138,.28), transparent);
  }

  body.admin-onepage .admin-access-profile-option,
  body.admin-onepage .admin-access-profile-item .admin-access-profile-option,
  body.admin-onepage .admin-access-profile-new {
    min-height: 2.55rem;
  }

  body.admin-onepage .admin-user-permission-option {
    min-height: 3.4rem;
  }

  body.admin-onepage .admin-user-card-footer {
    align-items: flex-end;
  }

  body.admin-onepage .admin-user-meta.admin-user-meta-compact {
    display: grid;
    gap: 0.14rem;
  }

  body.admin-onepage .admin-user-meta.admin-user-meta-compact > i {
    display: none;
  }

  body.admin-onepage .admin-user-meta.admin-user-meta-compact span {
    white-space: normal;
  }

  body.admin-onepage .admin-user-card.is-dirty .admin-user-save-state {
    display: grid;
    grid-template-columns: 1fr;
  }

  body.admin-onepage .admin-user-save-state-copy small {
    display: none;
  }

  body.admin-onepage .admin-user-save-actions {
    width: 100%;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
  }

  body.admin-onepage .admin-user-save-button {
    width: 100%;
  }

  body.admin-onepage .admin-invitation-actions {
    grid-template-columns: 1fr;
  }

  body.admin-onepage .admin-access-template-manager {
    height: 96dvh;
    max-height: 96dvh;
    border-radius: 1rem 1rem 0 0;
  }

  body.admin-onepage .admin-access-template-manager-header {
    padding-inline: 0.78rem;
  }

  body.admin-onepage .admin-access-template-editor-scroll {
    padding-inline: 0.78rem;
  }

  body.admin-onepage .admin-access-template-fields {
    grid-template-columns: 1fr;
    row-gap: 0.7rem;
  }

  body.admin-onepage .admin-access-template-fields input {
    min-height: 2.75rem;
    font-size: 1rem;
  }

  body.admin-onepage .admin-access-template-usage {
    grid-template-rows: auto auto;
  }

  body.admin-onepage .admin-access-template-usage-copy {
    min-height: 1.9rem;
  }

  body.admin-onepage .admin-access-template-usage-summary > strong {
    font-size: 0.68rem;
  }

  body.admin-onepage .admin-access-template-usage-popover {
    left: 0;
    right: auto;
    min-width: min(15rem, calc(100vw - 2.2rem));
    max-width: calc(100vw - 2.2rem);
  }

  body.admin-onepage .admin-access-template-section-heading {
    align-items: center;
  }

  body.admin-onepage .admin-access-template-permission-status {
    font-size: 0.55rem !important;
  }

  body.admin-onepage .admin-access-template-dialog-actions {
    padding-inline: 0.72rem;
  }

  body.admin-onepage .admin-access-template-dialog-actions-left .admin-access-template-delete-trigger {
    max-width: 7rem;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  body.admin-onepage .admin-access-template-dialog-actions [data-admin-access-template-back],
  body.admin-onepage .admin-access-template-dialog-actions [data-admin-access-template-save] {
    padding-inline: 0.68rem;
  }

  .admin-access-test-banner-inner {
    width: calc(100% - 0.7rem);
    gap: 0.45rem;
  }

  .admin-access-test-banner-copy {
    min-width: 0;
  }

  .admin-access-test-banner button {
    min-height: 2.1rem;
    padding-inline: 0.54rem;
  }

  body.admin-no-access-page .admin-no-access-note {
    grid-template-columns: 1fr;
    gap: 0.55rem;
    padding: 0.82rem;
  }

  body.admin-no-access-page .admin-no-access-note-mark {
    width: 1.35rem;
    height: 1.35rem;
  }
}


/* ==========================================================================
   v260 · Tilgangsmal-editor – ryddigere Aktiv for + robust mobil-sheet
   ========================================================================== */

/* Navn og Aktiv for bruker samme label-språk og ligger optisk på samme linje. */
body.admin-onepage .admin-access-template-name-field,
body.admin-onepage .admin-access-template-usage {
  align-self: stretch;
}

body.admin-onepage .admin-access-template-field-label,
body.admin-onepage .admin-access-template-name-field > .admin-access-template-field-label,
body.admin-onepage .admin-access-template-usage > .admin-access-template-field-label {
  display: block;
  margin: 0;
  color: rgba(112, 79, 38, 0.55);
  font-family: inherit;
  font-size: 0.56rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.15;
  text-transform: uppercase;
}

body.admin-onepage .admin-access-template-name-field {
  display: grid;
  grid-template-rows: auto 2.55rem;
  gap: 0.28rem;
  min-width: 0;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
}

body.admin-onepage .admin-access-template-name-field > input {
  margin: 0;
}

/* Aktiv for viser navn og funksjon som én tydelig person-enhet. */
body.admin-onepage .admin-access-template-usage-summary {
  min-width: 0;
  overflow: hidden;
}

body.admin-onepage .admin-access-template-usage-people {
  display: flex;
  align-items: center;
  gap: 0.42rem;
  min-width: 0;
  overflow: hidden;
}

body.admin-onepage .admin-access-template-usage-person {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  min-width: 0;
  flex: 0 1 auto;
}

body.admin-onepage .admin-access-template-usage-person-name {
  min-width: 0;
  overflow: hidden;
  color: rgba(31, 29, 26, 0.60);
  font-size: 0.70rem;
  font-weight: 500;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.admin-onepage .admin-access-template-usage-person-function {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  min-height: 1.18rem;
  padding: 0.16rem 0.34rem;
  border: 1px solid rgba(205, 179, 138, 0.20);
  border-radius: 999px;
  background: rgba(205, 179, 138, 0.055);
  color: rgba(112, 79, 38, 0.67);
  font-size: 0.52rem;
  font-weight: 650;
  line-height: 1;
  white-space: nowrap;
}

body.admin-onepage .admin-access-template-usage-empty {
  color: rgba(31, 29, 26, 0.40);
  font-size: 0.68rem;
  font-weight: 500;
  line-height: 1.3;
  white-space: nowrap;
}

/* +N finnes aldri uten skjulte navn. */
body.admin-onepage .admin-access-template-usage-more[hidden] {
  display: none !important;
}

/* Popover: navn og funksjon ligger på samme rad, uten separatorlinjer. */
body.admin-onepage .admin-access-template-usage-popover {
  gap: 0.16rem;
  padding: 0.38rem;
}

body.admin-onepage .admin-access-template-usage-popover > .admin-access-template-usage-popover-person,
body.admin-onepage .admin-access-template-usage-popover > .admin-access-template-usage-popover-person + .admin-access-template-usage-popover-person {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.7rem;
  min-width: 0;
  padding: 0.44rem 0.5rem;
  border: 0;
  border-radius: 0.5rem;
  background: transparent;
  white-space: normal;
}

body.admin-onepage .admin-access-template-usage-popover-person > strong {
  min-width: 0;
  overflow: hidden;
  color: rgba(31, 29, 26, 0.68);
  font-size: 0.67rem;
  font-weight: 550;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.admin-onepage .admin-access-template-usage-popover-person > small {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  min-height: 1.18rem;
  padding: 0.16rem 0.34rem;
  border-radius: 999px;
  background: rgba(205, 179, 138, 0.07);
  color: rgba(112, 79, 38, 0.65);
  font-size: 0.52rem;
  font-weight: 650;
  line-height: 1;
  white-space: nowrap;
}

/* Mobil-editoren er én stabil sheet: header/footer ligger fast,
   og kun midtinnholdet scroller. */
@media (max-width: 780px) {
  body.admin-onepage .admin-access-template-manager-layer {
    display: flex;
    align-items: flex-end;
    justify-content: stretch;
    padding: max(0.4rem, env(safe-area-inset-top)) 0 0;
  }

  body.admin-onepage .admin-access-template-manager {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    width: 100%;
    height: calc(100dvh - max(0.4rem, env(safe-area-inset-top)));
    max-height: none;
    min-height: 0;
    margin: 0;
    overflow: hidden;
    border-radius: 1rem 1rem 0 0;
  }

  body.admin-onepage .admin-access-template-manager-header {
    position: relative;
    z-index: 3;
    min-height: 0;
    flex: none;
  }

  body.admin-onepage .admin-access-template-editor {
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow: hidden;
  }

  body.admin-onepage .admin-access-template-editor-scroll {
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
  }

  body.admin-onepage .admin-access-template-dialog-actions {
    position: relative;
    z-index: 4;
    width: 100%;
    min-width: 0;
    margin: 0;
    background: rgba(255, 253, 249, 0.985);
  }
}

@media (max-width: 520px) {
  body.admin-onepage .admin-access-template-name-field {
    grid-template-rows: auto 2.75rem;
  }

  body.admin-onepage .admin-access-template-usage {
    grid-template-rows: auto auto;
  }

  body.admin-onepage .admin-access-template-usage-people {
    gap: 0.32rem;
  }

  body.admin-onepage .admin-access-template-usage-person {
    gap: 0.22rem;
  }

  body.admin-onepage .admin-access-template-usage-person-function {
    max-width: 7.2rem;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  body.admin-onepage .admin-access-template-dialog-actions {
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 0.4rem;
  }
}


/* ==========================================================================
   v261 · Tilganger-status ved + og tydeligere personer under Aktiv for
   ========================================================================== */

/* Tilgangsoppsettet vises igjen som en liten statusbadge rett før + / ×.
   Den er bevisst sekundær til selve Tilganger-labelen. */
body.admin-onepage .admin-user-permissions > summary > .admin-access-profile-summary-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 9.5rem;
  min-height: 1.34rem;
  margin-left: auto;
  margin-right: -0.28rem;
  padding: 0.18rem 0.42rem;
  border: 1px solid rgba(205, 179, 138, 0.24);
  border-radius: 999px;
  background: rgba(205, 179, 138, 0.055);
  color: rgba(112, 79, 38, 0.68);
  font-size: 0.50rem;
  font-weight: 700;
  letter-spacing: 0.065em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

body.admin-onepage .admin-user-permissions > summary > .admin-access-profile-summary-badge.is-custom {
  border-color: rgba(31, 29, 26, 0.085);
  background: rgba(31, 29, 26, 0.025);
  color: rgba(31, 29, 26, 0.48);
}

/* Hver admin under Aktiv for er én visuelt samlet enhet:
   navn + funksjonslabel. Flere personer skilles uten gjennomgående linjer. */
body.admin-onepage .admin-access-template-usage-people {
  gap: 0.34rem;
}

body.admin-onepage .admin-access-template-usage-person {
  min-height: 1.72rem;
  padding: 0.20rem 0.24rem 0.20rem 0.42rem;
  border: 1px solid rgba(31, 29, 26, 0.055);
  border-radius: 0.52rem;
  background: rgba(255, 255, 255, 0.24);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.28);
}

body.admin-onepage .admin-access-template-usage-person-name {
  color: rgba(112, 79, 38, 0.66);
  font-size: 0.67rem;
  font-weight: 600;
}

body.admin-onepage .admin-access-template-usage-person-function {
  border-color: rgba(205, 179, 138, 0.20);
  background: rgba(205, 179, 138, 0.07);
  color: rgba(112, 79, 38, 0.68);
}

/* Popoveren bruker samme grouping-språk, men uten separatorlinjer. */
body.admin-onepage .admin-access-template-usage-popover > .admin-access-template-usage-popover-person,
body.admin-onepage .admin-access-template-usage-popover > .admin-access-template-usage-popover-person + .admin-access-template-usage-popover-person {
  border: 1px solid rgba(31, 29, 26, 0.045);
  background: rgba(255, 255, 255, 0.28);
}

body.admin-onepage .admin-access-template-usage-popover-person > strong {
  color: rgba(112, 79, 38, 0.68);
  font-weight: 600;
}

@media (max-width: 520px) {
  body.admin-onepage .admin-user-permissions > summary > .admin-access-profile-summary-badge {
    max-width: 7.2rem;
    margin-right: -0.12rem;
    padding-inline: 0.36rem;
    font-size: 0.47rem;
  }

  body.admin-onepage .admin-access-template-usage-person {
    min-width: 0;
    padding-left: 0.34rem;
  }
}


/* ==========================================================================
   v262 · Aktiv for – nøytral navnefarge + renere editoroverskrifter
   ========================================================================== */

/* Navnet skal være primær informasjon og får en varm, nøytral mørkgrå tone.
   Funksjonslabelen beholder champagneaksenten. */
body.admin-onepage .admin-access-template-usage-person-name {
  color: rgba(31, 29, 26, 0.68);
}

body.admin-onepage .admin-access-template-usage-popover-person > strong {
  color: rgba(31, 29, 26, 0.68);
}

/* Når Tilleggsvalg ikke lenger har "Valgfritt", trenger headingen ikke ekstra gap. */
body.admin-onepage .admin-access-template-section-heading.is-compact {
  gap: 0;
}


/* ==========================================================================
   v264 · Slett tilgangsmal – custom dropdown + Bordkart-lignende toasts
   ========================================================================== */

/* Flashmeldinger på Adminbrukere vises som diskrete toast-meldinger i stedet
   for å flytte innholdet øverst på siden. */
body.admin-onepage .admin-users-toast-region {
  position: fixed;
  z-index: 460;
  right: 1.2rem;
  bottom: 1.2rem;
  display: grid;
  gap: 0.55rem;
  width: min(24rem, calc(100vw - 2rem));
  pointer-events: none;
}

body.admin-onepage .admin-users-toast {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.7rem;
  padding: 0.9rem 1rem;
  border: 1px solid rgba(31, 29, 26, 0.1);
  border-radius: 1rem;
  background: rgba(255, 253, 249, 0.96);
  box-shadow: 0 16px 38px rgba(31, 29, 26, 0.13);
  color: rgba(31, 29, 26, 0.76);
  font-size: 0.76rem;
  line-height: 1.45;
  pointer-events: auto;
  animation: adminUsersToastIn 320ms cubic-bezier(.22, 1, .36, 1) both;
}

body.admin-onepage .admin-users-toast::before {
  content: "";
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: #71816d;
  box-shadow: 0 0 0 4px rgba(113, 129, 109, 0.08);
}

body.admin-onepage .admin-users-toast.is-error {
  border-color: rgba(162, 80, 69, 0.22);
}

body.admin-onepage .admin-users-toast.is-error::before {
  background: #a25045;
  box-shadow: 0 0 0 4px rgba(162, 80, 69, 0.09);
}

body.admin-onepage .admin-users-toast.is-leaving {
  animation: adminUsersToastOut 220ms ease both;
}

@keyframes adminUsersToastIn {
  from { opacity: 0; transform: translateY(12px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes adminUsersToastOut {
  to { opacity: 0; transform: translateY(8px) scale(0.98); }
}

/* Sletteområdet skal lese som en integrert, gjennomarbeidet destructive state. */
body.admin-onepage .admin-access-template-delete-panel {
  grid-template-columns: minmax(0, 1fr);
  gap: 0.82rem;
  align-items: stretch;
  padding: 0.88rem 0.92rem;
  border: 1px solid rgba(162, 80, 69, 0.16);
  border-radius: 0.92rem;
  background:
    linear-gradient(135deg, rgba(162, 80, 69, 0.052), rgba(205, 179, 138, 0.025));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5);
}

body.admin-onepage .admin-access-template-delete-copy {
  display: grid;
  gap: 0.18rem;
}

body.admin-onepage .admin-access-template-delete-eyebrow {
  margin: 0 0 0.02rem;
  color: rgba(145, 73, 67, 0.66);
  font-size: 0.54rem;
  font-weight: 750;
  letter-spacing: 0.085em;
  line-height: 1.2;
  text-transform: uppercase;
}

body.admin-onepage .admin-access-template-delete-panel .admin-access-template-delete-copy > strong {
  color: rgba(113, 54, 50, 0.9);
  font-size: 0.74rem;
  font-weight: 650;
}

body.admin-onepage .admin-access-template-delete-panel .admin-access-template-delete-copy > small {
  max-width: 42rem;
  color: rgba(31, 29, 26, 0.5);
  font-size: 0.63rem;
  line-height: 1.45;
}

body.admin-onepage .admin-access-template-delete-destination {
  display: grid;
  grid-template-columns: auto minmax(13rem, 18rem);
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  color: rgba(31, 29, 26, 0.55);
  font-size: 0.61rem;
  font-weight: 650;
}

body.admin-onepage .admin-access-template-replacement-native {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

body.admin-onepage .admin-access-template-replacement-picker {
  position: relative;
  min-width: 0;
}

body.admin-onepage .admin-access-template-replacement-trigger {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.65rem;
  width: 100%;
  min-height: 2.5rem;
  padding: 0.58rem 0.66rem 0.58rem 0.78rem;
  border: 1px solid rgba(31, 29, 26, 0.095);
  border-radius: 0.72rem;
  background: rgba(255, 253, 249, 0.78);
  color: rgba(31, 29, 26, 0.68);
  font: inherit;
  font-size: 0.69rem;
  font-weight: 500;
  text-align: left;
  cursor: pointer;
  transition: border-color 150ms ease, background 150ms ease, box-shadow 150ms ease;
}

body.admin-onepage .admin-access-template-replacement-trigger > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.admin-onepage .admin-access-template-replacement-trigger > i {
  width: 0.48rem;
  height: 0.48rem;
  border-right: 1px solid rgba(112, 79, 38, 0.66);
  border-bottom: 1px solid rgba(112, 79, 38, 0.66);
  transform: translateY(-0.12rem) rotate(45deg);
  transition: transform 160ms ease;
}

body.admin-onepage .admin-access-template-replacement-picker.is-open .admin-access-template-replacement-trigger {
  border-color: rgba(205, 179, 138, 0.48);
  background: rgba(255, 253, 249, 0.96);
  box-shadow: 0 0 0 3px rgba(205, 179, 138, 0.09);
}

body.admin-onepage .admin-access-template-replacement-picker.is-open .admin-access-template-replacement-trigger > i {
  transform: translateY(0.12rem) rotate(225deg);
}

body.admin-onepage .admin-access-template-replacement-menu[hidden] {
  display: none !important;
}

body.admin-onepage .admin-access-template-replacement-menu {
  position: absolute;
  z-index: 12;
  top: calc(100% + 0.38rem);
  right: 0;
  left: 0;
  display: grid;
  gap: 0.18rem;
  max-height: 14rem;
  padding: 0.38rem;
  overflow-y: auto;
  border: 1px solid rgba(31, 29, 26, 0.085);
  border-radius: 0.82rem;
  background: rgba(255, 253, 249, 0.985);
  box-shadow: 0 16px 34px rgba(31, 29, 26, 0.14);
  scrollbar-color: var(--gold) transparent;
  animation: adminAccessReplacementMenuIn 160ms cubic-bezier(.22, 1, .36, 1) both;
}

@keyframes adminAccessReplacementMenuIn {
  from { opacity: 0; transform: translateY(-0.22rem) scale(0.99); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

body.admin-onepage .admin-access-template-replacement-option {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.7rem;
  width: 100%;
  padding: 0.56rem 0.6rem;
  border: 0;
  border-radius: 0.58rem;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

body.admin-onepage .admin-access-template-replacement-option > span {
  display: grid;
  gap: 0.08rem;
  min-width: 0;
}

body.admin-onepage .admin-access-template-replacement-option strong {
  overflow: hidden;
  color: rgba(31, 29, 26, 0.72);
  font-size: 0.68rem;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.admin-onepage .admin-access-template-replacement-option small {
  color: rgba(112, 79, 38, 0.56);
  font-size: 0.52rem;
  font-weight: 600;
  line-height: 1.2;
}

body.admin-onepage .admin-access-template-replacement-option > i {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: transparent;
}

body.admin-onepage .admin-access-template-replacement-option:hover,
body.admin-onepage .admin-access-template-replacement-option:focus-visible {
  outline: none;
  background: rgba(205, 179, 138, 0.07);
}

body.admin-onepage .admin-access-template-replacement-option[aria-selected="true"] {
  background: rgba(205, 179, 138, 0.09);
}

body.admin-onepage .admin-access-template-replacement-option[aria-selected="true"] > i {
  background: rgba(168, 143, 104, 0.82);
  box-shadow: 0 0 0 3px rgba(205, 179, 138, 0.10);
}

body.admin-onepage .admin-access-template-delete-actions {
  grid-column: auto;
  padding-top: 0.08rem;
}

body.admin-onepage .admin-access-template-delete-confirm {
  min-height: 2.45rem;
  padding-inline: 0.9rem;
  border-color: rgba(145, 73, 67, 0.88);
  background: rgba(145, 73, 67, 0.92);
  font-size: 0.65rem;
}

@media (max-width: 680px) {
  body.admin-onepage .admin-users-toast-region {
    right: 0.5rem;
    bottom: max(0.75rem, env(safe-area-inset-bottom));
    left: 0.5rem;
    width: auto;
  }

  body.admin-onepage .admin-access-template-delete-destination {
    grid-template-columns: 1fr;
    gap: 0.34rem;
  }

  body.admin-onepage .admin-access-template-replacement-menu {
    max-height: min(16rem, 38dvh);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.admin-onepage .admin-users-toast,
  body.admin-onepage .admin-users-toast.is-leaving,
  body.admin-onepage .admin-access-template-replacement-menu {
    animation: none;
  }
}


/* ==========================================================================
   v265 · Permanent sletting – tydeligere knapp + luft under reveal
   ========================================================================== */

/* Samme tekststørrelse/typografiske nivå som Avbryt. */
body.admin-onepage .admin-access-template-delete-confirm {
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1;
  text-transform: uppercase;
}

/* Når slettedelen reveales og scrolles inn i synsfeltet, skal den ikke
   lande klemt helt mot bunnen av editoren. */
body.admin-onepage .admin-access-template-delete-panel {
  margin-bottom: 1.15rem;
  scroll-margin-bottom: 1.15rem;
}

@media (max-width: 680px) {
  body.admin-onepage .admin-access-template-delete-panel {
    margin-bottom: max(1rem, env(safe-area-inset-bottom));
    scroll-margin-bottom: max(1rem, env(safe-area-inset-bottom));
  }
}


/* ==========================================================================
   v266 · Permanent sletting – kompakt desktop-layout
   ========================================================================== */

@media (min-width: 681px) {
  body.admin-onepage .admin-access-template-delete-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(15rem, 18rem);
    grid-template-areas:
      "copy destination"
      ". actions";
    column-gap: 1.15rem;
    row-gap: 0.58rem;
    align-items: start;
  }

  body.admin-onepage .admin-access-template-delete-copy {
    grid-area: copy;
    align-self: start;
  }

  body.admin-onepage .admin-access-template-delete-destination {
    grid-area: destination;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.28rem;
    width: 100%;
    min-width: 0;
    align-self: start;
  }

  body.admin-onepage .admin-access-template-delete-destination > span {
    color: rgba(112, 79, 38, 0.58);
    font-size: 0.54rem;
    font-weight: 700;
    letter-spacing: 0.065em;
    line-height: 1.15;
    text-transform: uppercase;
  }

  body.admin-onepage .admin-access-template-delete-actions {
    grid-area: actions;
    justify-content: flex-end;
    align-items: center;
    padding-top: 0;
  }
}

/* Mobil beholder den stabile, vertikale flyten. */
@media (max-width: 680px) {
  body.admin-onepage .admin-access-template-delete-panel {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas:
      "copy"
      "destination"
      "actions";
  }

  body.admin-onepage .admin-access-template-delete-copy {
    grid-area: copy;
  }

  body.admin-onepage .admin-access-template-delete-destination {
    grid-area: destination;
  }

  body.admin-onepage .admin-access-template-delete-actions {
    grid-area: actions;
  }
}


/* ==========================================================================
   v267 · Permanent sletting – gjenopprett bred, balansert bekreftelsesknapp
   ========================================================================== */

body.admin-onepage .admin-access-template-delete-actions .admin-access-template-delete-confirm {
  flex: 0 0 auto;
  width: auto;
  min-width: 10.9rem;
  padding-left: 1.35rem;
  padding-right: 1.35rem;
  white-space: nowrap;
}

@media (max-width: 680px) {
  body.admin-onepage .admin-access-template-delete-actions .admin-access-template-delete-confirm {
    min-width: 0;
    width: auto;
  }
}


/* ==========================================================================
   v268 · Permanent sletting – bred bekreftelsesknapp via riktig kolonnelayout
   ========================================================================== */

@media (min-width: 681px) {
  /* Høyrekolonnen må ha nok plass til både dropdown og to balanserte knapper. */
  body.admin-onepage .admin-access-template-delete-panel {
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 20rem);
  }

  body.admin-onepage .admin-access-template-delete-actions {
    display: grid;
    grid-template-columns: auto minmax(11.75rem, 1fr);
    width: 100%;
    gap: 0.5rem;
  }

  body.admin-onepage .admin-access-template-delete-actions [data-admin-access-template-delete-cancel] {
    width: auto;
    min-width: 6.3rem;
  }

  body.admin-onepage .admin-access-template-delete-actions .admin-access-template-delete-confirm {
    width: 100%;
    min-width: 0;
    padding-left: 1.35rem;
    padding-right: 1.35rem;
  }
}


/* ==========================================================================
   v269 · Permanent sletting – lik knappehøyde + dropdown åpner oppover
   ========================================================================== */

/* SLETT PERMANENT skal ha nøyaktig samme vertikale rytme som AVBRYT. */
body.admin-onepage .admin-access-template-delete-actions .admin-access-template-delete-confirm {
  box-sizing: border-box;
  min-height: 3rem;
  height: 3rem;
  padding: 0.9rem 1.35rem;
  line-height: 1;
}

/* Flytt til-menyen åpner oppover slik at den ikke bygger ned mot
   handlingsknappene og bunnen av editoren. */
body.admin-onepage .admin-access-template-replacement-menu {
  top: auto;
  bottom: calc(100% + 0.38rem);
  transform-origin: bottom center;
  animation-name: adminAccessReplacementMenuInUp;
}

@keyframes adminAccessReplacementMenuInUp {
  from {
    opacity: 0;
    transform: translateY(0.22rem) scale(0.99);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@media (max-width: 680px) {
  body.admin-onepage .admin-access-template-delete-actions .admin-access-template-delete-confirm {
    min-height: 3rem;
    height: 3rem;
    padding-top: 0.9rem;
    padding-bottom: 0.9rem;
  }
}


/* ==========================================================================
   v270 · Tilgangsmalrad – kontrollert overflow + brukere ved sletting
   ========================================================================== */

/* Hele verktøylinjen: globalmaler kan bruke resten av bredden, mens
   Egendefinert og Ny tilgangsmal alltid står fast til høyre. */
body.admin-onepage .admin-access-profile-options {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.42rem;
  width: 100%;
  overflow: visible;
}

body.admin-onepage .admin-access-profile-scroll-shell {
  position: relative;
  min-width: 0;
}

body.admin-onepage .admin-access-profile-scroll {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0.36rem;
  width: 100%;
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 0.02rem;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

body.admin-onepage .admin-access-profile-scroll::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

body.admin-onepage .admin-access-profile-scroll > .admin-access-profile-item {
  flex: 0 0 auto;
}

body.admin-onepage .admin-access-profile-fixed {
  display: flex;
  align-items: stretch;
  gap: 0.36rem;
  flex: 0 0 auto;
  min-width: max-content;
}

body.admin-onepage .admin-access-profile-fixed .admin-access-profile-option.is-custom,
body.admin-onepage .admin-access-profile-fixed .admin-access-profile-new {
  flex: 0 0 auto;
}

/* Fade antyder mer innhold uten synlig scrollbar. */
body.admin-onepage .admin-access-profile-scroll-fade {
  position: absolute;
  z-index: 2;
  top: 0;
  bottom: 0;
  width: 2.5rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity 150ms ease;
}

body.admin-onepage .admin-access-profile-scroll-fade.is-left {
  left: 0;
  background: linear-gradient(90deg, rgba(255,253,249,0.98), rgba(255,253,249,0));
}

body.admin-onepage .admin-access-profile-scroll-fade.is-right {
  right: 0;
  background: linear-gradient(270deg, rgba(255,253,249,0.98), rgba(255,253,249,0));
}

body.admin-onepage .admin-access-profile-scroll-shell.can-scroll-left .admin-access-profile-scroll-fade.is-left,
body.admin-onepage .admin-access-profile-scroll-shell.can-scroll-right .admin-access-profile-scroll-fade.is-right {
  opacity: 1;
}

/* Små navigasjonspiler vises bare ved reell overflow. */
body.admin-onepage .admin-access-profile-scroll-arrow {
  position: absolute;
  z-index: 4;
  top: 50%;
  display: grid;
  place-items: center;
  width: 1.7rem;
  height: 1.7rem;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(205, 179, 138, 0.28);
  border-radius: 50%;
  background: rgba(255, 253, 249, 0.96);
  color: rgba(112, 79, 38, 0.72);
  box-shadow: 0 4px 14px rgba(31,29,26,0.08);
  cursor: pointer;
  transform: translateY(-50%);
  transition: border-color 140ms ease, background 140ms ease, color 140ms ease;
}

body.admin-onepage .admin-access-profile-scroll-arrow[hidden] {
  display: none !important;
}

body.admin-onepage .admin-access-profile-scroll-arrow.is-prev {
  left: 0.18rem;
}

body.admin-onepage .admin-access-profile-scroll-arrow.is-next {
  right: 0.18rem;
}

body.admin-onepage .admin-access-profile-scroll-arrow > i {
  width: 0.42rem;
  height: 0.42rem;
  border-top: 1.4px solid currentColor;
  border-right: 1.4px solid currentColor;
}

body.admin-onepage .admin-access-profile-scroll-arrow.is-prev > i {
  transform: translateX(0.08rem) rotate(-135deg);
}

body.admin-onepage .admin-access-profile-scroll-arrow.is-next > i {
  transform: translateX(-0.08rem) rotate(45deg);
}

body.admin-onepage .admin-access-profile-scroll-arrow:hover,
body.admin-onepage .admin-access-profile-scroll-arrow:focus-visible {
  border-color: rgba(190,156,106,0.46);
  background: rgba(255,253,249,1);
  color: rgba(92,61,24,0.94);
}

/* Når det faktisk er overflow får innholdet litt sikkerhetsplass under
   de små pilene. */
body.admin-onepage .admin-access-profile-scroll-shell.has-overflow .admin-access-profile-scroll {
  padding-inline: 1.15rem;
}

/* Slettepanelet viser eksplisitt hvilke aktive adminbrukere som blir flyttet. */
body.admin-onepage .admin-access-template-delete-users[hidden] {
  display: none !important;
}

body.admin-onepage .admin-access-template-delete-users {
  display: grid;
  gap: 0.34rem;
  margin-top: 0.48rem;
}

body.admin-onepage .admin-access-template-delete-users > span {
  color: rgba(162, 80, 69, 0.68);
  font-size: 0.53rem;
  font-weight: 750;
  letter-spacing: 0.07em;
  line-height: 1.1;
  text-transform: uppercase;
}

body.admin-onepage .admin-access-template-delete-user-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  max-height: 4.25rem;
  overflow-y: auto;
  padding-right: 0.16rem;
  scrollbar-color: rgba(162,80,69,0.36) transparent;
}

body.admin-onepage .admin-access-template-delete-user {
  display: inline-flex;
  align-items: center;
  gap: 0.26rem;
  min-height: 1.55rem;
  padding: 0.18rem 0.26rem 0.18rem 0.4rem;
  border: 1px solid rgba(162, 80, 69, 0.13);
  border-radius: 0.48rem;
  background: rgba(255,255,255,0.34);
}

body.admin-onepage .admin-access-template-delete-user > strong {
  color: rgba(31,29,26,0.67);
  font-size: 0.62rem;
  font-weight: 600;
  line-height: 1.15;
}

body.admin-onepage .admin-access-template-delete-user > small {
  padding: 0.12rem 0.28rem;
  border-radius: 999px;
  background: rgba(162,80,69,0.065);
  color: rgba(139,72,62,0.72);
  font-size: 0.49rem;
  font-weight: 650;
  line-height: 1;
  white-space: nowrap;
}

/* På mobil er swipe enklere enn små piler. De faste handlingene flyttes
   til egen rad slik at de fortsatt alltid er synlige. */
@media (max-width: 680px) {
  body.admin-onepage .admin-access-profile-options {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.42rem;
  }

  body.admin-onepage .admin-access-profile-scroll-arrow,
  body.admin-onepage .admin-access-profile-scroll-fade {
    display: none !important;
  }

  body.admin-onepage .admin-access-profile-scroll-shell.has-overflow .admin-access-profile-scroll {
    padding-inline: 0.02rem;
  }

  body.admin-onepage .admin-access-profile-fixed {
    width: 100%;
    min-width: 0;
  }

  body.admin-onepage .admin-access-profile-fixed .admin-access-profile-option.is-custom {
    flex: 1 1 auto;
  }

  body.admin-onepage .admin-access-profile-fixed .admin-access-profile-new {
    flex: 0 0 auto;
  }

  body.admin-onepage .admin-access-profile-new-divider {
    min-height: 2.35rem;
  }

  body.admin-onepage .admin-access-template-delete-user-list {
    max-height: 5.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.admin-onepage .admin-access-profile-scroll {
    scroll-behavior: auto;
  }

  body.admin-onepage .admin-access-profile-scroll-fade,
  body.admin-onepage .admin-access-profile-scroll-arrow {
    transition: none;
  }
}


/* ==========================================================================
   v271 · Tilgangsmalrad – dra med musepeker for horisontal scroll
   ========================================================================== */

@media (hover: hover) and (pointer: fine) {
  body.admin-onepage .admin-access-profile-scroll-shell.has-overflow .admin-access-profile-scroll {
    cursor: grab;
  }

  body.admin-onepage .admin-access-profile-scroll-shell.has-overflow .admin-access-profile-scroll.is-dragging {
    cursor: grabbing;
    scroll-behavior: auto;
    user-select: none;
  }

  body.admin-onepage .admin-access-profile-scroll.is-dragging,
  body.admin-onepage .admin-access-profile-scroll.is-dragging * {
    user-select: none;
  }
}


/* ==========================================================================
   v273 · Tilgangsmal-editor – Velg alle i Rettigheter-headeren
   ========================================================================== */

body.admin-onepage .admin-access-template-permission-tools {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.48rem;
  min-width: 0;
}

body.admin-onepage .admin-access-template-select-all {
  display: inline-flex;
  align-items: center;
  gap: 0.34rem;
  margin: 0;
  color: rgba(31, 29, 26, 0.56);
  font-size: 0.61rem;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  user-select: none;
}

body.admin-onepage .admin-access-template-select-all:hover {
  color: rgba(112, 79, 38, 0.76);
}

body.admin-onepage .admin-access-template-select-all.is-disabled {
  color: rgba(31, 29, 26, 0.32);
  cursor: default;
}

body.admin-onepage .admin-access-template-select-all-control {
  position: relative;
  width: 1rem;
  height: 1rem;
  flex: 0 0 1rem;
}

body.admin-onepage .admin-access-template-select-all-control input {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: inherit;
}

body.admin-onepage .admin-access-template-select-all-control i {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  border: 1px solid rgba(31, 29, 26, 0.18);
  border-radius: 0.3rem;
  background: rgba(255, 255, 255, 0.82);
  transition: border-color 140ms ease, background 140ms ease;
}

body.admin-onepage .admin-access-template-select-all-control input:checked + i,
body.admin-onepage .admin-access-template-select-all-control input:indeterminate + i {
  border-color: rgba(190, 156, 106, 0.78);
  background: rgba(190, 156, 106, 0.88);
}

body.admin-onepage .admin-access-template-select-all-control input:checked + i::after {
  content: "✓";
  color: #fff;
  font-size: 0.62rem;
  font-weight: 800;
  line-height: 1;
}

body.admin-onepage .admin-access-template-select-all-control input:indeterminate + i::after {
  content: "";
  width: 0.46rem;
  height: 1.5px;
  border-radius: 999px;
  background: #fff;
}

body.admin-onepage .admin-access-template-select-all-control input:focus-visible + i {
  outline: 2px solid rgba(205, 179, 138, 0.42);
  outline-offset: 2px;
}

body.admin-onepage .admin-access-template-select-all-control input:disabled + i {
  border-color: rgba(31, 29, 26, 0.10);
  opacity: 0.66;
}

@media (max-width: 520px) {
  body.admin-onepage .admin-access-template-section-heading {
    gap: 0.5rem;
  }

  body.admin-onepage .admin-access-template-permission-tools {
    gap: 0.38rem;
  }

  body.admin-onepage .admin-access-template-select-all {
    gap: 0.28rem;
    font-size: 0.57rem;
  }

  body.admin-onepage .admin-access-template-select-all-control {
    width: 0.94rem;
    height: 0.94rem;
    flex-basis: 0.94rem;
  }
}


/* ==========================================================================
   v274 · Rettigheter-header – ryddig Velg alle på én linje
   ========================================================================== */

/* Overstyr eldre direkte-child-regel som gjorde verktøyfeltet til grid. */
body.admin-onepage .admin-access-template-section-heading > .admin-access-template-permission-tools {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.42rem;
  min-width: 0;
}

/* Selve Velg alle-valget skal føles som en del av headeren, ikke en egen widget. */
body.admin-onepage .admin-access-template-section-heading > .admin-access-template-permission-tools .admin-access-template-select-all {
  display: inline-flex;
  align-items: center;
  gap: 0.32rem;
  min-height: 1.35rem;
  color: rgba(31, 29, 26, 0.52);
  font-size: 0.60rem;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
}

/* Litt mindre og roligere checkbox enn i v273. */
body.admin-onepage .admin-access-template-section-heading > .admin-access-template-permission-tools .admin-access-template-select-all-control {
  width: 0.88rem;
  height: 0.88rem;
  flex: 0 0 0.88rem;
}

body.admin-onepage .admin-access-template-section-heading > .admin-access-template-permission-tools .admin-access-template-select-all-control i {
  border-radius: 0.26rem;
}

/* Statusen blir ren tekst med en subtil separator – ingen egen boks/pill. */
body.admin-onepage .admin-access-template-section-heading > .admin-access-template-permission-tools .admin-access-template-permission-status {
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: rgba(31, 29, 26, 0.38) !important;
  font-size: 0.57rem !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  white-space: nowrap;
}

body.admin-onepage .admin-access-template-section-heading > .admin-access-template-permission-tools .admin-access-template-permission-status::before {
  content: "";
  width: 1px;
  height: 0.72rem;
  background: rgba(31, 29, 26, 0.12);
  flex: 0 0 1px;
}

/* Samme vertikale baseline som Rettigheter. */
body.admin-onepage .admin-access-template-permissions-section > .admin-access-template-section-heading {
  align-items: center;
}

@media (max-width: 520px) {
  body.admin-onepage .admin-access-template-section-heading > .admin-access-template-permission-tools {
    gap: 0.32rem;
  }

  body.admin-onepage .admin-access-template-section-heading > .admin-access-template-permission-tools .admin-access-template-select-all {
    gap: 0.26rem;
    font-size: 0.56rem;
  }

  body.admin-onepage .admin-access-template-section-heading > .admin-access-template-permission-tools .admin-access-template-permission-status {
    font-size: 0.54rem !important;
  }
}


/* ==========================================================================
   v275 · Mobil maleditor – fullskjerm over adminheader + kompakt footer
   ========================================================================== */

@media (max-width: 780px) {
  /* Mobilheaderen ligger på z-index 2150. Maleditoren må være en ekte modal
     over hele adminflaten, ellers blir editorhodet liggende skjult bak headeren. */
  body.admin-onepage .admin-access-template-manager-layer {
    z-index: 3400;
    align-items: stretch;
    padding: 0;
  }

  body.admin-onepage .admin-access-template-manager {
    width: 100%;
    height: 100dvh;
    max-height: 100dvh;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: rgba(255, 253, 249, 0.995);
    box-shadow: none;
  }

  /* Egen header skal alltid være synlig øverst i editoren. */
  body.admin-onepage .admin-access-template-manager-header {
    padding:
      max(0.72rem, env(safe-area-inset-top))
      max(0.86rem, env(safe-area-inset-right))
      0.68rem
      max(0.86rem, env(safe-area-inset-left));
    background: rgba(255, 253, 249, 0.985);
  }

  body.admin-onepage .admin-access-template-manager-header h2 {
    margin-top: 0.12rem;
    font-size: clamp(1.22rem, 5.8vw, 1.5rem);
    line-height: 1.06;
  }

  body.admin-onepage .admin-access-template-manager-header .admin-users-eyebrow {
    font-size: 0.53rem;
  }

  body.admin-onepage .admin-access-template-more-menu > summary,
  body.admin-onepage .admin-access-template-manager-close {
    width: 2.25rem;
    height: 2.25rem;
  }

  /* Midtflaten er den eneste delen som scroller. Litt strammere vertikal rytme
     gir vesentlig mer plass til selve rettighetene på telefon. */
  body.admin-onepage .admin-access-template-editor-scroll {
    gap: 0.72rem;
    padding:
      0.68rem
      max(0.82rem, env(safe-area-inset-right))
      1.15rem
      max(0.82rem, env(safe-area-inset-left));
    scroll-padding-bottom: 1.15rem;
  }

  body.admin-onepage .admin-access-template-fields {
    row-gap: 0.56rem;
  }

  body.admin-onepage .admin-access-template-fields input {
    min-height: 2.58rem;
    font-size: 0.9rem;
  }

  body.admin-onepage .admin-access-template-usage {
    gap: 0.16rem;
  }

  body.admin-onepage .admin-access-template-usage-copy {
    min-height: 1.45rem;
  }

  body.admin-onepage .admin-access-template-options-section {
    padding-top: 0.2rem;
  }

  body.admin-onepage .admin-access-template-setting,
  body.admin-onepage .admin-access-template-setting + .admin-access-template-setting {
    min-height: 2.52rem;
    padding-block: 0.58rem;
  }

  body.admin-onepage .admin-access-template-permissions-section {
    gap: 0.42rem;
  }

  /* Footer: liten destruktiv teksthandling på første rad,
     Avbryt/Lagre side om side på andre rad. */
  body.admin-onepage .admin-access-template-dialog-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-template-areas:
      "delete delete"
      "cancel save";
    align-items: center;
    gap: 0.38rem 0.5rem;
    padding:
      0.48rem
      max(0.82rem, env(safe-area-inset-right))
      max(0.58rem, env(safe-area-inset-bottom))
      max(0.82rem, env(safe-area-inset-left));
    border-top: 1px solid rgba(31, 29, 26, 0.06);
    background: rgba(255, 253, 249, 0.99);
    box-shadow: 0 -8px 24px rgba(31, 29, 26, 0.025);
  }

  body.admin-onepage .admin-access-template-dialog-actions-left {
    grid-area: delete;
    display: flex;
    width: auto !important;
    min-width: 0;
    margin: 0 !important;
    padding: 0;
  }

  body.admin-onepage .admin-access-template-dialog-actions-left:has(.admin-access-template-delete-trigger[hidden]) {
    display: none;
  }

  body.admin-onepage .admin-access-template-dialog-actions-left .admin-access-template-delete-trigger {
    width: auto;
    min-height: 1.55rem;
    margin: 0;
    padding: 0.06rem 0.18rem 0.16rem;
    font-size: 0.59rem;
  }

  body.admin-onepage .admin-access-template-dialog-actions [data-admin-access-template-back] {
    grid-area: cancel;
  }

  body.admin-onepage .admin-access-template-dialog-actions [data-admin-access-template-save] {
    grid-area: save;
  }

  body.admin-onepage .admin-access-template-dialog-actions [data-admin-access-template-back],
  body.admin-onepage .admin-access-template-dialog-actions [data-admin-access-template-save] {
    width: 100% !important;
    min-width: 0;
    min-height: 2.55rem;
    margin: 0;
    padding: 0.62rem 0.75rem;
    font-size: 0.66rem;
    line-height: 1;
  }

  /* Selve destructive revealet skal fortsatt være lett å bruke på mobil. */
  body.admin-onepage .admin-access-template-delete-panel {
    gap: 0.54rem;
    padding: 0.7rem;
  }

  body.admin-onepage .admin-access-template-delete-actions {
    grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
    gap: 0.42rem;
  }

  body.admin-onepage .admin-access-template-delete-actions button {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 420px) {
  body.admin-onepage .admin-access-template-manager-header {
    padding-right: 0.72rem;
    padding-left: 0.72rem;
  }

  body.admin-onepage .admin-access-template-editor-scroll {
    padding-right: 0.72rem;
    padding-left: 0.72rem;
  }

  body.admin-onepage .admin-access-template-dialog-actions {
    padding-right: 0.72rem;
    padding-left: 0.72rem;
  }
}


/* ==========================================================================
   v276 · Tilgangsmal – siste irreversible bekreftelse
   ========================================================================== */

body.has-admin-access-template-final-delete {
  overflow: hidden;
}

body.admin-onepage .admin-access-template-final-delete-layer {
  position: fixed;
  z-index: 3900;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 1rem;
  opacity: 0;
  visibility: hidden;
  transition: opacity 170ms ease, visibility 0s linear 170ms;
}

body.admin-onepage .admin-access-template-final-delete-layer[hidden] {
  display: none !important;
}

body.admin-onepage .admin-access-template-final-delete-layer.is-open {
  opacity: 1;
  visibility: visible;
  transition: opacity 170ms ease, visibility 0s linear 0s;
}

body.admin-onepage .admin-access-template-final-delete-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: rgba(31, 29, 26, 0.32);
  cursor: default;
  backdrop-filter: blur(9px);
  -webkit-backdrop-filter: blur(9px);
}

body.admin-onepage .admin-access-template-final-delete-dialog {
  position: relative;
  z-index: 1;
  width: min(31rem, 100%);
  box-sizing: border-box;
  padding: 1.35rem;
  border: 1px solid rgba(255, 255, 255, 0.64);
  border-radius: 1.2rem;
  background: #fffdf9;
  box-shadow: 0 26px 78px rgba(31, 29, 26, 0.22);
  opacity: 0;
  transform: translateY(0.48rem) scale(0.987);
  transition:
    opacity 170ms ease,
    transform 210ms cubic-bezier(.2,.75,.25,1);
}

body.admin-onepage .admin-access-template-final-delete-layer.is-open .admin-access-template-final-delete-dialog {
  opacity: 1;
  transform: translateY(0) scale(1);
}

body.admin-onepage .admin-access-template-final-delete-kicker {
  margin: 0 0 0.42rem;
  color: rgba(162, 80, 69, 0.78);
  font-size: 0.56rem;
  font-weight: 800;
  letter-spacing: 0.105em;
  line-height: 1;
  text-transform: uppercase;
}

body.admin-onepage .admin-access-template-final-delete-dialog h2 {
  margin: 0;
  color: rgba(31, 29, 26, 0.9);
  font-family: inherit;
  font-size: 1rem;
  font-weight: 720;
  line-height: 1.28;
  letter-spacing: -0.012em;
}

body.admin-onepage .admin-access-template-final-delete-description {
  margin: 0.52rem 0 0;
  color: rgba(31, 29, 26, 0.52);
  font-size: 0.69rem;
  line-height: 1.52;
}

body.admin-onepage .admin-access-template-final-delete-people[hidden] {
  display: none !important;
}

body.admin-onepage .admin-access-template-final-delete-people {
  display: grid;
  gap: 0.34rem;
  margin-top: 0.7rem;
}

body.admin-onepage .admin-access-template-final-delete-people > span {
  color: rgba(162, 80, 69, 0.66);
  font-size: 0.52rem;
  font-weight: 750;
  letter-spacing: 0.07em;
  line-height: 1;
  text-transform: uppercase;
}

body.admin-onepage .admin-access-template-final-delete-people-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  max-height: 5rem;
  overflow-y: auto;
  padding-right: 0.12rem;
  scrollbar-color: rgba(190, 156, 106, 0.48) transparent;
}

body.admin-onepage .admin-access-template-final-delete-person {
  display: inline-flex;
  align-items: center;
  gap: 0.26rem;
  min-height: 1.55rem;
  padding: 0.18rem 0.28rem 0.18rem 0.42rem;
  border: 1px solid rgba(162, 80, 69, 0.13);
  border-radius: 0.5rem;
  background: rgba(162, 80, 69, 0.035);
}

body.admin-onepage .admin-access-template-final-delete-person strong {
  color: rgba(31, 29, 26, 0.7);
  font-size: 0.62rem;
  font-weight: 650;
  line-height: 1.15;
}

body.admin-onepage .admin-access-template-final-delete-person small {
  padding: 0.13rem 0.28rem;
  border-radius: 999px;
  background: rgba(190, 156, 106, 0.1);
  color: rgba(112, 79, 38, 0.68);
  font-size: 0.49rem;
  font-weight: 650;
  line-height: 1;
  white-space: nowrap;
}

body.admin-onepage .admin-access-template-final-delete-warning {
  margin: 0.72rem 0 0;
  padding-top: 0.62rem;
  border-top: 1px solid rgba(162, 80, 69, 0.13);
  color: rgba(162, 80, 69, 0.84);
  font-size: 0.64rem;
  font-weight: 700;
  line-height: 1.35;
}

body.admin-onepage .admin-access-template-final-delete-actions {
  display: grid;
  grid-template-columns: minmax(6.4rem, 0.72fr) minmax(10.6rem, 1.28fr);
  gap: 0.48rem;
  margin-top: 0.9rem;
}

body.admin-onepage .admin-access-template-final-delete-actions button {
  min-width: 0;
  min-height: 2.72rem;
  padding: 0.72rem 0.9rem;
  border-radius: 999px;
  font: inherit;
  font-size: 0.65rem;
  font-weight: 750;
  letter-spacing: 0.075em;
  line-height: 1;
  text-transform: uppercase;
  cursor: pointer;
  transition:
    background 150ms ease,
    border-color 150ms ease,
    color 150ms ease;
}

body.admin-onepage .admin-access-template-final-delete-cancel {
  border: 1px solid rgba(31, 29, 26, 0.18);
  background: #1f1d1a;
  color: #fff;
}

body.admin-onepage .admin-access-template-final-delete-cancel:hover,
body.admin-onepage .admin-access-template-final-delete-cancel:focus-visible {
  background: #292622;
}

body.admin-onepage .admin-access-template-final-delete-confirm {
  border: 1px solid rgba(162, 80, 69, 0.9);
  background: rgba(162, 80, 69, 0.94);
  color: #fff;
}

body.admin-onepage .admin-access-template-final-delete-confirm:hover,
body.admin-onepage .admin-access-template-final-delete-confirm:focus-visible {
  background: rgba(151, 70, 60, 1);
  border-color: rgba(151, 70, 60, 1);
}

body.admin-onepage .admin-access-template-final-delete-confirm:disabled {
  opacity: 0.62;
  cursor: wait;
}

body.admin-onepage .admin-access-template-final-delete-actions button:focus-visible {
  outline: 2px solid rgba(205, 179, 138, 0.52);
  outline-offset: 2px;
}

@media (max-width: 560px) {
  body.admin-onepage .admin-access-template-final-delete-layer {
    align-items: end;
    padding:
      0.65rem
      max(0.65rem, env(safe-area-inset-right))
      max(0.65rem, env(safe-area-inset-bottom))
      max(0.65rem, env(safe-area-inset-left));
  }

  body.admin-onepage .admin-access-template-final-delete-dialog {
    width: 100%;
    padding: 1rem;
    border-radius: 1.05rem;
  }

  body.admin-onepage .admin-access-template-final-delete-actions {
    grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
  }

  body.admin-onepage .admin-access-template-final-delete-actions button {
    min-height: 2.65rem;
    padding-inline: 0.55rem;
    font-size: 0.61rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.admin-onepage .admin-access-template-final-delete-layer,
  body.admin-onepage .admin-access-template-final-delete-dialog {
    transition: none;
  }
}


/* ==========================================================================
   v277 · Mobil tilgangsoppsett + sheet-editor
   ========================================================================== */

/* Desktop beholder dagens malrad. Mobil-chrome eksisterer bare som wrapper. */
body.admin-onepage .admin-access-profile-mobile-trigger,
body.admin-onepage .admin-access-profile-mobile-backdrop,
body.admin-onepage .admin-access-profile-mobile-header {
  display: none;
}

body.admin-onepage .admin-access-profile-mobile-popover {
  display: contents;
}

body.admin-onepage .admin-access-template-dialog-actions[hidden] {
  display: none !important;
}

/* Slett er en sjelden/destruktiv handling og hører hjemme i 3-prikkmenyen. */
body.admin-onepage .admin-access-template-more-menu .admin-access-template-delete-menu {
  color: rgba(145, 73, 67, 0.72);
}

body.admin-onepage .admin-access-template-more-menu .admin-access-template-delete-menu:hover,
body.admin-onepage .admin-access-template-more-menu .admin-access-template-delete-menu:focus-visible {
  color: rgba(132, 57, 52, 0.96);
  background: rgba(164, 73, 67, 0.055);
}

body.admin-onepage .admin-access-template-more-menu .admin-access-template-delete-menu[hidden] {
  display: none !important;
}

/* Action-panelet vises kun ved endringer, og skjules mens sletteflyten er aktiv. */
body.admin-onepage .admin-access-template-editor.is-delete-mode .admin-access-template-dialog-actions {
  display: none !important;
}

/* Drag-håndtak er kun relevant på mobil. */
body.admin-onepage .admin-access-template-drag-handle {
  display: none;
}

/* Litt renere footer også på desktop når den faktisk vises. */
body.admin-onepage .admin-access-template-dialog-actions {
  justify-content: flex-end;
}

@media (max-width: 680px) {
  body.has-admin-access-profile-mobile-picker {
    overflow: hidden;
  }

  /* Den gamle raden erstattes av én rolig feltkontroll. */
  body.admin-onepage .admin-access-profile-picker {
    padding: 0;
    border: 0;
    background: transparent;
    overflow: visible;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger {
    appearance: none;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.7rem;
    width: 100%;
    min-height: 3.35rem;
    padding: 0.58rem 0.72rem;
    border: 1px solid rgba(31, 29, 26, 0.09);
    border-radius: 0.82rem;
    background: rgba(255, 255, 255, 0.56);
    color: inherit;
    font: inherit;
    text-align: left;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.82);
  }

  body.admin-onepage .admin-access-profile-mobile-trigger > span:first-child {
    display: grid;
    gap: 0.12rem;
    min-width: 0;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger small {
    color: rgba(168, 143, 104, 0.88);
    font-size: 0.50rem;
    font-weight: 800;
    letter-spacing: 0.115em;
    line-height: 1;
    text-transform: uppercase;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger strong {
    overflow: hidden;
    color: rgba(31, 29, 26, 0.82);
    font-size: 0.75rem;
    font-weight: 680;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger-action {
    display: inline-flex;
    align-items: center;
    gap: 0.42rem;
    color: rgba(112, 79, 38, 0.66);
    font-size: 0.58rem;
    font-weight: 700;
    white-space: nowrap;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger-action > i {
    width: 0.43rem;
    height: 0.43rem;
    border-right: 1.3px solid currentColor;
    border-bottom: 1.3px solid currentColor;
    transform: rotate(45deg) translateY(-0.08rem);
  }

  body.admin-onepage .admin-access-profile-mobile-backdrop {
    position: fixed;
    z-index: 3470;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    background: rgba(31, 29, 26, 0.27);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    backdrop-filter: blur(8px) saturate(108%);
    -webkit-backdrop-filter: blur(8px) saturate(108%);
    transition: opacity 190ms ease, visibility 0s linear 210ms;
  }

  body.admin-onepage .admin-access-profile-mobile-popover {
    position: fixed;
    z-index: 3480;
    top: 50%;
    left: 50%;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    width: min(32rem, calc(100vw - 1.4rem));
    max-height: min(72dvh, 37rem);
    overflow: hidden;
    border: 1px solid rgba(205, 179, 138, 0.25);
    border-radius: 1.18rem;
    background:
      radial-gradient(circle at 8% 0%, rgba(205,179,138,0.11), transparent 12rem),
      rgba(255, 253, 249, 0.992);
    box-shadow: 0 26px 72px rgba(31, 29, 26, 0.2);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate(-50%, calc(-50% + 0.5rem)) scale(0.985);
    transition:
      opacity 190ms ease,
      transform 220ms cubic-bezier(.22,1,.36,1),
      visibility 0s linear 220ms;
  }

  body.admin-onepage .admin-access-profile-picker.is-mobile-open .admin-access-profile-mobile-backdrop {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: opacity 190ms ease, visibility 0s linear 0s;
  }

  body.admin-onepage .admin-access-profile-picker.is-mobile-open .admin-access-profile-mobile-popover {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate(-50%, -50%) scale(1);
    transition:
      opacity 190ms ease,
      transform 220ms cubic-bezier(.22,1,.36,1),
      visibility 0s linear 0s;
  }

  body.admin-onepage .admin-access-profile-mobile-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    padding: 0.82rem 0.9rem 0.72rem;
    border-bottom: 1px solid rgba(31, 29, 26, 0.06);
  }

  body.admin-onepage .admin-access-profile-mobile-header > div {
    display: grid;
    gap: 0.16rem;
  }

  body.admin-onepage .admin-access-profile-mobile-header small {
    color: rgba(168, 143, 104, 0.86);
    font-size: 0.50rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  body.admin-onepage .admin-access-profile-mobile-header strong {
    color: rgba(31, 29, 26, 0.84);
    font-size: 0.82rem;
    font-weight: 720;
  }

  body.admin-onepage .admin-access-profile-mobile-header > button {
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 1px solid rgba(31,29,26,0.08);
    border-radius: 50%;
    background: rgba(255,255,255,0.62);
    color: rgba(31,29,26,0.5);
    font: inherit;
    font-size: 1rem;
  }

  /* I popoveren blir malene en ren vertikal liste – ingen horisontal overflow. */
  body.admin-onepage .admin-access-profile-mobile-popover .admin-access-profile-options {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.34rem;
    min-height: 0;
    max-height: none;
    overflow-y: auto;
    overflow-x: hidden;
    padding:
      0.7rem
      0.76rem
      max(0.82rem, env(safe-area-inset-bottom));
    scrollbar-width: thin;
    scrollbar-color: rgba(205, 179, 138, 0.62) transparent;
  }

  body.admin-onepage .admin-access-profile-mobile-popover .admin-access-profile-scroll-shell {
    min-width: 0;
  }

  body.admin-onepage .admin-access-profile-mobile-popover .admin-access-profile-scroll {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.34rem;
    width: 100%;
    overflow: visible;
    padding: 0;
  }

  body.admin-onepage .admin-access-profile-mobile-popover .admin-access-profile-scroll-arrow,
  body.admin-onepage .admin-access-profile-mobile-popover .admin-access-profile-scroll-fade {
    display: none !important;
  }

  body.admin-onepage .admin-access-profile-mobile-popover .admin-access-profile-item {
    width: 100%;
  }

  body.admin-onepage .admin-access-profile-mobile-popover .admin-access-profile-option {
    min-height: 2.75rem;
    padding: 0.54rem 0.72rem;
  }

  body.admin-onepage .admin-access-profile-mobile-popover .admin-access-profile-item,
  body.admin-onepage .admin-access-profile-mobile-popover .admin-access-profile-option.is-custom {
    border-radius: 0.72rem;
  }

  body.admin-onepage .admin-access-profile-mobile-popover .admin-access-profile-fixed {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.34rem;
    width: 100%;
    min-width: 0;
    padding-top: 0.4rem;
    border-top: 1px solid rgba(31,29,26,0.065);
  }

  body.admin-onepage .admin-access-profile-mobile-popover .admin-access-profile-new-divider {
    display: none;
  }

  body.admin-onepage .admin-access-profile-mobile-popover .admin-access-profile-new {
    justify-content: flex-start;
    width: 100%;
    min-height: 2.65rem;
    padding: 0.52rem 0.72rem;
    border-radius: 0.72rem;
  }
}

@media (max-width: 780px) {
  /* Editor som faktisk mobilark – stor, men tydelig løsrevet fra nettsiden. */
  body.admin-onepage .admin-access-template-manager-layer {
    z-index: 3520;
    align-items: end;
    place-items: end stretch;
    padding: max(1.15rem, env(safe-area-inset-top)) 0 0;
  }

  body.admin-onepage .admin-access-template-manager-backdrop {
    background: rgba(31, 29, 26, 0.29);
    backdrop-filter: blur(10px) saturate(108%);
    -webkit-backdrop-filter: blur(10px) saturate(108%);
  }

  body.admin-onepage .admin-access-template-manager {
    width: 100%;
    height: min(94dvh, 58rem);
    max-height: min(94dvh, 58rem);
    margin: 0;
    border: 1px solid rgba(205,179,138,0.23);
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: 1.5rem 1.5rem 0 0;
    background:
      radial-gradient(circle at 10% 0%, rgba(205,179,138,0.10), transparent 15rem),
      rgba(255,253,249,0.992);
    box-shadow: 0 -24px 70px rgba(31,29,26,0.18);
    opacity: 0;
    transform: translateY(100%);
    transition:
      opacity 190ms ease,
      transform 300ms cubic-bezier(.22,1,.36,1);
  }

  body.admin-onepage .admin-access-template-manager-layer.is-open .admin-access-template-manager {
    opacity: 1;
    transform: translateY(var(--admin-access-template-drag-y, 0px));
  }

  body.admin-onepage .admin-access-template-manager-layer.is-open .admin-access-template-manager-backdrop {
    opacity: calc(1 - var(--admin-access-template-drag-progress, 0));
  }

  body.admin-onepage .admin-access-template-manager-layer.is-dragging .admin-access-template-manager,
  body.admin-onepage .admin-access-template-manager-layer.is-dragging .admin-access-template-manager-backdrop {
    transition: none;
  }

  body.admin-onepage .admin-access-template-drag-handle {
    position: absolute;
    z-index: 3;
    top: 0;
    left: 50%;
    display: grid;
    place-items: center;
    width: 5.2rem;
    height: 1.7rem;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    transform: translateX(-50%);
    touch-action: none;
    cursor: grab;
  }

  body.admin-onepage .admin-access-template-drag-handle > span {
    width: 2.5rem;
    height: 0.2rem;
    border-radius: 999px;
    background: rgba(31,29,26,0.15);
  }

  body.admin-onepage .admin-access-template-manager-header {
    padding:
      1.55rem
      max(0.88rem, env(safe-area-inset-right))
      0.72rem
      max(0.88rem, env(safe-area-inset-left));
    background: transparent;
  }

  body.admin-onepage .admin-access-template-manager-header h2 {
    margin-top: 0.1rem;
    font-size: clamp(1.22rem, 5.8vw, 1.5rem);
  }

  body.admin-onepage .admin-access-template-manager-header .admin-users-eyebrow {
    font-size: 0.51rem;
  }

  body.admin-onepage .admin-access-template-manager-header-actions {
    align-items: center;
  }

  body.admin-onepage .admin-access-template-more-menu > summary,
  body.admin-onepage .admin-access-template-manager-close {
    width: 2.15rem;
    height: 2.15rem;
  }

  body.admin-onepage .admin-access-template-editor-scroll {
    gap: 0.72rem;
    padding:
      0.7rem
      max(0.82rem, env(safe-area-inset-right))
      1rem
      max(0.82rem, env(safe-area-inset-left));
    scroll-padding-bottom: 5rem;
  }

  /* Avbryt/Lagre er et lite endringspanel, ikke permanent navigasjon. */
  body.admin-onepage .admin-access-template-dialog-actions {
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    gap: 0.5rem;
    padding:
      0.52rem
      max(0.82rem, env(safe-area-inset-right))
      max(0.62rem, calc(0.42rem + env(safe-area-inset-bottom)))
      max(0.82rem, env(safe-area-inset-left));
    border-top: 1px solid rgba(31,29,26,0.055);
    background: rgba(255,253,249,0.985);
    box-shadow: 0 -10px 26px rgba(31,29,26,0.035);
  }

  body.admin-onepage .admin-access-template-dialog-actions [data-admin-access-template-back],
  body.admin-onepage .admin-access-template-dialog-actions [data-admin-access-template-save] {
    width: 100% !important;
    min-width: 0;
    min-height: 2.55rem;
    margin: 0;
    padding: 0.62rem 0.75rem;
    font-size: 0.64rem;
  }

  /* Gamle v275-regler for venstre delete-kolonne skal ikke påvirke ny footer. */
  body.admin-onepage .admin-access-template-dialog-actions-left {
    display: none !important;
  }

  /* 3-prikkmenyen skal se ut som et faktisk verktøyvalg på mobil. */
  body.admin-onepage .admin-access-template-more-menu .admin-user-account-menu-popover {
    min-width: 12.2rem;
  }

  body.admin-onepage .admin-access-template-more-menu .admin-access-template-delete-menu {
    border-top: 1px solid rgba(31,29,26,0.055);
  }
}

@media (max-width: 430px) {
  body.admin-onepage .admin-access-profile-mobile-trigger {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.24rem;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger-action {
    justify-self: start;
  }

  body.admin-onepage .admin-access-profile-mobile-popover {
    width: calc(100vw - 1rem);
    max-height: 76dvh;
  }

  body.admin-onepage .admin-access-template-manager {
    height: 95dvh;
    max-height: 95dvh;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.admin-onepage .admin-access-profile-mobile-backdrop,
  body.admin-onepage .admin-access-profile-mobile-popover,
  body.admin-onepage .admin-access-template-manager {
    transition: none !important;
  }
}


/* ==========================================================================
   v278 · Desktop tilgangsmalrad – bedre plassutnyttelse
   ========================================================================== */

@media (min-width: 681px) {
  /* Ikke reserver plass til begge navigasjonspilene hele tiden.
     Venstre luft kommer først når det faktisk finnes noe å scrolle tilbake til,
     og høyre luft bare når det finnes mer innhold mot høyre. */
  body.admin-onepage .admin-access-profile-scroll-shell.has-overflow .admin-access-profile-scroll {
    padding-left: 0.02rem;
    padding-right: 0.02rem;
  }

  body.admin-onepage .admin-access-profile-scroll-shell.can-scroll-left .admin-access-profile-scroll {
    padding-left: 1.15rem;
  }

  body.admin-onepage .admin-access-profile-scroll-shell.can-scroll-right .admin-access-profile-scroll {
    padding-right: 1.15rem;
  }

  /* Egendefinert ligger utenfor den scrollbare malrekken og trenger derfor
     ikke samme minimumsbredde som en redigerbar global tilgangsmal. */
  body.admin-onepage .admin-access-profile-fixed .admin-access-profile-option.is-custom {
    width: max-content;
    min-width: 0 !important;
    padding-left: 0.62rem;
    padding-right: 0.62rem;
  }

  body.admin-onepage .admin-access-profile-fixed .admin-access-profile-option.is-custom > span {
    gap: 0.36rem;
  }

  body.admin-onepage .admin-access-profile-fixed {
    gap: 0.32rem;
  }

  body.admin-onepage .admin-access-profile-options {
    column-gap: 0.36rem;
  }
}


/* ==========================================================================
   v279 · Desktop skille + robuste viewport-overlays på mobil
   ========================================================================== */

/* Desktop: Egendefinert er et fast individuelt valg utenfor den globale
   malrekken. En kort champagne-linje viser dette tydelig når rekken ikke
   fortsetter bak høyrefade/pil. */
@media (min-width: 681px) {
  body.admin-onepage .admin-access-profile-fixed {
    position: relative;
    padding-left: 0.9rem;
    margin-left: 0.08rem;
  }

  body.admin-onepage .admin-access-profile-fixed::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0.23rem;
    width: 1px;
    height: 1.45rem;
    border-radius: 999px;
    background: rgba(190, 156, 106, 0.38);
    opacity: 1;
    transform: translateY(-50%);
    transition: opacity 140ms ease;
  }

  /* Når det finnes flere globale maler mot høyre, er fade/pil selve skillet.
     Linjen kommer tilbake når man er ved enden av raden. */
  body.admin-onepage
  .admin-access-profile-options.has-profile-overflow:not(.is-profile-scroll-end)
  .admin-access-profile-fixed {
    padding-left: 0.24rem;
    margin-left: 0;
  }

  body.admin-onepage
  .admin-access-profile-options.has-profile-overflow:not(.is-profile-scroll-end)
  .admin-access-profile-fixed::before {
    opacity: 0;
  }
}

/* Mobilvelgeren er nå portalert direkte under body. Derfor styres åpen/lukket
   status på selve backdrop/popover-elementene, ikke via picker-forelderen. */
@media (max-width: 680px) {
  body.admin-onepage .admin-access-profile-mobile-backdrop {
    position: fixed !important;
    z-index: 3650 !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    display: block;
    margin: 0;
    padding: 0;
    border: 0;
    background: rgba(31, 29, 26, 0.30);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    backdrop-filter: blur(10px) saturate(108%);
    -webkit-backdrop-filter: blur(10px) saturate(108%);
    transition:
      opacity 190ms ease,
      visibility 0s linear 210ms;
  }

  body.admin-onepage .admin-access-profile-mobile-backdrop.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition:
      opacity 190ms ease,
      visibility 0s linear 0s;
  }

  body.admin-onepage .admin-access-profile-mobile-popover {
    position: fixed !important;
    z-index: 3660 !important;
    top: 50dvh !important;
    left: 50vw !important;
    right: auto !important;
    bottom: auto !important;
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr);
    width: min(30rem, calc(100vw - 1.35rem)) !important;
    min-width: 0 !important;
    max-width: calc(100vw - 1.35rem) !important;
    max-height: min(72dvh, 36rem) !important;
    margin: 0 !important;
    overflow: hidden;
    border: 1px solid rgba(205, 179, 138, 0.27);
    border-radius: 1.18rem;
    background:
      radial-gradient(circle at 8% 0%, rgba(205,179,138,0.12), transparent 12rem),
      rgba(255, 253, 249, 0.995);
    box-shadow: 0 28px 80px rgba(31, 29, 26, 0.23);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate(-50%, calc(-50% + 0.5rem)) scale(0.985) !important;
    transform-origin: center;
    transition:
      opacity 190ms ease,
      transform 220ms cubic-bezier(.22,1,.36,1),
      visibility 0s linear 220ms;
  }

  body.admin-onepage .admin-access-profile-mobile-popover.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate(-50%, -50%) scale(1) !important;
    transition:
      opacity 190ms ease,
      transform 220ms cubic-bezier(.22,1,.36,1),
      visibility 0s linear 0s;
  }

  body.admin-onepage .admin-access-profile-mobile-popover .admin-access-profile-mobile-header {
    display: flex;
    flex: 0 0 auto;
    padding: 0.8rem 0.86rem 0.7rem;
  }

  body.admin-onepage .admin-access-profile-mobile-popover .admin-access-profile-options {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    padding: 0.62rem 0.68rem max(0.76rem, env(safe-area-inset-bottom));
  }

  body.admin-onepage .admin-access-profile-mobile-popover .admin-access-profile-scroll-shell,
  body.admin-onepage .admin-access-profile-mobile-popover .admin-access-profile-scroll,
  body.admin-onepage .admin-access-profile-mobile-popover .admin-access-profile-fixed {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  body.admin-onepage .admin-access-profile-mobile-popover .admin-access-profile-item {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
  }

  body.admin-onepage .admin-access-profile-mobile-popover .admin-access-profile-option,
  body.admin-onepage .admin-access-profile-mobile-popover .admin-access-profile-new {
    box-sizing: border-box;
    width: 100%;
    min-width: 0 !important;
  }

  /* De gamle reveal-transformene gjorde fixed-elementer lokale i Safari.
     På mobil brukes bare opacity; viewport-modalene får dermed ingen ny
     containing block fra Tilganger-kortet. */
  body.admin-onepage .admin-user-permissions[open] > .admin-user-permissions-body,
  body.admin-onepage .admin-user-permissions[open] .admin-access-profile-options {
    animation: none !important;
    transform: none !important;
  }

  /* Litt ryddigere trigger på selve brukerkortet. */
  body.admin-onepage .admin-access-profile-mobile-trigger {
    min-height: 3.2rem;
    padding: 0.54rem 0.68rem;
    border-color: rgba(205, 179, 138, 0.18);
    background: rgba(255, 253, 249, 0.58);
  }

  body.admin-onepage .admin-access-profile-mobile-trigger-action {
    color: rgba(112, 79, 38, 0.72);
  }
}

/* Tilgangsmal-editoren flyttes nå til body av JS og kan derfor være et ekte
   mobil-sheet over hele viewporten, tilsvarende hovedmenyen – bare høyere. */
@media (max-width: 780px) {
  body.admin-onepage .admin-access-template-manager-layer {
    position: fixed !important;
    z-index: 3700 !important;
    inset: 0 !important;
    display: grid;
    align-items: end;
    place-items: end stretch;
    width: 100vw;
    height: 100dvh;
    padding: max(0.75rem, env(safe-area-inset-top)) 0 0;
    overflow: hidden;
  }

  body.admin-onepage .admin-access-template-manager-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(31, 29, 26, 0.30);
    backdrop-filter: blur(10px) saturate(108%);
    -webkit-backdrop-filter: blur(10px) saturate(108%);
  }

  body.admin-onepage .admin-access-template-manager {
    width: 100%;
    height: min(94.5dvh, 60rem);
    max-height: min(94.5dvh, 60rem);
    margin: 0;
    border: 1px solid rgba(205,179,138,0.24);
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: 1.5rem 1.5rem 0 0;
    background:
      radial-gradient(circle at 10% 0%, rgba(205,179,138,0.11), transparent 15rem),
      rgba(255,253,249,0.995);
    box-shadow:
      0 -26px 76px rgba(31,29,26,0.19),
      inset 0 1px 0 rgba(255,255,255,0.9);
  }

  body.admin-onepage .admin-access-template-manager-header {
    min-height: 4.35rem;
    box-sizing: border-box;
    padding:
      1.48rem
      max(0.9rem, env(safe-area-inset-right))
      0.68rem
      max(0.9rem, env(safe-area-inset-left));
  }

  body.admin-onepage .admin-access-template-manager-header h2 {
    margin-top: 0.08rem;
    font-size: clamp(1.28rem, 6vw, 1.55rem);
    line-height: 1.04;
  }

  body.admin-onepage .admin-access-template-drag-handle {
    z-index: 5;
    height: 1.55rem;
  }

  body.admin-onepage .admin-access-template-drag-handle > span {
    width: 2.65rem;
    background: rgba(31,29,26,0.16);
  }

  body.admin-onepage .admin-access-template-editor-scroll {
    padding:
      0.66rem
      max(0.82rem, env(safe-area-inset-right))
      max(3.2rem, calc(1.1rem + env(safe-area-inset-bottom)))
      max(0.82rem, env(safe-area-inset-left));
    scroll-padding-bottom: 5.5rem;
  }

  /* Når endringspanelet ikke finnes, skal de nederste rettighetene fortsatt
     kunne scrolles godt klar av Safari-verktøylinjen. */
  body.admin-onepage
  .admin-access-template-editor:not(.is-dirty)
  .admin-access-template-editor-scroll {
    padding-bottom: max(4.2rem, calc(1.3rem + env(safe-area-inset-bottom)));
  }

  /* Mobil rettighetskort litt mer konsise uten å miste treffflate. */
  body.admin-onepage
  .admin-access-template-manager
  .admin-user-permission-option {
    min-height: 3.25rem;
    padding: 0.56rem 0.62rem;
  }

  body.admin-onepage
  .admin-access-template-manager
  .admin-user-permission-copy strong {
    font-size: 0.72rem;
  }

  body.admin-onepage
  .admin-access-template-manager
  .admin-user-permission-copy small {
    font-size: 0.61rem;
    line-height: 1.3;
  }

  /* Rettigheter-headeren får litt mer fleksibilitet på smale telefoner. */
  body.admin-onepage
  .admin-access-template-manager
  .admin-access-template-section-heading {
    min-width: 0;
  }

  body.admin-onepage
  .admin-access-template-manager
  .admin-access-template-permission-tools {
    flex: 0 1 auto;
    min-width: 0;
  }
}

@media (max-width: 430px) {
  body.admin-onepage .admin-access-profile-mobile-popover {
    width: calc(100vw - 0.9rem) !important;
    max-width: calc(100vw - 0.9rem) !important;
    max-height: 76dvh !important;
  }

  body.admin-onepage .admin-access-template-manager {
    height: 95.5dvh;
    max-height: 95.5dvh;
  }

  body.admin-onepage .admin-access-template-manager-header {
    padding-right: 0.76rem;
    padding-left: 0.76rem;
  }

  body.admin-onepage .admin-access-template-editor-scroll {
    padding-right: 0.72rem;
    padding-left: 0.72rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.admin-onepage .admin-access-profile-mobile-backdrop,
  body.admin-onepage .admin-access-profile-mobile-popover {
    transition: none !important;
  }
}


/* ==========================================================================
   v280 · Desktop tilgangsmalrad – ett konsekvent skille
   ========================================================================== */

@media (min-width: 681px) {
  /* Bruk nøyaktig samme fade/gradient-uttrykk som separatoren som tidligere
     sto mellom Egendefinert og Ny tilgangsmal. */
  body.admin-onepage .admin-access-profile-fixed::before {
    width: 1px;
    height: 1.7rem;
    border-radius: 0;
    background: linear-gradient(
      to bottom,
      rgba(205, 179, 138, 0),
      rgba(205, 179, 138, 0.34) 28%,
      rgba(205, 179, 138, 0.34) 72%,
      rgba(205, 179, 138, 0)
    );
  }

  /* Egendefinert og Ny tilgangsmal hører nå til samme faste handlingsgruppe.
     Det gamle skillet mellom dem fjernes. */
  body.admin-onepage .admin-access-profile-fixed > .admin-access-profile-new-divider {
    display: none !important;
  }

  /* Behold en naturlig, liten avstand mellom de to faste valgene. */
  body.admin-onepage .admin-access-profile-fixed {
    gap: 0.36rem;
  }
}

/* ==========================================================================
   v281 · Mobil – tydeligere tilgangsoppsett-kontroll i Adminbrukere
   ========================================================================== */

@media (max-width: 680px) {
  body.admin-onepage .admin-access-profile-mobile-trigger {
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
    gap: 0.46rem;
    min-height: 0;
    padding: 0.76rem 0.8rem;
    border: 1px solid rgba(205, 179, 138, 0.22);
    border-radius: 0.92rem;
    background:
      linear-gradient(180deg, rgba(255,255,255,0.82), rgba(255,253,249,0.7)),
      rgba(255, 253, 249, 0.76);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,0.9),
      0 10px 26px rgba(31, 29, 26, 0.028);
  }

  body.admin-onepage .admin-access-profile-mobile-trigger > span:first-child {
    gap: 0.16rem;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger small {
    color: rgba(168, 143, 104, 0.9);
    font-size: 0.51rem;
    letter-spacing: 0.12em;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger strong {
    color: rgba(31, 29, 26, 0.86);
    font-size: 0.98rem;
    font-weight: 690;
    line-height: 1.14;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger-action {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.72rem;
    width: 100%;
    min-height: 2.55rem;
    padding: 0.52rem 0.72rem;
    border: 1px solid rgba(205, 179, 138, 0.22);
    border-radius: 0.76rem;
    background: rgba(205, 179, 138, 0.075);
    color: rgba(112, 79, 38, 0.82);
    font-size: 0.68rem;
    font-weight: 760;
    letter-spacing: 0.01em;
    white-space: nowrap;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger-action > i {
    width: 0.62rem;
    height: 0.62rem;
    margin-left: auto;
    border-right: 1.7px solid currentColor;
    border-bottom: 1.7px solid currentColor;
    transform: rotate(45deg) translateY(-0.08rem);
    flex: 0 0 auto;
    opacity: 0.9;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger:hover,
  body.admin-onepage .admin-access-profile-mobile-trigger:focus-visible {
    border-color: rgba(205, 179, 138, 0.34);
  }
}

@media (max-width: 430px) {
  body.admin-onepage .admin-access-profile-mobile-trigger {
    padding: 0.72rem 0.74rem;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger strong {
    font-size: 0.92rem;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger-action {
    min-height: 2.46rem;
    padding: 0.5rem 0.66rem;
    font-size: 0.65rem;
  }
}


/* ==========================================================================
   v282 · Mobil maleditor – mer arbeidsflate, mindre informasjonsstøy
   ========================================================================== */

@media (max-width: 680px) {
  /* Tilgangsoppsett: tydelig valgt verdi + tydelig handling. */
  body.admin-onepage .admin-access-profile-mobile-trigger {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.72rem;
    padding: 0.78rem 0.8rem;
    border-color: rgba(205, 179, 138, 0.26);
    border-radius: 0.94rem;
    background:
      radial-gradient(circle at 0 0, rgba(205,179,138,0.10), transparent 9rem),
      rgba(255, 253, 249, 0.82);
  }

  body.admin-onepage .admin-access-profile-mobile-trigger-copy {
    display: grid;
    gap: 0.13rem;
    min-width: 0;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger-copy > small {
    color: rgba(168, 143, 104, 0.90);
    font-size: 0.49rem;
    font-weight: 800;
    letter-spacing: 0.125em;
    line-height: 1;
    text-transform: uppercase;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger-copy > strong {
    overflow: hidden;
    color: rgba(31, 29, 26, 0.88);
    font-size: 1.02rem;
    font-weight: 710;
    letter-spacing: -0.012em;
    line-height: 1.14;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger-copy > em {
    overflow: hidden;
    color: rgba(31, 29, 26, 0.45);
    font-size: 0.61rem;
    font-style: normal;
    font-weight: 560;
    line-height: 1.22;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger-action {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.48rem;
    width: auto;
    min-width: 5.35rem;
    min-height: 3.05rem;
    padding: 0.48rem 0.58rem 0.48rem 0.66rem;
    border: 1px solid rgba(205, 179, 138, 0.27);
    border-radius: 0.78rem;
    background: rgba(205, 179, 138, 0.095);
    color: rgba(112, 79, 38, 0.78);
  }

  body.admin-onepage .admin-access-profile-mobile-trigger-action > span {
    display: grid;
    gap: 0.08rem;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger-action strong {
    color: rgba(112, 79, 38, 0.88);
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.055em;
    line-height: 1;
    text-transform: uppercase;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger-action small {
    color: rgba(112, 79, 38, 0.48);
    font-size: 0.49rem;
    font-weight: 620;
    line-height: 1.05;
    white-space: nowrap;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger-action > i {
    width: 0.47rem;
    height: 0.47rem;
    margin: 0 0.08rem 0 0.04rem;
    border: 0;
    border-top: 1.5px solid currentColor;
    border-right: 1.5px solid currentColor;
    transform: rotate(45deg);
    opacity: 0.76;
  }
}

@media (max-width: 430px) {
  body.admin-onepage .admin-access-profile-mobile-trigger {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.54rem;
    padding: 0.72rem;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger-copy > strong {
    font-size: 0.96rem;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger-copy > em {
    font-size: 0.58rem;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger-action {
    min-width: 4.85rem;
    min-height: 2.92rem;
    padding-inline: 0.52rem;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger-action small {
    display: none;
  }
}

@media (max-width: 780px) {
  /* Toppen: Navn er hovedfeltet. Aktiv for blir sekundær metadata som kan åpnes. */
  body.admin-onepage .admin-access-template-fields {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.62rem;
  }

  body.admin-onepage .admin-access-template-name-field {
    gap: 0.32rem;
  }

  body.admin-onepage .admin-access-template-name-field input {
    min-height: 3rem;
    padding: 0.68rem 0.78rem;
    border-radius: 0.82rem;
    font-size: 0.96rem;
  }

  body.admin-onepage .admin-access-template-usage {
    display: grid;
    gap: 0;
    min-width: 0;
  }

  body.admin-onepage .admin-access-template-usage-desktop-label {
    display: none !important;
  }

  body.admin-onepage .admin-access-template-usage-mobile-toggle {
    appearance: none;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.48rem;
    width: 100%;
    min-height: 2.55rem;
    margin: 0;
    padding: 0.5rem 0.6rem;
    border: 1px solid rgba(31, 29, 26, 0.07);
    border-radius: 0.7rem;
    background: rgba(255,255,255,0.38);
    color: inherit;
    font: inherit;
    text-align: left;
  }

  body.admin-onepage .admin-access-template-usage-mobile-toggle > span {
    color: rgba(168, 143, 104, 0.88);
    font-size: 0.51rem;
    font-weight: 800;
    letter-spacing: 0.11em;
    text-transform: uppercase;
  }

  body.admin-onepage .admin-access-template-usage-mobile-toggle > strong {
    overflow: hidden;
    color: rgba(31,29,26,0.57);
    font-size: 0.66rem;
    font-weight: 620;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.admin-onepage .admin-access-template-usage-mobile-toggle > i {
    width: 0.45rem;
    height: 0.45rem;
    border-right: 1.25px solid rgba(112,79,38,0.52);
    border-bottom: 1.25px solid rgba(112,79,38,0.52);
    transform: rotate(45deg) translateY(-0.08rem);
    transition: transform 160ms ease;
  }

  body.admin-onepage .admin-access-template-usage.is-mobile-expanded .admin-access-template-usage-mobile-toggle > i {
    transform: rotate(225deg) translate(-0.06rem, -0.02rem);
  }

  body.admin-onepage .admin-access-template-usage-copy {
    display: grid;
    grid-template-rows: 0fr;
    overflow: hidden;
    opacity: 0;
    margin: 0;
    transition: grid-template-rows 190ms ease, opacity 150ms ease, margin 190ms ease;
  }

  body.admin-onepage .admin-access-template-usage-copy > * {
    min-height: 0;
  }

  body.admin-onepage .admin-access-template-usage.is-mobile-expanded .admin-access-template-usage-copy {
    grid-template-rows: 1fr;
    opacity: 1;
    margin-top: 0.38rem;
    overflow: visible;
  }

  body.admin-onepage .admin-access-template-usage-summary {
    min-width: 0;
  }

  /* Tilleggsvalg blir en kompakt kontrollgruppe, ikke en stor infosone. */
  body.admin-onepage .admin-access-template-options-section {
    display: grid;
    gap: 0.42rem;
    padding-top: 0.18rem;
  }

  body.admin-onepage .admin-access-template-options-section > .admin-access-template-section-heading {
    padding: 0;
  }

  body.admin-onepage .admin-access-template-settings {
    overflow: hidden;
    border: 1px solid rgba(31,29,26,0.065);
    border-radius: 0.78rem;
    background: rgba(255,255,255,0.30);
  }

  body.admin-onepage .admin-access-template-setting,
  body.admin-onepage .admin-access-template-setting + .admin-access-template-setting {
    min-height: 2.95rem;
    padding: 0.62rem 0.66rem;
    border-top: 0;
    border-bottom: 0;
  }

  body.admin-onepage .admin-access-template-setting + .admin-access-template-setting {
    border-top: 1px solid rgba(31,29,26,0.06);
  }

  body.admin-onepage .admin-access-template-setting-copy strong {
    font-size: 0.73rem;
    font-weight: 650;
    letter-spacing: 0.005em;
  }

  body.admin-onepage .admin-access-template-setting-info {
    width: 1.08rem;
    height: 1.08rem;
    font-size: 0.61rem;
  }

  /* Rettigheter får sin egen tydelige arbeidsheader på to nivåer. */
  body.admin-onepage .admin-access-template-permissions-section {
    gap: 0.58rem;
  }

  body.admin-onepage .admin-access-template-permissions-section > .admin-access-template-section-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.48rem;
    align-items: start;
  }

  body.admin-onepage .admin-access-template-permissions-section > .admin-access-template-section-heading > div:first-child > strong {
    font-size: 0.82rem;
    letter-spacing: -0.005em;
  }

  body.admin-onepage .admin-access-template-permission-tools {
    display: flex !important;
    align-items: center;
    justify-content: space-between !important;
    width: 100%;
    gap: 0.75rem;
    min-height: 2rem;
    padding: 0.34rem 0.42rem;
    border: 1px solid rgba(31,29,26,0.06);
    border-radius: 0.66rem;
    background: rgba(255,255,255,0.28);
  }

  body.admin-onepage .admin-access-template-select-all {
    gap: 0.38rem;
    color: rgba(31,29,26,0.63);
    font-size: 0.65rem;
    font-weight: 650;
  }

  body.admin-onepage .admin-access-template-select-all-control {
    width: 1.06rem;
    height: 1.06rem;
    flex-basis: 1.06rem;
  }

  body.admin-onepage .admin-access-template-permission-status {
    margin-left: auto;
    color: rgba(31,29,26,0.43) !important;
    font-size: 0.61rem !important;
    font-weight: 580 !important;
  }

  body.admin-onepage .admin-access-template-permission-status::before {
    display: none !important;
  }

  /* Kortene får tydeligere hierarki og mer komfortabel leserytme. */
  body.admin-onepage .admin-access-template-manager .admin-user-permission-list {
    gap: 0.42rem;
  }

  body.admin-onepage .admin-access-template-manager .admin-user-permission-option {
    min-height: 3.7rem;
    gap: 0.68rem;
    padding: 0.66rem 0.72rem;
    border-radius: 0.82rem;
  }

  body.admin-onepage .admin-access-template-manager .admin-user-permission-control {
    flex: 0 0 auto;
  }

  body.admin-onepage .admin-access-template-manager .admin-user-permission-control i {
    width: 1.32rem;
    height: 1.32rem;
    border-radius: 0.34rem;
  }

  body.admin-onepage .admin-access-template-manager .admin-user-permission-copy {
    gap: 0.12rem;
  }

  body.admin-onepage .admin-access-template-manager .admin-user-permission-copy strong {
    color: rgba(31,29,26,0.84);
    font-size: 0.79rem;
    font-weight: 680;
    letter-spacing: 0;
    line-height: 1.22;
  }

  body.admin-onepage .admin-access-template-manager .admin-user-permission-copy small {
    display: -webkit-box;
    overflow: hidden;
    color: rgba(31,29,26,0.48);
    font-size: 0.65rem;
    font-weight: 460;
    letter-spacing: 0.005em;
    line-height: 1.35;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  body.admin-onepage .admin-access-template-manager .admin-user-permission-group > header {
    margin: 0.82rem 0 0.42rem;
  }

  body.admin-onepage .admin-access-template-manager .admin-user-permission-group:first-child > header {
    margin-top: 0;
  }

  body.admin-onepage .admin-access-template-manager .admin-user-permission-group > header strong {
    color: rgba(31,29,26,0.46);
    font-size: 0.60rem;
    font-weight: 760;
    letter-spacing: 0.13em;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.admin-onepage .admin-access-template-usage-copy,
  body.admin-onepage .admin-access-template-usage-mobile-toggle > i {
    transition: none !important;
  }
}


/* ==========================================================================
   v283 · Mobil Tilganger – tydeligere åpning + bedre vertikal rytme
   ========================================================================== */

@media (max-width: 680px) {
  /* Litt mer bevisst luft etter Tilganger-summaryen. */
  body.admin-onepage .admin-user-permissions-body {
    gap: 0.68rem;
  }

  body.admin-onepage .admin-user-permissions-body > .admin-access-profile-picker {
    margin-top: 0.92rem;
  }

  /* Oversikt skal starte nærmere tilgangsoppsettet enn før. */
  body.admin-onepage
  .admin-user-permissions-body
  > .admin-access-profile-picker
  + .admin-user-permission-group {
    margin-top: 0 !important;
  }

  /* Høyresiden er nå en tydelig "åpner et panel"-handling, ikke tekst + pil. */
  body.admin-onepage .admin-access-profile-mobile-trigger {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.76rem;
    padding: 0.8rem 0.82rem;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger-action {
    display: grid;
    grid-template-columns: auto;
    justify-items: center;
    align-content: center;
    gap: 0.24rem;
    width: auto;
    min-width: 5.35rem;
    min-height: 3.2rem;
    padding: 0.42rem 0.58rem;
    border: 1px solid rgba(205, 179, 138, 0.28);
    border-radius: 0.8rem;
    background:
      linear-gradient(180deg, rgba(255,255,255,0.48), rgba(205,179,138,0.07)),
      rgba(205, 179, 138, 0.075);
    color: rgba(112, 79, 38, 0.80);
  }

  body.admin-onepage .admin-access-profile-mobile-window-icon {
    width: 1.28rem;
    height: 1.28rem;
    overflow: visible;
    fill: rgba(255, 253, 249, 0.72);
    stroke: currentColor;
    stroke-width: 1.45;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  body.admin-onepage .admin-access-profile-mobile-window-icon rect:first-child {
    opacity: 0.48;
  }

  body.admin-onepage .admin-access-profile-mobile-window-icon rect:last-child {
    opacity: 0.94;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger-action > small {
    color: rgba(112, 79, 38, 0.62);
    font-size: 0.50rem;
    font-weight: 680;
    line-height: 1.05;
    text-align: center;
    white-space: nowrap;
  }

  /* Gamle v282-regler for tekst-/pilvarianten skal ikke påvirke ikonet. */
  body.admin-onepage .admin-access-profile-mobile-trigger-action > span,
  body.admin-onepage .admin-access-profile-mobile-trigger-action > i {
    display: none !important;
  }
}

@media (max-width: 430px) {
  body.admin-onepage .admin-user-permissions-body > .admin-access-profile-picker {
    margin-top: 0.84rem;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger {
    gap: 0.58rem;
    padding: 0.74rem;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger-action {
    min-width: 4.75rem;
    min-height: 3.02rem;
    padding-inline: 0.46rem;
  }

  body.admin-onepage .admin-access-profile-mobile-window-icon {
    width: 1.2rem;
    height: 1.2rem;
  }

  body.admin-onepage .admin-access-profile-mobile-trigger-action > small {
    font-size: 0.47rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.admin-onepage .admin-access-profile-mobile-trigger-action {
    transition: none !important;
  }
}


/* ==========================================================================
   v284 · Mobil – korrekt spacing når Eier-meldingen er synlig
   ========================================================================== */

@media (max-width: 680px) {
  /* Vanlige Medhjelpere trenger egen luft fra Tilganger-headeren til
     tilgangsoppsett-kortet. Eier har allerede owner-note som mellomledd,
     så samme margin skal ikke legges til én gang til. */
  body.admin-onepage
  .admin-user-permissions-body
  > .admin-user-permissions-owner-note:not([hidden])
  + .admin-access-profile-picker {
    margin-top: 0 !important;
  }
}

@media (max-width: 430px) {
  body.admin-onepage
  .admin-user-permissions-body
  > .admin-user-permissions-owner-note:not([hidden])
  + .admin-access-profile-picker {
    margin-top: 0 !important;
  }
}


/* ==========================================================================
   v285 · Status mobilmeny – samme ark-, drag- og lukkemekanisme som hovedmeny
   ========================================================================== */

.admin-status-mobile-drag-handle {
  display: none;
}

@media (max-width: 780px) {
  body.admin-onepage .admin-status-mobile-panel {
    transform: translateY(100%);
    transition:
      opacity 220ms ease,
      transform 300ms cubic-bezier(.22, 1, .36, 1);
  }

  body.admin-onepage
  .admin-status-mobile-sheet.is-open
  .admin-status-mobile-panel {
    transform: translateY(var(--admin-status-mobile-drag-y, 0px));
  }

  body.admin-onepage
  .admin-status-mobile-sheet.is-dragging
  .admin-status-mobile-panel {
    transition: none;
  }

  body.admin-onepage
  .admin-status-mobile-sheet.is-open
  .admin-status-mobile-backdrop {
    opacity: calc(1 - var(--admin-status-mobile-drag-progress, 0));
  }

  body.admin-onepage
  .admin-status-mobile-sheet.is-dragging
  .admin-status-mobile-backdrop {
    transition: none;
  }

  /* Samme tydelige lukking som hovedmenyen: hele arket trekkes ned. */
  body.admin-onepage
  .admin-status-mobile-sheet.is-closing
  .admin-status-mobile-panel {
    opacity: 1;
    transform: translateY(100%);
    transition:
      transform 340ms cubic-bezier(.4, 0, .2, 1),
      opacity 280ms ease 40ms;
  }

  body.admin-onepage
  .admin-status-mobile-sheet.is-closing
  .admin-status-mobile-backdrop {
    opacity: 0;
    transition: opacity 300ms ease;
  }

  /* Stor usynlig gripeflate, liten visuell strek – som hovedmenyen. */
  body.admin-onepage .admin-status-mobile-drag-handle {
    box-sizing: border-box;
    width: 100%;
    height: 2.65rem;
    display: grid;
    place-items: center;
    margin: -0.48rem 0 -0.38rem;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: grab;
    touch-action: none;
  }

  body.admin-onepage .admin-status-mobile-drag-handle:active {
    cursor: grabbing;
  }

  body.admin-onepage .admin-status-mobile-drag-handle > span {
    display: block;
    width: 2.55rem;
    height: 0.2rem;
    border-radius: 999px;
    background: rgba(31, 29, 26, 0.15);
  }

  /* Toppområdet kan også gripes når arket står helt øverst. */
  body.admin-onepage .admin-status-mobile-heading {
    cursor: grab;
    touch-action: none;
  }

  body.admin-onepage
  .admin-status-mobile-sheet.is-dragging
  .admin-status-mobile-heading {
    cursor: grabbing;
  }

  /* Det gamle dekorative span-håndtaket brukes ikke lenger. */
  body.admin-onepage .admin-status-mobile-handle {
    display: none !important;
  }
}

@media (max-width: 780px) and (prefers-reduced-motion: reduce) {
  body.admin-onepage .admin-status-mobile-panel,
  body.admin-onepage .admin-status-mobile-backdrop,
  body.admin-onepage
  .admin-status-mobile-sheet.is-closing
  .admin-status-mobile-panel,
  body.admin-onepage
  .admin-status-mobile-sheet.is-closing
  .admin-status-mobile-backdrop {
    transition: none !important;
  }
}


/* ==========================================================================
   v286 · Desktop – skjul mobilkontroll for «Aktiv for»
   ========================================================================== */

/* v282 introduserte en mobil toggle for Aktiv for. Den skal aldri delta i
   desktop-gridet; ellers rendres den som en vanlig nettleserknapp og skyver
   desktop-label/brukerliste ned. */
body.admin-onepage .admin-access-template-usage-mobile-toggle {
  display: none;
}

@media (max-width: 780px) {
  body.admin-onepage .admin-access-template-usage-mobile-toggle {
    display: grid;
  }
}


/* ==========================================================================
   v287 · Testmodus – system-ribbon over adminheader
   ========================================================================== */

body.admin-onepage {
  --admin-access-test-height: 0px;
}

body.admin-onepage.has-admin-access-test {
  --admin-access-test-height: 44px;
}

/* Adminversjonen er ikke lenger et varsel inne i scrollflaten, men en del av
   den faste toppstrukturen mellom utility bar og hovedheader. */
body.admin-onepage > .admin-access-test-banner {
  position: fixed;
  z-index: 76;
  top: var(--admin-utility-height);
  right: 0;
  left: 0;
  width: 100%;
  height: var(--admin-access-test-height);
  margin: 0;
  overflow: hidden;
  border: 0;
  border-bottom: 1px solid rgba(110, 54, 45, 0.24);
  background:
    linear-gradient(
      105deg,
      rgba(151, 85, 70, 0.94),
      rgba(163, 100, 80, 0.91) 52%,
      rgba(148, 84, 70, 0.94)
    );
  color: #fffdf9;
  box-shadow:
    0 8px 24px rgba(91, 49, 40, 0.10),
    inset 0 1px 0 rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(14px) saturate(118%);
  -webkit-backdrop-filter: blur(14px) saturate(118%);
  animation: adminAccessTestRibbonIn 240ms cubic-bezier(.22, 1, .36, 1) both;
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-inner {
  box-sizing: border-box;
  width: min(92vw, 1200px);
  height: 100%;
  min-height: 0;
  margin: 0 auto;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-copy {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.62rem;
  line-height: 1;
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-mark {
  display: grid;
  place-items: center;
  width: 1.34rem;
  height: 1.34rem;
  flex: 0 0 1.34rem;
  border: 1px solid rgba(255, 253, 249, 0.38);
  border-radius: 50%;
  background: rgba(255, 253, 249, 0.12);
  color: #fffdf9;
  box-shadow: 0 0 0 4px rgba(255, 253, 249, 0.055);
  font-size: 0.67rem;
  font-weight: 850;
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-text {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.72rem;
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-heading {
  display: inline-flex;
  align-items: center;
  gap: 0.44rem;
  flex: 0 0 auto;
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-heading strong {
  color: #fffdf9;
  font-size: 0.66rem;
  font-weight: 850;
  letter-spacing: 0.105em;
  line-height: 1;
  text-transform: uppercase;
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-heading > span {
  display: inline-flex;
  align-items: center;
  min-height: 1.34rem;
  padding: 0.2rem 0.42rem;
  border: 1px solid rgba(255, 253, 249, 0.21);
  border-radius: 999px;
  background: rgba(255, 253, 249, 0.105);
  color: rgba(255, 253, 249, 0.94);
  font-size: 0.55rem;
  font-weight: 780;
  letter-spacing: 0.065em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-meta {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.48rem;
  color: rgba(255, 253, 249, 0.75);
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-meta > span {
  overflow: hidden;
  max-width: min(31vw, 27rem);
  color: rgba(255, 253, 249, 0.86);
  font-size: 0.63rem;
  font-weight: 620;
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-meta > i {
  width: 2px;
  height: 2px;
  flex: 0 0 2px;
  border-radius: 50%;
  background: rgba(255, 253, 249, 0.52);
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-meta > small {
  color: rgba(255, 253, 249, 0.61);
  font-size: 0.58rem;
  font-weight: 560;
  line-height: 1;
  white-space: nowrap;
}

body.admin-onepage > .admin-access-test-banner form {
  flex: 0 0 auto;
  margin: 0;
}

body.admin-onepage > .admin-access-test-banner button {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.44rem;
  min-height: 1.95rem;
  margin: 0;
  padding: 0.4rem 0.58rem 0.4rem 0.68rem;
  border: 1px solid rgba(255, 253, 249, 0.29);
  border-radius: 999px;
  background: rgba(255, 253, 249, 0.10);
  color: #fffdf9;
  font: inherit;
  font-size: 0.56rem;
  font-weight: 780;
  letter-spacing: 0.055em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
  cursor: pointer;
  transition:
    background 150ms ease,
    border-color 150ms ease,
    transform 150ms ease;
}

body.admin-onepage > .admin-access-test-banner button > i {
  display: grid;
  place-items: center;
  width: 1rem;
  height: 1rem;
  border-radius: 50%;
  background: rgba(255, 253, 249, 0.12);
  font-style: normal;
  font-size: 0.72rem;
  font-weight: 500;
  line-height: 1;
}

body.admin-onepage > .admin-access-test-banner button:hover,
body.admin-onepage > .admin-access-test-banner button:focus-visible {
  border-color: rgba(255, 253, 249, 0.48);
  background: rgba(255, 253, 249, 0.17);
}

body.admin-onepage > .admin-access-test-banner button:focus-visible {
  outline: 2px solid rgba(255, 253, 249, 0.48);
  outline-offset: 2px;
}

/* Header og intern scrollflate flyttes fysisk ned mens testen er aktiv. */
body.admin-onepage.has-admin-access-test .admin-site-header {
  top: calc(
    var(--admin-utility-height)
    + var(--admin-access-test-height)
  ) !important;
}

body.admin-onepage.has-admin-access-test .admin-scroll-root {
  top: calc(
    var(--admin-utility-height)
    + var(--admin-access-test-height)
    + var(--admin-header-height)
  );
}

body.admin-onepage.has-admin-access-test .admin-full-section {
  min-height: calc(
    100svh
    - var(--admin-utility-height)
    - var(--admin-access-test-height)
    - var(--admin-header-height)
  );
}

@keyframes adminAccessTestRibbonIn {
  from {
    opacity: 0;
    transform: translateY(-0.35rem);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (max-width: 900px) and (min-width: 781px) {
  body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-meta > small {
    display: none;
  }

  body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-meta > i {
    display: none;
  }
}

@media (max-width: 780px) {
  body.admin-onepage.has-admin-access-test {
    --admin-access-test-height: 3.45rem;
  }

  body.admin-onepage > .admin-access-test-banner {
    z-index: 2180;
    top: 0;
    height: var(--admin-access-test-height);
  }

  body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-inner {
    width: 100%;
    padding:
      env(safe-area-inset-top, 0px)
      max(0.72rem, env(safe-area-inset-right, 0px))
      0
      max(0.72rem, env(safe-area-inset-left, 0px));
    gap: 0.55rem;
  }

  body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-mark {
    width: 1.2rem;
    height: 1.2rem;
    flex-basis: 1.2rem;
    font-size: 0.61rem;
  }

  body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-copy {
    flex: 1 1 auto;
    min-width: 0;
    gap: 0.48rem;
  }

  body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-text {
    min-width: 0;
    display: grid;
    gap: 0.22rem;
  }

  body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-heading {
    min-width: 0;
    gap: 0.32rem;
  }

  body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-heading strong {
    font-size: 0.59rem;
    letter-spacing: 0.09em;
  }

  body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-heading > span {
    min-height: 1.1rem;
    padding: 0.16rem 0.3rem;
    font-size: 0.46rem;
  }

  body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-meta {
    min-width: 0;
    gap: 0.34rem;
  }

  body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-meta > span {
    max-width: min(48vw, 15rem);
    font-size: 0.54rem;
  }

  body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-meta > small {
    font-size: 0.5rem;
  }

  body.admin-onepage > .admin-access-test-banner button {
    min-width: 2.3rem;
    min-height: 2.3rem;
    padding: 0;
    border-radius: 50%;
  }

  body.admin-onepage > .admin-access-test-banner button > span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }

  body.admin-onepage > .admin-access-test-banner button > i {
    width: auto;
    height: auto;
    background: transparent;
    font-size: 1.02rem;
  }

  body.admin-onepage.has-admin-access-test .admin-mobile-header {
    top: var(--admin-access-test-height);
  }

  body.admin-onepage.has-admin-access-test .admin-scroll-root {
    top: calc(
      var(--admin-access-test-height)
      + var(--admin-mobile-header-height)
    ) !important;
  }
}

@media (max-width: 520px) {
  body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-meta > i,
  body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-meta > small {
    display: none;
  }

  body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-meta > span {
    max-width: min(55vw, 13rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.admin-onepage > .admin-access-test-banner {
    animation: none;
  }
}


/* ========================================================================== 
   v6.8.20 · Adaptive desktop

   Beholder eksisterende innholdsbredder, men retter mellomområdet på små
   desktopskjermer og reduserer vertikal tetthet når tilgjengelig høyde er lav.
   Dette er bevisst density-responsivitet, ikke transform/scale av hele UI-et.
   ========================================================================== */

/* 92vw Dashboard + 7vw seksjonspadding kunne overstige viewporten mellom
   tablet-breakpointet og vanlig stor desktop. Vi beholder innholdsbredden og
   reduserer kun den ytre gutteren i dette mellomområdet. */
@media (min-width: 781px) and (max-width: 1450px) {
  body.admin-onepage .admin-full-section {
    padding-left: clamp(1.5rem, 3vw, 3.25rem) !important;
    padding-right: clamp(1.5rem, 3vw, 3.25rem) !important;
  }
}

/* Lav desktop/laptop: samme design, mindre tomrom og lavere faste toppflater. */
@media (min-width: 781px) and (max-height: 850px) {
  body.admin-onepage {
    --admin-utility-height: 34px;
    --admin-header-height: 88px;
  }

  body.admin-onepage .admin-utility-inner {
    font-size: 0.62rem;
    letter-spacing: 0.12em;
  }

  body.admin-onepage .admin-site-header {
    gap: clamp(1.25rem, 3vw, 2.75rem);
  }

  body.admin-onepage .admin-site-header .brand {
    gap: 0.72rem;
  }

  body.admin-onepage .admin-site-header .brand-a,
  body.admin-onepage .admin-site-header .brand-m {
    font-size: clamp(2.1rem, 3vw, 2.75rem);
  }

  body.admin-onepage .admin-site-header .brand-divider {
    width: 1.35rem;
    height: clamp(2.45rem, 3.4vw, 3rem);
  }

  body.admin-onepage .admin-top-nav {
    gap: clamp(0.75rem, 1.45vw, 1.35rem);
  }

  body.admin-onepage .admin-top-nav a {
    font-size: 0.74rem;
    letter-spacing: 0.15em;
  }

  body.admin-onepage .admin-full-section {
    padding-top: clamp(1.35rem, 3.2vh, 2rem) !important;
    padding-bottom: clamp(1.8rem, 4vh, 2.7rem) !important;
  }

  body.admin-onepage .admin-titlebar {
    margin-bottom: clamp(0.9rem, 2vh, 1.35rem);
  }

  body.admin-onepage #dashboard .admin-dashboard-titlebar {
    margin-bottom: clamp(0.8rem, 1.8vh, 1.15rem);
  }

  body.admin-onepage #dashboard .admin-dashboard-hero {
    min-height: clamp(13rem, 34vh, 15.5rem);
    border-radius: 1.4rem;
  }

  body.admin-onepage #dashboard .admin-dashboard-countdown {
    padding: clamp(1.25rem, 2.5vw, 2rem);
  }

  body.admin-onepage #dashboard .admin-dashboard-milestone {
    padding: clamp(1.15rem, 2.2vw, 1.7rem);
  }

  body.admin-onepage #dashboard .admin-dashboard-days {
    margin-top: 0.45rem;
    gap: clamp(0.65rem, 1.4vw, 1rem);
  }

  body.admin-onepage #dashboard .admin-dashboard-days strong {
    font-size: clamp(4.5rem, 12vh, 7rem);
  }

  body.admin-onepage #dashboard .admin-dashboard-days span {
    margin-bottom: 0.35rem;
    font-size: clamp(1rem, 2.2vh, 1.3rem);
  }

  body.admin-onepage #dashboard .admin-dashboard-place {
    margin-top: 0.75rem;
  }

  body.admin-onepage #dashboard .admin-dashboard-milestone strong {
    margin-top: 0.6rem;
    font-size: clamp(1.8rem, 5vh, 2.7rem);
  }

  body.admin-onepage #dashboard .admin-dashboard-milestone span {
    margin-top: 0.55rem;
    font-size: 0.74rem;
  }

  body.admin-onepage #dashboard .admin-dashboard-panel {
    margin-top: 0.82rem;
    padding: clamp(1rem, 2vw, 1.3rem);
    border-radius: 1.25rem;
  }

  body.admin-onepage #dashboard .admin-dashboard-panel-heading {
    margin-bottom: 0.8rem;
  }

  body.admin-onepage #dashboard .admin-dashboard-panel-heading h3 {
    margin-top: 0.32rem;
    font-size: clamp(1.55rem, 3.6vh, 2.2rem);
  }

  body.admin-onepage #dashboard .admin-dashboard-followup-card {
    min-height: 6rem;
    padding: 0.78rem 0.9rem;
  }

  body.admin-onepage #dashboard .admin-dashboard-followup-card > strong {
    font-size: clamp(2.2rem, 5.8vh, 3rem);
  }

  body.admin-onepage #dashboard .admin-dashboard-followup-empty {
    min-height: 5.8rem;
  }

  body.admin-onepage #dashboard .admin-dashboard-action-grid a {
    min-height: 5.25rem;
    padding: 0.8rem;
  }

  body.admin-onepage #dashboard .admin-dashboard-activity-item {
    padding-top: 0.7rem;
    padding-bottom: 0.7rem;
  }

  body.admin-onepage #dashboard .admin-dashboard-settings {
    margin-top: 0.75rem;
    padding-top: 0.8rem;
  }
}

/* Ekstra lav arbeidsflate, typisk 1366×768 med nettleserchrome eller høy
   Windows-skalering. Reduserer hovedsakelig tomrom – ikke contentbredde. */
@media (min-width: 781px) and (max-height: 700px) {
  body.admin-onepage {
    --admin-utility-height: 30px;
    --admin-header-height: 76px;
  }

  body.admin-onepage .admin-utility-inner {
    font-size: 0.58rem;
  }

  body.admin-onepage .admin-site-header .brand-a,
  body.admin-onepage .admin-site-header .brand-m {
    font-size: 2rem;
  }

  body.admin-onepage .admin-site-header .brand-divider {
    height: 2.35rem;
  }

  body.admin-onepage .admin-top-nav a {
    font-size: 0.68rem;
  }

  body.admin-onepage .admin-full-section {
    padding-top: 1rem !important;
    padding-bottom: 1.6rem !important;
  }

  body.admin-onepage #dashboard .admin-dashboard-hero {
    min-height: 11.75rem;
  }

  body.admin-onepage #dashboard .admin-dashboard-days strong {
    font-size: clamp(4.1rem, 12vh, 5.4rem);
  }

  body.admin-onepage #dashboard .admin-dashboard-panel {
    padding: 0.9rem 1rem;
  }

  body.admin-onepage #dashboard .admin-dashboard-followup-card {
    min-height: 5.45rem;
  }

  body.admin-onepage #dashboard .admin-dashboard-action-grid a {
    min-height: 4.8rem;
  }
}


/* ========================================================================== 
   v6.8.21 · Adaptive desktop – Status
   Samme contentbredde som før, men lavere vertikal density på lave PC-skjermer.
   ========================================================================== */
@media (min-width: 781px) and (max-height: 850px) {
  body.admin-onepage #kpi.admin-status-section > .admin-section-inner,
  body.admin-onepage #kpi.admin-status-section > .admin-section-inner-wide {
    padding-top: 0 !important;
  }

  body.admin-onepage #kpi .admin-status-titlebar,
  body.admin-onepage #kpi .admin-status-titlebar-with-tabs {
    margin-bottom: 0.8rem;
  }

  body.admin-onepage #kpi .admin-status-titlebar-with-tabs {
    min-height: 5.25rem;
    gap: clamp(1rem, 2.4vw, 1.8rem);
  }

  body.admin-onepage #kpi .admin-status-titlebar-with-tabs h2,
  body.admin-onepage #kpi .admin-titlebar h2 {
    font-size: clamp(2.45rem, 5.3vh, 3.55rem);
  }

  body.admin-onepage #kpi .admin-status-tabs-inline {
    margin-bottom: 0.15rem;
  }

  body.admin-onepage #kpi .admin-status-tabs {
    gap: 0.28rem;
    padding: 0.22rem;
  }

  body.admin-onepage #kpi .admin-status-tabs button {
    min-height: 2.05rem;
    padding: 0.48rem 0.74rem;
    font-size: 0.58rem;
  }

  body.admin-onepage #kpi .admin-status-overview-stack {
    gap: 0.8rem;
  }

  body.admin-onepage #kpi .admin-status-hero-row,
  body.admin-onepage #kpi .admin-status-panel-grid {
    gap: 0.85rem;
  }

  body.admin-onepage #kpi .admin-status-hero-panel,
  body.admin-onepage #kpi .admin-status-orb-panel,
  body.admin-onepage #kpi .admin-status-block {
    padding: 0.95rem 1.05rem;
  }

  body.admin-onepage #kpi .admin-status-hero-panel {
    min-height: 205px;
  }

  body.admin-onepage #kpi .admin-status-big-number {
    font-size: clamp(4.25rem, 11vh, 6.7rem);
  }

  body.admin-onepage #kpi .admin-status-label {
    margin-bottom: 0.55rem;
  }

  body.admin-onepage #kpi .admin-status-copy {
    margin-top: 0.55rem;
    line-height: 1.45;
  }

  body.admin-onepage #kpi .admin-status-block h3 {
    margin-bottom: 0.8rem;
    font-size: clamp(1.65rem, 4.3vh, 2.35rem);
  }

  body.admin-onepage #kpi .admin-status-feature-number {
    margin-bottom: 0.75rem;
    padding-bottom: 0.7rem;
  }

  body.admin-onepage #kpi .admin-status-feature-number strong {
    font-size: clamp(2.7rem, 6.2vh, 3.9rem);
  }

  body.admin-onepage #kpi .admin-status-review-list,
  body.admin-onepage #kpi .admin-status-bars,
  body.admin-onepage #kpi .admin-status-followups,
  body.admin-onepage #kpi .admin-status-keyword-list,
  body.admin-onepage #kpi .admin-status-table-list,
  body.admin-onepage #kpi .admin-status-note-list,
  body.admin-onepage #kpi .admin-status-activity-list,
  body.admin-onepage #kpi .admin-status-number-list {
    gap: 0.55rem;
  }
}

@media (min-width: 781px) and (max-height: 700px) {
  body.admin-onepage #kpi .admin-status-titlebar-with-tabs {
    min-height: 4.4rem;
    margin-bottom: 0.55rem;
  }

  body.admin-onepage #kpi .admin-status-titlebar-with-tabs h2,
  body.admin-onepage #kpi .admin-titlebar h2 {
    font-size: clamp(2.15rem, 5.4vh, 3rem);
  }

  body.admin-onepage #kpi .admin-status-tabs button {
    min-height: 1.9rem;
    padding: 0.4rem 0.62rem;
    font-size: 0.54rem;
  }

  body.admin-onepage #kpi .admin-status-hero-panel {
    min-height: 178px;
  }

  body.admin-onepage #kpi .admin-status-hero-panel,
  body.admin-onepage #kpi .admin-status-orb-panel,
  body.admin-onepage #kpi .admin-status-block {
    padding: 0.8rem 0.9rem;
  }

  body.admin-onepage #kpi .admin-status-big-number {
    font-size: clamp(3.8rem, 10.5vh, 5.6rem);
  }
}


/* ========================================================================== 
   v6.8.22 · Adaptive desktop – felles profil for hele admin

   Dashboard-profilen brukes nå som grunnregel for alle adminflater på små/
   lave desktopskjermer. Maksbreddene til innholdet beholdes; det er gutters,
   vertikal luft, overskrifter og store panelers innvendige spacing som
   komprimeres.
   ========================================================================== */

/* Mellomstore desktopbredder: alle adminseksjoner bruker tilgjengelig flate
   innenfor eksisterende max-width, i stedet for å kombinere vw-bredde med en
   ekstra stor ytre gutter. */
@media (min-width: 781px) and (max-width: 1450px) {
  body.admin-onepage .admin-section-inner,
  body.admin-onepage .admin-section-inner-wide,
  body.admin-onepage .admin-users-section .admin-section-inner-wide,
  body.admin-onepage #rapporter .admin-section-inner-wide,
  body.admin-onepage.admin-activity-page .admin-activity-section > .admin-section-inner-wide {
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    justify-self: center !important;
  }
}

/* Lav desktop: samme density som Dashboard, men på tvers av admin. */
@media (min-width: 781px) and (max-height: 850px) {
  body.admin-onepage .admin-full-section .admin-titlebar {
    margin-bottom: clamp(.8rem, 1.8vh, 1.2rem);
  }

  body.admin-onepage .admin-full-section .admin-titlebar .section-number {
    font-size: .6rem;
    letter-spacing: .18em;
  }

  body.admin-onepage .admin-full-section .admin-titlebar h2,
  body.admin-onepage .admin-full-section .admin-titlebar h2.tittel,
  body.admin-onepage.admin-activity-page .admin-activity-titlebar h2 {
    font-size: clamp(2.45rem, 5.4vh, 3.65rem);
    line-height: .98;
  }

  body.admin-onepage .admin-section-inner,
  body.admin-onepage .admin-section-inner-wide {
    padding-top: 0 !important;
  }

  /* Store, gjennomgående adminpaneler får samme kompakte innvendige rytme.
     Ingen bredde eller gridkolonner endres her. */
  body.admin-onepage .admin-list-toolbar-card,
  body.admin-onepage .admin-rsvp-table-card,
  body.admin-onepage .admin-users-panel,
  body.admin-onepage .admin-users-role-card,
  body.admin-onepage .admin-invitation-preview,
  body.admin-onepage #rapporter .admin-report-builder-panel,
  body.admin-onepage #rapporter .admin-report-preview-card,
  body.admin-onepage.admin-activity-page .admin-activity-filters,
  body.admin-onepage.admin-activity-page .admin-activity-summary {
    padding-top: clamp(.85rem, 2vh, 1.05rem);
    padding-bottom: clamp(.85rem, 2vh, 1.05rem);
  }

  body.admin-onepage .admin-users-intro-grid,
  body.admin-onepage .admin-user-list,
  body.admin-onepage #rapporter .admin-report-builder,
  body.admin-onepage.admin-activity-page .admin-activity-groups {
    gap: .75rem;
  }

  body.admin-onepage .admin-users-panel-heading,
  body.admin-onepage #rapporter .admin-report-panel-heading,
  body.admin-onepage #rapporter .admin-report-preview-heading {
    margin-bottom: .8rem;
  }

  body.admin-onepage .admin-user-card {
    padding-top: 1rem;
    padding-bottom: 1rem;
  }

  body.admin-onepage.admin-activity-page .admin-activity-titlebar {
    margin-bottom: .85rem;
  }

  body.admin-onepage.admin-activity-page .admin-activity-item {
    padding-top: .72rem;
    padding-bottom: .72rem;
  }
}

/* Ekstra lav arbeidsflate: ytterligere reduksjon av tomrom, fortsatt uten
   skalering eller reduksjon av innholdets max-width. */
@media (min-width: 781px) and (max-height: 700px) {
  body.admin-onepage .admin-full-section .admin-titlebar {
    margin-bottom: .65rem;
  }

  body.admin-onepage .admin-full-section .admin-titlebar h2,
  body.admin-onepage .admin-full-section .admin-titlebar h2.tittel,
  body.admin-onepage.admin-activity-page .admin-activity-titlebar h2 {
    font-size: clamp(2.15rem, 5.2vh, 3rem);
  }

  body.admin-onepage .admin-list-toolbar-card,
  body.admin-onepage .admin-rsvp-table-card,
  body.admin-onepage .admin-users-panel,
  body.admin-onepage .admin-users-role-card,
  body.admin-onepage .admin-invitation-preview,
  body.admin-onepage #rapporter .admin-report-builder-panel,
  body.admin-onepage #rapporter .admin-report-preview-card,
  body.admin-onepage.admin-activity-page .admin-activity-filters,
  body.admin-onepage.admin-activity-page .admin-activity-summary {
    padding-top: .75rem;
    padding-bottom: .75rem;
  }
}

/* ========================================================================== 
   v6.8.31 · Tilgangsoppsett – duplisering + ikoner i 3-prikkmeny
   ========================================================================== */
body.admin-onepage .admin-access-template-more-menu .admin-access-template-menu-action {
  display: grid;
  grid-template-columns: 1.05rem minmax(0, 1fr);
  align-items: center;
  gap: 0.62rem;
}

body.admin-onepage .admin-access-template-more-menu .admin-access-template-menu-icon {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.35;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0.72;
  transition: opacity 160ms ease;
}

body.admin-onepage .admin-access-template-more-menu .admin-access-template-menu-action:hover .admin-access-template-menu-icon,
body.admin-onepage .admin-access-template-more-menu .admin-access-template-menu-action:focus-visible .admin-access-template-menu-icon {
  opacity: 1;
}

body.admin-onepage .admin-access-template-more-menu .admin-access-template-duplicate-menu {
  color: rgba(31, 29, 26, 0.74);
}

body.admin-onepage .admin-access-template-more-menu .admin-access-template-duplicate-menu:hover,
body.admin-onepage .admin-access-template-more-menu .admin-access-template-duplicate-menu:focus-visible {
  color: rgba(92, 61, 24, 0.96);
  background: rgba(205, 179, 138, 0.08);
}

body.admin-onepage .admin-access-template-more-menu .admin-access-template-duplicate-menu[hidden] {
  display: none !important;
}

/* ========================================================================== 
   v6.8.32 · Tilgangsoppsett – innholdsbasert bredde på desktop/tablet
   Kortene bruker bare plassen navn + eventuell statuslabel + redigeringsikon
   faktisk trenger. Statuslabelen skal alltid være synlig; ved ekstreme navn er
   det navnet som får krympe først.
   ========================================================================== */
@media (min-width: 681px) {
  body.admin-onepage .admin-access-profile-scroll > .admin-access-profile-item {
    width: max-content;
    min-width: 0;
    max-width: min(26rem, 72vw);
    grid-template-columns: minmax(0, max-content) 2.34rem;
  }

  body.admin-onepage
  .admin-access-profile-scroll
  > .admin-access-profile-item
  .admin-access-profile-option {
    width: auto;
    min-width: 0;
  }

  body.admin-onepage
  .admin-access-profile-scroll
  > .admin-access-profile-item
  .admin-access-profile-option
  > span {
    width: auto;
    min-width: 0;
    gap: 0.72rem;
    white-space: nowrap;
  }

  body.admin-onepage
  .admin-access-profile-scroll
  > .admin-access-profile-item
  .admin-access-profile-option
  > span
  > strong {
    min-width: 0;
    max-width: 15rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.admin-onepage
  .admin-access-profile-scroll
  > .admin-access-profile-item
  .admin-access-profile-option
  > span
  > small {
    flex: 0 0 auto;
    margin-left: 0;
    white-space: nowrap;
  }

  /* Fastvalget følger samme innholdsbaserte språk. */
  body.admin-onepage .admin-access-profile-fixed .admin-access-profile-option.is-custom {
    width: max-content;
    min-width: 0 !important;
  }
}


/* ========================================================================== 
   v6.8.33 - RSVP edit · Bordplassering: diskret admin-fotnote
   ========================================================================== */
body.admin-onepage .admin-rsvp-public-form .admin-live-seating-note {
  margin: 0.35rem 0 0 !important;
  padding: 0.78rem 0.15rem 0.1rem 1rem;
  border: 0;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none;
  color: rgba(31,29,26,0.50);
  font-size: 0.82rem;
  line-height: 1.58;
  font-style: italic;
  overflow: visible;
}

body.admin-onepage .admin-rsvp-public-form .admin-live-seating-note::before {
  left: 0;
  top: 0.9rem;
  bottom: auto;
  width: 1px;
  height: 1.1rem;
  border-radius: 999px;
  background: rgba(181,143,94,0.55);
}

@media (max-width: 780px) {
  body.admin-onepage .admin-rsvp-public-form .admin-live-seating-note {
    margin-top: 0.25rem !important;
    padding: 0.72rem 0.05rem 0.05rem 0.9rem;
    font-size: 0.78rem;
    line-height: 1.55;
  }

  body.admin-onepage .admin-rsvp-public-form .admin-live-seating-note::before {
    top: 0.82rem;
    height: 1rem;
  }
}

/* ========================================================================== 
   v6.8.34 · Testmodus – betydelig tydeligere systemstatus
   ========================================================================== */
body.admin-onepage.has-admin-access-test {
  --admin-access-test-height: 54px;
}

body.admin-onepage > .admin-access-test-banner {
  border-bottom: 2px solid rgba(225, 190, 132, 0.78);
  background:
    radial-gradient(circle at 18% 50%, rgba(255, 224, 170, 0.14), transparent 24rem),
    linear-gradient(105deg, #8d4038 0%, #a75343 42%, #b76b50 68%, #94453a 100%);
  box-shadow:
    0 10px 30px rgba(91, 49, 40, 0.22),
    0 2px 0 rgba(205, 179, 138, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.18),
    inset 0 -1px 0 rgba(104, 43, 36, 0.18);
  backdrop-filter: blur(16px) saturate(128%);
  -webkit-backdrop-filter: blur(16px) saturate(128%);
}

body.admin-onepage > .admin-access-test-banner::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, transparent, rgba(255,255,255,.055) 30%, transparent 60%),
    repeating-linear-gradient(135deg, rgba(255,255,255,.025) 0 1px, transparent 1px 8px);
  opacity: .72;
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-inner {
  position: relative;
  z-index: 1;
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-mark {
  width: 1.62rem;
  height: 1.62rem;
  flex-basis: 1.62rem;
  border: 1px solid rgba(255, 248, 236, 0.64);
  background: rgba(255, 248, 236, 0.19);
  box-shadow:
    0 0 0 5px rgba(255, 240, 214, 0.075),
    0 4px 12px rgba(75, 30, 26, 0.16);
  font-size: 0.78rem;
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-copy {
  gap: 0.78rem;
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-heading strong {
  font-size: 0.72rem;
  letter-spacing: 0.13em;
  text-shadow: 0 1px 8px rgba(72, 27, 23, 0.16);
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-heading > span {
  min-height: 1.58rem;
  padding: 0.28rem 0.58rem;
  border-color: rgba(255, 245, 227, 0.44);
  background: rgba(255, 239, 209, 0.18);
  color: #fffaf1;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
  font-size: 0.58rem;
  font-weight: 840;
  letter-spacing: 0.08em;
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-meta > span {
  color: rgba(255, 251, 244, 0.96);
  font-weight: 700;
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-meta > small {
  color: rgba(255, 247, 234, 0.76);
  font-weight: 650;
}

body.admin-onepage > .admin-access-test-banner button {
  min-height: 2.18rem;
  padding: 0.44rem 0.62rem 0.44rem 0.82rem;
  border-color: rgba(255, 247, 234, 0.72);
  background: rgba(255, 250, 241, 0.94);
  color: #7e3a33;
  box-shadow:
    0 5px 16px rgba(76, 30, 26, 0.16),
    inset 0 1px 0 rgba(255,255,255,.75);
  font-weight: 850;
}

body.admin-onepage > .admin-access-test-banner button > i {
  background: rgba(126, 58, 51, 0.10);
  color: #7e3a33;
}

body.admin-onepage > .admin-access-test-banner button:hover,
body.admin-onepage > .admin-access-test-banner button:focus-visible {
  border-color: #fff9ef;
  background: #fffdf8;
  color: #6d302a;
  transform: translateY(-1px);
}

@media (max-width: 780px) {
  body.admin-onepage.has-admin-access-test {
    --admin-access-test-height: 4rem;
  }

  body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-mark {
    width: 1.42rem;
    height: 1.42rem;
    flex-basis: 1.42rem;
    font-size: 0.68rem;
  }

  body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-heading strong {
    font-size: 0.64rem;
  }

  body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-heading > span {
    min-height: 1.28rem;
    padding: 0.18rem 0.36rem;
    font-size: 0.48rem;
  }

  body.admin-onepage > .admin-access-test-banner button {
    min-width: 2.5rem;
    min-height: 2.5rem;
    background: rgba(255, 250, 241, 0.96);
  }

  body.admin-onepage > .admin-access-test-banner button > i {
    font-size: 1.1rem;
  }
}


/* ========================================================================== 
   v6.8.35 · Testmodus – kompakt, profesjonell systemstatus
   ========================================================================== */
body.admin-onepage.has-admin-access-test {
  --admin-access-test-height: 36px;
}

body.admin-onepage > .admin-access-test-banner {
  border-bottom: 1px solid rgba(181, 143, 94, 0.34);
  background:
    linear-gradient(90deg, rgba(205,179,138,.12), transparent 28%),
    linear-gradient(180deg, rgba(251,248,242,.985), rgba(246,240,231,.985));
  color: rgba(31,29,26,.82);
  box-shadow:
    0 5px 16px rgba(31,29,26,.055),
    inset 0 1px 0 rgba(255,255,255,.82);
  backdrop-filter: blur(12px) saturate(112%);
  -webkit-backdrop-filter: blur(12px) saturate(112%);
}

body.admin-onepage > .admin-access-test-banner::before {
  display: none;
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-inner {
  gap: .72rem;
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-copy {
  gap: .5rem;
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-mark {
  width: 1.18rem;
  height: 1.18rem;
  flex-basis: 1.18rem;
  border: 1px solid rgba(181,143,94,.48);
  background: rgba(205,179,138,.11);
  color: rgba(126,94,53,.92);
  box-shadow: none;
  font-size: .58rem;
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-text {
  display: flex;
  align-items: center;
  gap: .55rem;
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-heading {
  gap: .35rem;
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-heading strong {
  color: rgba(83,61,34,.94);
  font-size: .58rem;
  letter-spacing: .105em;
  text-shadow: none;
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-heading > span {
  min-height: 1.05rem;
  padding: .14rem .34rem;
  border-color: rgba(181,143,94,.30);
  background: rgba(205,179,138,.10);
  color: rgba(112,78,38,.88);
  box-shadow: none;
  font-size: .46rem;
  font-weight: 790;
  letter-spacing: .055em;
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-meta {
  gap: .38rem;
  color: rgba(31,29,26,.55);
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-meta > span {
  color: rgba(31,29,26,.68);
  font-size: .56rem;
  font-weight: 650;
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-meta > i {
  background: rgba(181,143,94,.52);
}

body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-meta > small {
  color: rgba(31,29,26,.45);
  font-size: .51rem;
  font-weight: 600;
}

body.admin-onepage > .admin-access-test-banner button {
  min-height: 1.62rem;
  padding: .28rem .42rem .28rem .55rem;
  border-color: rgba(181,143,94,.34);
  background: rgba(255,255,255,.58);
  color: rgba(83,61,34,.86);
  box-shadow: none;
  font-size: .49rem;
  font-weight: 790;
}

body.admin-onepage > .admin-access-test-banner button > i {
  width: .82rem;
  height: .82rem;
  background: rgba(205,179,138,.11);
  color: rgba(83,61,34,.78);
  font-size: .62rem;
}

body.admin-onepage > .admin-access-test-banner button:hover,
body.admin-onepage > .admin-access-test-banner button:focus-visible {
  border-color: rgba(181,143,94,.55);
  background: rgba(255,255,255,.92);
  color: rgba(67,48,26,.96);
  transform: none;
}

body.admin-onepage > .admin-access-test-banner button:focus-visible {
  outline: 2px solid rgba(181,143,94,.28);
}

@media (max-width: 780px) {
  body.admin-onepage.has-admin-access-test {
    --admin-access-test-height: 2.8rem;
  }

  body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-inner {
    gap: .42rem;
  }

  body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-mark {
    width: 1.08rem;
    height: 1.08rem;
    flex-basis: 1.08rem;
    font-size: .52rem;
  }

  body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-text {
    display: grid;
    gap: .12rem;
  }

  body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-heading strong {
    font-size: .54rem;
  }

  body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-heading > span {
    min-height: .95rem;
    padding: .1rem .25rem;
    font-size: .42rem;
  }

  body.admin-onepage > .admin-access-test-banner .admin-access-test-banner-meta > span {
    max-width: min(55vw, 15rem);
    font-size: .5rem;
  }

  body.admin-onepage > .admin-access-test-banner button {
    min-width: 2rem;
    min-height: 2rem;
    background: rgba(255,255,255,.72);
  }

  body.admin-onepage > .admin-access-test-banner button > i {
    color: rgba(83,61,34,.82);
    font-size: .95rem;
  }
}

/* ========================================================================== 
   v6.8.35 · RSVP edit – Bordplassering uten CTA-boble/glød
   ========================================================================== */
body.admin-onepage .admin-rsvp-public-form .admin-live-seating-group {
  background:
    linear-gradient(180deg, rgba(255,255,255,.78), rgba(255,253,249,.56)) !important;
}

body.admin-onepage .admin-live-seating-heading > a.admin-live-seating-link {
  width: auto;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: .34rem;
  align-self: flex-start;
  padding: .22rem 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: rgba(31,29,26,.62);
  font-size: .56rem;
  font-weight: 750;
  letter-spacing: .095em;
  line-height: 1;
  text-align: left;
  text-decoration: none;
  text-transform: uppercase;
  transition: color 160ms ease;
}

body.admin-onepage .admin-live-seating-link-arrow {
  width: .62rem;
  height: .62rem;
  flex: 0 0 auto;
  overflow: visible;
  fill: none;
  stroke: rgba(181,143,94,.88);
  stroke-width: 1.25;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 160ms ease, stroke 160ms ease;
}

body.admin-onepage .admin-live-seating-heading > a.admin-live-seating-link:hover,
body.admin-onepage .admin-live-seating-heading > a.admin-live-seating-link:focus-visible {
  color: rgba(31,29,26,.9);
}

body.admin-onepage .admin-live-seating-heading > a.admin-live-seating-link:hover .admin-live-seating-link-arrow,
body.admin-onepage .admin-live-seating-heading > a.admin-live-seating-link:focus-visible .admin-live-seating-link-arrow {
  stroke: rgba(154,112,60,.98);
  transform: translate(1px,-1px);
}

body.admin-onepage .admin-live-seating-heading > a.admin-live-seating-link:focus-visible {
  outline: 2px solid rgba(181,143,94,.22);
  outline-offset: .28rem;
}

@media (max-width: 780px) {
  body.admin-onepage .admin-live-seating-heading > a.admin-live-seating-link {
    width: auto;
    align-self: flex-start;
    padding: .18rem 0;
    text-align: left;
  }
}

/* ========================================================================== 
   v6.8.35 · Gjenbrukbar advarsel for lesetilgang / deaktiverte endringer
   ========================================================================== */
body.admin-onepage .admin-readonly-notice {
  position: relative;
  display: grid;
  grid-template-columns: 1.55rem minmax(0,1fr);
  align-items: center;
  gap: .68rem;
  margin-top: 1rem;
  padding: .72rem .9rem;
  border: 1px solid rgba(181,143,94,.28);
  border-left: 2px solid rgba(181,143,94,.72);
  border-radius: .82rem;
  background:
    linear-gradient(90deg, rgba(205,179,138,.10), rgba(255,253,249,.68) 48%, rgba(255,255,255,.42));
  color: rgba(73,58,39,.82);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.65);
  font-size: .76rem;
  font-weight: 620;
  line-height: 1.45;
}

body.admin-onepage .admin-readonly-notice::before {
  content: "!";
  display: grid;
  place-items: center;
  width: 1.42rem;
  height: 1.42rem;
  border: 1px solid rgba(181,143,94,.38);
  border-radius: 50%;
  background: rgba(205,179,138,.12);
  color: rgba(124,91,49,.92);
  font-family: var(--font-sans, inherit);
  font-size: .66rem;
  font-weight: 850;
  line-height: 1;
}

@media (max-width: 780px) {
  body.admin-onepage .admin-readonly-notice {
    grid-template-columns: 1.4rem minmax(0,1fr);
    gap: .58rem;
    padding: .66rem .72rem;
    font-size: .72rem;
  }

  body.admin-onepage .admin-readonly-notice::before {
    width: 1.28rem;
    height: 1.28rem;
    font-size: .6rem;
  }
}

/* ========================================================================== 
   v6.8.39 · RSVP edit – eksakt admin-header-pil
   Samme SVG-geometri, størrelse, stroke og hoverbevegelse som topplinjen.
   Lenken har litt høyre buffer slik at SVG-en kan flyttes uten å klippes av
   Bordplassering-panelets overflow:hidden.
   ========================================================================== */
body.admin-onepage .admin-live-seating-heading > a.admin-live-seating-link {
  gap: .32rem;
  padding: .22rem .28rem .22rem 0;
  overflow: visible;
}

body.admin-onepage .admin-live-seating-link-arrow {
  width: .62rem;
  height: .62rem;
  margin: 0;
  flex: 0 0 auto;
  overflow: visible;
  color: rgba(181,143,94,.82);
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.25;
  transform: none;
  transition: color 160ms ease, transform 160ms ease;
}

body.admin-onepage .admin-live-seating-heading > a.admin-live-seating-link:hover .admin-live-seating-link-arrow,
body.admin-onepage .admin-live-seating-heading > a.admin-live-seating-link:focus-visible .admin-live-seating-link-arrow {
  color: rgba(154,112,60,.98);
  transform: translate(1px,-1px);
}

@media (max-width: 780px) {
  body.admin-onepage .admin-live-seating-heading > a.admin-live-seating-link {
    padding: .18rem .28rem .18rem 0;
  }
}


/* ========================================================================== 
   v6.8.42 · Admin-header – flytt champagne-signaturlinje fra Bordkart
   ========================================================================== */
body.admin-section-page .admin-site-header,
body.admin-onepage .admin-site-header {
  border-bottom: 0;
}

body.admin-section-page .admin-site-header::after,
body.admin-onepage .admin-site-header::after {
  content: "";
  position: absolute;
  z-index: 1;
  right: 0;
  bottom: 0;
  left: 0;
  height: 2px;
  pointer-events: none;
  background:
    linear-gradient(
      90deg,
      transparent 0%,
      rgba(205, 179, 138, 0.52) 12%,
      rgba(205, 179, 138, 0.52) 88%,
      transparent 100%
    ) center bottom / 100% 1px no-repeat,
    linear-gradient(
      90deg,
      transparent 0%,
      rgba(205, 179, 138, 0.12) 12%,
      rgba(205, 179, 138, 0.38) 34%,
      rgba(205, 179, 138, 0.5) 50%,
      rgba(205, 179, 138, 0.38) 66%,
      rgba(205, 179, 138, 0.12) 88%,
      transparent 100%
    ) center bottom / 58% 2px no-repeat;
}

@media (max-width: 980px) {
  body.admin-onepage .admin-mobile-header {
    border-bottom: 0;
  }

  body.admin-onepage .admin-mobile-header::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 2px;
    pointer-events: none;
    background:
      linear-gradient(
        90deg,
        transparent 0%,
        rgba(205, 179, 138, 0.46) 14%,
        rgba(205, 179, 138, 0.46) 86%,
        transparent 100%
      ) center bottom / 100% 1px no-repeat,
      linear-gradient(
        90deg,
        transparent 0%,
        rgba(205, 179, 138, 0.08) 16%,
        rgba(205, 179, 138, 0.28) 34%,
        rgba(205, 179, 138, 0.42) 50%,
        rgba(205, 179, 138, 0.28) 66%,
        rgba(205, 179, 138, 0.08) 84%,
        transparent 100%
      ) center bottom / 54% 2px no-repeat;
  }
}

/* ========================================================================== 
   v6.8.46 · iOS/Safari – hindre automatisk fokus-zoom i skjemaer
   Safari zoomer inn når et redigerbart felt har tekst under 16 px. Dette
   gjelder kun iOS/WebKit-touch og endrer ikke vanlig pinch-zoom.
   ========================================================================== */
@supports (-webkit-touch-callout: none) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="color"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="image"]):not([type="hidden"]),
  textarea,
  select {
    font-size: 16px !important;
  }
}



/* ========================================================================== 
   v6.8.48 · Admin-footer – riktig viewportflyt på standalone-sider
   Korte adminflater holder footeren i bunnen uten ekstra scroll. Lange
   adminflater vokser og scroller naturlig. Bordkart-editoren viser ingen footer.
   ========================================================================== */
body.admin-onepage.admin-standalone-page .admin-scroll-root {
  display: flex;
  flex-direction: column;
}

body.admin-onepage.admin-standalone-page .admin-full-section {
  flex: 1 0 auto;
  min-height: 0;
}

body.admin-onepage.admin-standalone-page .admin-dashboard-footer {
  flex: 0 0 auto;
  margin-top: auto;
}


/* ========================================================================== 
   v6.8.58 · Tooltip-opprydding – ingen native systembobler i admin-UI
   Native title-attributter brukes ikke som hjelpetekst. Kun eksplisitte
   data-admin-tooltip-elementer får en kontrollert, rolig admin-label.
   ========================================================================== */
body.admin-onepage [data-admin-tooltip] {
  position: relative;
}

@media (hover: hover) and (pointer: fine) {
  body.admin-onepage [data-admin-tooltip]::after {
    content: attr(data-admin-tooltip);
    position: absolute;
    z-index: 4200;
    bottom: calc(100% + 0.5rem);
    left: 50%;
    translate: -50% 0;
    width: max-content;
    max-width: min(21rem, 68vw);
    padding: 0.48rem 0.64rem 0.5rem;
    border: 1px solid rgba(181, 143, 94, 0.20);
    border-radius: 0.46rem;
    background:
      linear-gradient(
        90deg,
        transparent 0%,
        rgba(205, 179, 138, 0.08) 10%,
        rgba(181, 143, 94, 0.42) 36%,
        rgba(181, 143, 94, 0.42) 64%,
        rgba(205, 179, 138, 0.08) 90%,
        transparent 100%
      ) top / 100% 1px no-repeat,
      linear-gradient(180deg, rgba(255,254,251,.995), rgba(252,248,241,.985));
    color: rgba(31, 29, 26, 0.68);
    box-shadow:
      0 7px 20px rgba(31, 29, 26, 0.045),
      0 1px 2px rgba(31, 29, 26, 0.025),
      inset 0 1px 0 rgba(255,255,255,.94);
    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 0.64rem;
    font-style: normal;
    font-weight: 560;
    letter-spacing: 0.015em;
    line-height: 1.42;
    text-align: left;
    text-transform: none;
    white-space: normal;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    backdrop-filter: blur(10px) saturate(108%);
    -webkit-backdrop-filter: blur(10px) saturate(108%);
    transition: opacity 125ms ease, visibility 0s linear 125ms;
  }

  body.admin-onepage [data-admin-tooltip]:hover::after,
  body.admin-onepage [data-admin-tooltip]:focus-visible::after {
    opacity: 1;
    visibility: visible;
    transition-delay: 55ms, 0s;
  }
}
/* v175: updated-at explanation, available by pointer and keyboard/touch focus. */
.admin-updated-help { position: relative; display: inline-flex; vertical-align: middle; margin-left: 4px; }
.admin-updated-help > button { display: inline-grid; place-items: center; width: 22px; height: 22px; padding: 0; border: 1px solid #cdbb9d; border-radius: 50%; background: #faf7f1; color: #806844; font: 700 12px/1 serif; cursor: help; }
.admin-updated-help > [role="tooltip"] { display: none; position: absolute; top: calc(100% + 8px); right: 0; z-index: 20; width: min(250px, 65vw); padding: 12px; border: 1px solid #e4d9c6; border-radius: 10px; background: #fffdf9; color: #514b42; box-shadow: 0 6px 20px #0002; white-space: normal; text-transform: none; letter-spacing: normal; font: 400 12px/1.5 var(--font-sans, sans-serif); text-align: left; }
.admin-updated-help:hover > [role="tooltip"], .admin-updated-help:focus-within > [role="tooltip"] { display: block; }
/* Avoid persistent touch hover and the browser's full-button tap overlay. */
body.admin-onepage #dashboard .admin-dashboard-settings-toggle { -webkit-tap-highlight-color: transparent; }
@media (hover: none), (pointer: coarse) {
  body.admin-onepage #dashboard .admin-dashboard-settings-toggle:hover,
  body.admin-onepage #dashboard .admin-dashboard-settings-toggle:active { background: transparent; box-shadow: none; }
}
body.admin-onepage #dashboard .admin-dashboard-settings-toggle:focus-visible { outline: 2px solid #b0956b; outline-offset: 3px; }


/* v178: discreet attendance info aligned with the seating status. */
body.admin-onepage #dashboard .admin-dashboard-workflow-step .admin-workflow-placement-status { display: flex; align-items: center; justify-content: center; gap: 4px; }
body.admin-onepage #dashboard .admin-workflow-placement-link { color: inherit; text-decoration: none; }
body.admin-onepage #dashboard .admin-workflow-placement-link::after { content: ''; position: absolute; inset: 0; }
body.admin-onepage #dashboard .admin-workflow-placement-link:focus-visible { outline: 2px solid #b0956b; outline-offset: 3px; }
body.admin-onepage #dashboard .admin-workflow-attendance-help { margin: 0; z-index: 2; flex: 0 0 auto; align-items: center; }
body.admin-onepage #dashboard .admin-workflow-attendance-help > button {
  box-sizing: border-box; width: 13px; height: 13px; min-width: 13px; min-height: 13px; font-size: 9px; border-color: #d9cebc; color: #998366; background: transparent;
}
body.admin-onepage #dashboard .admin-workflow-attendance-help > button:hover,
body.admin-onepage #dashboard .admin-workflow-attendance-help > button:focus-visible { color: #685336; border-color: #ac916a; }
body.admin-onepage #dashboard .admin-workflow-attendance-help > [role="tooltip"] {
  top: calc(100% + 8px); right: auto; left: 50%; transform: translateX(-50%);
}
@media (max-width: 680px) {
  body.admin-onepage #dashboard .admin-workflow-attendance-help > [role="tooltip"] { left: -90px; transform: none; width: min(250px, calc(100vw - 80px)); }
}

@media (max-width: 680px) {
  body.admin-onepage #dashboard .admin-dashboard-workflow-step .admin-workflow-placement-status { justify-content: flex-start; }
}


/* RSVP code confirmation: one compact receipt for code and delivery. */
.admin-edit-rsvp-section .admin-code-notice {
  display:flex; align-items:flex-start; gap:14px; margin:20px 0;
  padding:20px 22px; border:1px solid #dce5dc; border-radius:16px;
  background:#f5f8f4; color:#46594b;
}
.admin-edit-rsvp-section .admin-code-notice.is-warning {
  background:#fcf8f0; border-color:#eadcc2; color:#79623f;
}
.admin-code-notice-icon {
  display:grid; place-items:center; flex:0 0 28px; height:28px;
  border:1px solid currentColor; border-radius:50%; font-size:14px;
}
.admin-code-notice-content { min-width:0; flex:1; }
.admin-code-notice-title { display:block; font-size:15px; line-height:1.6; }
.admin-code-notice-content p { margin:3px 0 13px; font-size:13px; line-height:1.6; color:inherit; overflow-wrap:anywhere; }
.admin-code-notice-email { font-weight:600; }
.admin-code-notice-code { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; }
.admin-code-notice-code > span { font-size:10px; font-weight:700; letter-spacing:1.3px; text-transform:uppercase; }
.admin-code-notice-code code { padding:6px 10px; border:1px solid #dce2d7; border-radius:7px; background:#fffefa; color:#393b32; font-size:15px; letter-spacing:1px; user-select:all; }
.admin-code-notice-content small { display:block; margin-top:11px; font-size:11px; color:#77786e; }
@media(max-width:600px) {
  .admin-edit-rsvp-section .admin-code-notice { padding:17px 15px; gap:11px; }
}


/* The guest-list tooltip must not enlarge or be clipped by the table. */
.admin-updated-tooltip-floating {
  position:fixed; z-index:10000; box-sizing:border-box;
  width:min(250px, calc(100vw - 24px)); padding:12px;
  border:1px solid #e4d9c6; border-radius:10px;
  background:#fffdf9; color:#514b42; box-shadow:0 6px 20px #0002;
  white-space:normal; text-transform:none; letter-spacing:normal;
  font:400 12px/1.5 var(--font-sans, sans-serif); text-align:left;
}
.admin-updated-tooltip-floating[hidden] { display:none; }

/* v252: icon-only menu button, still with a full touch target. */
@media(max-width:780px) {
 body.admin-onepage .admin-mobile-menu-toggle { width:44px; min-height:44px; justify-content:center; gap:0; }
 body.admin-onepage .admin-mobile-menu-toggle > i { width:20px; }
}
/* v261: compact admin header and the same identity capsule as guest previews. */
@media(min-width:781px) {
 body.admin-onepage { --admin-utility-height:38px; --admin-header-height:76px; }
 body.admin-onepage .admin-site-header .brand-a,
 body.admin-onepage .admin-site-header .brand-m { font-size:2rem; }
 body.admin-onepage .admin-site-header .brand-divider { height:2.35rem; }
 body.admin-onepage .admin-utility-profile > span { display:none; }
 body.admin-onepage .admin-utility-profile-line { display:flex; align-items:center; gap:8px; padding:3px 9px; border:1px solid rgba(205,179,138,.24); border-radius:999px; background:rgba(255,255,255,.035); }
 body.admin-onepage .admin-utility-profile-line > strong { font-size:12px; font-weight:600; line-height:1.4; letter-spacing:normal; text-transform:none; }
 body.admin-onepage .admin-utility-profile-line > small { padding:2px 6px; border-radius:999px; background:rgba(205,179,138,.1); color:#cab28e; font-size:8px; line-height:1.4; letter-spacing:.09em; }
}
@media(max-width:780px) {
 body.admin-onepage { --admin-mobile-header-height:56px; }
}
/* v265: remove the old optical name offset inside the new identity capsule. */
body.admin-onepage .admin-utility-profile-line > strong,
body.admin-onepage .admin-utility-profile-line > small {
  position:static; top:auto; transform:none; align-self:center;
}
