:root {
  --bg: #f6f7f9;
  --surface: #ffffff;
  --ink: #172033;
  --muted: #5f6b7a;
  --line: #d9e0e8;
  --brand: #95c11e;
  --brand-dark: #314400;
  --brand-hover: #86ad1b;
  --brand-soft: #eef8d9;
  --warn: #9a6700;
  --warn-bg: #fff3cd;
  --danger: #b42318;
  --danger-bg: #fde7e7;
  --ok-bg: #e7f7ef;
  --focus: #1d4ed8;
  --border: var(--line);
  --text: var(--ink);
  --primary: var(--brand);
  --brand-strong: var(--brand-dark);
  --content-max: 1180px;
  --page-gutter: 1rem;
  --copy-max: 74ch;
  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --form-gap: .9rem;
  --radius-control: 6px;
  --radius-panel: 8px;
  --control-height: 42px;
  --touch-height: 44px;
  --surface-subtle: #f7f8fa;
  --border-strong: #aeb8c4;
}

* {
  box-sizing: border-box;
}

[hidden] {
  display: none !important;
}

html,
body {
  overflow-x: clip;
}

body {
  margin: 0;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: var(--bg);
  color: var(--ink);
  line-height: 1.55;
  letter-spacing: 0;
  text-rendering: optimizeLegibility;
}

a {
  color: var(--brand-dark);
}

a:focus,
button:focus,
input:focus,
select:focus,
textarea:focus {
  outline: 3px solid var(--focus);
  outline-offset: 2px;
}

.skip-link {
  position: absolute;
  left: 1rem;
  top: -4rem;
  background: var(--ink);
  color: white;
  padding: .75rem 1rem;
  z-index: 10;
}

.skip-link:focus {
  top: 1rem;
}

.topbar {
  display: flex;
  align-items: center;
  gap: .65rem;
  flex-wrap: nowrap;
  min-height: 64px;
  padding: .55rem clamp(1rem, 2.5vw, 1.75rem);
  background: var(--surface);
  border-bottom: 1px solid var(--line);
  position: sticky;
  top: 0;
  z-index: 110;
}

.brand {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  margin-right: .25rem;
  flex: 0 0 auto;
}

.brand-logo {
  display: block;
  width: clamp(142px, 13vw, 196px);
  height: auto;
  max-height: 43px;
  object-fit: contain;
}

.main-nav {
  display: flex;
  align-items: center;
  flex: 1 1 auto;
  flex-wrap: nowrap;
  gap: .15rem;
  justify-content: flex-start;
  min-width: 0;
}

.main-nav a {
  color: var(--ink);
  padding: .5rem .65rem;
  text-decoration: none;
  border-radius: 6px;
}

.main-nav a[aria-current="page"],
.main-nav a:hover,
.main-nav a:focus {
  background: var(--brand-soft);
}

.nav-toggle {
  display: none;
}

.nav-group {
  flex: 0 0 auto;
  position: relative;
}

.nav-group-button {
  background: transparent;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 6px 6px 0 0;
  color: var(--ink);
  cursor: pointer;
  display: inline-block;
  font: inherit;
  font-size: .9rem;
  font-weight: 700;
  padding: .52rem .55rem .48rem;
  text-decoration: none;
  white-space: nowrap;
}

.nav-group.active > .nav-group-button,
.nav-group-button:hover,
.nav-group-button:focus,
.nav-group.is-open > .nav-group-button {
  background: transparent;
  border-bottom-color: var(--brand);
  color: var(--brand-dark);
}

.nav-group-button:hover,
.nav-group.is-open > .nav-group-button {
  background: var(--brand-soft);
}

.nav-group-menu {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 12px 24px rgba(23, 32, 51, .12);
  display: none;
  left: 0;
  max-height: calc(100vh - 82px);
  max-width: min(280px, calc(100vw - 2rem));
  min-width: 210px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: .35rem;
  position: absolute;
  top: 100%;
  z-index: 120;
}

.nav-group:last-child .nav-group-menu {
  left: auto;
  right: 0;
}

.nav-group:hover .nav-group-menu,
.nav-group:focus-within .nav-group-menu,
.nav-group.is-open .nav-group-menu {
  display: grid;
}

.nav-group-menu a {
  display: block;
  font-size: .94rem;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.header-actions {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  gap: .35rem;
  color: var(--muted);
  margin-left: auto;
  min-width: 0;
  white-space: nowrap;
}

.global-search-form {
  flex: 0 1 13rem;
  margin: 0;
  width: clamp(10.5rem, 12vw, 13rem);
}

.global-search-form input {
  background: #f5f7f9;
  border-color: #cbd3dc;
  border-radius: 999px;
  font-size: .84rem;
  height: 36px;
  min-height: 36px;
  padding: .42rem .8rem;
  transition: background .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.global-search-form input:focus {
  background: var(--surface);
  border-color: var(--brand);
  box-shadow: 0 0 0 3px rgba(149, 193, 30, .18);
}

.header-user-name {
  align-items: center;
  background: #f5f7f9;
  border: 1px solid #d8e0e8;
  border-radius: 999px;
  color: var(--ink);
  display: inline-flex;
  flex: 0 0 auto;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1;
  max-width: none;
  min-height: 36px;
  padding: .4rem .7rem;
  text-align: center;
  white-space: nowrap;
}

.logout-form {
  display: flex;
  align-items: center;
  margin: 0;
}

.header-logout-button {
  font-size: .82rem;
  min-height: 36px;
  padding: .35rem .62rem;
}

.mobile-nav {
  display: none !important;
}

.container {
  width: min(var(--content-max), calc(100% - (2 * var(--page-gutter))));
  margin: var(--space-5) auto 3rem;
}

.app-footer {
  width: min(var(--content-max), calc(100% - (2 * var(--page-gutter))));
  margin: -1.5rem auto 2rem;
  color: var(--muted);
  font-size: .85rem;
}

.app-footer a {
  color: var(--muted);
}

.footer-role-hint {
  color: var(--muted);
  font-size: .78rem;
  line-height: 1.35;
}

.footer-spacer {
  min-height: .7rem;
}

.footer-meta {
  display: flex;
  gap: .75rem;
  justify-content: space-between;
  min-width: 0;
}

.footer-links {
  display: flex;
  gap: .8rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.form-section-panel {
  border: 1px solid var(--line);
  border-radius: var(--radius-panel);
  display: grid;
  gap: var(--space-3);
  padding: .85rem;
}

.form-section-panel h3 {
  font-size: 1.02rem;
  margin: 0;
}

.compact-fieldset {
  border: 1px solid var(--line);
  border-radius: var(--radius-panel);
  margin: 0;
  padding: .7rem .8rem .8rem;
}

.compact-fieldset legend {
  font-weight: 800;
  padding: 0 .25rem;
}

.validation-summary {
  border: 1px solid var(--line);
  border-radius: var(--radius-panel);
  margin: .8rem 0;
  padding: .75rem .85rem;
}

.validation-summary h3,
.validation-summary p,
.validation-summary ul {
  margin-top: 0;
}

.validation-summary ul {
  margin-bottom: 0;
}

.validation-error {
  background: var(--danger-bg);
  border-color: #efb8b3;
}

.validation-ok {
  background: var(--ok-bg);
  border-color: #abd9c1;
}

.validation-warning {
  background: #fff8dc;
  border-color: #dfc76e;
}

.hero,
.page-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-4);
  margin-bottom: var(--space-4);
}

.page-title > div {
  flex: 1 1 32rem;
  min-width: 0;
}

.page-title > h1,
.page-title > p {
  flex: 1 0 100%;
  width: 100%;
}

.hero {
  padding: 0 0 .6rem;
}

.public-hero {
  background: var(--surface);
  border: 1px solid rgba(217, 224, 232, .95);
  border-radius: 18px;
  box-shadow: 0 22px 60px rgba(23, 32, 51, .08);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 320px);
  gap: clamp(1rem, 4vw, 3rem);
  margin-bottom: 1rem;
  overflow: hidden;
  padding: clamp(1.35rem, 4vw, 3.2rem);
  position: relative;
}

.public-hero-compact {
  display: block;
  max-width: 880px;
  padding: clamp(1.25rem, 4vw, 2.4rem);
}

.public-hero-compact h1 {
  font-size: clamp(2.3rem, 6vw, 4.25rem);
}

.text-action {
  align-self: center;
  color: var(--brand-dark);
  font-weight: 750;
  padding: .45rem .2rem;
}

.public-hero::before {
  background: var(--brand);
  content: "";
  height: 4px;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}

.public-hero-copy {
  min-width: 0;
}

.hero h1,
.page-title h1 {
  margin: 0;
  font-size: clamp(1.7rem, 4vw, 2.5rem);
  letter-spacing: 0;
  line-height: 1.08;
  hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
}

.page-title h1 {
  overflow-wrap: anywhere;
}

.public-kicker {
  color: var(--brand-dark);
  font-size: .82rem;
  font-weight: 900;
  letter-spacing: .08em;
  margin: 0 0 .5rem;
  text-transform: uppercase;
}

.public-hero h1 {
  font-size: clamp(2.4rem, 6vw, 5rem);
  line-height: .96;
  margin: 0 0 1rem;
}

.public-hero p {
  color: var(--muted);
  font-size: clamp(1rem, 1.5vw, 1.12rem);
  max-width: var(--copy-max);
}

.public-cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: 1.25rem;
}

.hero p,
.page-title p {
  color: var(--muted);
  margin: .25rem 0 0;
}

.hero > div > .measure-switcher,
.page-title > div > .measure-switcher {
  margin-bottom: 1.35rem;
}

.hero > div > h1 + p {
  margin-top: .65rem;
}

.eyebrow {
  text-transform: uppercase;
  letter-spacing: 0;
  font-size: .8rem;
  font-weight: 800;
  color: var(--brand-dark);
}

.panel {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-panel);
  padding: var(--space-4);
  margin-bottom: var(--space-4);
}

.panel > *,
.page-title > *,
.section-heading > *,
.form-grid > *,
.grid > *,
.actions > * {
  min-width: 0;
}

.login-timeout-hint {
  background: var(--brand-soft);
  border: 1px solid #d7ebaa;
  border-radius: 8px;
  color: var(--brand-dark);
  grid-column: 1 / -1;
  margin: 0;
  padding: .55rem .75rem;
}

.danger-panel {
  border-color: #f0b7b2;
}

.grid {
  display: grid;
  gap: var(--space-4);
}

.grid > * {
  min-width: 0;
}

.grid > .panel {
  margin-bottom: 0;
}

.grid:has(> .panel) {
  margin-bottom: var(--space-4);
}

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

.grid.three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: .75rem;
  margin-bottom: 1rem;
}

.compact-stats {
  margin-bottom: 0;
}

.stats div {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 1rem;
}

.stats strong {
  display: block;
  font-size: 2rem;
}

.stats span,
.muted {
  color: var(--muted);
}

.panel-heading {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  justify-content: space-between;
  margin-bottom: .75rem;
  min-width: 0;
}

.panel-heading > div {
  min-width: 0;
}

.panel-heading > div:first-child {
  display: grid;
  gap: var(--space-1);
}

.panel-heading h2,
.panel-heading h3,
.panel-heading p {
  margin: 0;
}

.section-heading {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  gap: .65rem var(--space-4);
  justify-content: space-between;
  margin-bottom: .85rem;
  min-width: 0;
}

.section-heading > :first-child {
  min-width: 0;
}

.section-heading > div:first-child {
  display: grid;
  flex: 1 1 20rem;
  gap: var(--space-1);
}

.section-heading :is(h2, h3),
.section-heading > :is(h2, h3),
.section-heading p {
  margin: 0;
  overflow-wrap: anywhere;
}

.section-heading .eyebrow {
  margin: 0;
}

.section-heading > :is(.badge, span:last-child) {
  flex: 0 0 auto;
}

.dashboard-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr));
  margin-bottom: 1rem;
}

.dashboard-grid > * {
  margin-bottom: 0;
  min-width: 0;
}

.kpi-grid {
  display: grid;
  gap: .75rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr));
  margin-bottom: 1rem;
}

.kpi-grid > article,
.feedback-kpi-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 10px;
  display: grid;
  gap: .2rem;
  min-width: 0;
  padding: 1rem;
}

.kpi-grid > article strong,
.feedback-kpi-card strong {
  display: block;
  font-size: 2rem;
  line-height: 1.1;
}

.kpi-grid > article span,
.feedback-kpi-card span {
  color: var(--muted);
  overflow-wrap: anywhere;
}

.control-center-group {
  display: grid;
  gap: .8rem;
}

.checkbox-grid {
  display: grid;
  gap: .45rem;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.field-label {
  align-items: baseline;
  display: inline-flex;
  gap: .22rem;
  font-weight: 800;
  margin: 0 0 .35rem;
  width: fit-content;
}

.account-search-results {
  display: grid;
  gap: .45rem;
  margin-top: -.35rem;
}

.account-search-result {
  display: grid;
  gap: .15rem;
  width: 100%;
  padding: .55rem .7rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
  color: var(--text);
  text-align: left;
  cursor: pointer;
}

.account-search-result:hover,
.account-search-result:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(149, 193, 30, .18);
  outline: none;
}

.account-search-result span {
  color: var(--muted);
  font-size: .9rem;
}

.button,
button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--control-height);
  padding: .55rem .85rem;
  border: 1px solid var(--brand);
  border-radius: var(--radius-control);
  background: var(--surface);
  color: var(--brand-dark);
  font: inherit;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
}

.button.primary,
button.primary {
  background: var(--brand);
  color: var(--ink);
  border-color: var(--brand);
}

.button:hover,
button:hover {
  background: var(--brand-soft);
}

.button.primary:hover,
button.primary:hover {
  background: var(--brand-hover);
  border-color: var(--brand-hover);
  color: var(--ink);
}

.button.ghost,
button.ghost {
  border-color: var(--line);
  color: var(--ink);
}

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

.button.caution,
button.caution {
  background: #fff3cf;
  border-color: #c98700;
  color: #654300;
}

.button.caution:hover,
button.caution:hover {
  background: #ffe6a3;
  border-color: #a97000;
  color: #543800;
}

.button.secondary-action,
button.secondary-action {
  background: #e9f3fc;
  border-color: #5b8fbd;
  color: #174f7d;
}

.button.secondary-action:hover,
button.secondary-action:hover {
  background: #d8eafb;
  border-color: #3f79aa;
  color: #103e64;
}

.button.small {
  min-height: 34px;
  padding: .35rem .55rem;
  font-size: .9rem;
}

button:disabled {
  cursor: not-allowed;
  filter: saturate(.35);
  opacity: .5;
}

.container :is(button, .button) {
  max-width: 100%;
  overflow-wrap: anywhere;
  text-align: center;
  white-space: normal;
}

.container :is(code, .technical-key, .error-reference) {
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  align-items: center;
}

.form-link {
  margin: .8rem 0 0;
  text-align: center;
}

.captcha-box {
  min-height: 68px;
}

.quick-actions h2 {
  width: 100%;
}

.table-wrap {
  overflow-x: auto;
}

.certificate-create-box {
  background: #fbfcfd;
  border: 1px solid var(--line);
  border-left: 4px solid var(--brand);
  border-radius: 8px;
  display: grid;
  gap: .55rem;
  margin: .9rem 0 1rem;
  padding: .85rem;
}

.certificate-create-box h3 {
  font-size: 1.05rem;
  margin: 0;
}

.certificate-create-box summary {
  align-self: start;
  background: var(--brand);
  border-radius: 7px;
  color: var(--brand-dark);
  cursor: pointer;
  display: inline-flex;
  font-weight: 800;
  list-style: none;
  padding: .62rem .9rem;
}

.certificate-create-box summary::-webkit-details-marker {
  display: none;
}

.certificate-create-box[open] summary {
  margin-bottom: .15rem;
}

.warning-check {
  background: var(--warn-bg);
  border: 1px solid rgba(154, 103, 0, .25);
  border-radius: 8px;
  color: var(--ink);
  padding: .65rem .75rem;
}

.user-accounts-table th:first-child,
.user-accounts-table td:first-child {
  text-align: center;
  width: 3.25rem;
}

.user-accounts-table input[type="checkbox"],
.account-assignment-panel input[type="checkbox"] {
  cursor: pointer;
  height: 1.25rem;
  min-height: 1.25rem;
  min-width: 1.25rem;
  width: 1.25rem;
}

.account-assignment-panel {
  margin-top: .45rem;
}

.account-membership-list form {
  margin-top: .25rem;
}

.measures-panel {
  overflow: visible;
}

.measures-table-wrap {
  overflow-x: visible;
}

.measures-table th:last-child,
.measures-table td:last-child {
  width: 320px;
}

.row-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  align-items: center;
  min-width: 280px;
}

.measures-overview {
  margin-top: 1.5rem;
}

.measures-overview-heading {
  align-items: end;
  display: flex;
  justify-content: space-between;
  margin-bottom: 1rem;
}

.measures-overview-heading h2,
.measures-overview-heading p {
  margin: 0;
}

.measures-overview-heading p {
  color: var(--muted);
  margin-top: .35rem;
}

.measure-overview-tabs {
  border-bottom: 1px solid var(--line);
  display: flex;
  gap: .35rem;
  margin-bottom: 1rem;
}

.measure-overview-tabs a {
  align-items: center;
  border-bottom: 3px solid transparent;
  color: var(--muted);
  display: inline-flex;
  font-weight: 800;
  gap: .5rem;
  padding: .75rem 1rem;
  text-decoration: none;
}

.measure-overview-tabs a:hover,
.measure-overview-tabs a.is-active {
  border-bottom-color: var(--brand);
  color: var(--ink);
}

.measure-overview-tabs a span {
  align-items: center;
  background: #e7edf3;
  border-radius: 999px;
  display: inline-flex;
  font-size: .78rem;
  justify-content: center;
  min-width: 1.65rem;
  padding: .12rem .4rem;
}

.measure-overview-filters {
  align-items: end;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 14px;
  display: grid;
  gap: .75rem;
  grid-template-columns: minmax(220px, 1.4fr) repeat(4, minmax(135px, .8fr));
  margin-bottom: 1.1rem;
  padding: 1rem;
}

.measure-overview-filters label {
  font-size: .82rem;
  font-weight: 800;
}

.measure-overview-filters input,
.measure-overview-filters select {
  margin-top: .25rem;
  min-height: 42px;
}

.measure-overview-filters .actions {
  grid-column: 1 / -1;
  margin: 0;
}

.measure-card-grid {
  display: grid;
  gap: 1.15rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.measure-overview-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 12px 30px rgba(22, 36, 54, .08);
  min-width: 0;
  overflow: visible;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.measure-overview-card:hover {
  border-color: color-mix(in srgb, var(--brand) 55%, var(--line));
  box-shadow: 0 16px 36px rgba(22, 36, 54, .13);
  transform: translateY(-2px);
}

.measure-overview-card:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--brand) 70%, #fff);
  outline-offset: 3px;
}

.measure-overview-card.is-archived {
  box-shadow: 0 8px 22px rgba(22, 36, 54, .06);
}

.measure-card-media {
  aspect-ratio: 16 / 5;
  background: #dfe7ef;
  border-radius: 17px 17px 0 0;
  overflow: hidden;
  position: relative;
}

.measure-card-media > img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.measure-card-media::after {
  background: linear-gradient(180deg, rgba(8, 20, 39, .08), rgba(8, 20, 39, .42));
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}

.measure-card-media.is-standard {
  align-items: center;
  background:
    radial-gradient(circle at 82% 20%, rgba(255, 255, 255, .42), transparent 26%),
    linear-gradient(135deg, #111f36, #31516e 62%, #82bd13);
  display: flex;
  padding: 1.25rem;
}

.measure-card-standard-mark {
  bottom: .85rem;
  color: #fff;
  display: grid;
  gap: .12rem;
  left: 1rem;
  position: absolute;
  z-index: 1;
}

.measure-card-standard-mark strong {
  font-size: clamp(1.45rem, 3vw, 2.15rem);
  letter-spacing: -.03em;
}

.measure-card-standard-mark small {
  font-size: .85rem;
  font-weight: 800;
  opacity: .82;
}

.measure-card-badges {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  left: 1rem;
  position: absolute;
  top: 1rem;
  z-index: 2;
}

.measure-card-badge {
  backdrop-filter: blur(8px);
  background: rgba(255, 255, 255, .93);
  border-radius: 999px;
  color: var(--ink);
  font-size: .75rem;
  font-weight: 900;
  padding: .32rem .58rem;
}

.measure-card-badge.is-published,
.measure-card-badge.is-success {
  background: rgba(226, 246, 234, .96);
  color: #146c43;
}

.measure-card-badge.is-draft,
.measure-card-badge.is-warning {
  background: rgba(255, 246, 213, .96);
  color: #785500;
}

.measure-card-badge.is-muted {
  color: #536273;
}

.measure-card-body {
  padding: 1.15rem;
}

.measure-card-heading {
  align-items: flex-start;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  position: relative;
}

.measure-card-heading h3,
.measure-card-heading p {
  margin: 0;
}

.measure-card-heading h3 {
  font-size: 1.28rem;
  line-height: 1.2;
}

.measure-card-heading h3 a {
  color: var(--ink);
  text-decoration: none;
}

.measure-card-heading h3 a:hover {
  color: var(--brand-strong);
}

.measure-card-heading p {
  color: var(--muted);
  font-size: .9rem;
  margin-top: .25rem;
}

.measure-card-menu {
  flex: 0 0 auto;
  position: relative;
}

.measure-card-menu > summary {
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 9px;
  cursor: pointer;
  display: inline-flex;
  font-size: 1rem;
  font-weight: 900;
  height: 2.15rem;
  justify-content: center;
  letter-spacing: .1em;
  list-style: none;
  width: 2.4rem;
}

.measure-card-menu > summary::-webkit-details-marker {
  display: none;
}

.measure-card-menu > div {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: 0 12px 30px rgba(22, 36, 54, .15);
  display: grid;
  min-width: 225px;
  overflow: hidden;
  position: absolute;
  right: 0;
  top: calc(100% + .35rem);
  z-index: 8;
}

.measure-card-menu a {
  color: var(--ink);
  font-size: .9rem;
  font-weight: 800;
  padding: .72rem .85rem;
  text-decoration: none;
}

.measure-card-menu a:hover {
  background: #f0f4f7;
}

.measure-card-menu a.danger-link {
  color: var(--danger);
}

.measure-card-meta {
  color: var(--muted);
  display: flex;
  flex-wrap: wrap;
  font-size: .9rem;
  gap: .45rem 1rem;
  margin: .85rem 0 1rem;
}

.measure-card-meta span {
  align-items: center;
  display: inline-flex;
}

.measure-card-meta span + span::before {
  color: #a1adba;
  content: "•";
  margin-right: 1rem;
}

.measure-card-metrics {
  align-items: stretch;
  background: #f4f7f9;
  border-radius: 12px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  padding: .75rem .35rem;
}

.measure-card-metrics span {
  align-items: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: .15rem .45rem;
  text-align: center;
}

.measure-card-metrics span + span {
  border-left: 1px solid #dce4ea;
}

.measure-card-metrics strong,
.measure-card-metrics small {
  display: block;
}

.measure-card-metrics strong {
  color: var(--ink);
  font-size: 1.05rem;
}

.measure-card-metrics small {
  color: var(--muted);
  font-size: .72rem;
  line-height: 1.2;
  margin-top: .12rem;
  overflow-wrap: anywhere;
}

.measure-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: 1rem;
}

.measure-card-quick-edit {
  border-top: 1px solid var(--line);
  margin-top: 1rem;
  padding-top: .8rem;
}

.measure-card-quick-edit > summary {
  align-items: center;
  background: #f5f8fa;
  border-radius: 10px;
  color: var(--ink);
  cursor: pointer;
  display: flex;
  font-size: .9rem;
  font-weight: 900;
  justify-content: space-between;
  list-style: none;
  padding: .72rem .8rem;
}

.measure-card-quick-edit > summary::-webkit-details-marker {
  display: none;
}

.measure-card-quick-edit > summary::after {
  color: var(--brand-strong);
  content: "+";
  font-size: 1.25rem;
  line-height: 1;
}

.measure-card-quick-edit[open] > summary::after {
  content: "–";
}

.measure-card-quick-form {
  background: #fbfcfd;
  border: 1px solid #e2e8ed;
  border-radius: 0 0 10px 10px;
  border-top: 0;
  display: block;
  padding: .9rem;
}

.measure-card-quick-fields {
  display: grid;
  gap: .8rem;
}

.measure-card-quick-fields label {
  display: block;
  font-size: .82rem;
  font-weight: 800;
}

.measure-card-quick-fields input {
  margin-top: .28rem;
}

.measure-card-quick-fields label > span {
  color: var(--muted);
  display: block;
  font-size: .72rem;
  font-weight: 600;
  line-height: 1.3;
  margin-top: .3rem;
}

.measure-card-quick-footer {
  align-items: center;
  border-top: 1px solid #e2e8ed;
  display: flex;
  gap: .75rem;
  justify-content: space-between;
  margin-top: .9rem;
  padding-top: .8rem;
}

.measure-card-quick-footer .check {
  margin: 0;
}

.measure-overview-empty {
  background: var(--surface);
  border: 1px dashed var(--line);
  border-radius: 14px;
  color: var(--muted);
  padding: 2rem;
  text-align: center;
}

.measure-overview-empty p {
  margin: 0;
}

.measure-duplicate-notice {
  background: var(--ok-bg);
  border: 1px solid #b7e4ca;
  border-radius: 12px;
  color: #145f3c;
  margin: 0 0 1rem;
  padding: .9rem 1rem;
}

.measure-duplicate-notice p {
  margin: .2rem 0 0;
}

@media (max-width: 1180px) {
  .measure-overview-filters {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .measure-filter-search {
    grid-column: span 2;
  }
}

@media (max-width: 980px) {
  .measure-card-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .measure-overview-filters {
    grid-template-columns: 1fr;
  }

  .measure-filter-search {
    grid-column: auto;
  }

  .measure-overview-tabs a {
    flex: 1 1 0;
    justify-content: center;
    padding-inline: .55rem;
  }

  .measure-card-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .measure-card-metrics span:nth-child(odd) {
    border-left: 0;
  }

  .measure-card-metrics span:nth-child(n + 3) {
    border-top: 1px solid #dce4ea;
    padding-top: .55rem;
  }

  .measure-card-quick-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .measure-card-quick-footer .button {
    width: 100%;
  }
}

.schedule-days {
  display: grid;
  gap: .75rem;
}

.schedule-day {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
}

.schedule-day summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  padding: .85rem 1rem;
  cursor: pointer;
  font-weight: 800;
}

.schedule-day summary:hover {
  background: #f2f7f6;
}

.schedule-day[open] summary {
  border-bottom: 1px solid var(--line);
  background: #eef8f6;
}

.schedule-day-title {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .45rem;
}

.schedule-day-meta {
  color: var(--muted);
  font-size: .95rem;
  text-align: right;
}

.schedule-day-body {
  padding: .25rem 1rem 1rem;
}

.schedule-day.past-day {
  opacity: .76;
}

.schedule-day.past-day:not([open]) {
  background: #f9fafb;
}

.schedule-table th,
.schedule-table td {
  padding: .55rem .6rem;
}

table {
  width: 100%;
  border-collapse: collapse;
}

th,
td {
  text-align: left;
  vertical-align: top;
  padding: .7rem;
  border-bottom: 1px solid var(--line);
}

th {
  background: #eef2f6;
  font-weight: 800;
}

.absence-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: .65rem .75rem;
  margin-bottom: .55rem;
  background: #fbfcfd;
}

.active-absence-card {
  border-left: 5px solid var(--brand);
  background: var(--surface);
}

.absence-card h3 {
  margin: 0;
}

.absence-card p {
  margin: .25rem 0;
}

.absence-card-head {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  align-items: flex-start;
}

.absence-card-badges {
  flex: 0 0 auto;
  text-align: right;
}

.absence-meta,
.absence-reason {
  font-size: .95rem;
}

.absence-actions {
  display: flex;
  gap: .4rem;
  flex-wrap: wrap;
  margin-top: .4rem;
}

.dashboard-absence-panel h2 {
  font-size: 1.25rem;
  margin-top: 0;
}

.dashboard-absence-panel {
  overflow: hidden;
}

.dashboard-absence-list {
  display: grid;
  gap: .28rem;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
}

.dashboard-absence-row {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .9fr);
  align-items: center;
  gap: .35rem .55rem;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding: .32rem .45rem;
  border: 1px solid var(--line);
  border-left: 4px solid var(--brand);
  border-radius: 6px;
  background: var(--surface);
  font-size: .9rem;
  line-height: 1.25;
}

.dashboard-absence-person {
  font-weight: 800;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dashboard-absence-time {
  color: var(--ink);
  font-weight: 700;
  min-width: 0;
  overflow: hidden;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dashboard-absence-program {
  grid-column: 1 / 2;
  color: var(--muted);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dashboard-absence-badges {
  display: inline-flex;
  grid-column: 2 / 3;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: .2rem;
  min-width: 0;
  overflow: hidden;
}

.dashboard-absence-row .badge {
  font-size: .72rem;
  max-width: 100%;
  overflow: hidden;
  padding: .08rem .32rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dashboard-sort-section {
  display: grid;
  gap: .75rem;
}

.dashboard-sort-top {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1rem;
  justify-content: space-between;
}

.dashboard-sort-top .help-text {
  margin: 0;
}

.dashboard-customize-bar {
  display: flex;
  justify-content: flex-end;
  margin: 0 0 .15rem;
}

.dashboard-customize-panel {
  align-items: flex-start;
  background: var(--surface);
  border: 1px solid rgba(149, 193, 30, .28);
  border-radius: 10px;
  box-shadow: 0 10px 30px rgba(23, 32, 51, .055);
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  padding: .85rem;
}

.dashboard-customize-panel strong {
  display: block;
  font-size: 1.05rem;
  margin-bottom: .2rem;
}

.dashboard-customize-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  justify-content: flex-end;
}

.dashboard-sort-save-form,
.dashboard-sort-reset {
  margin: 0;
}

.dashboard-sort-reset {
  margin: 0;
}

.dashboard-sort-list {
  display: grid;
  align-items: stretch;
  gap: 1rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.dashboard-sort-section:not([data-dashboard-editing="1"]) .dashboard-sort-list {
  align-items: stretch;
}

.dashboard-sort-item {
  display: flex;
  min-width: 0;
  max-width: 100%;
}

.dashboard-sort-item.is-dragging {
  opacity: .55;
}

.dashboard-sort-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: 0 8px 22px rgba(23, 32, 51, .035);
  display: flex;
  flex-direction: column;
  min-height: 100%;
  min-width: 0;
  overflow: hidden;
  padding: .95rem;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
  width: 100%;
}

.dashboard-sort-section:not([data-dashboard-editing="1"]) .dashboard-sort-card {
  min-height: 100%;
}

@media (min-width: 851px) {
  .dashboard-sort-section:not([data-dashboard-editing="1"]) .dashboard-sort-item[data-card-id^="accounting-"] {
    grid-column: 1 / -1;
  }

  .dashboard-sort-section:not([data-dashboard-editing="1"]) .dashboard-sort-item[data-card-id="preparation-check"] {
    grid-column: span 2;
  }

  .dashboard-sort-section:not([data-dashboard-editing="1"]) .dashboard-sort-item[data-card-id="live-current-state"] {
    grid-column: 1 / -1;
  }
}

.dashboard-sort-section[data-dashboard-editing="1"] .dashboard-sort-list {
  grid-template-columns: minmax(0, 1fr);
}

.dashboard-sort-section[data-dashboard-editing="1"] .dashboard-sort-item {
  grid-column: auto;
}

.dashboard-sort-item[draggable="true"] .dashboard-sort-card {
  cursor: default;
}

.dashboard-sort-item.is-dragging .dashboard-sort-card {
  border-color: var(--brand);
  box-shadow: 0 16px 36px rgba(23, 32, 51, .12);
  cursor: grabbing;
}

.dashboard-sort-card-bar {
  align-items: center;
  display: flex;
  justify-content: space-between;
  min-height: 1.7rem;
  gap: .6rem;
  margin: -.25rem -.25rem .35rem 0;
}

.dashboard-sort-card-content {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
}

.dashboard-sort-handle {
  align-items: center;
  display: inline-flex;
  flex-wrap: wrap;
  gap: .35rem;
  justify-content: space-between;
  width: 100%;
  min-height: 1.75rem;
}

.dashboard-edit-label {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.dashboard-drag-icon {
  align-items: center;
  border: 1px solid transparent;
  border-radius: 999px;
  color: var(--muted);
  cursor: grab;
  display: inline-flex;
  font-weight: 800;
  height: 1.65rem;
  justify-content: center;
  padding: 0 .45rem;
}

.dashboard-drag-icon:hover,
.dashboard-drag-icon:focus {
  background: var(--brand-soft);
  border-color: #d7ebaa;
  color: var(--ink);
}

.dashboard-move-buttons {
  display: inline-flex;
  flex-wrap: wrap;
  gap: .25rem;
  justify-content: flex-end;
}

.dashboard-sort-handle button {
  display: inline-flex;
  min-height: 2.1rem;
  padding: .25rem .5rem;
}

.dashboard-sort-handle button:disabled {
  cursor: not-allowed;
  opacity: .45;
}

.dashboard-sort-card-content > .panel,
.dashboard-sort-card-content > .grid,
.dashboard-sort-card-content > .stats {
  background: transparent;
  border: 0;
  box-shadow: none;
  margin: 0;
  max-width: 100%;
  min-width: 0;
  padding: 0;
}

.dashboard-sort-card-content > .grid,
.dashboard-sort-card-content > .stats {
  display: block;
}

.dashboard-sort-card h2 {
  font-size: clamp(1.18rem, 1.7vw, 1.55rem);
  line-height: 1.16;
  margin-top: 0;
  overflow-wrap: anywhere;
}

.dashboard-sort-card p,
.dashboard-sort-card li,
.dashboard-sort-card span {
  overflow-wrap: anywhere;
}

.dashboard-stat-card {
  align-content: center;
  display: grid;
  gap: .25rem;
  justify-items: center;
  text-align: center;
}

.dashboard-sort-item.is-stat-card .dashboard-sort-card-content {
  align-items: stretch;
  display: grid;
  min-height: 100%;
}

.dashboard-stat-card strong {
  display: block;
  font-size: clamp(2rem, 4vw, 2.8rem);
  line-height: 1;
}

.dashboard-stat-card span {
  color: var(--muted);
  line-height: 1.3;
  max-width: 24ch;
  text-align: center;
}

.compact-absence-card {
  border-left-width: 4px;
  padding: .45rem .55rem;
  margin-bottom: .4rem;
}

.compact-absence-card .absence-card-head {
  gap: .45rem;
}

.compact-absence-card h3 {
  font-size: 1rem;
  line-height: 1.2;
}

.compact-absence-card .muted {
  font-size: .86rem;
}

.compact-absence-card p {
  margin: .12rem 0;
}

.compact-absence-card .absence-meta,
.compact-absence-card .absence-reason {
  font-size: .86rem;
  line-height: 1.3;
}

.compact-absence-card .badge {
  font-size: .75rem;
  padding: .12rem .35rem;
}

.compact-absence-card .absence-actions {
  margin-top: .25rem;
  gap: .3rem;
}

.compact-absence-card .button.small {
  min-height: 30px;
  padding: .25rem .45rem;
  font-size: .82rem;
}

.compact-card-list .compact-absence-card {
  padding: .5rem .65rem;
  margin-bottom: .45rem;
}

.compact-panel {
  padding: .8rem 1rem;
  background: #f8fafc;
  border-style: dashed;
}

.dashboard-view-controls {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(23, 32, 51, .045);
  display: grid;
  margin: .2rem 0 1rem;
  overflow: hidden;
  width: 100%;
}

.dashboard-control-row {
  align-items: center;
  display: grid;
  gap: .75rem 1rem;
  grid-template-columns: minmax(7.5rem, 10rem) minmax(0, 1fr);
  min-width: 0;
  padding: .7rem .85rem;
}

.dashboard-control-row + .dashboard-control-row {
  border-top: 1px solid var(--line);
}

.dashboard-control-label {
  color: var(--muted);
  font-size: .82rem;
  font-weight: 800;
  line-height: 1.2;
}

.dashboard-role-switch .row-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  justify-content: flex-start;
  min-width: 0;
}

.dashboard-view-controls .view-tabs {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  display: grid;
  gap: .3rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  max-width: 780px;
  padding: 0;
  width: 100%;
}

.dashboard-view-controls .view-tabs a {
  align-items: center;
  display: flex;
  justify-content: center;
  min-height: 42px;
  padding: .5rem .7rem;
  text-align: center;
}

.dashboard-view-controls-role-only {
  max-width: 680px;
}

.compact-list {
  margin: .5rem 0 0;
  padding-left: 1.2rem;
}

.compact-list li {
  margin: .2rem 0;
  color: var(--muted);
  font-size: .95rem;
}

.badge {
  display: inline-block;
  padding: .2rem .45rem;
  border-radius: 999px;
  font-size: .85rem;
  font-weight: 800;
  background: #eef2f6;
  color: var(--ink);
}

.badge.warning {
  background: var(--warn-bg);
  color: var(--warn);
}

.badge.success {
  background: var(--ok-bg);
  color: #146c43;
}

.badge.danger,
.status-cancelled {
  background: var(--danger-bg);
  color: var(--danger);
}

.status-active,
.status-changed {
  background: var(--ok-bg);
  color: #146c43;
}

.muted-badge {
  background: #eef2f6;
  color: var(--muted);
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--form-gap);
}

.form-grid.single {
  grid-template-columns: 1fr;
}

.form-control-error {
  border-color: var(--danger) !important;
  box-shadow: 0 0 0 1px var(--danger);
}

.form-field-error {
  color: var(--danger);
}

.form-values-restored {
  scroll-margin-top: 6rem;
}

label {
  display: grid;
  gap: .3rem;
  font-weight: 700;
}

label:has(> .required-marker) {
  column-gap: .22rem;
  grid-template-columns: fit-content(calc(100% - 1.2rem)) minmax(0, 1fr);
}

label:has(> .required-marker) > .required-marker {
  align-self: start;
  grid-column: 2;
  grid-row: 1;
  justify-self: start;
  line-height: inherit;
  margin: 0;
}

label:has(> .required-marker) > :is(input, select, textarea, .help-text, .form-field-error) {
  grid-column: 1 / -1;
}

label:has(> .required-marker) > .sr-only {
  position: absolute;
}

.compact-check {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-size: .9rem;
  font-weight: 700;
}

.compact-check input {
  width: auto;
  min-height: 0;
}

input,
select,
textarea {
  width: 100%;
  min-height: var(--control-height);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-control);
  padding: .55rem;
  font: inherit;
  background: white;
  color: var(--ink);
}

input:not([type="checkbox"]):not([type="radio"]),
select {
  height: var(--control-height);
}

select[multiple],
.product-center-multi-select {
  height: auto;
  min-height: 8rem;
}

textarea {
  min-height: 110px;
  resize: vertical;
}

.wide,
.actions,
.confirm-box {
  grid-column: 1 / -1;
}

.check {
  display: flex;
  align-items: center;
  gap: .5rem;
}

.check input {
  width: 22px;
  min-height: 22px;
}

.check.wide {
  align-items: flex-start;
}

.check-row {
  align-items: center;
  display: inline-flex;
  gap: .55rem;
  justify-self: start;
  line-height: 1.3;
  margin: 0;
  min-height: 42px;
  width: auto;
}

.check-row input[type="checkbox"],
.check-row input[type="radio"] {
  flex: 0 0 auto;
  height: 1.2rem;
  margin: 0;
  min-height: 0;
  padding: 0;
  width: 1.2rem;
}

.checkbox-line {
  align-items: flex-start;
  display: flex;
  gap: .55rem;
  line-height: 1.35;
  margin: 0;
  min-width: 0;
}

.checkbox-line input[type="checkbox"],
.checkbox-line input[type="radio"] {
  accent-color: var(--brand);
  flex: 0 0 auto;
  height: 1.15rem;
  margin: .08rem 0 0;
  min-height: 0;
  padding: 0;
  width: 1.15rem;
}

.checkbox-line small {
  color: var(--muted);
  font-weight: 500;
}

.choice-grid {
  display: grid;
  gap: .75rem;
}

.choice-card {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: .8rem .9rem;
  background: #fff;
  font-weight: 700;
  cursor: pointer;
}

.choice-card:has(input:checked) {
  border-color: var(--brand);
  background: var(--brand-soft);
}

.choice-card.is-selected {
  border-color: var(--brand);
  background: var(--brand-soft);
  cursor: default;
}

.administrative-completion-card {
  align-items: center;
  border-left: 4px solid var(--brand);
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  padding: .8rem 1rem;
}

.administrative-completion-card h2,
.administrative-completion-card p {
  margin: 0;
}

.administrative-completion-card p {
  margin-top: .3rem;
}

@media (max-width: 700px) {
  .administrative-completion-card {
    align-items: stretch;
    flex-direction: column;
  }

  .administrative-completion-card .button {
    width: 100%;
  }
}

.choice-card input[type="radio"] {
  width: 1.05rem;
  height: 1.05rem;
  min-height: 0;
  padding: 0;
  margin: .2rem 0 0;
  flex: 0 0 auto;
  accent-color: var(--brand);
}

.choice-card input[type="checkbox"] {
  accent-color: var(--brand);
  flex: 0 0 auto;
  height: 1.15rem;
  margin: .15rem 0 0;
  min-height: 0;
  padding: 0;
  width: 1.15rem;
}

.absence-management-toggle {
  max-width: 58rem;
}

.absence-management-status {
  color: var(--muted);
  font-size: .92rem;
  line-height: 1.45;
  margin: .65rem 0 0;
}

.absence-management-options {
  border-top: 1px solid var(--line);
  margin-top: 1.15rem;
  padding-top: 1.15rem;
}

.absence-management-options[hidden] {
  display: none;
}

.absence-management-options h4 {
  margin: 0 0 .45rem;
}

.absence-history-link {
  margin: 1rem 0 0;
}

.absence-history-list {
  display: grid;
  gap: .85rem;
}

.absence-history-card {
  background: #fff;
  border: 1px solid var(--line);
  border-left: 4px solid var(--brand);
  border-radius: 8px;
  padding: 1rem 1.1rem;
}

.absence-history-card > header {
  align-items: flex-start;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
}

.absence-history-card h2,
.absence-history-card header p,
.absence-history-card details p {
  margin: 0;
}

.absence-history-card h2 {
  font-size: 1.08rem;
}

.absence-history-card header p,
.absence-history-meta {
  color: var(--muted);
  font-size: .9rem;
}

.absence-history-meta {
  margin: .4rem 0 .75rem;
}

.absence-history-card details {
  border-top: 1px solid var(--line);
  margin-top: .8rem;
  padding-top: .65rem;
}

.absence-history-card summary {
  color: var(--text);
  cursor: pointer;
  font-weight: 700;
}

.absence-history-timeline {
  display: grid;
  gap: .7rem;
  list-style: none;
  margin: .8rem 0 0;
  padding: 0;
}

.absence-history-timeline li {
  border-left: 2px solid var(--line);
  padding-left: .8rem;
}

.absence-history-timeline li > div {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: .25rem .6rem;
}

.absence-history-timeline span,
.absence-history-timeline p {
  color: var(--muted);
  font-size: .86rem;
}

.absence-history-timeline p {
  line-height: 1.45;
  margin-top: .25rem;
  overflow-wrap: anywhere;
}

@media (max-width: 700px) {
  .absence-history-card > header {
    align-items: flex-start;
    flex-direction: column;
    gap: .5rem;
  }
}

.choice-main {
  display: grid;
  gap: .35rem;
  min-width: 0;
}

.choice-title {
  display: block;
  line-height: 1.25;
}

.choice-description {
  display: block;
  color: var(--muted);
  font-weight: 500;
  line-height: 1.4;
}

.choice-hint {
  margin: .2rem 0 0;
  font-size: .95rem;
}

.actions {
  display: flex;
  gap: .6rem;
  flex-wrap: wrap;
}

@media (max-width: 480px) {
  .container .actions {
    align-items: stretch;
    flex-direction: column;
  }

  .container .actions > :is(button, .button, form),
  .container .actions > form > :is(button, .button) {
    width: 100%;
  }
}

.filters {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
  align-items: end;
}

.control-center-filters {
  align-items: end;
  grid-template-columns: minmax(220px, 360px) max-content max-content;
  max-width: 860px;
}

.control-center-filters .check-row {
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: .5rem .7rem;
}

.control-center-filters .button {
  justify-self: start;
  min-width: 9rem;
}

.login-shell {
  min-height: min(680px, 72vh);
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(320px, .88fr);
  gap: clamp(1rem, 4vw, 2.8rem);
  align-items: center;
  padding: clamp(1rem, 3vw, 2rem) 0;
}

.login-shell-compact {
  min-height: min(560px, 68vh);
}

.login-panel {
  background: rgba(255, 255, 255, .94);
  border: 1px solid rgba(217, 224, 232, .9);
  border-radius: 14px;
  box-shadow: 0 22px 55px rgba(23, 32, 51, .1);
  padding: clamp(1rem, 2.4vw, 1.6rem);
  width: 100%;
}

.login-shell .login-panel:only-child {
  grid-column: 1 / -1;
  width: min(460px, 100%);
  justify-self: center;
}

.login-intro h1 {
  font-size: clamp(2rem, 4.6vw, 3.8rem);
  line-height: .98;
  margin-bottom: 1rem;
  margin-top: 0;
}

.login-intro p {
  color: var(--muted);
  font-size: 1.05rem;
  max-width: 68ch;
}

.login-alt-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin-top: 1.2rem;
}

.account-shell {
  align-items: start;
  display: grid;
  gap: clamp(1rem, 4vw, 2.8rem);
  grid-template-columns: minmax(0, .95fr) minmax(360px, 1.05fr);
  padding: clamp(1rem, 3vw, 2rem) 0;
}

.account-intro {
  background: var(--surface);
  border: 1px solid rgba(217, 224, 232, .92);
  border-radius: 18px;
  box-shadow: 0 22px 60px rgba(23, 32, 51, .08);
  overflow: hidden;
  padding: clamp(1.2rem, 3vw, 2.5rem);
  position: sticky;
  top: 1rem;
}

.account-intro::before {
  background: var(--brand);
  content: "";
  height: 4px;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}

.account-intro h1 {
  font-size: clamp(2rem, 4.8vw, 4.2rem);
  line-height: .98;
  margin: 0 0 1rem;
}

.account-intro p {
  color: var(--muted);
  font-size: 1.05rem;
  max-width: 68ch;
}

.account-note {
  background: rgba(255,255,255,.68);
  border: 1px solid rgba(149, 193, 30, .26);
  border-radius: 12px;
  padding: .8rem .9rem;
}

.account-feature-grid {
  display: grid;
  gap: .7rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 1rem;
}

.account-feature-grid article {
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(149, 193, 30, .22);
  border-radius: 8px;
  box-shadow: 0 9px 24px rgba(23, 32, 51, .055);
  min-width: 0;
  padding: .8rem;
}

.account-feature-grid h2 {
  font-size: .98rem;
  margin: .4rem 0 .2rem;
}

.account-feature-grid article p {
  font-size: .86rem;
  line-height: 1.35;
  margin: 0;
}

.account-feature-index {
  color: var(--brand-dark);
  font-size: .75rem;
  font-weight: 900;
  letter-spacing: 0;
}

.account-panel {
  background: rgba(255,255,255,.95);
  border: 1px solid rgba(217, 224, 232, .95);
  border-radius: 16px;
  box-shadow: 0 24px 60px rgba(23, 32, 51, .1);
  min-width: 0;
  padding: clamp(1rem, 2.4vw, 1.6rem);
}

.account-panel h1 {
  font-size: clamp(1.55rem, 3vw, 2.2rem);
  margin: 0 0 .35rem;
}

.account-create-form .profile-section {
  background: rgba(251, 252, 253, .92);
}

.error {
  color: var(--danger);
  font-weight: 800;
}

.flash-stack {
  margin-bottom: 1rem;
}

.flash,
.error-box {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: .75rem 1rem;
  margin: 0 0 .75rem;
  background: var(--surface);
  font-weight: 700;
}

.panel > .flash:last-child {
  margin-bottom: 0;
}

.flash-success {
  background: var(--ok-bg);
  color: #146c43;
  border-color: #b7e4ca;
}

.flash-warning {
  background: var(--warn-bg);
  color: var(--warn);
  border-color: #f2d98d;
}

.flash-error,
.error-box {
  background: var(--danger-bg);
  color: var(--danger);
  border-color: #f0b7b2;
}

.error-box h2 {
  margin: 0 0 .4rem;
  font-size: 1.05rem;
}

.error-box ul {
  margin: .25rem 0 0;
}

.has-error td {
  background: #fff0f0;
}

.has-warning td {
  background: #fff8e1;
}

.copy-link {
  display: inline-block;
  max-width: 100%;
  overflow-wrap: anywhere;
  background: #eef2f6;
  padding: .65rem;
  border-radius: 6px;
  font-weight: 800;
}

.count-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.count-list li {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .5rem 0;
  border-bottom: 1px solid var(--line);
}

.inline-info {
  display: inline-block;
  position: relative;
  vertical-align: middle;
}

.inline-info summary {
  align-items: center;
  background: var(--brand-soft);
  border: 1px solid #d7ebaa;
  border-radius: 999px;
  color: var(--brand-dark);
  cursor: pointer;
  display: inline-flex;
  font-size: .78rem;
  font-weight: 900;
  height: 1.45rem;
  justify-content: center;
  list-style: none;
  margin-left: .35rem;
  width: 1.45rem;
}

.inline-info summary::-webkit-details-marker {
  display: none;
}

.inline-info p {
  background: var(--ink);
  border-radius: 8px;
  box-shadow: 0 14px 32px rgba(23, 32, 51, .22);
  color: #fff;
  font-size: .9rem;
  font-weight: 600;
  left: 0;
  line-height: 1.4;
  margin: .4rem 0 0;
  max-width: min(320px, 86vw);
  padding: .65rem .75rem;
  position: absolute;
  top: 100%;
  width: max-content;
  z-index: 20;
}

.inline-info:not([open]) p {
  display: none;
}

.tooltip-wrap {
  align-items: center;
  display: inline-flex;
  gap: .25rem;
  position: relative;
  white-space: nowrap;
}

.tooltip-trigger {
  align-items: center;
  background: var(--brand-soft);
  border: 1px solid #d7ebaa;
  border-radius: 999px;
  color: var(--brand-dark);
  display: inline-flex;
  font-size: .72rem;
  font-weight: 900;
  height: 1.15rem;
  justify-content: center;
  line-height: 1;
  width: 1.15rem;
}

.tooltip-box {
  background: var(--ink);
  border-radius: 8px;
  box-shadow: 0 14px 32px rgba(23, 32, 51, .22);
  color: #fff;
  display: none;
  font-size: .86rem;
  font-weight: 600;
  left: 0;
  line-height: 1.35;
  max-width: min(320px, 80vw);
  min-width: 240px;
  padding: .6rem .7rem;
  position: absolute;
  top: calc(100% + .45rem);
  white-space: normal;
  z-index: 25;
}

.tooltip-wrap:hover .tooltip-box,
.tooltip-trigger:focus + .tooltip-box {
  display: block;
}

.grants-table-wrap {
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: block;
  max-width: 100%;
  overflow-y: auto;
  overflow-x: auto;
  padding-bottom: .35rem;
  position: relative;
}

.grants-table-wrap table {
  table-layout: auto;
  min-width: 1680px;
  width: max-content;
}

.grants-table-wrap th,
.grants-table-wrap td {
  background-clip: padding-box;
  max-width: none;
  padding: .62rem .75rem;
  overflow-wrap: normal;
  white-space: nowrap;
  word-break: normal;
}

.grants-table-wrap a,
.grants-table-wrap span {
  overflow-wrap: normal;
  white-space: nowrap;
  word-break: normal;
}

.grants-table-wrap thead th {
  background: #eef2f6;
  position: sticky;
  top: 0;
  z-index: 4;
}

.grants-table-wrap .tooltip-box {
  overflow-wrap: normal;
  white-space: normal;
  word-break: normal;
}

.readable {
  max-width: 820px;
}

.readable hr {
  border: 0;
  border-top: 1px solid var(--line);
  margin: 2rem 0;
}

.page-title .actions {
  flex-wrap: wrap;
}

.view-tabs {
  display: inline-flex;
  gap: .25rem;
  flex-wrap: wrap;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 8px 22px rgba(23, 32, 51, .04);
  max-width: 100%;
  margin: 0 0 1rem;
  padding: .28rem;
}

.view-tabs a {
  border-radius: 9px;
  color: var(--ink);
  font-weight: 800;
  padding: .58rem .82rem;
  text-decoration: none;
  white-space: nowrap;
}

.view-tabs a[aria-current="page"] {
  background: var(--brand);
  color: var(--ink);
}

.measure-switcher {
  align-items: end;
  display: flex;
  gap: .5rem;
  max-width: 520px;
}

.measure-switcher label {
  flex: 1;
}

.measure-switcher.is-loading select {
  opacity: .65;
}

.measure-switcher-status {
  color: var(--muted);
  font-size: .9rem;
  min-width: 4rem;
}

.person-context-bar {
  align-items: center;
  background: var(--brand-soft);
  border: 1px solid rgba(149, 193, 30, .45);
  border-radius: 6px;
  color: var(--muted);
  display: flex;
  font-size: .82rem;
  gap: .75rem;
  justify-content: space-between;
  margin: 0 0 .75rem;
  padding: .4rem .6rem;
}

.person-context-bar form,
.person-context-bar label {
  align-items: center;
  display: flex;
  gap: .45rem;
  margin: 0;
}

.person-context-bar select {
  min-height: 34px;
  padding: .25rem 2rem .25rem .45rem;
}

@media (max-width: 620px) {
  .dashboard-control-row {
    grid-template-columns: 1fr;
    padding: .7rem;
  }

  .dashboard-role-switch .row-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .dashboard-role-switch .button {
    width: 100%;
  }

  .dashboard-view-controls .view-tabs {
    grid-template-columns: 1fr;
    max-width: none;
  }

  .control-center-filters {
    grid-template-columns: 1fr;
    max-width: none;
  }

  .control-center-filters .check-row,
  .control-center-filters .button {
    justify-self: stretch;
    width: 100%;
  }

  .person-context-bar {
    align-items: stretch;
    flex-direction: column;
  }

  .person-context-bar label,
  .person-context-bar select {
    width: 100%;
  }
}

.public-portal .container {
  width: min(1280px, calc(100% - 2rem));
  margin-top: 0;
}

.public-portal .app-footer {
  width: min(1280px, calc(100% - 2rem));
}

.public-entry-hero {
  align-items: center;
  display: flex;
  min-height: 560px;
  padding: 4.5rem 0 3.75rem;
}

.public-entry-copy {
  max-width: 920px;
  min-width: 0;
}

.public-entry-copy h1 {
  font-size: 4.5rem;
  line-height: .98;
  margin: .35rem 0 1.35rem;
  max-width: 900px;
}

.public-entry-lead {
  color: var(--ink);
  font-size: 1.4rem;
  font-weight: 750;
  line-height: 1.38;
  max-width: 44rem;
}

.public-entry-copy > p:not(.public-kicker):not(.public-entry-lead) {
  color: var(--muted);
  font-size: 1.08rem;
  max-width: 45rem;
}

.public-entry-visual {
  align-items: center;
  border-left: 1px solid var(--line);
  display: grid;
  gap: 1.25rem;
  justify-items: center;
  min-width: 0;
  padding: 3.5rem 0 3.5rem 3.5rem;
  text-align: center;
}

.public-entry-visual img {
  display: block;
  height: auto;
  max-width: 100%;
  width: 410px;
}

.public-entry-visual span {
  color: var(--muted);
  font-size: .92rem;
  font-weight: 700;
  max-width: 18rem;
}

.public-journey {
  border-top: 1px solid var(--line);
  padding: 2.75rem 0 4rem;
}

.public-journey-heading {
  max-width: 720px;
}

.public-journey-heading h2 {
  font-size: 2rem;
  line-height: 1.12;
  margin: .25rem 0 0;
}

.public-journey ol {
  display: grid;
  gap: 2rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  list-style: none;
  margin: 2.25rem 0 0;
  padding: 0;
}

.public-journey li {
  border-top: 3px solid var(--brand);
  display: grid;
  gap: .8rem;
  grid-template-columns: 2.4rem minmax(0, 1fr);
  padding-top: 1.1rem;
}

.public-journey li > span {
  align-items: center;
  background: var(--brand-soft);
  border-radius: 50%;
  color: var(--brand-dark);
  display: inline-flex;
  font-size: .9rem;
  font-weight: 900;
  height: 2.4rem;
  justify-content: center;
  width: 2.4rem;
}

.public-journey strong {
  display: block;
  font-size: 1.08rem;
  margin-top: .25rem;
}

.public-journey p {
  color: var(--muted);
  margin: .35rem 0 0;
}

.public-login-shell {
  min-height: 680px;
  padding: 3.5rem 0 4.5rem;
}

.public-login-shell .login-intro {
  max-width: 700px;
}

.public-login-shell .login-intro h1 {
  font-size: 3.8rem;
}

.public-login-shell .login-panel {
  border-radius: 8px;
  padding: 1.5rem;
}

.login-intro-lead {
  color: var(--ink) !important;
  font-size: 1.2rem !important;
  font-weight: 720;
}

.login-benefits {
  display: grid;
  gap: .7rem;
  list-style: none;
  margin: 1.5rem 0 0;
  max-width: 40rem;
  padding: 0;
}

.login-benefits li {
  border-left: 3px solid var(--brand);
  color: var(--muted);
  padding-left: .8rem;
}

.login-help-links {
  border-top: 1px solid var(--line);
  display: grid;
  gap: .55rem;
  margin-top: 1.25rem;
  padding-top: 1rem;
}

.public-directory-header {
  max-width: 780px;
  padding: 3.5rem 0 1.8rem;
}

.public-directory-header h1 {
  font-size: 3.25rem;
  line-height: 1;
  margin: .3rem 0 .9rem;
}

.public-directory-header > p:last-child,
.public-result-heading p {
  color: var(--muted);
  font-size: 1.04rem;
}

.public-filter-section {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 1rem;
}

.public-filter-actions {
  display: flex;
  gap: .55rem;
}

.public-result-heading {
  align-items: end;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin: 2.5rem 0 1rem;
}

.public-result-heading h2,
.public-result-heading p {
  margin: 0;
}

.registration-measure-list {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding-bottom: 3.5rem;
}

.registration-measure-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.registration-measure-card:hover,
.registration-measure-card:focus-within {
  border-color: rgba(49, 68, 0, .45);
  box-shadow: 0 14px 32px rgba(23, 32, 51, .09);
  transform: translateY(-2px);
}

.registration-card-media {
  aspect-ratio: 16 / 7;
  background: #edf1f4;
  border-bottom: 1px solid var(--line);
  display: block;
  overflow: hidden;
  position: relative;
  text-decoration: none;
}

.registration-card-media > img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.registration-card-media-fallback {
  align-items: center;
  background: #f3f5f7;
  display: grid;
  height: 100%;
  justify-items: center;
  padding: 1.5rem;
}

.registration-card-media-fallback span {
  color: #677384;
  font-size: 1.05rem;
  font-weight: 850;
  letter-spacing: .02em;
}

.registration-card-type {
  background: rgba(255, 255, 255, .94);
  border: 1px solid rgba(217, 224, 232, .9);
  border-radius: 999px;
  bottom: .7rem;
  color: var(--ink);
  font-size: .76rem;
  font-weight: 850;
  left: .75rem;
  line-height: 1;
  padding: .42rem .65rem;
  position: absolute;
}

.registration-card-content {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
  padding: 1.15rem;
}

.registration-card-provider {
  color: var(--brand-dark);
  font-size: .76rem;
  font-weight: 850;
  margin: 0 0 .35rem;
  text-transform: uppercase;
}

.registration-card-title {
  font-size: 1.45rem;
  line-height: 1.15;
  margin: 0;
  overflow-wrap: anywhere;
}

.registration-card-title a {
  color: var(--ink);
  text-decoration: none;
}

.registration-card-title a:hover,
.registration-card-title a:focus {
  color: var(--brand-dark);
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: .2em;
}

.registration-card-category {
  color: var(--muted);
  font-size: .86rem;
  margin: .35rem 0 0;
}

.registration-card-meta {
  display: grid;
  gap: .65rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 1rem 0 0;
}

.registration-card-meta div {
  border-left: 2px solid var(--line);
  min-width: 0;
  padding-left: .6rem;
}

.registration-card-meta dt {
  color: var(--muted);
  font-size: .7rem;
  font-weight: 850;
  text-transform: uppercase;
}

.registration-card-meta dd {
  font-size: .88rem;
  font-weight: 700;
  line-height: 1.35;
  margin: .18rem 0 0;
  overflow-wrap: anywhere;
}

.registration-card-description {
  color: var(--muted);
  display: -webkit-box;
  font-size: .92rem;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  margin: 1rem 0 0;
  overflow: hidden;
}

.registration-card-coorganizers {
  color: var(--muted);
  font-size: .8rem;
  margin: .7rem 0 0;
}

.registration-card-footer {
  align-items: center;
  border-top: 1px solid var(--line);
  display: flex;
  gap: .75rem;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 1rem;
}

.capacity-indicator {
  align-items: center;
  color: #245c3d;
  display: inline-flex;
  font-size: .82rem;
  font-weight: 850;
  gap: .45rem;
  line-height: 1.25;
}

.capacity-status-dot {
  background: #2f855a;
  border-radius: 50%;
  flex: 0 0 auto;
  height: .58rem;
  width: .58rem;
}

.capacity-limited,
.capacity-low {
  color: #7a4a00;
}

.capacity-limited .capacity-status-dot,
.capacity-low .capacity-status-dot {
  background: #c17b00;
}

.capacity-full {
  color: #8f1f1f;
}

.capacity-full .capacity-status-dot {
  background: #b42318;
}

.measure-public-image-setting {
  align-items: start;
  display: grid;
  gap: 1rem;
  grid-template-columns: minmax(220px, .72fr) minmax(0, 1.28fr);
}

.measure-public-image-preview,
.measure-public-image-empty {
  border: 1px solid var(--line);
  border-radius: 8px;
  margin: 0;
  min-width: 0;
  overflow: hidden;
}

.measure-public-image-preview img {
  aspect-ratio: 16 / 9;
  display: block;
  object-fit: cover;
  width: 100%;
}

.measure-public-image-preview figcaption,
.measure-public-image-empty {
  color: var(--muted);
  font-size: .82rem;
  padding: .7rem;
}

.measure-public-image-empty {
  display: grid;
  gap: .3rem;
}

.measure-public-image-empty strong {
  color: var(--ink);
}

.measure-public-image-controls {
  display: grid;
  gap: .85rem;
  min-width: 0;
}

@media (max-width: 1000px) {
  .public-entry-hero {
    min-height: 0;
    padding-top: 3.5rem;
  }

  .public-journey ol {
    gap: 1.25rem;
  }

  .registration-measure-list {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .public-portal .container,
  .public-portal .app-footer {
    width: min(100% - 1.25rem, 1280px);
  }

  .public-entry-hero {
    padding: 2.5rem 0;
  }

  .public-entry-copy h1 {
    font-size: 2.9rem;
  }

  .public-login-shell .login-intro h1 {
    font-size: 2rem;
  }

  .public-entry-lead {
    font-size: 1.16rem;
  }

  .public-journey {
    padding-bottom: 2.75rem;
  }

  .public-journey ol {
    grid-template-columns: 1fr;
  }

  .public-directory-header {
    padding-top: 2.5rem;
  }

  .public-directory-header h1 {
    font-size: 2.45rem;
  }

  .public-result-heading,
  .registration-card-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .public-result-heading {
    gap: .35rem;
  }

  .registration-card-meta {
    grid-template-columns: 1fr;
  }

  .registration-card-footer .button {
    width: 100%;
  }

  .measure-public-image-setting {
    grid-template-columns: 1fr;
  }
}

.registration-form {
  display: grid;
  gap: 1rem;
}

.registration-progress {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .35rem;
}

.registration-progress button {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  cursor: pointer;
  font-size: .9rem;
  font-weight: 700;
  min-height: 36px;
  padding: .25rem .55rem;
}

.registration-progress button.is-current {
  background: var(--brand);
  border-color: var(--brand);
  color: var(--ink);
}

.registration-progress button.is-complete {
  background: var(--brand-soft);
  border-color: var(--brand);
  color: var(--brand-dark);
}

.step-message {
  color: var(--danger);
  font-weight: 800;
  margin: -.3rem 0 0;
  min-height: 1.4rem;
}

.registration-step {
  border: 1px solid var(--line);
  border-radius: 8px;
  margin: 0;
  padding: 1rem;
  min-width: 0;
}

.registration-step[hidden],
[data-staff-fields][hidden],
[data-certificate-checked-fields][hidden],
[data-certificate-request-fields][hidden],
[data-juleica-detail-fields][hidden],
[data-employer-certificate-fields][hidden],
[data-destination-editor][hidden],
[data-proactive-destination][hidden],
[data-guardian-fields][hidden],
[data-adult-emergency-fields][hidden],
[data-church-district-field][hidden],
[data-church-congregation-section][hidden],
[data-church-congregation-custom][hidden],
[data-staff-price-field][hidden],
[data-own-email-missing-field][hidden],
[data-step-prev][hidden],
[data-step-next][hidden],
[data-registration-submit][hidden] {
  display: none !important;
}

.registration-step legend {
  font-weight: 800;
  padding: 0 .35rem;
}

.registration-step details {
  border: 1px dashed var(--line);
  border-radius: 8px;
  padding: .75rem;
}

.registration-section-stack {
  display: grid;
  gap: .8rem;
}

.subform-section {
  border: 1px solid var(--line);
  border-radius: 8px;
  margin: 0 0 .9rem;
  padding: .85rem;
}

.subform-section h2 {
  font-size: 1.05rem;
  margin: 0 0 .7rem;
}

.health-details-section,
.health-insurance-section,
.minor-safety-section {
  min-width: 0;
}

.health-detail-fields {
  display: grid;
  gap: .8rem;
  min-width: 0;
}

.health-privacy-notice {
  margin-bottom: 1rem;
}

.health-privacy-notice p {
  margin: .25rem 0 0;
}

.health-access-management {
  margin-bottom: 1rem;
}

.health-access-management > summary {
  align-items: flex-start;
  cursor: pointer;
  display: flex;
  flex-wrap: wrap;
  gap: .25rem .75rem;
  justify-content: space-between;
}

.health-access-management > summary .muted {
  font-size: .88rem;
}

.health-access-list {
  display: grid;
  gap: .5rem;
  list-style: none;
  margin: .8rem 0 0;
  padding: 0;
}

.health-access-row {
  align-items: center;
  border-top: 1px solid var(--line);
  display: flex;
  gap: .75rem;
  justify-content: space-between;
  min-width: 0;
  padding-top: .65rem;
}

.health-access-row > span {
  display: grid;
  min-width: 0;
}

.health-access-row small {
  color: var(--muted);
  overflow-wrap: anywhere;
}

.health-access-row form {
  flex: 0 0 auto;
  margin: 0;
}

.health-details-list > h2 {
  margin-bottom: .2rem;
}

.health-person-card {
  border-top: 1px solid var(--line);
  margin: 0;
  padding: 0;
}

.health-person-card > summary {
  align-items: center;
  cursor: pointer;
  display: grid;
  gap: .6rem;
  grid-template-columns: minmax(0, 1fr) auto;
  list-style-position: outside;
  padding: .75rem .2rem;
}

.health-person-card > summary > span:first-child {
  display: grid;
  min-width: 0;
}

.health-person-card > summary small {
  color: var(--muted);
  font-size: .86rem;
}

.health-person-card > summary .badge {
  max-width: min(100%, 20rem);
  white-space: normal;
}

.health-detail-grid {
  display: grid;
  gap: .75rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
  margin: 0 0 .9rem;
  padding: 0 .2rem;
}

.health-detail-item {
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 6px;
  min-width: 0;
  padding: .65rem .75rem;
}

.health-detail-item dt {
  color: var(--muted);
  font-size: .82rem;
  font-weight: 700;
  margin-bottom: .18rem;
}

.health-detail-item dd {
  margin: 0;
  overflow-wrap: anywhere;
}

.health-category-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
}

.health-insurance-section h3 {
  font-size: .98rem;
  margin: .35rem 0 0;
}

@media (max-width: 640px) {
  .health-access-row {
    align-items: stretch;
    flex-direction: column;
  }

  .health-access-row form,
  .health-access-row .button {
    width: 100%;
  }

  .health-person-card > summary {
    align-items: start;
    grid-template-columns: minmax(0, 1fr);
  }
}

.help-text {
  color: var(--muted);
  display: block;
  font-size: .9rem;
  font-weight: 500;
  line-height: 1.35;
}

.required-note {
  color: var(--muted);
  font-size: .9rem;
  margin: -.2rem 0 .4rem;
}

.required-marker {
  color: var(--danger);
  font-weight: 900;
}

.required-marker[hidden] {
  display: none !important;
}

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

.staff-fields {
  border-top: 1px solid var(--line);
  display: grid;
  gap: .8rem;
  margin-top: .4rem;
  padding-top: .9rem;
}

.staff-subsection {
  border-left: 4px solid var(--brand);
  border-radius: 6px;
  background: #fbfcfd;
  display: grid;
  gap: .65rem;
  padding: .75rem .85rem;
}

.staff-subsection h3 {
  font-size: 1rem;
  margin: 0;
}

.yes-no-group {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem .9rem;
  align-items: center;
}

.yes-no-label {
  font-weight: 800;
  margin-right: .25rem;
}

.certificate-request-block {
  border-top: 1px dashed var(--line);
  display: grid;
  gap: .5rem;
  padding-top: .65rem;
}

.conditional-fields {
  background: #fbfcfd;
  border: 1px dashed var(--line);
  border-radius: 8px;
  padding: .75rem;
}

.role-hint {
  color: var(--muted);
  font-size: .86rem;
  line-height: 1.35;
  margin: -.25rem 0 .75rem;
  padding: 0;
}

.role-hint p {
  margin: 0;
}

.role-hint p + p {
  margin-top: .35rem;
}

.session-timer {
  align-items: center;
  background: var(--warn-bg);
  border: 1px solid rgba(154, 103, 0, .25);
  border-radius: 999px;
  color: var(--warn);
  display: flex;
  font-size: .72rem;
  font-weight: 700;
  gap: .25rem;
  padding: .28rem .48rem;
}

.session-timer[hidden] {
  display: none;
}

@media (min-width: 1321px) and (max-width: 1500px) {
  .desktop-actions .header-user-name {
    font-size: .72rem;
  }

  .desktop-actions .global-search-form {
    width: 8.5rem;
  }
}

.news-card h2,
.packlist-card h2 {
  margin-top: 0;
}

.news-list {
  display: grid;
  gap: .7rem;
}

.news-post {
  border-top: 1px solid var(--line);
  padding-top: .65rem;
}

.news-post:first-child {
  border-top: 0;
  padding-top: 0;
}

.news-post h3 {
  font-size: 1.05rem;
  margin: .1rem 0 .2rem;
}

.news-post p {
  margin: 0;
  overflow-wrap: anywhere;
}

.news-post-meta {
  color: var(--muted);
  font-size: .82rem;
}

.packlist {
  display: grid;
  gap: .35rem;
  list-style: none;
  margin: .65rem 0 0;
  padding: 0;
}

.packlist-category {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 800;
  margin-top: .35rem;
  text-transform: uppercase;
}

.packlist-check {
  align-items: flex-start;
  border: 1px solid var(--line);
  border-radius: 6px;
  display: flex;
  gap: .55rem;
  padding: .45rem .55rem;
}

.packlist-check span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.packlist-status {
  color: var(--muted);
  font-size: .82rem;
  min-height: 1.2rem;
}

.current-target-section {
  border-top: 1px solid var(--line);
  padding: .75rem 0;
}

.current-target-section h2 {
  font-size: 1.15rem;
  margin: 0 0 .2rem;
}

.current-target-section summary {
  align-items: baseline;
  cursor: pointer;
  display: flex;
  gap: .6rem;
  justify-content: space-between;
  font-weight: 800;
}

.current-admin-list {
  display: grid;
  gap: .6rem;
  margin-top: .75rem;
}

.current-admin-item {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: .75rem;
}

.current-admin-item.compact {
  padding: .6rem;
}

.current-tabset {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-top: .9rem;
}

.current-tab-control {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.current-tab-label {
  border: 1px solid var(--line);
  border-radius: 999px;
  cursor: pointer;
  font-weight: 800;
  padding: .45rem .8rem;
}

.current-tab-control:focus-visible + .current-tab-label {
  outline: 3px solid rgba(149, 193, 30, .35);
  outline-offset: 2px;
}

#current-tab-participant:checked + .current-tab-label,
#current-tab-staff:checked + .current-tab-label,
#current-tab-lead:checked + .current-tab-label {
  background: var(--brand);
  border-color: var(--brand);
  color: var(--ink);
}

.current-tab-panels {
  flex-basis: 100%;
  min-width: 0;
}

.current-tab-panel {
  display: none;
}

#current-tab-participant:checked ~ .current-tab-panels .current-tab-panel-participant,
#current-tab-staff:checked ~ .current-tab-panels .current-tab-panel-staff,
#current-tab-lead:checked ~ .current-tab-panels .current-tab-panel-lead {
  display: block;
}

.profile-controls {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-bottom: .9rem;
}

.profile-form {
  display: grid;
  gap: .8rem;
}

.profile-section {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: 0 2px 10px rgba(23, 32, 51, .04);
  overflow: hidden;
  padding: 0;
}

.profile-section > summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  gap: .6rem;
  font-weight: 800;
  justify-content: space-between;
  list-style: none;
  padding: .85rem 1rem;
}

.profile-section > summary::-webkit-details-marker,
.profile-subcard summary::-webkit-details-marker {
  display: none;
}

.profile-section > summary::after {
  color: var(--brand-dark);
  content: "⌄";
  flex: 0 0 auto;
  font-size: 1rem;
  transform: rotate(-90deg);
  transition: transform .16s ease;
}

.profile-section[open] {
  border-color: #cbd7df;
}

.profile-section[open] > summary {
  background: #fbfcfd;
  border-bottom: 1px solid var(--line);
  margin-bottom: 0;
}

.profile-section[open] > summary::after {
  transform: rotate(0deg);
}

.profile-section > .form-grid,
.profile-section > .muted,
.profile-section > .profile-subcard,
.profile-section > .subform-section,
.profile-section > .profile-delete-request {
  margin: .85rem 1rem 1rem;
}

.profile-section > .form-grid {
  width: auto;
}

.profile-subcard {
  background: #fbfcfd;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: .75rem;
}

.profile-subcard h3 {
  font-size: 1rem;
  margin: 0 0 .25rem;
}

.profile-delete-request summary {
  cursor: pointer;
  font-weight: 800;
  list-style: none;
}

.profile-delete-request summary::after {
  content: " öffnen";
  color: var(--muted);
  font-size: .85rem;
  font-weight: 650;
}

.profile-delete-request[open] summary::after {
  content: " schließen";
}

.profile-delete-request label {
  margin-top: .65rem;
}

.form-timer {
  align-items: center;
  background: var(--brand-soft);
  border: 1px solid var(--line);
  border-radius: 8px;
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-bottom: .75rem;
  padding: .55rem .7rem;
}

.payment-list {
  display: grid;
  gap: .55rem;
}

.payment-row {
  align-items: end;
  background: #fff;
  border: 1px solid var(--line);
  border-left: 6px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: .5rem;
  grid-template-columns: minmax(190px, 1.45fr) repeat(5, minmax(105px, 1fr)) auto;
  padding: .55rem;
}

.payment-status-open,
.payment-status-overdue {
  background: #fff5f5;
  border-left-color: var(--danger);
}

.payment-status-partial {
  background: #fff8e1;
  border-left-color: #d69e2e;
}

.payment-status-paid {
  background: #f0fff4;
  border-left-color: #2f855a;
}

.payment-participation-withdrawn {
  background: #fbf5ff;
  border-left-color: #805ad5;
}

.payment-participation-removed {
  background: #f4f8fb;
  border-left-color: #4a6f8a;
}

.grant-row-inactive td {
  color: var(--muted);
  text-decoration: line-through;
}

.payment-inactive-section {
  border-top: 1px solid var(--line);
  margin-top: 1.2rem;
  padding-top: 1rem;
}

.payment-inactive-section h2 {
  font-size: 1.1rem;
  margin-bottom: .25rem;
}

.payment-participation-note {
  color: var(--ink);
  display: block;
  font-size: .86rem;
  font-weight: 850;
  margin-bottom: .2rem;
}

.payment-main,
.payment-contact-details {
  min-width: 0;
}

.payment-main span,
.payment-contact-details {
  color: var(--muted);
  font-size: .85rem;
  overflow-wrap: anywhere;
}

.payment-main span {
  display: block;
}

.payment-row label {
  font-size: .82rem;
  margin: 0;
}

.payment-row input,
.payment-row select,
.payment-row textarea {
  height: 2.5rem;
  min-width: 0;
  width: 100%;
}

.payment-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
}

.payment-note textarea {
  min-height: 2.5rem;
  resize: vertical;
}

.payment-contact-details {
  border-top: 1px dashed var(--line);
  grid-column: 1 / -1;
  padding-top: .35rem;
}

.payment-contact-details summary {
  color: var(--brand-strong);
  cursor: pointer;
  font-weight: 800;
}

.compact-detail-list {
  font-size: .86rem;
  margin: .4rem 0 0;
}

.detail-list {
  display: grid;
  gap: .35rem .8rem;
  grid-template-columns: max-content 1fr;
}

.detail-list dt {
  color: var(--muted);
  font-weight: 800;
}

.detail-list dd {
  margin: 0;
}

.mail-template-layout {
  align-items: start;
  display: grid;
  gap: 1rem;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 320px);
}

.mail-template-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  justify-content: flex-end;
  margin-bottom: .75rem;
}

.mail-template-card-list {
  display: grid;
  gap: .8rem;
}

.mail-template-card {
  margin: 0;
  padding: 0;
}

.mail-template-card > summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  list-style: none;
  min-height: 4.4rem;
  padding: 1rem 1.15rem;
}

.mail-template-card > summary::-webkit-details-marker {
  display: none;
}

.mail-template-card > summary::after {
  color: var(--brand-strong);
  content: "+";
  flex: 0 0 auto;
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1;
}

.mail-template-card[open] > summary::after {
  content: "−";
}

.mail-template-card > summary > span:first-child {
  display: grid;
  gap: .25rem;
  min-width: 0;
}

.mail-template-card > summary strong {
  font-size: 1.05rem;
}

.mail-template-card > summary small,
.mail-template-state {
  color: var(--muted);
  font-size: .86rem;
}

.mail-template-state {
  margin-left: auto;
  white-space: nowrap;
}

.mail-template-card-content {
  border-top: 1px solid var(--line);
  padding: 1.1rem;
}

.mail-template-card:not([open]) .mail-template-card-content {
  display: none;
}

.placeholder-sidebar {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 1rem;
  position: sticky;
  top: 5.5rem;
}

.placeholder-list {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  margin-top: .5rem;
}

.placeholder-copy {
  background: var(--brand-soft);
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--ink);
  cursor: pointer;
  font: inherit;
  font-size: .82rem;
  padding: .25rem .45rem;
}

.manual-person-list {
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 0;
  max-height: 26rem;
  overflow: auto;
}

.manual-person-row {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: .6rem;
  grid-template-columns: auto 1fr;
  margin: 0;
  padding: .55rem .65rem;
}

.manual-person-row:last-child {
  border-bottom: 0;
}

.manual-person-row input {
  height: 1.2rem;
  min-height: 1.2rem;
  width: 1.2rem;
}

.manual-person-row small {
  color: var(--muted);
  display: block;
  font-weight: 650;
  margin-top: .1rem;
}

.manual-email-preview h2 {
  font-size: 1.08rem;
  margin-top: 1rem;
}

.manual-mail-subject-preview,
.mail-preview-text {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  padding: .7rem;
  white-space: pre-wrap;
}

.compact-choice {
  min-height: 0;
}

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

  .topbar {
    align-items: center;
  }

  .brand-logo {
    max-height: 42px;
    width: clamp(135px, 42vw, 210px);
  }

  .main-nav,
  .desktop-actions {
    display: none;
  }

  .nav-toggle {
    align-items: center;
    background: var(--brand);
    border: 1px solid var(--brand);
    border-radius: 8px;
    color: var(--ink);
    display: inline-flex;
    font: inherit;
    font-weight: 800;
    justify-content: center;
    margin-left: auto;
    min-height: 42px;
    padding: .45rem .85rem;
  }

  .nav-toggle:hover,
  .nav-toggle[aria-expanded="true"] {
    background: var(--brand-hover);
  }

  .mobile-nav:not([hidden]) {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 0 0 10px 10px;
    box-shadow: 0 18px 36px rgba(23, 32, 51, .18);
    display: block !important;
    left: .75rem;
    max-height: calc(100vh - 74px);
    overflow: auto;
    position: fixed;
    right: .75rem;
    top: 64px;
    z-index: 120;
  }

  .mobile-nav-inner {
    display: grid;
    gap: .45rem;
    margin: 0 auto;
    padding: .75rem;
    width: min(1180px, 100%);
  }

  .mobile-nav-group {
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
  }

  .mobile-nav-group summary {
    cursor: pointer;
    font-weight: 800;
    list-style: none;
    padding: .75rem .85rem;
  }

  .mobile-nav-group summary::-webkit-details-marker {
    display: none;
  }

  .mobile-nav-group summary::after {
    content: "+";
    float: right;
    font-weight: 900;
  }

  .mobile-nav-group[open] summary::after {
    content: "-";
  }

  .mobile-nav-links {
    border-top: 1px solid var(--line);
    display: grid;
    gap: .15rem;
    padding: .35rem;
  }

  .mobile-nav-links a {
    border-radius: 6px;
    color: var(--ink);
    padding: .7rem .75rem;
    text-decoration: none;
  }

  .mobile-direct-link {
    border-radius: 6px;
    color: var(--ink);
    display: block;
    font-weight: 800;
    padding: .75rem;
    text-decoration: none;
  }

  .mobile-nav-links a[aria-current="page"],
  .mobile-direct-link[aria-current="page"],
  .mobile-direct-link:hover,
  .mobile-direct-link:focus,
  .mobile-nav-links a:hover,
  .mobile-nav-links a:focus {
    background: var(--brand-soft);
  }

  .mobile-actions {
    align-items: stretch;
    border-top: 1px solid var(--line);
    display: grid;
    gap: .6rem;
    margin: .4rem 0 0;
    padding-top: .8rem;
    white-space: normal;
  }

  .mobile-actions .header-user-name {
    font-size: .84rem;
    max-width: none;
  }

  .mobile-actions .global-search-form {
    width: 100%;
  }

  .mobile-actions .logout-form {
    width: 100%;
  }

  .mobile-actions .logout-form .button {
    width: 100%;
  }
}

@media (max-width: 980px) {
  .public-hero {
    grid-template-columns: 1fr;
  }

  .account-shell {
    grid-template-columns: 1fr;
  }

  .account-intro {
    position: relative;
    top: auto;
  }

  .payment-row,
  .mail-template-layout {
    grid-template-columns: 1fr;
  }

  .placeholder-sidebar {
    position: static;
  }
}

@media (max-width: 620px) {
  .mail-template-card > summary {
    align-items: flex-start;
  }

  .mail-template-state {
    display: none;
  }
}

.consent-field {
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: .55rem;
  margin: 0;
  padding: .85rem;
}

.consent-field legend {
  font-weight: 800;
  padding: 0 .35rem;
}

.consent-field p {
  color: var(--muted);
  margin: 0;
}

.registration-step-controls {
  border-top: 1px solid var(--line);
  padding-top: .8rem;
}

.terms-box {
  max-height: 260px;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: .8rem;
  background: #fbfcfd;
  margin-bottom: .8rem;
}

.terms-box h2 {
  font-size: 1rem;
  margin: 0 0 .35rem;
}

.form-section-title {
  margin: .4rem 0 0;
}

.profile-registration-row .dashboard-absence-badges {
  align-items: center;
  gap: .35rem;
}

.registration-options {
  grid-column: 1 / -1;
  margin-top: .15rem;
  min-width: 0;
}

.registration-options summary {
  color: var(--brand-strong);
  cursor: pointer;
  font-size: .86rem;
  font-weight: 800;
}

.registration-options[open] {
  border-top: 1px dashed var(--line);
  padding-top: .45rem;
}

.registration-options p {
  margin: .35rem 0;
}

.row-actions form {
  display: inline-flex;
  margin: 0;
}

.table-wrap form label {
  margin: 0;
}

.table-wrap textarea {
  min-height: 4.8rem;
}

code,
pre {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

@media (max-width: 850px) {
  .footer-meta {
    align-items: flex-start;
    flex-direction: column;
  }

  .footer-links {
    justify-content: flex-start;
  }

  .grid.two,
  .grid.three,
  .stats,
  .filters,
  .form-grid,
  .login-shell,
  .account-shell {
    grid-template-columns: 1fr;
  }

  .login-shell {
    min-height: 0;
  }

  .account-feature-grid {
    grid-template-columns: 1fr;
  }

  .compact-absence-card .absence-card-head {
    flex-direction: column;
  }

  .compact-absence-card .absence-card-badges {
    text-align: left;
  }

  .dashboard-absence-row {
    grid-template-columns: minmax(0, 1fr) minmax(0, .9fr);
  }

  .dashboard-absence-program {
    grid-column: 1 / 2;
  }

  .dashboard-absence-badges {
    grid-column: 2 / 3;
    justify-content: flex-end;
  }

  .dashboard-sort-list {
    grid-template-columns: 1fr;
  }

  .dashboard-customize-panel {
    flex-direction: column;
  }

  .dashboard-customize-actions {
    justify-content: flex-start;
  }

  .dashboard-sort-card-bar,
  .dashboard-sort-handle {
    align-items: flex-start;
    flex-direction: column;
  }

  .dashboard-drag-icon {
    display: none;
  }

  .dashboard-sort-card {
    padding: .85rem;
  }

  .dashboard-sort-handle button {
    display: inline-flex;
  }

  .schedule-day summary {
    align-items: flex-start;
    flex-direction: column;
  }

  .schedule-day-meta {
    text-align: left;
  }

  .schedule-day-body {
    padding: .1rem .7rem .8rem;
  }

  .registration-measure-card {
    grid-template-columns: 1fr;
  }

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

  .registration-progress button {
    border-radius: 8px;
    overflow-wrap: anywhere;
  }

  .certificate-table-wrap {
    overflow-x: visible;
  }

  .certificate-table,
  .certificate-table thead,
  .certificate-table tbody,
  .certificate-table tr,
  .certificate-table th,
  .certificate-table td {
    display: block;
    width: 100%;
  }

  .certificate-table thead {
    clip: rect(0 0 0 0);
    height: 1px;
    overflow: hidden;
    position: absolute;
    width: 1px;
  }

  .certificate-table tr {
    background: var(--surface);
    border: 1px solid var(--line);
    border-left: 4px solid var(--brand);
    border-radius: 8px;
    margin-bottom: .65rem;
    padding: .35rem .55rem;
  }

  .certificate-table td {
    border: 0;
    display: grid;
    gap: .2rem;
    grid-template-columns: minmax(7rem, .42fr) minmax(0, 1fr);
    padding: .28rem 0;
  }

  .certificate-table td::before {
    color: var(--muted);
    content: attr(data-label);
    font-size: .82rem;
    font-weight: 800;
  }

  .measure-switcher {
    align-items: stretch;
    flex-direction: column;
  }

  .measure-switcher-status {
    min-width: 0;
  }

  .view-tabs {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .hero,
  .page-title {
    align-items: stretch;
    flex-direction: column;
  }

  .hero > div,
  .page-title > div {
    flex-basis: auto;
    width: 100%;
  }

.measures-table-wrap {
    overflow-x: auto;
  }
}

/* Certificate center */
.certificate-center-list {
  display: grid;
  gap: 1rem;
}

.certificate-registration-card {
  border-top: 3px solid var(--brand);
  overflow: hidden;
}

.certificate-registration-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}

.certificate-registration-head h2,
.certificate-option-copy strong {
  overflow-wrap: anywhere;
}

.certificate-phase-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1rem;
}

.certificate-phase-grid > section,
.certificate-phase-section {
  min-width: 0;
}

.certificate-phase-section {
  background: #fbfcfd;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: .9rem;
}

.certificate-phase-head {
  align-items: center;
  display: flex;
  gap: .7rem;
  margin-bottom: .8rem;
}

.certificate-phase-head .eyebrow,
.certificate-phase-head h2,
.certificate-phase-head h3 {
  margin: 0;
}

.certificate-phase-head h2,
.certificate-phase-head h3 {
  font-size: 1.08rem;
}

.certificate-phase-index {
  align-items: center;
  background: var(--brand-soft);
  border: 1px solid rgba(149, 193, 30, .34);
  border-radius: 7px;
  color: var(--brand-dark);
  display: inline-flex;
  flex: 0 0 2.35rem;
  font-size: .78rem;
  font-weight: 900;
  height: 2.35rem;
  justify-content: center;
}

.certificate-option-list {
  display: grid;
  gap: .65rem;
}

.certificate-option {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 7px 20px rgba(23, 32, 51, .04);
  display: block;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
  padding: 0;
  width: 100%;
}

.certificate-option-summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  gap: .65rem;
  justify-content: flex-start;
  list-style: none;
  min-width: 0;
  padding: .7rem .75rem;
}

.certificate-option-summary::-webkit-details-marker {
  display: none;
}

.certificate-option-summary::after {
  color: var(--muted);
  content: "+";
  flex: 0 0 auto;
  font-size: 1.1rem;
  font-weight: 800;
  line-height: 1;
}

.certificate-option-disclosure[open] > .certificate-option-summary::after {
  content: "−";
}

.certificate-option-summary:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: -3px;
}

.certificate-option-summary-main {
  align-items: center;
  display: flex;
  flex: 1 1 auto;
  gap: .65rem;
  min-width: 0;
}

.certificate-option-summary-copy {
  display: grid;
  gap: .12rem;
  min-width: 0;
}

.certificate-option-summary-copy strong {
  font-size: .94rem;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.certificate-option-summary-copy small {
  color: var(--muted);
  font-size: .78rem;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.certificate-option-summary > .badge {
  flex: 0 0 auto;
  max-width: 42%;
  overflow-wrap: anywhere;
}

.certificate-type-mark {
  background: var(--brand);
  border-radius: 2px;
  box-shadow: 0 0 0 4px rgba(149, 193, 30, .12);
  display: inline-block;
  height: .55rem;
  width: .55rem;
}

.certificate-option-body {
  border-top: 1px solid var(--line);
  display: grid;
  gap: .65rem;
  min-width: 0;
  padding: .72rem .75rem .8rem;
}

.certificate-option-body > p {
  color: var(--muted);
  font-size: .86rem;
  line-height: 1.45;
  margin: 0;
}

.certificate-option-action {
  min-width: 0;
}

.certificate-request-form {
  display: grid;
  gap: .55rem;
  min-width: 0;
}

.certificate-destination-request,
.certificate-destination-add,
.certificate-destination-edit {
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--brand-soft);
  padding: .65rem;
}

.certificate-destination-request summary,
.certificate-destination-add summary,
.certificate-destination-edit summary {
  cursor: pointer;
  font-weight: 700;
  list-style: none;
}

.certificate-destination-request summary::-webkit-details-marker,
.certificate-destination-add summary::-webkit-details-marker,
.certificate-destination-edit summary::-webkit-details-marker {
  display: none;
}

.certificate-destination-fields,
.certificate-destination-editor,
.certificate-destination-edit form,
.certificate-destination-add form {
  display: grid;
  gap: .65rem;
}

.certificate-destination-editor {
  margin-top: .65rem;
}

.certificate-registration-destinations {
  border-left: 4px solid var(--brand);
}

.certificate-destination-profile-content {
  display: grid;
  gap: .8rem;
  padding: .85rem 1rem 1rem;
}

.certificate-destination-list {
  display: grid;
  gap: .6rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.certificate-destination-card {
  background: #fbfcfd;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: .6rem;
  min-width: 0;
  padding: .75rem;
}

.certificate-destination-card h3,
.certificate-destination-card p {
  margin: .35rem 0 0;
  overflow-wrap: anywhere;
}

.account-destination-content {
  display: grid;
  gap: .7rem;
  padding: .85rem 1rem 1rem;
}

.certificate-setting-grid h4 {
  margin: 14px 0 0;
}

.certificate-content-fields {
  margin-top: 8px;
  padding: 14px;
  border-left: 3px solid var(--brand);
  background: var(--brand-soft);
}

.certificate-page-title {
  border-bottom: 1px solid var(--line);
  padding-bottom: .9rem;
}

.certificate-admin-overview {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 1rem;
}

.certificate-admin-type-grid {
  display: grid;
  gap: .6rem;
}

.certificate-admin-type-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 7px 20px rgba(23, 32, 51, .04);
  display: block;
  min-width: 0;
  overflow: hidden;
  padding: 0;
}

.certificate-admin-type-card h3,
.certificate-admin-type-card p,
.certificate-admin-type-card dl {
  margin: 0;
}

.certificate-admin-type-card h3 {
  font-size: .96rem;
}

.certificate-admin-type-card .certificate-option-body > p {
  color: var(--muted);
  font-size: .84rem;
}

.certificate-admin-type-card dl {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem .8rem;
}

.certificate-admin-type-card dl div {
  align-items: baseline;
  display: flex;
  gap: .3rem;
}

.certificate-admin-type-card dt {
  color: var(--muted);
  font-size: .78rem;
}

.certificate-admin-type-card dd {
  font-weight: 900;
  margin: 0;
}

.certificate-admin-type-card .has-error dd {
  color: var(--danger);
}

.certificate-section-head {
  align-items: flex-start;
  display: flex;
  justify-content: space-between;
  margin-bottom: .8rem;
}

.certificate-section-head h2,
.certificate-section-head p {
  margin-top: 0;
}

.certificate-proactive-destination {
  background: #fbfcfd;
  border: 1px solid var(--line);
  border-left: 4px solid var(--brand);
  border-radius: 8px;
  padding: .8rem;
}

.certificate-proactive-destination h3 {
  font-size: 1rem;
  margin: 0 0 .25rem;
}

.certificate-transactions {
  margin-top: 1rem;
}

.certificate-batch-panel {
  margin-top: 1rem;
}

.certificate-batch-form {
  display: grid;
  gap: .8rem;
}

.certificate-batch-form > label {
  max-width: 42rem;
}

.certificate-batch-people {
  border: 1px solid var(--line);
  border-radius: 8px;
  max-height: 30rem;
  overflow: auto;
}

.certificate-batch-people table {
  margin: 0;
}

.certificate-batch-people th:first-child,
.certificate-batch-people td:first-child {
  text-align: center;
  width: 5.5rem;
}

.certificate-batch-people input[type="checkbox"] {
  margin: 0;
}

.certificate-dashboard-card p:last-child {
  margin-bottom: 0;
}

@media (max-width: 850px) {
  .certificate-phase-grid,
  .certificate-admin-overview,
  .certificate-destination-list {
    grid-template-columns: 1fr;
  }

  .certificate-registration-head {
    align-items: stretch;
    flex-direction: column;
  }

  .certificate-option-summary {
    align-items: start;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .certificate-option-summary-main {
    grid-column: 1;
    grid-row: 1;
  }

  .certificate-option-summary > .badge {
    grid-column: 1;
    grid-row: 2;
    justify-self: start;
    margin-left: 1.2rem;
    max-width: calc(100% - 1.2rem);
  }

  .certificate-option-summary::after {
    grid-column: 2;
    grid-row: 1 / span 2;
  }

  .certificate-request-form .button {
    justify-self: stretch;
    width: 100%;
  }

  .certificate-batch-form .actions .button {
    width: 100%;
  }
}

.schedule-import-card {
  margin-top: 1rem;
}

.schedule-import-card > summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  list-style: none;
}

.schedule-import-card > summary::-webkit-details-marker {
  display: none;
}

.schedule-import-card > summary::after {
  color: var(--muted);
  content: "+";
  font-size: 1.4rem;
  font-weight: 800;
}

.schedule-import-card[open] > summary::after {
  content: "-";
}

.schedule-import-body {
  border-top: 1px solid var(--line);
  margin-top: .8rem;
  padding-top: .8rem;
}

.calendar-download-card p:last-child {
  margin-bottom: 0;
}

.document-letterhead-panel {
  align-items: center;
  display: grid;
  gap: .7rem 1rem;
  grid-template-columns: minmax(220px, 1fr) auto;
}

.document-letterhead-panel h2,
.document-letterhead-panel p,
.document-template-card h2,
.document-template-card h3,
.document-template-card p {
  margin-top: 0;
}

.document-letterhead-panel .wide {
  grid-column: 1 / -1;
  margin-bottom: 0;
}

.document-letterhead-form {
  align-items: end;
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  grid-column: 1 / -1;
}

.document-letterhead-form label {
  flex: 1 1 320px;
}

.success-badge {
  background: var(--ok-bg);
  color: #146c43;
}

.warning-badge {
  background: var(--warn-bg);
  color: var(--warn);
}

.document-studio-layout {
  align-items: start;
  display: grid;
  gap: 1rem;
  grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
  margin-top: 1rem;
}

.document-studio-nav {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
  position: sticky;
  top: 1rem;
}

.document-studio-nav-title {
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: .1rem;
  padding: .9rem 1rem;
}

.document-studio-nav-title span,
.document-studio-nav-group h2 {
  color: var(--muted);
  font-size: .78rem;
}

.document-studio-nav-group {
  padding: .55rem;
}

.document-studio-nav-group + .document-studio-nav-group {
  border-top: 1px solid var(--line);
}

.document-studio-nav-group h2 {
  letter-spacing: 0;
  margin: .2rem .45rem .4rem;
  text-transform: uppercase;
}

.document-studio-nav-link {
  border-left: 3px solid transparent;
  color: var(--ink);
  display: grid;
  gap: .12rem;
  padding: .55rem .65rem;
  text-decoration: none;
}

.document-studio-nav-link + .document-studio-nav-link {
  margin-top: .12rem;
}

.document-studio-nav-link span {
  font-size: .9rem;
  font-weight: 700;
  line-height: 1.25;
}

.document-studio-nav-link small {
  color: var(--muted);
  font-size: .75rem;
}

.document-studio-nav-link:hover,
.document-studio-nav-link:focus-visible {
  background: var(--brand-soft);
}

.document-studio-nav-link.is-active {
  background: var(--brand-soft);
  border-left-color: var(--brand);
}

.document-studio-main,
.document-template-workspace > * {
  min-width: 0;
}

.document-template-card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: visible;
}

.document-template-card-head {
  align-items: flex-start;
  border-bottom: 1px solid var(--line);
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  padding: 1rem 1.1rem;
}

.document-template-card-head h2 {
  font-size: 1.25rem;
  margin-bottom: .25rem;
}

.document-template-card-head p {
  color: var(--muted);
  margin-bottom: 0;
}

.document-template-eyebrow {
  color: var(--muted);
  display: block;
  font-size: .76rem;
  font-weight: 750;
  margin-bottom: .25rem;
  text-transform: uppercase;
}

.document-template-context {
  align-items: end;
  background: color-mix(in srgb, var(--panel) 88%, var(--page));
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: .7rem 1rem;
  grid-template-columns: minmax(220px, 420px) minmax(220px, 1fr);
  padding: .8rem 1.1rem;
}

.document-template-context .help-text {
  margin-bottom: .35rem;
}

.certificate-contact-source {
  align-self: stretch;
  background: var(--panel);
  border-left: 3px solid var(--brand);
  display: grid;
  gap: .18rem;
  grid-column: 1 / -1;
  line-height: 1.4;
  min-width: 0;
  padding: .6rem .7rem;
}

.certificate-contact-source > * {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}

.certificate-contact-source > span:first-child {
  color: var(--muted);
  font-size: .75rem;
  font-weight: 750;
  text-transform: uppercase;
}

.certificate-contact-source a {
  font-size: .8rem;
  width: fit-content;
}

.document-template-workspace {
  align-items: start;
  display: grid;
  gap: 1.1rem;
  grid-template-columns: minmax(0, 1fr) minmax(340px, .82fr);
  padding: 1.1rem;
}

.document-pane-heading,
.document-preview-head {
  align-items: flex-start;
  display: flex;
  gap: .75rem;
  justify-content: space-between;
}

.document-pane-heading h3,
.document-preview-head h3 {
  font-size: 1rem;
  margin-bottom: .15rem;
}

.document-pane-heading p,
.document-preview-head p {
  color: var(--muted);
  font-size: .82rem;
  margin-bottom: 0;
}

.document-dirty-state {
  background: #eef2f6;
  border-radius: 999px;
  color: var(--muted);
  flex: 0 0 auto;
  font-size: .74rem;
  font-weight: 750;
  padding: .2rem .48rem;
}

.document-dirty-state.is-dirty {
  background: var(--warn-bg);
  color: var(--warn);
}

.document-template-meta-fields {
  display: grid;
  gap: .7rem;
  grid-template-columns: minmax(0, 1fr);
  margin-top: .75rem;
}

.document-template-meta-fields label {
  min-width: 0;
}

.document-template-meta-fields textarea {
  min-height: 6.8rem;
  resize: vertical;
}

.template-toolbar {
  align-items: center;
  background: #f7f8f9;
  border: 1px solid var(--line);
  border-bottom: 0;
  border-radius: 7px 7px 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
  margin-top: .65rem;
  padding: .4rem;
}

.editor-tool {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 5px;
  color: var(--ink);
  display: inline-flex;
  font: inherit;
  height: 2rem;
  justify-content: center;
  min-width: 2rem;
  padding: 0 .35rem;
}

.editor-tool:hover,
.editor-tool:focus-visible {
  background: #fff;
  box-shadow: 0 0 0 1px var(--line);
}

.toolbar-separator {
  align-self: stretch;
  background: var(--line);
  margin: .15rem .2rem;
  width: 1px;
}

.editor-format-status {
  margin: 0 0 0 .35rem;
}

.document-template-editor {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 0 0 7px 7px;
  color: var(--ink);
  line-height: 1.48;
  min-height: 34rem;
  outline: none;
  overflow-wrap: anywhere;
  padding: 1rem;
}

.document-template-editor:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px rgba(149, 193, 30, .22);
}

.document-template-editor p {
  min-height: 1.48em;
  margin: 0;
}

.document-template-editor p + p {
  margin-top: .72rem;
}

.document-template-editor span[data-size="small"] {
  font-size: .86em;
}

.document-template-editor span[data-size="large"] {
  font-size: 1.18em;
}

.document-placeholder-picker,
.document-template-history {
  border-top: 1px solid var(--line);
  margin-top: .9rem;
  padding-top: .65rem;
}

.document-placeholder-picker > summary,
.document-template-history > summary {
  cursor: pointer;
  font-size: .9rem;
  font-weight: 750;
}

.document-placeholder-picker-body {
  padding-top: .7rem;
}

.document-placeholder-group {
  display: grid;
  gap: .35rem;
  margin-top: .7rem;
}

.document-placeholder-group strong {
  color: var(--muted);
  font-size: .76rem;
}

.document-placeholder-group .placeholder-list {
  display: grid;
  gap: .25rem;
  grid-template-columns: 1fr;
}

.document-placeholder-button {
  align-items: flex-start;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--ink);
  display: flex;
  font: inherit;
  gap: .4rem;
  justify-content: flex-start;
  min-width: 0;
  padding: .4rem .5rem;
  text-align: left;
}

.document-placeholder-content {
  display: grid;
  gap: .14rem;
  width: 100%;
}

.document-placeholder-button span,
.document-placeholder-button code,
.document-placeholder-button small {
  min-width: 0;
  overflow-wrap: anywhere;
  white-space: normal;
}

.document-placeholder-button span {
  font-size: .78rem;
  font-weight: 650;
}

.document-placeholder-button code {
  color: var(--muted);
  font-size: .68rem;
}

.document-placeholder-button small {
  color: var(--muted);
  font-size: .7rem;
  font-weight: 500;
  line-height: 1.35;
}

.document-placeholder-button:hover,
.document-placeholder-button:focus-visible {
  background: var(--brand-soft);
  border-color: var(--brand);
}

.document-preview {
  align-self: start;
  min-width: 0;
  position: sticky;
  top: 5rem;
}

.document-preview-surface {
  align-items: flex-start;
  background: #eef0f2;
  border: 1px solid var(--line);
  border-radius: 7px;
  display: flex;
  justify-content: center;
  margin-top: .65rem;
  min-height: 34rem;
  overflow: hidden;
  padding: .55rem;
}

.document-preview canvas {
  background: #fff;
  box-shadow: 0 2px 10px rgba(15, 23, 42, .12);
  display: block;
  height: auto;
  max-width: 100%;
}

.document-preview-surface.is-loading::after {
  color: var(--muted);
  content: 'PDF wird dargestellt ...';
  padding: 2rem 1rem;
}

.document-preview-surface.is-loading canvas {
  display: none;
}

.document-preview-error {
  color: var(--danger);
  margin: 1rem;
  overflow-wrap: anywhere;
}

.document-template-actions {
  align-items: center;
  background: #fff;
  border-top: 1px solid var(--line);
  bottom: 0;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  padding: .8rem 1.1rem;
  position: sticky;
  z-index: 10;
}

.document-template-history {
  margin: 0 1.1rem 1rem;
}

.document-template-history > summary span {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 500;
  margin-left: .35rem;
}

.document-template-history ul {
  list-style: none;
  margin: .7rem 0 0;
  padding: 0;
}

.document-template-history li {
  align-items: center;
  border-top: 1px solid var(--line);
  display: flex;
  gap: .75rem;
  justify-content: space-between;
  padding: .55rem 0;
}

.document-template-history li div {
  display: grid;
  gap: .1rem;
}

.document-template-history li small {
  color: var(--muted);
}

.certificate-sender-preview {
  background: var(--brand-soft);
  border-left: 3px solid var(--brand);
  display: grid;
  gap: .2rem;
  padding: .65rem .75rem;
}

@media (max-width: 1050px) {
  .document-studio-layout {
    grid-template-columns: 1fr;
  }

  .document-studio-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    position: static;
  }

  .document-studio-nav-title {
    grid-column: 1 / -1;
  }

  .document-studio-nav-group + .document-studio-nav-group {
    border-left: 1px solid var(--line);
    border-top: 0;
  }

  .document-template-workspace {
    grid-template-columns: 1fr;
  }

  .document-preview {
    position: static;
  }

  .document-template-editor,
  .document-preview-surface {
    min-height: 28rem;
  }
}

@media (max-width: 640px) {
  .document-letterhead-panel,
  .document-template-context,
  .document-studio-nav {
    grid-template-columns: 1fr;
  }

  .document-studio-nav-group + .document-studio-nav-group {
    border-left: 0;
    border-top: 1px solid var(--line);
  }

  .document-template-card-head,
  .document-pane-heading,
  .document-preview-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .document-template-card-head,
  .document-template-context,
  .document-template-workspace,
  .document-template-actions {
    padding-left: .75rem;
    padding-right: .75rem;
  }

  .document-placeholder-group .placeholder-list {
    grid-template-columns: 1fr;
  }

  .document-template-meta-fields {
    grid-template-columns: 1fr;
  }

  .document-template-actions .button {
    width: 100%;
  }

  .document-preview-surface {
    min-height: 65vh;
  }
}

/* Schrittweiser Formular-Generator */
.form-builder {
  display: grid;
  gap: 1rem;
  min-width: 0;
}

.form-builder-step-nav {
  position: sticky;
  top: var(--header-height, 0);
  z-index: 20;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .35rem;
  padding: .45rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: color-mix(in srgb, var(--surface) 94%, transparent);
  box-shadow: 0 8px 20px rgb(18 31 49 / 7%);
  backdrop-filter: blur(12px);
}

.form-builder-step-tab {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  min-width: 0;
  padding: .7rem .55rem;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: .9rem;
  font-weight: 750;
  text-align: center;
  cursor: pointer;
}

.form-builder-step-tab > span:first-child {
  display: grid;
  flex: 0 0 1.45rem;
  width: 1.45rem;
  height: 1.45rem;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-size: .76rem;
}

.form-builder-step-tab:hover:not(:disabled),
.form-builder-step-tab:focus-visible {
  background: var(--brand-soft);
  color: var(--ink);
}

.form-builder-step-tab[aria-selected="true"] {
  background: var(--brand-soft);
  color: var(--ink);
  box-shadow: inset 0 -2px 0 var(--brand);
}

.form-builder-step-tab[aria-selected="true"] > span:first-child {
  border-color: var(--brand);
  background: var(--brand);
}

.form-builder-step-tab:disabled {
  opacity: .48;
  cursor: not-allowed;
}

.form-builder-step {
  min-width: 0;
  scroll-margin-top: 7rem;
}

.form-builder-step[hidden] {
  display: none;
}

.form-builder-step .step-heading {
  display: flex;
  align-items: flex-start;
  gap: .85rem;
  margin: -1.15rem -1.15rem 1.1rem;
  padding: 1rem 1.15rem;
  border-bottom: 1px solid var(--line);
}

.form-builder-step .step-heading > span {
  display: grid;
  flex: 0 0 2.25rem;
  width: 2.25rem;
  height: 2.25rem;
  place-items: center;
  border-radius: 50%;
  background: var(--brand);
  color: var(--ink);
  font-weight: 850;
}

.form-builder-step .step-heading h2,
.form-builder-step .step-heading p {
  margin: 0;
}

.form-builder-step .step-heading p {
  margin-top: .15rem;
  color: var(--muted);
  font-size: .9rem;
}

.form-builder-columns {
  display: grid;
  gap: .7rem;
}

.form-builder-config-list,
.form-builder-checkbox-groups {
  display: grid;
  gap: .7rem;
  margin-top: .75rem;
}

.form-builder-config-row {
  display: grid;
  grid-template-columns: 1.5rem minmax(12rem, 1fr) minmax(15rem, 1.2fr) max-content;
  align-items: end;
  gap: .85rem;
  min-width: 0;
  padding: .8rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.form-builder-accounting-row {
  grid-template-columns: 1.5rem minmax(11rem, 1fr) minmax(14rem, 1.15fr) minmax(9rem, .7fr) max-content;
}

.form-builder-config-row > label,
.form-builder-checkbox-option > label,
.form-builder-group-heading > label {
  align-content: start;
  min-width: 0;
}

.form-builder-config-row :is(input, select),
.form-builder-checkbox-option :is(input, select),
.form-builder-group-heading input {
  min-width: 0;
}

.form-builder-checkbox-group {
  display: grid;
  gap: .7rem;
  padding: .9rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: color-mix(in srgb, var(--surface) 94%, var(--page));
}

.form-builder-group-heading,
.form-builder-checkbox-option {
  display: grid;
  grid-template-columns: minmax(13rem, 1fr) max-content;
  align-items: end;
  gap: .85rem;
}

.form-builder-checkbox-options {
  display: grid;
  gap: .55rem;
}

.form-builder-checkbox-option {
  grid-template-columns: minmax(12rem, 1fr) minmax(16rem, 1.2fr) max-content;
  padding: .8rem;
  border-left: 3px solid var(--brand);
  background: var(--surface);
}

.form-builder-number-settings {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .8rem;
  width: 100%;
  margin-top: 1rem;
}

.form-builder-number-setting {
  display: grid;
  grid-template-rows: auto auto 1fr;
  align-content: start;
  gap: .4rem;
  min-width: 0;
  min-height: 100%;
  margin: 0;
  padding: .85rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.form-builder-number-setting > input,
.form-builder-number-setting > .help-text {
  width: 100%;
  margin: 0;
}

.form-builder-accounting {
  display: grid;
  gap: .85rem;
  margin-top: 1rem;
}

.form-builder-accounting-toggle {
  width: fit-content;
  min-height: 42px;
  padding: .55rem .7rem;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--surface);
}

.form-builder-accounting [data-form-builder-accounting-settings] {
  display: grid;
  gap: 1rem;
  padding-top: .2rem;
}

.form-builder-accounting-settings-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .9rem 1rem;
  align-items: start;
}

.form-builder-accounting-settings-grid > label {
  min-width: 0;
}

.form-builder-accounting-settings-grid > .wide {
  grid-column: 1 / -1;
}

.form-builder-accounting-settings-grid textarea {
  min-height: 7rem;
}

.form-builder-column-row {
  display: grid;
  grid-template-columns: 1.5rem minmax(10rem, 1.35fr) minmax(11rem, 1.35fr) minmax(7rem, .7fr) minmax(8rem, .8fr) minmax(8rem, .8fr) auto;
  align-items: end;
  gap: .65rem;
  min-width: 0;
  padding: .8rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.form-builder-column-row > label {
  min-width: 0;
}

.form-builder-column-handle {
  align-self: center;
  color: var(--muted);
  font-size: 1.1rem;
  text-align: center;
}

.form-builder-column-actions {
  display: flex;
  align-self: end;
  flex-wrap: nowrap;
  gap: .35rem;
}

.form-builder-footer-options {
  display: grid;
  gap: .65rem;
  margin-top: .75rem;
}

.form-builder-footer-option {
  display: grid;
  grid-template-columns: minmax(14rem, 1.2fr) minmax(11rem, .65fr) minmax(13rem, .85fr);
  align-items: end;
  gap: .85rem;
  min-width: 0;
  padding: .75rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.form-builder-footer-option.is-enabled {
  border-color: color-mix(in srgb, var(--brand) 55%, var(--line));
  background: color-mix(in srgb, var(--brand) 5%, var(--surface));
}

.form-builder-footer-option > label {
  min-width: 0;
}

.form-builder-footer-toggle,
.form-builder-footer-bold {
  min-height: 42px;
  padding: .55rem .65rem;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--surface);
}

.form-builder-footer-toggle {
  font-size: .95rem;
}

.form-builder-row-count {
  display: grid;
  grid-template-columns: minmax(10rem, 18rem);
  gap: .35rem;
  margin-top: 1rem;
}

.form-template-availability {
  display: grid;
  gap: .75rem;
}

.form-template-availability-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}

.form-template-availability-grid details {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.form-template-availability-grid summary {
  cursor: pointer;
  padding: .75rem .85rem;
  font-weight: 750;
}

.form-template-availability-grid .checkbox-list {
  margin: 0 .75rem .75rem;
}

.form-builder-preview {
  display: grid;
  grid-template-columns: minmax(12rem, .45fr) minmax(0, 1.55fr);
  gap: 1rem;
  align-items: start;
  padding-top: .5rem;
}

.form-builder-wizard-actions {
  display: grid;
  grid-template-columns: auto minmax(8rem, 1fr) auto auto auto;
  align-items: center;
  gap: .65rem;
  padding: .8rem 1rem;
}

.form-builder-step-status {
  justify-self: center;
  color: var(--muted);
  font-size: .9rem;
  font-weight: 750;
}

.form-builder-validation-message {
  grid-column: 1 / -1;
  margin: 0;
  padding: .7rem .8rem;
  border: 1px solid var(--danger);
  border-radius: 6px;
  background: color-mix(in srgb, var(--danger) 8%, var(--surface));
  color: var(--danger);
}

.form-builder-wizard-preview {
  border-top: 3px solid var(--brand);
}

.form-builder-wizard-preview > div:first-child h2,
.form-builder-wizard-preview > div:first-child p {
  margin-top: 0;
}

[data-form-builder-preview] {
  display: grid;
  gap: .8rem;
  min-width: 0;
}

.form-builder-preview-summary {
  display: grid;
  gap: .35rem;
  padding: .8rem;
  border-left: 3px solid var(--brand);
  color: var(--muted);
  font-size: .88rem;
}

.form-builder-preview-summary strong {
  color: var(--ink);
}

.form-builder-preview-sheet {
  position: relative;
  width: 100%;
  max-width: 58rem;
  min-width: 0;
  margin-inline: auto;
  padding: 1.1rem;
  overflow: hidden;
  border: 1px solid #c8d1dc;
  background: #fff;
  box-shadow: 0 10px 30px rgb(18 31 49 / 10%);
  color: #111827;
}

.form-builder-preview-sheet.has-page-numbers {
  padding-top: 1.1rem;
}

.form-builder-preview-page-number {
  position: absolute;
  right: 1rem;
  top: 1.08rem;
  color: #4b5563;
  font-size: .65rem;
  text-align: right;
}

.form-builder-preview-sheet.has-page-numbers h4 {
  padding-inline: 4.25rem;
}

.form-builder-add-actions {
  margin-top: 1rem;
  padding-bottom: .2rem;
}

.form-builder-column-add-actions {
  margin-top: 1rem;
}

.form-builder-table-heading-options {
  display: grid;
  gap: .45rem;
  margin-bottom: 1rem;
}

.form-builder-table-heading-options .compact-check {
  width: fit-content;
}

.form-builder-page-numbering {
  display: grid;
  gap: .55rem;
  margin-top: 1rem;
}

.form-builder-page-numbering .compact-check {
  width: fit-content;
}

.form-builder-page-numbering .help-text {
  margin: 0;
}

.form-builder-preview-sheet.is-landscape {
  aspect-ratio: 1.414 / 1;
}

.form-builder-preview-sheet.is-portrait {
  max-width: 36rem;
  aspect-ratio: 1 / 1.414;
}

.form-builder-preview-sheet h4 {
  margin: 0 0 .5rem;
  text-align: center;
}

.form-builder-preview-intro {
  margin: .45rem 0;
  font-size: .75rem;
}

.form-builder-preview-footer {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .35rem;
  margin-top: .45rem;
  font-size: .68rem;
}

.form-builder-preview-footer > span {
  min-height: 2.2rem;
  padding: .3rem;
  border: 1px solid #c7ced8;
}

.form-builder-preview-table-wrap table.headers-regular th {
  font-weight: 400;
}

.form-builder-preview-footer > .align-center {
  text-align: center;
}

.form-builder-preview-footer > .is-bold {
  font-weight: 800;
}

.form-builder-preview-header {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .35rem .75rem;
  margin-bottom: .55rem;
}

.form-builder-preview-header > div {
  display: grid;
  gap: .1rem;
  min-width: 0;
  padding-bottom: .2rem;
  border-bottom: 1px solid #c7ced8;
  font-size: .65rem;
}

.form-builder-preview-checkboxes {
  display: grid;
  grid-template-columns: minmax(7rem, .35fr) minmax(0, 1fr);
  gap: .5rem;
  margin-bottom: .35rem;
  font-size: .64rem;
}

.form-builder-preview-table-wrap {
  margin: 0;
  overflow: hidden;
}

.form-builder-preview-table-wrap table {
  min-width: 100%;
  table-layout: fixed;
  font-size: .63rem;
}

.form-builder-preview-table-wrap th,
.form-builder-preview-table-wrap td {
  height: 1.4rem;
  padding: .18rem .25rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.form-builder-preview-accounting {
  margin-top: .8rem;
}

.form-builder-preview-accounting-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .45rem;
}

.form-builder-preview-accounting-fields > div {
  min-height: 1.7rem;
  padding: .25rem;
  border: 1px solid #c7ced8;
  font-size: .62rem;
}

.form-builder-preview-accounting-fields > .is-large,
.form-builder-preview-accounting-fields > .is-signature {
  grid-column: 1 / -1;
  min-height: 2.7rem;
}

.form-builder-preview-accounting-fields > .is-signature {
  min-height: 3.4rem;
}

@media (max-width: 1320px) {
  .form-builder-column-row,
  .form-builder-config-row,
  .form-builder-accounting-row {
    grid-template-columns: 1.5rem repeat(2, minmax(12rem, 1fr));
  }

  .form-builder-column-actions {
    grid-column: 2 / -1;
  }

  .form-builder-footer-option {
    grid-template-columns: minmax(14rem, 1fr) repeat(2, minmax(11rem, .7fr));
  }
}

@media (max-width: 820px) {
  .form-builder-step-nav {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .form-builder-column-row,
  .form-builder-config-row,
  .form-builder-accounting-row,
  .form-builder-checkbox-option,
  .form-builder-group-heading,
  .form-builder-number-settings,
  .form-builder-footer-option,
  .form-builder-accounting-settings-grid,
  .form-builder-preview,
  .form-template-availability-grid {
    grid-template-columns: 1fr;
  }

  .form-builder-column-handle {
    display: none;
  }

  .form-builder-column-actions {
    grid-column: auto;
  }

  .form-builder-column-actions .button {
    flex: 1 1 0;
  }

  .form-builder-accounting-settings-grid > .wide {
    grid-column: auto;
  }

  .form-builder-preview-footer {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .form-builder-preview-sheet {
    padding: .7rem;
  }

  .form-builder-wizard-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .form-builder-step-status,
  .form-builder-validation-message {
    grid-column: 1 / -1;
  }

  .form-builder-wizard-actions .button {
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 480px) {
  .form-builder-step-nav {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .2rem;
  }

  .form-builder-step .step-heading {
    margin-inline: -.9rem;
    padding-inline: .9rem;
  }

  .form-builder-step-tab {
    justify-content: center;
    padding: .55rem .2rem;
  }

  .form-builder-step-tab > span:last-child {
    display: none;
  }
}

/* Formularstudio: additive, geschützte Vorlagenverwaltung */
.form-template-list {
  display: grid;
  gap: .75rem;
  margin: 1rem 0 1.5rem;
}

.form-template-list-card,
.form-output-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.form-template-list-card h2,
.form-output-card h3 {
  margin: .35rem 0 .15rem;
  font-size: 1.05rem;
}

.form-template-list-card p,
.form-output-card p {
  margin: .1rem 0;
}

.form-template-safety-note,
.form-template-privacy,
.form-output-security {
  border-left: 4px solid var(--brand);
}

.form-template-wizard {
  display: grid;
  gap: 1rem;
}

.form-template-step-nav {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .35rem;
  padding: .35rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.form-template-step-nav button {
  min-width: 0;
  min-height: 42px;
  padding: .55rem .7rem;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-weight: 750;
  cursor: pointer;
}

.form-template-step-nav button:hover,
.form-template-step-nav button:focus-visible {
  background: var(--brand-soft);
  color: var(--ink);
}

.form-template-step-nav button.is-active {
  background: var(--brand);
  color: var(--brand-dark);
}

.form-template-step {
  margin: 0;
}

.form-template-step .step-heading {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  margin-bottom: 1rem;
}

.form-template-step .step-heading > span {
  display: grid;
  flex: 0 0 2rem;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border-radius: 50%;
  background: var(--brand);
  color: var(--brand-dark);
  font-weight: 800;
}

.form-template-step .step-heading h2,
.form-template-step .step-heading p {
  margin: 0;
}

.form-template-step .step-heading p {
  color: var(--muted);
}

.existing-template-file {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem .9rem;
  margin-bottom: 1rem;
  padding: .7rem .85rem;
  border-left: 3px solid var(--brand);
  background: var(--brand-soft);
  font-size: .9rem;
}

.form-template-file-progress {
  display: flex;
  align-items: flex-start;
  gap: .7rem;
  padding: .75rem .85rem;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--bg);
}

.form-template-file-progress > div {
  display: grid;
  min-width: 0;
  gap: .12rem;
}

.form-template-file-progress strong,
.form-template-file-progress span {
  overflow-wrap: anywhere;
}

.form-template-file-progress > div > span {
  color: var(--muted);
  font-size: .88rem;
}

.form-template-progress-icon {
  flex: 0 0 .9rem;
  width: .9rem;
  height: .9rem;
  margin-top: .28rem;
  border: 2px solid var(--muted);
  border-radius: 50%;
}

.form-template-file-progress[data-state="busy"] {
  border-color: #8aa7c1;
  background: #f3f7fa;
}

.form-template-file-progress[data-state="busy"] .form-template-progress-icon {
  border-color: #c6d2dc;
  border-top-color: #315f80;
  animation: form-template-spin .8s linear infinite;
}

.form-template-file-progress[data-state="ready"] {
  border-color: var(--brand);
  background: var(--brand-soft);
}

.form-template-file-progress[data-state="ready"] .form-template-progress-icon {
  border-color: var(--brand-dark);
  background: var(--brand);
}

.form-template-file-progress[data-state="error"] {
  border-color: var(--danger);
  background: #fff5f4;
}

.form-template-file-progress[data-state="error"] .form-template-progress-icon {
  border-color: var(--danger);
}

@keyframes form-template-spin {
  to { transform: rotate(360deg); }
}

.form-template-preview-layout,
.form-template-mapping-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem);
  gap: 1rem;
  align-items: start;
}

.form-template-preview-layout {
  margin-top: 1.15rem;
}

.form-template-preview-layout > aside,
.form-template-field-editor {
  min-width: 0;
  padding-left: 1rem;
  border-left: 1px solid var(--line);
}

.form-template-review-panel ol {
  display: grid;
  gap: .45rem;
  margin: .75rem 0 1rem;
  padding-left: 1.4rem;
}

.form-template-preview-check {
  display: flex;
  align-items: flex-start;
  gap: .55rem;
  padding: .75rem;
  border: 1px solid var(--brand);
  border-radius: 6px;
  background: var(--brand-soft);
  line-height: 1.35;
}

.form-template-technical-analysis {
  margin-top: .9rem;
  border-top: 1px solid var(--line);
}

.form-template-technical-analysis > summary {
  padding: .75rem 0;
  color: var(--muted);
  font-weight: 700;
  cursor: pointer;
}

.form-template-canvas-wrap {
  position: relative;
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #dfe4ea;
  box-shadow: 0 8px 24px rgb(23 32 51 / 10%);
  touch-action: none;
}

.form-template-canvas-wrap canvas {
  display: block;
  width: 100%;
  height: auto;
  background: #fff;
}

.form-template-canvas-wrap > div {
  position: absolute;
  inset: 0;
}

.form-template-field-box {
  position: absolute;
  min-width: 0;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  border: 2px solid #2563eb;
  border-radius: 2px;
  background: rgb(37 99 235 / 12%);
  color: #102a56;
  font-size: .65rem;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: pointer;
}

.form-template-field-box.is-selected {
  border-color: var(--danger);
  background: rgb(180 35 24 / 14%);
}

.form-template-field-box.is-checkbox::before {
  content: "\2611";
  margin-right: .2rem;
  font-size: .72rem;
}

.form-template-field-box.is-repeat-preview {
  z-index: 1;
  pointer-events: none;
  border: 1px dashed #2f6ca8;
  background: rgb(37 99 235 / 7%);
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 65%);
  opacity: .82;
}

.form-template-repeat-hint {
  margin: -.2rem 0 .35rem;
  padding: .55rem .65rem;
  border-left: 3px solid #2f6ca8;
  background: #f3f7fb;
  color: #35516d;
  line-height: 1.4;
}

.form-template-checkbox-hint {
  margin: -.15rem 0 .55rem;
  padding: .55rem .65rem;
  border-left: 3px solid var(--brand);
  background: var(--brand-soft);
  color: var(--ink);
  line-height: 1.4;
}

.form-template-draw-preview {
  position: absolute;
  right: auto;
  bottom: auto;
  z-index: 4;
  min-width: 0;
  min-height: 0;
  pointer-events: none;
  border: 2px solid #1769c2;
  border-radius: 2px;
  background: rgb(23 105 194 / 16%);
  box-shadow: 0 0 0 1px rgb(255 255 255 / 80%);
}

.form-template-draw-preview[hidden] {
  display: none;
}

.form-template-detection-status,
.form-template-save-status {
  margin: .65rem 0;
  padding: .65rem .75rem;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--bg);
  color: var(--muted);
  font-size: .9rem;
}

.form-template-detection-status[data-state="busy"],
.form-template-save-status[data-state="busy"] {
  border-color: #8aa7c1;
  background: #f3f7fa;
  color: var(--ink);
}

.form-template-detection-status[data-state="ready"],
.form-template-save-status[data-state="ready"] {
  border-color: var(--brand);
  background: var(--brand-soft);
  color: var(--ink);
}

.form-template-detection-status[data-state="error"],
.form-template-save-status[data-state="error"] {
  border-color: var(--danger);
  background: #fff5f4;
  color: var(--danger);
}

.mapping-canvas.is-drawing,
.form-template-canvas-wrap.is-drawing {
  cursor: crosshair;
}

.compact-definition-list {
  display: grid;
  gap: .45rem;
  margin: .75rem 0 1rem;
}

.compact-definition-list > div {
  display: flex;
  justify-content: space-between;
  gap: .8rem;
  padding-bottom: .4rem;
  border-bottom: 1px solid var(--line);
}

.compact-definition-list dt {
  color: var(--muted);
}

.compact-definition-list dd {
  margin: 0;
  font-weight: 750;
}

.form-template-field-editor label {
  display: grid;
  gap: .3rem;
  margin-bottom: .65rem;
}

.form-template-field-editor .check {
  display: flex;
}

.form-template-field-editor hr {
  margin: 1rem 0;
  border: 0;
  border-top: 1px solid var(--line);
}

.form-template-geometry-controls {
  min-width: 0;
  margin: .85rem 0;
  padding: .75rem;
  border: 1px solid var(--line);
  border-radius: 6px;
}

.form-template-geometry-controls legend {
  padding: 0 .3rem;
  font-weight: 750;
}

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

.form-template-nudge-controls {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: .65rem;
  margin-top: .35rem;
}

.form-template-nudge-controls > label {
  max-width: 8rem;
  margin-bottom: 0;
}

.form-template-nudge-buttons {
  display: grid;
  grid-template-columns: repeat(4, 2.35rem);
  gap: .3rem;
}

.form-template-nudge-buttons .button {
  width: 2.35rem;
  min-width: 0;
  min-height: 2.35rem;
  padding: .25rem;
  font-size: 1.05rem;
}

.form-template-raster-adjustment {
  margin-top: 1rem;
  padding-top: .9rem;
  border-top: 1px solid var(--line);
}

.form-template-raster-adjustment h4 {
  margin: 0 0 .3rem;
}

.form-template-raster-adjustment [data-raster-nudge-status]:not(:empty) {
  margin-top: .65rem;
  color: var(--ink);
}

.form-template-rule-builder {
  margin-top: 1.25rem;
  border-top: 1px solid var(--line);
}

.form-template-rule-builder summary,
.form-output-disclosure > summary {
  padding: .85rem 0;
  cursor: pointer;
}

.form-template-rule-builder summary > span,
.form-output-disclosure > summary > span {
  display: grid;
}

.form-template-rule-builder summary small,
.form-output-disclosure > summary small {
  color: var(--muted);
}

.form-template-measure-scope {
  min-width: 0;
}

.checkbox-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .4rem .75rem;
  max-height: 20rem;
  padding: .7rem;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 6px;
}

.form-template-wizard-controls {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  padding: .65rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.form-template-workflow {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 1fr);
  gap: 1.2rem;
  align-items: start;
}

.workflow-status {
  display: grid;
  gap: .45rem;
  margin: .8rem 0 0;
  padding: 0;
  list-style: none;
}

.workflow-status li {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .55rem .7rem;
  border-left: 3px solid var(--line);
  background: var(--bg);
}

.workflow-status li.done {
  border-left-color: var(--brand);
}

.workflow-status span {
  color: var(--muted);
}

.form-template-workflow-actions {
  display: grid;
  gap: .65rem;
}

.form-template-test-form {
  display: grid;
  gap: .45rem;
}

.form-output-group {
  margin: 1.2rem 0 1.8rem;
}

.form-output-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}

.form-output-card {
  align-items: flex-end;
}

.form-output-card .button {
  flex: 0 0 auto;
}

.form-output-disclosure .form-output-card-grid {
  padding-top: .75rem;
  border-top: 1px solid var(--line);
}

@media (max-width: 1050px) {
  .form-template-preview-layout,
  .form-template-mapping-layout,
  .form-template-workflow {
    grid-template-columns: 1fr;
  }

  .form-template-preview-layout > aside,
  .form-template-field-editor {
    padding-left: 0;
    padding-top: 1rem;
    border-left: 0;
    border-top: 1px solid var(--line);
  }
}

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

  .form-template-list-card,
  .form-output-card {
    align-items: flex-start;
    flex-direction: column;
  }

  .form-output-card-grid,
  .checkbox-list {
    grid-template-columns: 1fr;
  }

  .form-template-list-card .row-actions,
  .form-output-card .button {
    width: 100%;
  }
}

@media (max-width: 480px) {
  .form-template-step-nav {
    grid-template-columns: 1fr;
  }

  .form-template-geometry-grid {
    grid-template-columns: 1fr;
  }

  .form-template-nudge-controls {
    align-items: stretch;
    flex-direction: column;
  }

  .form-template-nudge-controls > label {
    max-width: none;
  }

  .form-template-wizard-controls .button {
    flex: 1 1 0;
  }
}

.measure-document-card-list {
  display: grid;
  gap: .85rem;
  margin-top: .9rem;
}

.measure-document-card {
  padding: 1rem 1.1rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface, #fff);
}

.measure-document-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: .75rem;
}

.measure-document-card-head h3,
.measure-document-card-head p {
  margin: 0;
}

.measure-document-card-head p:not(.eyebrow) {
  margin-top: .25rem;
  color: var(--muted);
  line-height: 1.45;
}

.switch-control {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  flex: 0 0 auto;
  min-height: 2.25rem;
  padding: .35rem .55rem;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: var(--surface-subtle, #f7f8fa);
  font-weight: 700;
}

.switch-control input {
  inline-size: 1.15rem;
  block-size: 1.15rem;
  margin: 0;
}

.education-leave-registration-card {
  border-left: 4px solid var(--accent);
}

.education-leave-standalone-form {
  display: grid;
  gap: 1rem;
}

.education-leave-recognition-list {
  display: grid;
  gap: .65rem;
}

.education-leave-recognition-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: .8rem;
  border: 1px solid var(--border);
  border-radius: 8px;
}

.education-leave-recognition-row > div:first-child {
  display: grid;
  min-width: 0;
  gap: .2rem;
}

.education-leave-recognition-row span {
  overflow-wrap: anywhere;
}

.education-leave-dashboard .dashboard-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr));
  gap: .65rem;
  margin: .85rem 0;
}

.education-leave-dashboard .dashboard-kpis > div {
  display: grid;
  gap: .15rem;
  padding: .7rem;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: var(--surface-subtle, #f7f8fa);
}

.education-leave-dashboard .dashboard-kpis strong {
  font-size: 1.45rem;
}

.compact-stat-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
  gap: .3rem .8rem;
  padding: 0;
  list-style: none;
}

.compact-stat-list li {
  display: flex;
  justify-content: space-between;
  gap: .7rem;
  padding: .35rem 0;
  border-bottom: 1px solid var(--border);
}

.certificate-rejection-form,
.certificate-signed-upload {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .35rem;
}

.certificate-rejection-form input {
  width: min(17rem, 100%);
}

.certificate-signed-upload input[type="file"] {
  max-width: 18rem;
  font-size: .85rem;
}

.education-leave-studio-panel {
  margin-top: 1rem;
}

@media (max-width: 850px) {
  .planner-timeline {
    display: none;
  }

  .planner-mobile-list {
    display: grid;
    gap: .45rem;
    margin-top: .85rem;
  }

}

@media (max-width: 720px) {
  .measure-document-card-head,
  .education-leave-recognition-row {
    align-items: stretch;
    flex-direction: column;
  }

  .switch-control {
    align-self: flex-start;
  }
}

.button.tiny {
  font-size: .78rem;
  min-height: 1.9rem;
  padding: .28rem .5rem;
}

@media (pointer: coarse) {
  .dashboard-drag-icon {
    display: none;
  }

  .dashboard-sort-handle button {
    display: inline-flex;
  }
}
/* Geschützter Entwicklungs-Testbereich */
.test-mode-banner {
  position: sticky;
  top: 0;
  z-index: 95;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .65rem max(1rem, calc((100vw - 1180px) / 2));
  color: #172033;
  background: #fff4c7;
  border-bottom: 2px solid #c38a00;
  box-shadow: 0 2px 8px rgba(23, 32, 51, .12);
}

.test-mode-banner form,
.test-mode-banner .button {
  flex: 0 0 auto;
  margin: 0;
}

.test-warning {
  margin: 0 0 1rem;
  padding: .75rem 1rem;
  color: #432b00;
  background: #fff7da;
  border-left: 4px solid #c38a00;
}

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

.test-tools-grid > * {
  min-width: 0;
}

.test-measure-meta {
  margin-top: 1rem;
  padding-top: .75rem;
  border-top: 1px solid #d9e0e8;
}

.test-measure-meta p {
  margin: .25rem 0;
}

.test-badge {
  color: #432b00;
  background: #ffe08a;
  border: 1px solid #c38a00;
}

@media (max-width: 760px) {
  .test-tools-grid {
    grid-template-columns: 1fr;
  }

  .test-mode-banner {
    position: static;
    align-items: stretch;
    flex-direction: column;
    padding: .75rem 1rem;
  }

  .test-mode-banner .button {
    width: 100%;
  }
}

/* Reisedokumente und finanzielle Zuschussfälle */
.travel-document-summary {
  background: #f7faf4;
  border-left: 3px solid var(--brand);
  margin: .85rem 1rem 0;
  overflow-wrap: anywhere;
  padding: .55rem .7rem;
}

.travel-document-section .choice-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grant-cases-panel,
.grant-case-list,
.grant-case-editor,
.grant-payments {
  min-width: 0;
}

.grant-section-disclosure {
  overflow: hidden;
  padding: 0;
}

.grant-section-disclosure > summary,
.grant-list-disclosure > summary {
  cursor: pointer;
  list-style: none;
}

.grant-section-disclosure > summary::-webkit-details-marker,
.grant-list-disclosure > summary::-webkit-details-marker {
  display: none;
}

.grant-section-disclosure > summary {
  align-items: center;
  display: flex;
  justify-content: space-between;
  padding: 1rem 1.1rem;
}

.grant-section-disclosure > summary::after,
.grant-list-disclosure > summary::after {
  color: var(--muted);
  content: '+';
  flex: 0 0 auto;
  font-size: 1.25rem;
  font-weight: 700;
  margin-left: .75rem;
}

.grant-section-disclosure[open] > summary::after,
.grant-list-disclosure[open] > summary::after {
  content: '−';
}

.grant-section-disclosure > summary span,
.grant-list-disclosure > summary span {
  display: grid;
  gap: .16rem;
  min-width: 0;
}

.grant-section-disclosure > summary strong {
  font-size: 1.12rem;
}

.grant-section-disclosure > summary small,
.grant-list-disclosure > summary small {
  color: var(--muted);
  font-size: .82rem;
  font-weight: 500;
  overflow-wrap: anywhere;
}

.grant-section-content {
  border-top: 1px solid var(--line);
  padding: 1rem 1.1rem;
}

.grant-participant-list-stack {
  display: grid;
  gap: .75rem;
}

.grant-list-disclosure {
  background: color-mix(in srgb, var(--panel) 92%, var(--page));
  border: 1px solid var(--line);
  border-radius: 7px;
  overflow: clip;
}

.grant-list-disclosure > summary {
  align-items: center;
  display: flex;
  justify-content: space-between;
  padding: .78rem .85rem;
}

.grant-list-disclosure > summary strong {
  font-size: .98rem;
}

.grant-list-content {
  background: var(--panel);
  border-top: 1px solid var(--line);
  padding: .85rem;
}

.grant-finance-summary {
  display: grid;
  gap: .65rem;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin: .9rem 0;
}

.grant-finance-summary > div {
  background: #f7f9fb;
  border-left: 3px solid var(--brand);
  display: grid;
  gap: .12rem;
  min-width: 0;
  padding: .6rem .7rem;
}

.grant-finance-summary strong,
.grant-finance-summary span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.grant-finance-summary strong {
  font-size: 1.08rem;
}

.grant-finance-summary span {
  color: var(--muted);
  font-size: .82rem;
}

.grant-case-editor {
  border-block: 1px solid var(--line);
  margin: .9rem 0;
  padding: .7rem 0;
}

.grant-case-editor > summary,
.grant-payments > summary {
  cursor: pointer;
  font-weight: 800;
}

.rhauderfehn-accounting-editor {
  border-block: 1px solid var(--line);
  margin: .85rem 0;
  padding: .65rem 0;
}

.rhauderfehn-accounting-editor > summary {
  cursor: pointer;
  font-weight: 800;
}

.rhauderfehn-accounting-editor > form {
  margin-top: .75rem;
}

.rhauderfehn-accounting-editor [data-rhauderfehn-accounting-fields] {
  border-left: 3px solid var(--brand);
  padding-left: .75rem;
}

.grant-case-form {
  margin-top: .8rem;
}

.grant-case-form .sub-panel {
  border: 1px solid var(--line);
  border-radius: 6px;
  margin: 0;
  padding: .7rem;
}

.grant-case-form .sub-panel legend {
  font-weight: 800;
  padding-inline: .25rem;
}

.grant-case-list {
  display: grid;
}

.grant-case-item {
  border-top: 1px solid var(--line);
  min-width: 0;
  padding: .85rem 0;
}

.grant-case-head,
.grant-case-item .actions,
.grant-payments li {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  justify-content: space-between;
  min-width: 0;
}

.grant-payment-actions {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
}

.grant-payment-editor > summary {
  color: var(--brand-dark);
  cursor: pointer;
  font-size: .85rem;
  font-weight: 800;
  padding: .35rem 0;
}

.grant-payment-editor[open] {
  flex-basis: 100%;
  width: 100%;
}

.grant-case-head > div {
  min-width: 0;
}

.grant-case-head h3,
.grant-case-head p {
  margin: 0;
  overflow-wrap: anywhere;
}

.grant-case-amounts {
  display: grid;
  gap: .55rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: .7rem 0;
}

.grant-case-amounts > div {
  min-width: 0;
}

.grant-case-amounts dt {
  color: var(--muted);
  font-size: .8rem;
}

.grant-case-amounts dd {
  font-weight: 800;
  margin: .1rem 0 0;
  overflow-wrap: anywhere;
}

.grant-payments {
  margin-top: .65rem;
}

.grant-payments ul {
  display: grid;
  gap: .35rem;
  list-style: none;
  margin: .65rem 0;
  padding: 0;
}

.grant-payments li {
  border-bottom: 1px solid var(--line);
  padding: .4rem 0;
}

.grant-payment-form {
  align-items: end;
  display: grid;
  gap: .55rem;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
}

@media (max-width: 900px) {
  .grant-finance-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .grant-payment-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .travel-document-section .choice-grid,
  .grant-finance-summary,
  .grant-case-amounts,
  .grant-payment-form {
    grid-template-columns: 1fr;
  }

  .grant-payment-form .button {
    width: 100%;
  }
}

/* Einheitliches klassisches CheckAway-Design */
.theme-classic .measure-page-title {
  align-items: flex-end;
  border-bottom: 1px solid var(--line);
  margin-bottom: 1.25rem;
  padding-bottom: 1rem;
}

.theme-classic .measure-page-title h1 {
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.05;
  margin-bottom: .35rem;
}

.theme-classic .measure-page-title p {
  max-width: 68rem;
}

.theme-classic .measure-editor-panel {
  margin: 0 0 1.4rem;
  scroll-margin-top: 7rem;
}

.theme-classic .measure-editor-heading {
  margin: 0 0 1rem;
  max-width: 72ch;
}

.theme-classic .measure-editor-heading h2 {
  font-size: 1.45rem;
  line-height: 1.2;
  margin: .15rem 0 .35rem;
}

.theme-classic .measure-editor-heading p:last-child {
  color: var(--muted);
  margin-bottom: 0;
}

.theme-classic .measure-form.is-enhanced {
  display: block;
}

.theme-classic .measure-form-shell {
  align-items: start;
  display: grid;
  gap: 1.15rem;
  grid-template-columns: minmax(225px, 260px) minmax(0, 1fr);
  min-width: 0;
}

.theme-classic .measure-form-guide {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(23, 32, 51, .06);
  display: grid;
  gap: .85rem;
  max-height: calc(100vh - 7rem);
  overflow: auto;
  padding: .9rem;
  position: sticky;
  top: 6rem;
}

.theme-classic .measure-form-guide-header {
  display: grid;
  gap: .18rem;
  min-width: 0;
}

.theme-classic .measure-form-guide-eyebrow {
  color: #5a700f;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

.theme-classic .measure-form-guide-title {
  font-size: 1.03rem;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.theme-classic .measure-form-progress {
  display: grid;
  gap: .4rem;
}

.theme-classic .measure-form-progress-text {
  color: var(--muted);
  font-size: .76rem;
  line-height: 1.35;
}

.theme-classic .measure-form-progress-track {
  background: #edf0f3;
  border-radius: 999px;
  display: block;
  height: 5px;
  overflow: hidden;
  width: 100%;
}

.theme-classic .measure-form-progress-bar {
  background: var(--brand);
  display: block;
  height: 100%;
  transition: width .2s ease;
  width: 0;
}

.theme-classic .measure-form-guide-toggle {
  display: none;
}

.theme-classic .measure-form-navigation ol {
  display: grid;
  gap: .18rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.theme-classic .measure-form-navigation li {
  margin: 0;
  min-width: 0;
}

.theme-classic .measure-form-nav-button {
  align-items: center;
  background: transparent;
  border: 0;
  border-left: 3px solid transparent;
  border-radius: 4px;
  color: var(--ink);
  cursor: pointer;
  display: grid;
  font: inherit;
  font-size: .78rem;
  font-weight: 700;
  gap: .42rem;
  grid-template-columns: 1.35rem minmax(0, 1fr) auto;
  line-height: 1.25;
  min-height: 34px;
  padding: .36rem .42rem;
  text-align: left;
  width: 100%;
}

.theme-classic .measure-form-nav-button:hover,
.theme-classic .measure-form-nav-button:focus-visible,
.theme-classic .measure-form-nav-button.has-focus {
  background: #f4f6f8;
}

.theme-classic .measure-form-nav-button.is-active {
  background: #f3f8e6;
  border-left-color: var(--brand);
  color: #263800;
}

.theme-classic .measure-form-nav-number {
  color: var(--muted);
  font-size: .69rem;
  font-variant-numeric: tabular-nums;
  text-align: center;
}

.theme-classic .measure-form-nav-label {
  min-width: 0;
  overflow-wrap: anywhere;
}

.theme-classic .measure-form-nav-status {
  align-items: center;
  background: #eef1f4;
  border-radius: 999px;
  color: var(--muted);
  display: inline-flex;
  font-size: .65rem;
  font-variant-numeric: tabular-nums;
  font-weight: 800;
  justify-content: center;
  min-height: 1.25rem;
  min-width: 1.25rem;
  padding: 0 .25rem;
}

.theme-classic .measure-form-nav-status:empty {
  display: none;
}

.theme-classic .measure-form-guide-actions {
  border-top: 1px solid var(--line);
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .65rem;
  padding-top: .7rem;
}

.theme-classic .measure-form-guide-action {
  background: transparent;
  border: 0;
  color: #52660f;
  cursor: pointer;
  font: inherit;
  font-size: .72rem;
  font-weight: 750;
  padding: .1rem 0;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

.theme-classic .measure-form-content {
  display: grid;
  gap: .72rem;
  min-width: 0;
}

.theme-classic .measure-form-content > .required-note {
  background: transparent;
  border: 0;
  color: var(--muted);
  font-size: .78rem;
  margin: 0 0 .1rem;
  padding: 0 .1rem;
}

.theme-classic .measure-form-content > .form-section-panel {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 3px 12px rgba(23, 32, 51, .035);
  display: block;
  overflow: clip;
  padding: 0;
  scroll-margin-top: 6rem;
}

.theme-classic .measure-form-content > .form-section-panel.is-open {
  border-color: #c8d2dd;
  box-shadow: 0 8px 22px rgba(23, 32, 51, .055);
}

.theme-classic .measure-form-content > .form-section-panel.has-missing {
  border-left: 3px solid #d7dde3;
}

.theme-classic .measure-form-content > .form-section-panel.is-complete {
  border-left: 3px solid var(--brand);
}

.theme-classic .measure-form-content > .form-section-panel > h3 {
  margin: 0;
}

.theme-classic .measure-section-toggle {
  align-items: center;
  background: #fff;
  border: 0;
  color: var(--ink);
  cursor: pointer;
  display: grid;
  font: inherit;
  gap: .75rem;
  grid-template-columns: minmax(0, 1fr) auto 1.2rem;
  padding: .78rem .9rem;
  text-align: left;
  width: 100%;
}

.theme-classic .measure-section-toggle:hover {
  background: #fafbfc;
}

.theme-classic .measure-section-toggle:focus-visible {
  box-shadow: inset 0 0 0 3px rgba(149, 193, 30, .45);
  outline: 0;
}

.theme-classic .measure-section-heading-text {
  align-items: center;
  display: grid;
  gap: .7rem;
  grid-template-columns: 1.7rem minmax(0, 1fr);
  min-width: 0;
}

.theme-classic .measure-section-index {
  color: #647083;
  font-size: .72rem;
  font-variant-numeric: tabular-nums;
  font-weight: 800;
  text-align: center;
}

.theme-classic .measure-section-title-block {
  display: grid;
  gap: .08rem;
  min-width: 0;
}

.theme-classic .measure-section-title {
  font-size: .98rem;
  font-weight: 800;
  line-height: 1.25;
}

.theme-classic .measure-section-description {
  color: var(--muted);
  font-size: .76rem;
  font-weight: 500;
  line-height: 1.35;
}

.theme-classic .measure-section-status {
  background: #f0f2f5;
  border-radius: 999px;
  color: var(--muted);
  font-size: .67rem;
  font-weight: 800;
  line-height: 1.2;
  padding: .28rem .48rem;
  white-space: nowrap;
}

.theme-classic .form-section-panel.is-complete .measure-section-status {
  background: #eef6d9;
  color: #445a08;
}

.theme-classic .measure-section-chevron {
  color: #526071;
  font-size: 1.15rem;
  font-weight: 500;
  line-height: 1;
  text-align: center;
}

.theme-classic .measure-section-body {
  border-top: 1px solid var(--line);
  padding: 1rem;
}

.theme-classic .measure-section-body > .form-grid {
  gap: .85rem 1rem;
}

.theme-classic .measure-section-body label {
  color: #273247;
  font-size: .88rem;
  gap: .36rem;
  position: relative;
}

.theme-classic .measure-section-body label:has(> .required-marker) {
  column-gap: .22rem;
  padding-right: 0;
}

.theme-classic .measure-section-body label > .required-marker {
  align-self: start;
  grid-column: 2;
  grid-row: 1;
  justify-self: start;
  line-height: inherit;
  margin: 0;
  position: static;
}

.theme-classic .measure-section-body input:not([type="checkbox"]):not([type="radio"]),
.theme-classic .measure-section-body select,
.theme-classic .measure-section-body textarea {
  border-color: #b8c2ce;
  box-shadow: 0 1px 1px rgba(23, 32, 51, .02);
}

.theme-classic .measure-section-body input:not([type="checkbox"]):not([type="radio"]):hover,
.theme-classic .measure-section-body select:hover,
.theme-classic .measure-section-body textarea:hover {
  border-color: #8f9aa8;
}

.theme-classic .measure-section-body input:not([type="checkbox"]):not([type="radio"]):focus,
.theme-classic .measure-section-body select:focus,
.theme-classic .measure-section-body textarea:focus {
  border-color: #708b1d;
  box-shadow: 0 0 0 3px rgba(149, 193, 30, .2);
  outline: 0;
}

.theme-classic .measure-section-body input[readonly] {
  background: #f4f6f8;
  color: #596577;
}

.theme-classic .measure-section-body .check {
  background: #f7f8fa;
  border: 1px solid #e0e5ea;
  border-radius: 6px;
  min-height: 42px;
  padding: .58rem .68rem;
}

.theme-classic .measure-section-body .check:has(input:checked) {
  background: #f3f8e6;
  border-color: #b7cb78;
}

.theme-classic .measure-section-body .help-text {
  color: #6a7483;
  font-size: .76rem;
  font-weight: 500;
  line-height: 1.4;
}

.theme-classic .measure-form-content > .actions {
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  background: rgba(255, 255, 255, .94);
  border: 1px solid var(--line);
  border-radius: 8px;
  bottom: .65rem;
  box-shadow: 0 8px 24px rgba(23, 32, 51, .1);
  justify-content: flex-end;
  margin-top: .18rem;
  padding: .7rem;
  position: sticky;
  z-index: 24;
}

.theme-classic .measure-form-content > .actions .button {
  min-width: 9.5rem;
}

@media (max-width: 1050px) {
  .theme-classic .measure-form-shell {
    grid-template-columns: minmax(0, 1fr);
  }

  .theme-classic .measure-form-guide {
    max-height: none;
    overflow: visible;
    position: static;
  }

  .theme-classic .measure-form-guide-toggle {
    align-items: center;
    background: #f4f6f8;
    border: 1px solid var(--line);
    border-radius: 6px;
    color: var(--ink);
    cursor: pointer;
    display: flex;
    font: inherit;
    font-size: .82rem;
    font-weight: 750;
    justify-content: center;
    min-height: 40px;
    padding: .45rem .65rem;
    width: 100%;
  }

  .theme-classic .measure-form-navigation,
  .theme-classic .measure-form-guide-actions {
    display: none;
  }

  .theme-classic .measure-form-guide.is-mobile-open .measure-form-navigation {
    display: block;
  }

  .theme-classic .measure-form-guide.is-mobile-open .measure-form-guide-actions {
    display: flex;
  }

  .theme-classic .measure-form-navigation ol {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .theme-classic .measure-page-title {
    align-items: stretch;
  }

  .theme-classic .measure-page-title > .button {
    width: 100%;
  }

  .theme-classic .measure-form-navigation ol {
    grid-template-columns: minmax(0, 1fr);
  }

  .theme-classic .measure-section-toggle {
    gap: .45rem;
    grid-template-columns: minmax(0, 1fr) 1rem;
    padding: .72rem .7rem;
  }

  .theme-classic .measure-section-status {
    grid-column: 1;
    justify-self: start;
    margin-left: 2.4rem;
  }

  .theme-classic .measure-section-chevron {
    grid-column: 2;
    grid-row: 1 / span 2;
  }

  .theme-classic .measure-section-heading-text {
    gap: .45rem;
    grid-template-columns: 1.5rem minmax(0, 1fr);
  }

  .theme-classic .measure-section-description {
    display: none;
  }

  .theme-classic .measure-section-body {
    padding: .8rem .7rem;
  }

  .theme-classic .measure-form-content > .actions {
    bottom: .35rem;
  }

  .theme-classic .measure-form-content > .actions .button {
    flex: 1 1 8rem;
    min-width: 0;
    width: auto;
  }
}

/* Schrittweiser Maßnahmen-Assistent im klassischen Design. */
.theme-classic .measure-wizard {
  display: grid;
  gap: .9rem;
  min-width: 0;
}

.theme-classic .measure-wizard > .required-note {
  background: transparent;
  border: 0;
  color: var(--muted);
  font-size: .82rem;
  margin: 0;
  padding: 0 .1rem;
}

.theme-classic .measure-wizard-navigation {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 5px 18px rgba(23, 32, 51, .045);
  max-width: 100%;
  overflow: visible;
  padding: .45rem;
}

.theme-classic .measure-wizard-navigation ol {
  display: grid;
  gap: .35rem;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  list-style: none;
  margin: 0;
  min-width: 0;
  padding: 0;
}

.theme-classic .measure-wizard-navigation li {
  margin: 0;
  min-width: 0;
}

.theme-classic .measure-wizard-navigation button {
  align-items: center;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 6px;
  color: #536073;
  cursor: pointer;
  display: grid;
  font: inherit;
  font-size: .77rem;
  font-weight: 750;
  gap: .45rem;
  grid-template-columns: 1.65rem minmax(0, 1fr);
  line-height: 1.25;
  min-height: 46px;
  padding: .45rem .55rem;
  text-align: left;
  width: 100%;
}

.theme-classic .measure-wizard-navigation button:hover {
  background: #f5f7f9;
  color: var(--ink);
}

.theme-classic .measure-wizard-navigation button:focus-visible {
  box-shadow: 0 0 0 3px rgba(149, 193, 30, .25);
  outline: 2px solid #617b11;
  outline-offset: 1px;
}

.theme-classic .measure-wizard-navigation button.is-current {
  background: #f1f7e3;
  border-color: #b8cc7a;
  color: #2d3d05;
}

.theme-classic .measure-wizard-navigation button.is-complete {
  color: #40540a;
}

.theme-classic .measure-wizard-nav-number {
  align-items: center;
  background: #edf0f3;
  border-radius: 50%;
  color: #5d6878;
  display: inline-flex;
  font-size: .72rem;
  font-variant-numeric: tabular-nums;
  height: 1.65rem;
  justify-content: center;
  width: 1.65rem;
}

.theme-classic .measure-wizard-navigation button.is-current .measure-wizard-nav-number,
.theme-classic .measure-wizard-navigation button.is-complete .measure-wizard-nav-number {
  background: var(--brand);
  color: #1d2900;
}

.theme-classic .measure-wizard-nav-label {
  min-width: 0;
  overflow-wrap: anywhere;
}

.theme-classic .measure-wizard-progress {
  align-items: center;
  display: grid;
  gap: .75rem 1rem;
  grid-template-columns: auto minmax(160px, 1fr);
  padding: 0 .1rem;
}

.theme-classic .measure-wizard-progress > div {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: .25rem .55rem;
}

.theme-classic .measure-wizard-progress strong {
  font-size: .82rem;
}

.theme-classic .measure-wizard-progress [data-measure-progress-detail] {
  color: var(--muted);
  font-size: .8rem;
}

.theme-classic .measure-wizard-progress-track {
  background: #e9edf1;
  border-radius: 999px;
  display: block;
  height: 6px;
  overflow: hidden;
}

.theme-classic .measure-wizard-progress-track > span {
  background: var(--brand);
  display: block;
  height: 100%;
  transition: width .2s ease;
  width: 14.285%;
}

.theme-classic .measure-wizard > .step-message {
  font-size: .82rem;
  margin: -.25rem 0 0;
  min-height: 1.2rem;
}

.measure-wizard.is-wizard-ready .measure-wizard-step[hidden],
.measure-wizard.is-wizard-ready [data-measure-step-prev][hidden],
.measure-wizard.is-wizard-ready [data-measure-step-next][hidden],
.measure-wizard.is-wizard-ready [data-measure-submit][hidden] {
  display: none !important;
}

.theme-classic .measure-wizard-step {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(23, 32, 51, .055);
  margin: 0;
  min-inline-size: 0;
  padding: 0;
  scroll-margin-top: 6.5rem;
}

.theme-classic .measure-wizard-step-heading {
  align-items: center;
  box-sizing: border-box;
  display: flex;
  gap: .75rem;
  margin: 0;
  padding: 1.05rem 1.15rem .9rem;
  width: 100%;
}

.theme-classic .measure-wizard-step-heading:focus {
  outline: 0;
}

.theme-classic .measure-wizard-step-heading:focus-visible {
  box-shadow: inset 0 0 0 3px rgba(149, 193, 30, .24);
}

.theme-classic .measure-wizard-step-number {
  align-items: center;
  background: var(--brand);
  border-radius: 50%;
  color: #1d2900;
  display: inline-flex;
  flex: 0 0 auto;
  font-size: .82rem;
  font-variant-numeric: tabular-nums;
  height: 2rem;
  justify-content: center;
  width: 2rem;
}

.theme-classic .measure-wizard-step-heading > span:last-child {
  display: grid;
  gap: .1rem;
  min-width: 0;
}

.theme-classic .measure-wizard-step-heading strong {
  color: var(--ink);
  font-size: 1.08rem;
  line-height: 1.25;
}

.theme-classic .measure-wizard-step-heading small {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 500;
  line-height: 1.35;
}

.theme-classic .measure-wizard-sections {
  border-top: 1px solid var(--line);
  display: grid;
}

.theme-classic .measure-wizard-sections > .form-section-panel {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  gap: .6rem;
  margin: 0;
  padding: .9rem 1.15rem 1rem;
}

.theme-classic .measure-wizard-sections > .form-section-panel + .form-section-panel {
  border-top: 1px solid #e4e8ed;
}

.theme-classic .measure-wizard-sections > .form-section-panel[hidden] {
  display: none !important;
}

.theme-classic .measure-wizard-sections > .form-section-panel > h3 {
  color: var(--ink);
  font-size: .98rem;
  line-height: 1.3;
  margin: 0;
}

.theme-classic .measure-wizard-sections > .form-section-panel > .help-text {
  margin: 0;
}

.theme-classic .measure-wizard-step .form-grid {
  align-items: start;
  gap: .7rem .85rem;
}

.theme-classic .measure-wizard-step label:not(.check) {
  align-content: start;
  color: #273247;
  column-gap: .22rem;
  font-size: .88rem;
  grid-template-columns: max-content minmax(0, 1fr);
  line-height: 1.35;
  min-width: 0;
  row-gap: .36rem;
}

.theme-classic .measure-wizard-step label:not(.check) > input,
.theme-classic .measure-wizard-step label:not(.check) > select,
.theme-classic .measure-wizard-step label:not(.check) > textarea,
.theme-classic .measure-wizard-step label:not(.check) > .help-text {
  grid-column: 1 / -1;
}

.theme-classic .measure-wizard-step label:not(.check) > .required-marker {
  align-self: start;
  grid-column: 2;
  grid-row: 1;
  margin: 0;
  justify-self: start;
}

.theme-classic .measure-wizard-step label:not(.check) > .sr-only {
  position: absolute;
}

.theme-classic .measure-wizard-step input:not([type="checkbox"]):not([type="radio"]),
.theme-classic .measure-wizard-step select,
.theme-classic .measure-wizard-step textarea {
  border-color: #adb8c5;
  box-shadow: 0 1px 1px rgba(23, 32, 51, .02);
}

.theme-classic .measure-wizard-step input:not([type="checkbox"]):not([type="radio"]):focus,
.theme-classic .measure-wizard-step select:focus,
.theme-classic .measure-wizard-step textarea:focus {
  border-color: #667f18;
  box-shadow: 0 0 0 3px rgba(149, 193, 30, .2);
  outline: 0;
}

.theme-classic .measure-wizard-step input[readonly] {
  background: #f4f6f8;
  color: #596577;
}

.theme-classic .measure-wizard-step .check {
  align-items: flex-start;
  background: #f7f8fa;
  border: 1px solid #e0e5ea;
  border-radius: 6px;
  display: flex;
  font-size: .86rem;
  gap: .55rem;
  line-height: 1.35;
  min-height: 42px;
  padding: .58rem .68rem;
}

.theme-classic .measure-wizard-step .check:has(input:checked) {
  background: #f3f8e6;
  border-color: #b7cb78;
}

.theme-classic .measure-wizard-step .check input {
  flex: 0 0 auto;
  margin-top: .08rem;
}

.theme-classic .measure-wizard-step .help-text {
  color: #687485;
  font-size: .76rem;
  font-weight: 500;
  line-height: 1.42;
}

.measure-setting-layout {
  display: grid;
  gap: .75rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.measure-setting-group {
  align-content: start;
  background: #f8f9fb;
  border: 1px solid #dde3e9;
  border-radius: 8px;
  display: grid;
  gap: .65rem;
  min-width: 0;
  padding: .75rem;
}

.measure-setting-group-heading {
  display: grid;
  gap: .12rem;
}

.measure-setting-group-heading strong {
  color: var(--ink);
  font-size: .88rem;
  line-height: 1.3;
}

.measure-setting-group-heading span {
  color: var(--muted);
  font-size: .74rem;
  line-height: 1.38;
}

.measure-setting-group-body,
.measure-check-stack,
.absence-email-settings {
  display: grid;
  gap: .55rem;
  min-width: 0;
}

.measure-capacity-setting .measure-setting-group-body {
  grid-template-rows: 78px minmax(2.8rem, auto);
  height: 100%;
}

.measure-capacity-setting {
  height: 100%;
}

.measure-setting-primary-control {
  align-items: flex-end;
  display: flex;
  min-height: 78px;
}

.measure-setting-primary-control > label {
  margin: 0;
  width: 100%;
}

.theme-classic .measure-setting-primary-control > .check {
  align-items: center;
  height: 54px;
  min-height: 54px;
}

.measure-image-editor {
  align-items: start;
  display: grid;
  gap: 1rem;
  grid-template-columns: minmax(280px, 1fr) minmax(360px, 1.12fr);
  min-width: 0;
}

.measure-image-stage {
  aspect-ratio: 16 / 7;
  background: #edf1f4;
  border: 1px solid #cfd7df;
  border-radius: 8px;
  cursor: grab;
  min-width: 0;
  overflow: hidden;
  position: relative;
  touch-action: none;
}

.measure-image-stage.is-empty {
  cursor: default;
}

.measure-image-stage.is-dragging {
  cursor: grabbing;
}

.measure-image-stage > img {
  display: block;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  user-select: none;
  width: 100%;
}

.measure-image-stage > img[hidden],
.measure-image-empty[hidden] {
  display: none !important;
}

.measure-image-empty {
  align-content: center;
  color: var(--muted);
  display: grid;
  gap: .25rem;
  height: 100%;
  justify-items: center;
  padding: 1rem;
  text-align: center;
}

.measure-image-empty strong {
  color: var(--ink);
}

.measure-image-crop-hint {
  background: rgba(255, 255, 255, .92);
  border-radius: 999px;
  bottom: .55rem;
  color: #303b4d;
  font-size: .68rem;
  font-weight: 800;
  left: .55rem;
  padding: .25rem .48rem;
  pointer-events: none;
  position: absolute;
}

.measure-image-editor-controls {
  display: grid;
  gap: .8rem;
  min-width: 0;
}

.measure-image-choice-grid {
  display: grid;
  gap: .5rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.theme-classic .measure-wizard-step .measure-image-choice {
  align-items: center;
  background: #fff;
  border: 1px solid #dce2e8;
  border-radius: 7px;
  cursor: pointer;
  display: grid;
  gap: .55rem;
  grid-template-columns: 1rem 3.4rem minmax(0, 1fr);
  min-height: 56px;
  min-width: 0;
  overflow: hidden;
  padding: .42rem;
}

.theme-classic .measure-wizard-step .measure-image-choice:has(input:checked) {
  background: #f3f8e6;
  border-color: #9eba4c;
  box-shadow: inset 0 0 0 1px #9eba4c;
}

.measure-image-choice > input {
  height: 1rem;
  margin: 0;
  min-height: 0;
  width: 1rem;
}

.measure-image-choice-thumb {
  align-self: center;
  border-radius: 4px;
  display: block;
  height: 1.9125rem;
  overflow: hidden;
  width: 3.4rem;
}

.measure-image-choice-thumb img {
  display: block;
  height: 100%;
  max-height: 100%;
  max-width: 100%;
  object-fit: cover;
  width: 100%;
}

.measure-image-choice > span:last-child {
  display: grid;
  gap: .08rem;
  min-width: 0;
}

.measure-image-choice strong {
  font-size: .78rem;
  line-height: 1.25;
}

.measure-image-choice small {
  color: var(--muted);
  font-size: .68rem;
  line-height: 1.25;
}

.measure-image-choice-icon {
  align-items: center;
  background: #edf1f4;
  border-radius: 4px;
  color: #4b586a;
  display: inline-flex;
  font-size: 1.15rem;
  font-weight: 800;
  height: 2rem;
  justify-content: center;
  width: 2rem;
}

.measure-image-upload,
.measure-image-position-controls {
  background: #f7f8fa;
  border: 1px solid #e0e5ea;
  border-radius: 7px;
  padding: .65rem;
}

.measure-image-position-controls {
  display: grid;
  gap: .55rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.measure-image-position-controls .row-actions {
  grid-column: 1 / -1;
}

.measure-image-position-controls output {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 700;
  justify-self: end;
}

.measure-image-position-controls input[type="range"] {
  grid-column: 1 / -1;
  min-height: 1.5rem;
  width: 100%;
}

.measure-setting-group-body > p,
.measure-check-stack > p,
.absence-email-settings > p {
  margin: 0;
}

.theme-classic .measure-setting-group .check {
  background: #fff;
  margin: 0;
}

.theme-classic .measure-setting-group label:not(.check) {
  font-size: .84rem;
}

.absence-email-choice-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.theme-classic .measure-wizard-step .choice-card {
  display: flex;
  gap: .62rem;
  grid-template-columns: none;
  min-width: 0;
  padding: .65rem .72rem;
}

.theme-classic .measure-wizard-step .choice-card > input[type="radio"] {
  grid-column: auto;
  height: 1rem;
  min-height: 0;
  width: 1rem;
}

.theme-classic .measure-wizard-step .choice-card .choice-title {
  font-size: .82rem;
}

.theme-classic .measure-wizard-step .choice-card .choice-description {
  font-size: .74rem;
  line-height: 1.36;
}

.absence-email-settings .choice-hint {
  font-size: .74rem;
  margin: 0;
}

.coorganizer-search {
  margin: 0;
}

.coorganizer-choice-list {
  border: 1px solid #dde3e9;
  border-radius: 7px;
  display: grid;
  gap: 0;
  max-height: 17rem;
  overflow: auto;
}

.theme-classic .measure-wizard-step .coorganizer-choice {
  background: #fff;
  border: 0;
  border-bottom: 1px solid #e7ebef;
  border-radius: 0;
  min-height: 0;
  padding: .58rem .65rem;
}

.theme-classic .measure-wizard-step .coorganizer-choice:last-child {
  border-bottom: 0;
}

.theme-classic .measure-wizard-step .coorganizer-choice:has(input:checked) {
  background: #f3f8e6;
}

.coorganizer-choice-copy {
  display: grid;
  gap: .12rem;
  min-width: 0;
}

.coorganizer-choice-title {
  color: var(--ink);
  font-size: .82rem;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.coorganizer-choice-meta {
  align-items: center;
  color: var(--muted);
  display: flex;
  flex-wrap: wrap;
  font-size: .7rem;
  font-weight: 550;
  gap: .35rem;
  line-height: 1.3;
}

.coorganizer-choice-status {
  background: #eef2f6;
  border-radius: 999px;
  color: #556274;
  display: inline-flex;
  font-size: .66rem;
  font-weight: 750;
  padding: .12rem .35rem;
}

.coorganizer-confirmation[hidden],
[data-coorganizer-choice][hidden],
[data-coorganizer-empty][hidden] {
  display: none !important;
}

.coorganizer-permission-note {
  margin: 0;
}

.theme-classic .measure-wizard-review {
  align-items: start;
  background: #f7f9f3;
  border-top: 1px solid #dfe6cf;
  display: grid;
  gap: 1rem 1.4rem;
  grid-template-columns: minmax(220px, .8fr) minmax(0, 1.2fr);
  padding: 1rem 1.15rem 1.15rem;
}

.theme-classic .measure-wizard-review h3,
.theme-classic .measure-wizard-review p {
  margin-bottom: .35rem;
}

.theme-classic .measure-wizard-review dl {
  display: grid;
  gap: .65rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}

.theme-classic .measure-wizard-review dl > div {
  min-width: 0;
}

.theme-classic .measure-wizard-review dt {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 750;
}

.theme-classic .measure-wizard-review dd {
  font-size: .86rem;
  font-weight: 750;
  margin: .1rem 0 0;
  overflow-wrap: anywhere;
}

.theme-classic .measure-wizard-controls {
  align-items: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 5px 18px rgba(23, 32, 51, .045);
  display: flex;
  gap: .55rem;
  justify-content: flex-start;
  margin: 0;
  padding: .7rem;
}

.theme-classic .measure-wizard-spacer {
  flex: 1 1 auto;
}

.theme-classic .measure-wizard-controls .button {
  min-width: 8.5rem;
}

@media (max-width: 800px) {
  .theme-classic .measure-wizard-navigation ol {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    min-width: 0;
  }

  .theme-classic .measure-wizard-progress {
    grid-template-columns: minmax(0, 1fr);
  }

  .theme-classic .measure-wizard-step-heading {
    align-items: flex-start;
    padding: .9rem .8rem .75rem;
  }

  .theme-classic .measure-wizard-sections > .form-section-panel {
    padding: .85rem .8rem 1rem;
  }

  .theme-classic .measure-wizard-step .form-grid,
  .measure-setting-layout,
  .absence-email-choice-grid,
  .measure-image-editor,
  .theme-classic .measure-wizard-review,
  .theme-classic .measure-wizard-review dl {
    grid-template-columns: minmax(0, 1fr);
  }

  .theme-classic .measure-wizard-controls {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .theme-classic .measure-wizard-spacer {
    display: none;
  }

  .theme-classic .measure-wizard-controls .button {
    min-width: 0;
    width: 100%;
  }
}

@media (max-width: 480px) {
  .measure-image-choice-grid,
  .measure-image-position-controls {
    grid-template-columns: minmax(0, 1fr);
  }

  .measure-image-position-controls .row-actions {
    grid-column: 1;
  }

  .theme-classic .measure-wizard-controls {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Organisations- und Mandantenverwaltung */
.organization-grid {
  align-items: stretch;
}

.organization-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.organization-card h2 {
  margin: .25rem 0 .4rem;
  overflow-wrap: anywhere;
}

.organization-card p:last-child {
  margin-top: auto;
}

.organization-tree-panel {
  padding: 0;
  overflow: visible;
}

.organization-tree-toolbar {
  display: grid;
  grid-template-columns: minmax(16rem, 30rem) minmax(12rem, 1fr);
  align-items: end;
  gap: 1rem;
  padding: 1rem 1rem .85rem;
}

.organization-tree-toolbar label {
  display: grid;
  gap: .35rem;
  min-width: 0;
  margin: 0;
}

.organization-tree-toolbar label > span {
  font-size: .82rem;
  font-weight: 700;
}

.organization-tree-toolbar-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .75rem;
  min-width: 0;
}

.organization-tree-toolbar-actions [data-organization-tree-result] {
  font-size: .88rem;
}

.organization-tree-privacy {
  margin: 0;
  padding: .65rem 1rem;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: var(--surface-subtle, #f6f8fa);
  color: var(--muted);
  font-size: .83rem;
  line-height: 1.45;
}

.organization-tree-roots,
.organization-tree-children {
  margin: 0;
  padding: 0;
  list-style: none;
}

.organization-tree-roots {
  padding: .35rem .7rem .55rem;
}

.organization-tree-roots > .organization-tree-item + .organization-tree-item {
  border-top: 1px solid var(--border);
}

.organization-tree-item {
  min-width: 0;
}

.organization-tree-item[hidden] {
  display: none;
}

.organization-tree-item > details {
  min-width: 0;
}

.organization-tree-item > details > summary,
.organization-tree-leaf {
  display: grid;
  grid-template-columns: 1rem minmax(0, 1fr) auto;
  align-items: center;
  gap: .7rem;
  min-width: 0;
  min-height: 58px;
  padding: .7rem .65rem;
  border-radius: 6px;
}

.organization-tree-leaf {
  grid-template-columns: 1rem minmax(0, 1fr) auto auto;
}

.organization-tree-item > details > summary {
  cursor: pointer;
  list-style: none;
}

.organization-tree-item > details > summary::-webkit-details-marker,
.organization-tree-action-menu > summary::-webkit-details-marker {
  display: none;
}

.organization-tree-item > details > summary::before {
  width: .55rem;
  height: .55rem;
  border-right: 2px solid var(--muted);
  border-bottom: 2px solid var(--muted);
  content: "";
  transform: rotate(-45deg);
  transition: transform .16s ease;
}

.organization-tree-item > details[open] > summary::before {
  transform: rotate(45deg) translate(-1px, -1px);
}

.organization-tree-leaf::before {
  width: .38rem;
  height: .38rem;
  margin-left: .1rem;
  border-radius: 50%;
  background: var(--border-strong, var(--border));
  content: "";
}

.organization-tree-item > details > summary:hover,
.organization-tree-item > details > summary:focus-visible,
.organization-tree-leaf:hover {
  background: var(--surface-subtle, #f5f7f9);
}

.organization-tree-item > details > summary:focus-visible {
  outline: 3px solid var(--focus, #4f7c00);
  outline-offset: -2px;
}

.organization-tree-copy {
  display: block;
  min-width: 0;
}

.organization-tree-copy strong {
  display: block;
  overflow-wrap: anywhere;
  font-size: .98rem;
  line-height: 1.3;
}

.organization-tree-subline {
  display: flex;
  flex-wrap: wrap;
  gap: .1rem .35rem;
  margin-top: .2rem;
  color: var(--muted);
  font-size: .8rem;
  line-height: 1.4;
}

.organization-tree-badges {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .35rem;
  min-width: 0;
}

.organization-role-badge {
  background: color-mix(in srgb, var(--primary) 14%, white);
  color: var(--text);
}

.organization-tree-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: .4rem;
  min-width: 0;
  margin: 0 .65rem .6rem 2.35rem;
}

.organization-tree-leaf > .organization-tree-actions {
  grid-column: 4;
  margin: 0;
}

.organization-tree-open {
  white-space: nowrap;
}

.organization-tree-action-menu {
  position: relative;
}

.organization-tree-action-menu > summary {
  display: grid;
  place-items: center;
  width: 34px;
  min-width: 34px;
  height: 30px;
  min-height: 30px;
  padding: 0 0 .38rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: #fff;
  color: var(--text);
  cursor: pointer;
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1;
  list-style: none;
}

.organization-tree-action-menu > summary:hover,
.organization-tree-action-menu > summary:focus-visible {
  border-color: var(--muted);
  background: var(--surface-subtle, #f5f7f9);
}

.organization-tree-action-menu > summary:focus-visible {
  outline: 3px solid var(--focus, #4f7c00);
  outline-offset: 2px;
}

.organization-tree-action-menu-popover {
  position: absolute;
  z-index: 30;
  top: calc(100% + .3rem);
  right: 0;
  display: grid;
  min-width: 13rem;
  padding: .3rem;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(18, 27, 43, .16);
}

.organization-tree-action-menu-popover a {
  padding: .55rem .6rem;
  border-radius: 5px;
  color: var(--text);
  font-size: .86rem;
  font-weight: 700;
  line-height: 1.3;
  text-decoration: none;
  white-space: nowrap;
}

.organization-tree-action-menu-popover a:hover,
.organization-tree-action-menu-popover a:focus-visible {
  background: var(--surface-subtle, #f5f7f9);
}

.organization-tree-action-menu-popover .organization-tree-danger-action {
  color: var(--danger);
}

.organization-tree-action-menu-popover .organization-tree-danger-action:hover,
.organization-tree-action-menu-popover .organization-tree-danger-action:focus-visible {
  background: var(--danger-bg);
}

.organization-tree-children {
  margin: 0 0 .25rem 1.25rem;
  padding-left: .75rem;
  border-left: 1px solid var(--border);
}

.organization-tree-children > .organization-tree-item + .organization-tree-item {
  border-top: 1px solid color-mix(in srgb, var(--border) 72%, transparent);
}

.theme-classic .organization-tree-panel {
  padding: 0;
  overflow: visible;
}

.theme-classic .organization-tree-toolbar label {
  display: grid;
}

.theme-classic .organization-tree-actions .button,
.theme-classic .organization-tree-action-menu > summary {
  min-height: 30px;
}

.theme-classic .organization-tree-actions .button {
  padding: .3rem .55rem;
  font-size: .84rem;
}

.organization-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: .2rem .42rem;
  align-items: center;
  margin: 0 0 .75rem;
  color: var(--muted);
  font-size: .86rem;
}

.organization-breadcrumb a {
  color: inherit;
}

.organization-detail-title {
  align-items: start;
}

.organization-detail-primary-actions {
  display: grid;
  flex: 0 1 34rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.organization-detail-primary-actions .button {
  min-width: 0;
  width: 100%;
}

.organization-detail-overview {
  margin-bottom: 1rem;
}

.organization-detail-overview > .panel {
  margin-bottom: 0;
}

.organization-detail-tool-actions {
  align-items: stretch;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.organization-detail-tool-actions .button {
  min-width: 0;
  width: 100%;
}

.organization-aggregate-panel > p:first-of-type {
  margin-bottom: .25rem;
  font-size: 1.08rem;
}

.organization-delete-panel {
  max-width: 56rem;
}

.organization-delete-blockers {
  display: grid;
  gap: .65rem;
  margin: 1rem 0;
  padding: 0;
  list-style: none;
}

.organization-delete-blockers li {
  display: grid;
  gap: .2rem;
  padding: .7rem .8rem;
  border: 1px solid var(--border);
  border-left: 4px solid var(--danger);
  border-radius: 6px;
  background: #fff;
}

.organization-delete-blockers span {
  color: var(--muted);
  font-size: .9rem;
  line-height: 1.45;
}

@media (max-width: 720px) {
  .organization-tree-panel {
    padding: 0;
  }

  .organization-tree-toolbar {
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: .65rem;
    padding: .8rem;
  }

  .organization-tree-toolbar-actions {
    justify-content: space-between;
  }

  .organization-tree-privacy {
    padding: .6rem .8rem;
  }

  .organization-tree-roots {
    padding: .25rem .4rem .4rem;
  }

  .organization-tree-item > details > summary,
  .organization-tree-leaf {
    grid-template-columns: .85rem minmax(0, 1fr);
    gap: .45rem;
    padding: .68rem .45rem;
  }

  .organization-tree-badges,
  .organization-tree-leaf > .organization-tree-actions {
    grid-column: 2;
    justify-content: flex-start;
  }

  .organization-tree-actions {
    justify-content: flex-start;
    margin: 0 .45rem .7rem 1.75rem;
  }

  .organization-tree-actions .button,
  .organization-tree-action-menu > summary,
  .organization-detail-tool-actions .button {
    min-height: 44px;
  }

  .organization-tree-action-menu > summary {
    height: 44px;
    min-width: 44px;
    padding: 0;
    width: 44px;
  }

  .organization-tree-children {
    margin-left: .3rem;
    padding-left: .4rem;
  }

  .organization-tree-action-menu-popover {
    right: auto;
    left: 0;
  }

  .organization-detail-primary-actions {
    flex-basis: auto;
    width: 100%;
  }

  .organization-detail-tool-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .theme-classic .organization-tree-panel {
    padding: 0;
  }
}

@media (max-width: 540px) {
  .organization-detail-primary-actions {
    grid-template-columns: 1fr;
  }

  .organization-detail-tool-actions {
    grid-template-columns: 1fr;
  }
}

.registration-provider-line {
  display: block;
  margin-bottom: .28rem;
  color: var(--muted);
  font-size: .86rem;
  line-height: 1.35;
}

.registration-provider-line a {
  font-weight: 700;
}

.public-registration-filters {
  display: grid;
  grid-template-columns: minmax(14rem, 2fr) repeat(2, minmax(10rem, 1fr)) auto;
  align-items: end;
  gap: .7rem;
}

.public-registration-filters label {
  min-width: 0;
}

.compact-choice-grid {
  gap: .45rem;
}

.compact-choice-grid .check {
  margin: 0;
  padding: .55rem .65rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface-subtle, #f7f8fa);
}

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

@media (max-width: 640px) {
  .public-registration-filters {
    grid-template-columns: 1fr;
  }

  .public-filter-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .public-registration-filters .button {
    width: 100%;
  }
}

/* Eigenständige Systemseiten müssen auch vor einem Datenbank-Update vollständig
   gestaltet bleiben. Sie verwenden dieselbe statische Datei wie die Anwendung und
   benötigen deshalb keine von der Content-Security-Policy blockierten Inline-Styles. */
.system-page,
.maintenance-page {
  min-height: 100vh;
  background: #f4f6f8;
}

.system-page {
  line-height: 1.55;
}

.system-shell {
  width: min(100% - 2rem, 780px);
  margin: clamp(1rem, 6vh, 4.5rem) auto;
}

.system-brand {
  display: inline-flex;
  align-items: center;
  margin: 0 0 1.1rem;
  text-decoration: none;
}

.system-brand img {
  display: block;
  width: min(235px, 58vw);
  height: auto;
  max-height: 58px;
  object-fit: contain;
}

.system-card {
  padding: clamp(1.35rem, 5vw, 3.2rem);
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  box-shadow: 0 18px 44px rgba(23, 32, 51, .09);
}

.system-kicker {
  margin: 0 0 .55rem;
  color: var(--brand-dark);
  font-size: .8rem;
  font-weight: 800;
  text-transform: uppercase;
}

.system-card h1 {
  margin: 0 0 1rem;
  font-size: clamp(2rem, 6vw, 3.15rem);
  line-height: 1.08;
  overflow-wrap: anywhere;
}

.system-lead {
  margin: 0 0 1.6rem;
  color: var(--muted);
  font-size: clamp(1rem, 2.5vw, 1.15rem);
}

.system-steps {
  display: grid;
  gap: .55rem;
  margin: 1.5rem 0;
  padding: 0;
  list-style: none;
}

.system-steps li {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  gap: .75rem;
  align-items: start;
  padding: .7rem .8rem;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #fafbfc;
}

.system-steps li > span,
.system-page .status-symbol {
  display: grid;
  place-items: center;
  width: 1.8rem;
  height: 1.8rem;
  border-radius: 50%;
  background: #edf1f5;
  color: var(--ink);
  font-weight: 800;
}

.system-steps strong,
.system-steps small,
.system-notice strong,
.system-notice span {
  display: block;
}

.system-steps small {
  color: var(--muted);
  font-size: .9rem;
}

.system-notice {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  gap: .75rem;
  align-items: start;
  margin: 1.4rem 0;
  padding: 1rem;
  border: 1px solid #cfe39a;
  border-left: 4px solid var(--brand);
  border-radius: 7px;
  background: #f4f9e8;
}

.system-notice.warning {
  border-color: #ead59d;
  border-left-color: #c48300;
  background: #fff8e6;
}

.system-notice.danger {
  display: block;
  border-color: #efb7b2;
  border-left-color: var(--danger);
  background: #fff1f0;
}

.system-notice.compact {
  margin: .8rem 0;
}

.system-notice span:not(.status-symbol) {
  min-width: 0;
  margin-top: .15rem;
  color: var(--muted);
  font-size: .94rem;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.system-notice.success .status-symbol {
  background: var(--brand);
  color: var(--ink);
}

.system-notice.warning .status-symbol {
  background: #f2c14e;
}

.system-result {
  margin: 1rem 0;
}

.system-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  align-items: center;
  margin-top: 1.5rem;
}

.system-actions form {
  margin: 0;
}

.system-page .button,
.system-page button {
  min-height: 46px;
  padding: .7rem 1rem;
  border-color: var(--brand);
  background: var(--brand);
  color: var(--ink);
  font-weight: 800;
}

.system-page .button:hover,
.system-page button:hover {
  background: var(--brand-hover);
}

.system-page .button.secondary {
  border-color: var(--line);
  background: #edf1f5;
}

.system-page .hint {
  margin: 1.3rem 0 0;
  color: var(--muted);
  font-size: .92rem;
}

.system-page .error-reference {
  display: block;
  margin-top: .45rem;
  padding: .65rem .75rem;
  border-radius: 5px;
  background: #fff;
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.maintenance-shell {
  display: grid;
  place-items: center;
  min-height: 100vh;
  padding: 1rem;
}

.maintenance-card {
  width: min(100%, 760px);
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 22px 54px rgba(23, 32, 51, .1);
}

.maintenance-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.1rem clamp(1.2rem, 4vw, 2.5rem);
  border-bottom: 1px solid var(--line);
}

.maintenance-logo {
  display: block;
  width: min(220px, 55vw);
  height: auto;
  max-height: 54px;
  object-fit: contain;
}

.maintenance-status {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  color: var(--brand-dark);
  font-size: .83rem;
  font-weight: 800;
  white-space: nowrap;
}

.maintenance-status::before {
  width: .65rem;
  height: .65rem;
  border-radius: 50%;
  background: var(--brand);
  box-shadow: 0 0 0 4px #eef8d9;
  content: "";
}

.maintenance-content {
  padding: clamp(1.5rem, 6vw, 3.6rem);
}

.maintenance-kicker {
  margin: 0 0 .5rem;
  color: var(--brand-dark);
  font-size: .82rem;
  font-weight: 800;
  text-transform: uppercase;
}

.maintenance-content h1 {
  margin: 0 0 1rem;
  font-size: clamp(2.1rem, 7vw, 3.8rem);
  line-height: 1.03;
  overflow-wrap: anywhere;
}

.maintenance-message {
  max-width: 62ch;
  margin: 0;
  color: var(--muted);
  font-size: clamp(1rem, 2.5vw, 1.2rem);
  white-space: pre-line;
}

.maintenance-time {
  display: grid;
  gap: .15rem;
  margin: 1.7rem 0 0;
  padding: 1rem 1.1rem;
  border-left: 4px solid var(--brand);
  background: #f4f9e8;
}

.maintenance-time span {
  color: var(--muted);
  font-size: .86rem;
}

.maintenance-time strong {
  font-size: 1.02rem;
}

.maintenance-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1.7rem;
}

.maintenance-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: .65rem .95rem;
  border: 1px solid var(--brand);
  border-radius: 7px;
  background: var(--brand);
  color: var(--ink);
  font: inherit;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
}

.maintenance-button:hover {
  background: var(--brand-hover);
}

.maintenance-button.secondary {
  border-color: var(--line);
  background: #edf1f5;
}

.maintenance-admin-link {
  color: var(--muted);
  font-size: .82rem;
  text-decoration: none;
}

.maintenance-admin-link:hover {
  text-decoration: underline;
}

.maintenance-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem .9rem;
  margin-top: 1rem;
}

.maintenance-meta a {
  color: var(--muted);
  font-size: .8rem;
  text-decoration: none;
}

.maintenance-meta a:hover {
  text-decoration: underline;
}

.preview-note {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem .7rem;
  align-items: center;
  margin: 0 0 1.2rem;
  padding: .65rem .8rem;
  border: 1px solid #cfe39a;
  border-radius: 7px;
  background: #f4f9e8;
}

.preview-note span {
  color: var(--muted);
  font-size: .9rem;
}

@media (max-width: 560px) {
  .system-shell {
    width: min(100% - 1rem, 780px);
    margin: .5rem auto;
  }

  .system-card {
    padding: 1.2rem;
  }

  .system-actions,
  .system-actions form,
  .system-actions .button,
  .system-actions button,
  .maintenance-actions form,
  .maintenance-button {
    width: 100%;
  }

  .maintenance-header,
  .maintenance-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .maintenance-admin-link {
    align-self: center;
  }

  .maintenance-meta {
    justify-content: center;
  }
}

.maintenance-admin-banner {
  position: relative;
  z-index: 105;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .85rem;
  padding: .7rem clamp(1rem, 3vw, 2rem);
  border-bottom: 1px solid #e2c46f;
  background: #fff7df;
  color: var(--ink);
}

.maintenance-admin-banner > div {
  display: flex;
  flex-wrap: wrap;
  gap: .15rem .65rem;
  align-items: baseline;
  min-width: 0;
}

.maintenance-admin-banner strong {
  color: #725000;
}

.maintenance-admin-banner span {
  color: var(--muted);
  font-size: .9rem;
}

.maintenance-admin-banner .button {
  flex: 0 0 auto;
}

.maintenance-settings-panel {
  overflow: hidden;
  border-top: 4px solid var(--brand);
}

.maintenance-settings-panel .panel-heading {
  align-items: flex-start;
}

.maintenance-settings-panel .section-kicker {
  margin: 0 0 .2rem;
  color: var(--brand-dark);
  font-size: .76rem;
  font-weight: 800;
  text-transform: uppercase;
}

.maintenance-settings-panel .panel-heading h2 {
  margin-top: 0;
}

.maintenance-settings-grid {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: clamp(1rem, 3vw, 2rem);
  align-items: start;
  margin-top: 1.15rem;
}

.maintenance-settings-explanation {
  min-width: 0;
  padding: 1rem;
  border-left: 4px solid var(--brand);
  background: var(--brand-soft);
}

.maintenance-settings-explanation h3 {
  margin: 0 0 .65rem;
}

.maintenance-check-list {
  display: grid;
  gap: .45rem;
  margin: 0 0 1rem;
  padding: 0;
  list-style: none;
}

.maintenance-check-list li {
  position: relative;
  padding-left: 1.35rem;
  color: var(--muted);
  font-size: .92rem;
}

.maintenance-check-list li::before {
  position: absolute;
  top: .48rem;
  left: .1rem;
  width: .55rem;
  height: .55rem;
  border-radius: 50%;
  background: var(--brand);
  content: "";
}

.maintenance-settings-form {
  display: grid;
  gap: 1rem;
  min-width: 0;
}

.maintenance-settings-form > label:not(.maintenance-toggle) {
  display: grid;
  gap: .35rem;
  font-weight: 700;
}

.maintenance-settings-form .field-note {
  color: var(--muted);
  font-size: .84rem;
  font-weight: 400;
  line-height: 1.4;
}

.maintenance-toggle {
  display: grid;
  grid-template-columns: 1.4rem minmax(0, 1fr);
  gap: .75rem;
  align-items: start;
  margin: 0;
  padding: .9rem 1rem;
  border: 1px solid #cfe39a;
  border-radius: 8px;
  background: #f7fbe9;
  cursor: pointer;
}

.maintenance-toggle input {
  width: 1.25rem;
  height: 1.25rem;
  margin: .12rem 0 0;
}

.maintenance-toggle span,
.maintenance-toggle strong,
.maintenance-toggle small {
  display: block;
  min-width: 0;
}

.maintenance-toggle small {
  margin-top: .1rem;
  color: var(--muted);
  font-size: .84rem;
  font-weight: 400;
}

@media (max-width: 760px) {
  .maintenance-admin-banner {
    align-items: stretch;
    flex-direction: column;
  }

  .maintenance-admin-banner .button {
    width: 100%;
  }

  .maintenance-settings-grid {
    grid-template-columns: 1fr;
  }
}

.global-config-accordion {
  display: grid;
  gap: .9rem;
}

.global-config-toolbar {
  align-items: center;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  padding: .9rem 1rem;
}

.global-config-toolbar > div:first-child {
  display: grid;
  gap: .15rem;
  min-width: 0;
}

.global-config-toolbar > div:first-child span {
  color: var(--muted);
  font-size: .88rem;
}

.global-config-toolbar .actions {
  flex: 0 0 auto;
  margin: 0;
}

.global-config-card-list {
  display: grid;
  gap: .85rem;
}

.global-config-card,
.global-config-card.maintenance-settings-panel {
  border-top: 1px solid var(--line);
  margin: 0;
  overflow: hidden;
  padding: 0;
}

.global-config-card > summary {
  align-items: center;
  cursor: pointer;
  display: grid;
  gap: .75rem 1rem;
  grid-template-columns: minmax(0, 1fr) auto auto;
  list-style: none;
  min-height: 5rem;
  padding: 1rem 1.15rem;
}

.global-config-card > summary::-webkit-details-marker {
  display: none;
}

.global-config-card > summary:hover {
  background: #fafcf5;
}

.global-config-card > summary:focus-visible {
  box-shadow: inset 0 0 0 3px var(--focus);
  outline: 0;
}

.global-config-card > summary::after {
  color: var(--brand-dark);
  content: "+";
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1;
}

.global-config-card[open] > summary {
  background: #fcfdf9;
}

.global-config-card[open] > summary::after {
  content: "−";
}

.global-config-card-summary-copy {
  display: grid;
  gap: .18rem;
  min-width: 0;
}

.global-config-card-summary-copy > strong {
  font-size: 1.08rem;
  line-height: 1.25;
}

.global-config-card-summary-copy > small:not(.global-config-card-category) {
  color: var(--muted);
  font-size: .88rem;
  line-height: 1.4;
}

.global-config-card-category {
  color: var(--brand-dark);
  font-size: .72rem;
  font-weight: 800;
  text-transform: uppercase;
}

.global-config-card-status {
  justify-self: end;
  white-space: nowrap;
}

.global-config-card-content {
  border-top: 1px solid var(--line);
  padding: 1.25rem;
}

.global-config-card-content > :first-child {
  margin-top: 0;
}

.global-config-card-content > :last-child,
.global-config-card-content > form:last-child > :last-child {
  margin-bottom: 0;
}

.webauthn-version-status {
  display: grid;
  gap: 1rem;
  min-width: 0;
}

.webauthn-version-status .table-wrap,
.webauthn-version-status table {
  margin: 0;
  min-width: 0;
  width: 100%;
}

.webauthn-version-status .actions {
  align-items: center;
  margin: 0;
}

@media (max-width: 680px) {
  .global-config-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .global-config-toolbar .actions,
  .global-config-toolbar .button {
    width: 100%;
  }

  .global-config-card > summary {
    align-items: start;
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 4.7rem;
    padding: .9rem 1rem;
  }

  .global-config-card-status {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-self: start;
  }

  .global-config-card > summary::after {
    grid-column: 2;
    grid-row: 1;
  }

  .global-config-card-content {
    padding: 1rem;
  }

  .webauthn-version-status .actions,
  .webauthn-version-status .actions form,
  .webauthn-version-status .actions .button {
    width: 100%;
  }

}

/* Programmplan-Studio */
.program-planner-title {
  align-items: end;
}

.planner-toolbar {
  align-items: center;
  background: var(--surface);
  border: 1px solid var(--line);
  border-left: 4px solid var(--brand);
  border-radius: 8px;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: 1rem;
  padding: .85rem 1rem;
}

.planner-toolbar > div:first-child {
  display: grid;
  gap: .1rem;
  min-width: 0;
}

.planner-toolbar [data-planner-save-status] {
  color: var(--muted);
  font-size: .9rem;
  font-weight: 700;
}

.planner-toolbar [data-planner-save-status].is-saving {
  color: #705710;
}

.planner-toolbar [data-planner-save-status].is-error {
  color: var(--danger, #b42318);
}

.planner-toolbar [data-planner-save-status].is-saved {
  color: #326414;
}

.planner-layout {
  align-items: start;
  display: grid;
  gap: 1rem;
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
}

.planner-pdf-preview-panel {
  grid-column: 1 / -1;
  margin: 0;
  min-width: 0;
}

.planner-main,
.planner-sidebar {
  display: grid;
  gap: 1rem;
  min-width: 0;
}

.planner-sidebar {
  align-items: start;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  position: relative;
}

.planner-editor {
  max-height: none;
  margin: 0;
  overflow: visible;
  position: static;
}

.planner-editor-heading {
  align-items: start;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: 1rem;
}

.planner-editor-heading h2 {
  margin: .15rem 0 0;
}

.planner-editor-heading p {
  margin: .35rem 0 0;
  max-width: 52rem;
}

.planner-editor-heading [data-planner-delete-top] {
  align-self: flex-start;
  flex: 0 0 auto;
  white-space: nowrap;
}

.planner-editor-empty {
  border: 1px dashed var(--line);
  border-radius: 8px;
  margin: 0;
  padding: 1rem;
}

.planner-sidebar-card {
  margin: 0;
  overflow: hidden;
  padding: 0;
}

.planner-sidebar-card > summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  list-style: none;
  min-height: 4.25rem;
  padding: .85rem 1rem;
}

.planner-sidebar-card > summary::-webkit-details-marker {
  display: none;
}

.planner-sidebar-card > summary::after {
  color: var(--brand-dark);
  content: "+";
  font-size: 1.35rem;
  font-weight: 800;
}

.planner-sidebar-card[open] > summary::after {
  content: "−";
}

.planner-sidebar-card > summary span {
  display: grid;
  gap: .15rem;
  min-width: 0;
}

.planner-sidebar-card > summary small {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 500;
}

.planner-sidebar-card-content {
  border-top: 1px solid var(--line);
  padding: 1rem;
}

.planner-sidebar-card-content > :first-child {
  margin-top: 0;
}

.planner-sidebar-card-content > :last-child {
  margin-bottom: 0;
}

.planner-pdf-time-range {
  background: #f8fafb;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: .55rem;
  margin: 0;
  min-width: 0;
  padding: .65rem .75rem .75rem;
}

.planner-pdf-time-range legend {
  color: var(--text);
  font-size: .86rem;
  font-weight: 800;
  padding: 0 .25rem;
}

.planner-pdf-time-range .form-grid {
  gap: .65rem;
}

.planner-pdf-time-range label {
  margin: 0;
  min-width: 0;
}

.planner-pdf-time-range select {
  min-width: 0;
  width: 100%;
}

.planner-pdf-time-range > small {
  color: var(--muted);
  line-height: 1.35;
}

.planner-room-form {
  align-items: end;
  display: grid;
  gap: .8rem;
  grid-template-columns: minmax(0, 1fr) 6rem;
  margin-top: 1rem;
}

.planner-room-form label {
  margin: 0;
  min-width: 0;
}

.planner-room-form .planner-color-field input[type="color"] {
  min-height: 2.75rem;
  padding: .25rem;
  width: 100%;
}

.planner-room-form .button {
  grid-column: 1 / -1;
  margin: 0;
  min-height: 2.75rem;
  width: 100%;
}

.planner-settings {
  margin: 0;
}

.planner-settings .section-heading,
.planner-day-workspace .section-heading,
.group-plan-header {
  align-items: center;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
}

.planner-settings .section-heading h2,
.planner-day-workspace .section-heading h2,
.group-plan-header h2 {
  margin: 0;
}

.planner-settings .section-heading p,
.planner-day-workspace .section-heading p,
.group-plan-header p {
  margin: .2rem 0 0;
}

.planner-custom-frames {
  border-top: 1px solid var(--line);
  display: grid;
  gap: .85rem;
  margin-top: 1.15rem;
  padding-top: 1rem;
}

.planner-frame-overrides {
  border-top: 1px solid var(--line);
  display: grid;
  gap: .85rem;
  margin-top: 1.15rem;
  padding-top: 1rem;
}

.planner-frame-override-grid {
  display: grid;
  gap: .75rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.planner-frame-override-card {
  background: #fbfcfd;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: .7rem;
  min-width: 0;
  padding: .8rem;
}

.planner-frame-override-toggle {
  align-items: start;
  cursor: pointer;
  display: grid;
  gap: .6rem;
  grid-template-columns: auto minmax(0, 1fr);
  margin: 0;
}

.planner-frame-override-toggle input {
  margin-top: .22rem;
}

.planner-frame-override-toggle span {
  display: grid;
  gap: .16rem;
  min-width: 0;
}

.planner-frame-override-toggle small {
  color: var(--muted);
  font-weight: 500;
  line-height: 1.3;
}

.planner-frame-option-list {
  border-top: 1px solid var(--line);
  display: grid;
  gap: .35rem;
  padding-top: .65rem;
}

.planner-frame-option-list[hidden] {
  display: none;
}

.planner-frame-option {
  align-items: center;
  background: var(--surface);
  border: 1px solid #e2e7eb;
  border-radius: 6px;
  cursor: pointer;
  display: grid;
  font-weight: 650;
  gap: .5rem;
  grid-template-columns: auto minmax(0, 1fr);
  margin: 0;
  min-width: 0;
  padding: .48rem .55rem;
}

.planner-frame-option:hover {
  border-color: var(--brand);
}

.planner-subsection-heading {
  align-items: center;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
}

.planner-subsection-heading > div {
  min-width: 0;
}

.planner-subsection-heading h3,
.planner-subsection-heading p {
  margin: 0;
}

.planner-subsection-heading h3 {
  font-size: 1rem;
}

.planner-subsection-heading p {
  margin-top: .18rem;
}

.planner-custom-frame-list {
  display: grid;
  gap: .65rem;
}

.planner-custom-frame-list > .empty-note {
  margin: 0;
}

.planner-custom-frame-row {
  align-items: end;
  background: #fbfcfd;
  border: 1px solid var(--line);
  border-left: 4px solid var(--brand);
  border-radius: 8px;
  display: grid;
  gap: .7rem;
  grid-template-columns: minmax(15rem, 1fr) minmax(7.75rem, .36fr) minmax(7.75rem, .36fr) auto;
  min-width: 0;
  padding: .75rem;
}

.planner-custom-frame-row label {
  margin: 0;
  min-width: 0;
}

.planner-custom-frame-row input {
  min-width: 0;
  width: 100%;
}

.planner-custom-frame-row .button {
  align-self: end;
  white-space: nowrap;
}

.planner-custom-frame-row .button.danger.ghost {
  background: var(--surface);
  color: var(--danger);
}

.planner-custom-frame-row .button.danger.ghost:hover {
  background: var(--danger-bg);
}

.planner-day-tabs {
  display: flex;
  gap: .45rem;
  max-width: 100%;
  overflow-x: auto;
  padding: .1rem .05rem .45rem;
  scrollbar-width: thin;
}

.planner-day-tab {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 7px;
  color: var(--text);
  cursor: pointer;
  display: grid;
  flex: 0 0 auto;
  gap: .08rem;
  min-height: 3.2rem;
  min-width: 8.2rem;
  padding: .6rem .75rem;
  text-align: left;
}

.planner-day-tab:hover {
  border-color: var(--brand);
}

.planner-day-tab.is-active {
  background: #f2f8df;
  border-color: var(--brand);
  box-shadow: inset 0 -3px 0 var(--brand);
}

.planner-day-tab small {
  color: var(--muted);
  font-size: .76rem;
}

.planner-day-workspace {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  min-width: 0;
  padding: 1rem;
}

.planner-timeline {
  background: #fbfcfd;
  border: 1px solid var(--line);
  border-radius: 7px;
  height: min(68vh, 760px);
  margin-top: 1rem;
  min-height: 34rem;
  overflow: auto;
  overscroll-behavior: contain;
  position: relative;
}

.planner-hours,
.planner-events {
  position: absolute;
  top: 0;
}

.planner-hours {
  left: 0;
  pointer-events: none;
  width: 4.5rem;
  z-index: 2;
}

.planner-events {
  background-image: repeating-linear-gradient(
    to bottom,
    transparent 0,
    transparent calc(var(--planner-quarter-height, 26px) - 1px),
    rgba(218, 224, 230, .55) calc(var(--planner-quarter-height, 26px) - 1px),
    rgba(218, 224, 230, .55) var(--planner-quarter-height, 26px)
  );
  left: 4.5rem;
  right: .75rem;
  cursor: crosshair;
}

.planner-hour {
  background: #fbfcfd;
  border-top: 1px solid #dfe5ea;
  box-sizing: border-box;
  padding: .18rem .55rem;
  position: absolute;
  width: 100%;
}

.planner-hour time {
  color: var(--muted);
  font-size: .73rem;
  font-variant-numeric: tabular-nums;
}

.planner-event {
  background: #f3f8e7;
  background: color-mix(in srgb, var(--event-color) 12%, white);
  border: 1px solid color-mix(in srgb, var(--event-color) 68%, #344054);
  border-left: 5px solid var(--event-color);
  border-radius: 6px;
  color: var(--text);
  cursor: grab;
  display: grid;
  align-content: start;
  gap: .28rem;
  min-height: 52px;
  overflow: hidden;
  padding: .34rem .48rem;
  position: absolute;
  text-align: left;
  touch-action: none;
  transition: box-shadow .12s ease, border-color .12s ease;
  z-index: 1;
}

.planner-event-rename {
  align-items: center;
  background: rgba(255, 255, 255, .9);
  border: 1px solid rgba(52, 64, 84, .24);
  border-radius: 5px;
  color: #344054;
  cursor: pointer;
  display: inline-flex;
  font-size: .78rem;
  height: 1.45rem;
  justify-content: center;
  line-height: 1;
  min-height: 0;
  padding: 0;
  position: absolute;
  right: .24rem;
  top: .2rem;
  width: 1.45rem;
  z-index: 2;
}

.planner-event-rename:hover,
.planner-event-rename:focus-visible {
  background: #fff;
  border-color: var(--brand-dark);
  outline: 2px solid rgba(117, 152, 23, .18);
}

.planner-event-heading {
  padding-right: 1.55rem;
}

.planner-event-rename-input {
  background: #fff;
  border: 2px solid var(--brand-dark);
  border-radius: 5px;
  box-sizing: border-box;
  font-size: .86rem;
  font-weight: 800;
  inset: .18rem .24rem;
  line-height: 1.15;
  min-height: 0;
  padding: .22rem .4rem;
  position: absolute;
  width: auto;
  z-index: 4;
}

.planner-event.is-renaming {
  cursor: text;
  overflow: visible;
  touch-action: auto;
  z-index: 6;
}

.planner-event.is-renaming > :not(.planner-event-rename-input) {
  visibility: hidden;
}

.planner-event:hover,
.planner-event:focus-visible,
.planner-event.is-selected {
  border-color: var(--brand-dark);
  box-shadow: 0 4px 14px rgba(17, 24, 39, .16);
  outline: 0;
  z-index: 3;
}

.planner-event.is-dragging {
  cursor: grabbing;
  opacity: .88;
  z-index: 5;
}

.planner-event-heading,
.planner-event-heading strong,
.planner-event-meta,
.planner-event-meta-item {
  min-width: 0;
}

.planner-event-heading {
  align-items: baseline;
  display: flex;
  gap: .45rem;
}

.planner-event-heading strong {
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.planner-event-heading strong {
  font-size: .86rem;
  line-height: 1.18;
}

.planner-event-meta {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .2rem .3rem;
  max-height: 3.4rem;
  overflow: hidden;
}

.planner-event-meta-item {
  background: rgba(255, 255, 255, .74);
  border: 1px solid rgba(85, 99, 113, .18);
  border-radius: 999px;
  color: #465463;
  display: block;
  font-size: .66rem;
  line-height: 1.2;
  max-width: 100%;
  overflow: hidden;
  padding: .12rem .38rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.planner-event-time {
  font-size: .68rem;
  font-variant-numeric: tabular-nums;
  font-weight: 800;
}

.planner-event.is-tight {
  align-items: center;
  display: flex;
  min-height: 32px;
  padding: .18rem .38rem;
}

.planner-event.is-tight .planner-event-heading {
  align-items: center;
  width: 100%;
}

.planner-event.is-tight .planner-event-time {
  font-size: .64rem;
  line-height: 1;
  white-space: nowrap;
}

.planner-mobile-list {
  display: none;
}

.planner-list-item {
  align-items: start;
  background: var(--surface);
  border: 1px solid var(--line);
  border-left: 4px solid var(--brand);
  border-radius: 6px;
  color: var(--text);
  display: grid;
  gap: .6rem;
  grid-template-columns: 6.5rem minmax(0, 1fr);
  min-width: 0;
  padding: .65rem;
  text-align: left;
  width: 100%;
}

.planner-list-item.is-selected {
  background: #f5f9e9;
  border-color: var(--brand);
}

.planner-list-item time {
  font-size: .8rem;
  font-variant-numeric: tabular-nums;
  font-weight: 800;
}

.planner-list-item span {
  display: grid;
  min-width: 0;
}

.planner-list-item small {
  color: var(--muted);
  overflow-wrap: anywhere;
}

.planner-daily-overview {
  margin: 0;
}

.planner-daily-overview h2 {
  margin-top: 0;
}

.planner-all-clear {
  align-items: center;
  color: #326414;
  display: flex;
  gap: .5rem;
  margin: 0;
}

.planner-all-clear span {
  align-items: center;
  background: #eaf5d3;
  border-radius: 50%;
  display: inline-flex;
  height: 1.65rem;
  justify-content: center;
  width: 1.65rem;
}

.planner-editor fieldset {
  border: 1px solid var(--line);
  border-radius: 7px;
  margin: 0;
  padding: .75rem;
}

.planner-editor legend {
  font-size: .88rem;
  font-weight: 800;
  padding: 0 .25rem;
}

.planner-editor .choice-grid {
  max-height: 10rem;
  overflow: auto;
}

.planner-editor-flow {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.planner-editor-card {
  background: #fbfcfd;
  border: 1px solid var(--line);
  border-radius: 10px;
  min-width: 0;
  overflow: hidden;
}

.planner-editor-card-assignments,
.planner-editor-actions {
  grid-column: 1 / -1;
}

.planner-editor-card-header {
  align-items: center;
  background: #f5f8ed;
  border-bottom: 1px solid #dce5c4;
  display: flex;
  gap: .8rem;
  min-height: 4.4rem;
  padding: .85rem 1rem;
}

.planner-editor-card-header h3,
.planner-editor-card-header p {
  margin: 0;
}

.planner-editor-card-header h3 {
  font-size: 1rem;
}

.planner-editor-card-header p {
  color: var(--muted);
  font-size: .78rem;
  margin-top: .18rem;
}

.planner-editor-step {
  align-items: center;
  background: var(--brand-dark);
  border-radius: 50%;
  color: #fff;
  display: inline-flex;
  flex: 0 0 auto;
  font-size: .84rem;
  font-weight: 800;
  height: 2rem;
  justify-content: center;
  width: 2rem;
}

.planner-editor-card-body {
  display: grid;
  gap: .9rem;
  padding: 1rem;
}

.planner-editor-card-body > label,
.planner-editor-time-grid label,
.planner-editor-owner-field {
  margin: 0;
  min-width: 0;
}

.planner-editor-time-grid {
  gap: .8rem;
}

.planner-editor-time-grid input {
  min-width: 0;
  width: 100%;
}

.planner-time-actions {
  margin-top: -.2rem;
}

.planner-assignment-card-grid {
  align-items: start;
  display: grid;
  gap: .75rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.planner-editor-actions {
  align-items: center;
  background: #f8fafb;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  padding: .8rem 1rem;
}

.planner-editor-section {
  border: 1px solid var(--line);
  border-radius: 7px;
  overflow: hidden;
}

.planner-editor-section > summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  gap: .4rem 1rem;
  justify-content: space-between;
  list-style: none;
  min-height: 3.25rem;
  padding: .7rem .8rem;
}

.planner-editor-section > summary::-webkit-details-marker {
  display: none;
}

.planner-editor-section > summary::after {
  color: var(--brand-dark);
  content: "+";
  font-size: 1.15rem;
  font-weight: 800;
}

.planner-editor-section[open] > summary::after {
  content: "−";
}

.planner-editor-section > summary span {
  font-weight: 800;
}

.planner-editor-section > summary > span {
  display: grid;
  gap: .08rem;
  min-width: 0;
}

.planner-editor-section > summary small {
  color: var(--muted);
  font-size: .75rem;
  font-weight: 500;
}

.planner-editor-section > summary em {
  background: #f1f4f6;
  border-radius: 999px;
  color: var(--muted);
  flex: 0 0 auto;
  font-size: .7rem;
  font-style: normal;
  font-weight: 700;
  margin-left: auto;
  padding: .22rem .48rem;
}

.planner-editor-section-body {
  border-top: 1px solid var(--line);
  display: grid;
  gap: .75rem;
  padding: .8rem;
}

.planner-choice-list {
  display: grid;
  gap: .2rem;
  max-height: 11rem;
  overflow: auto;
}

.planner-choice-list .checkbox-line {
  align-items: center;
  border-radius: 5px;
  display: flex;
  gap: .55rem;
  line-height: 1.25;
  margin: 0;
  min-height: 2.35rem;
  padding: .35rem .4rem;
}

.planner-choice-list .checkbox-line:hover {
  background: #f6f8fa;
}

.planner-choice-list .checkbox-line small {
  color: var(--muted);
  font-weight: 500;
  margin-left: auto;
}

.planner-assignment-search {
  display: grid;
  gap: .25rem;
}

.planner-assignment-search > span {
  color: var(--muted);
  font-size: .75rem;
  font-weight: 700;
}

.planner-assignment-search input {
  min-height: 2.55rem;
}

.planner-assignment-chips {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
  min-width: 0;
}

.planner-assignment-chip {
  background: #eef5d8;
  border: 1px solid #c8dc86;
  border-radius: 999px;
  color: var(--text);
  font-size: .72rem;
  font-weight: 700;
  max-width: 100%;
  overflow: hidden;
  padding: .24rem .5rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.planner-assignment-empty {
  color: var(--muted);
  font-size: .74rem;
}

[data-assignment-option][hidden] {
  display: none;
}

.planner-assignment-sections {
  gap: 0;
}

.planner-assignment-sections > section {
  border-top: 1px solid var(--line);
  padding: .75rem 0;
}

.planner-assignment-sections > section:first-child {
  border-top: 0;
  padding-top: 0;
}

.planner-assignment-sections > section:last-child {
  padding-bottom: 0;
}

.planner-assignment-sections h3 {
  font-size: .88rem;
  margin: 0 0 .35rem;
}

.planner-dialog {
  background: transparent;
  border: 0;
  max-width: min(31rem, calc(100vw - 2rem));
  padding: 0;
  width: 100%;
}

.planner-dialog::backdrop {
  background: rgba(16, 24, 40, .42);
}

.planner-dialog .panel {
  margin: 0;
}

.planner-pdf-preview {
  background: #eef1f3;
  border: 1px solid var(--line);
  border-radius: 7px;
  display: grid;
  gap: 1rem;
  min-height: 15rem;
  overflow: auto;
  padding: 1rem;
}

.planner-preview-sheet {
  aspect-ratio: 297 / 210;
  background: #fff;
  border: 1px solid #ccd4dc;
  box-sizing: border-box;
  box-shadow: 0 8px 24px rgba(17, 24, 39, .1);
  color: #172235;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  margin: 0 auto;
  min-width: 47rem;
  overflow: hidden;
  padding: 1.35rem 1.75rem;
  width: min(100%, 66rem);
}

.planner-preview-sheet > header {
  align-items: end;
  border-bottom: 1px solid #d8dee5;
  display: flex;
  font-size: .8rem;
  justify-content: space-between;
  margin-bottom: .65rem;
  padding-bottom: .4rem;
}

.planner-preview-grid {
  border: 1px solid #d8dee5;
  height: auto;
  min-height: 0;
  overflow: hidden;
  position: relative;
}

.planner-preview-hours,
.planner-preview-events {
  bottom: 0;
  position: absolute;
  top: 0;
}

.planner-preview-hours {
  left: 0;
  pointer-events: none;
  right: 0;
  z-index: 2;
}

.planner-preview-events {
  left: 3.2rem;
  right: .25rem;
  z-index: 3;
}

.planner-preview-hour {
  background: #fff;
  border-top: 1px solid #e4e8ec;
  box-sizing: border-box;
  left: 0;
  position: absolute;
  right: 0;
}

.planner-preview-hour span {
  color: #667382;
  font-size: .48rem;
  left: .25rem;
  position: absolute;
  top: .08rem;
}

.planner-preview-quarter {
  border-top: 1px solid #edf1f4;
  left: 0;
  position: absolute;
  right: 0;
}

.planner-preview-quarter.is-half {
  border-color: #dde4e9;
}

.planner-preview-quarter.is-hour {
  border-color: #c9d2da;
}

.planner-preview-quarter span {
  background: #fff;
  color: #667382;
  font-size: .48rem;
  left: .25rem;
  line-height: 1;
  padding-right: .2rem;
  position: absolute;
  top: .08rem;
}

.planner-preview-event {
  align-content: start;
  background: #eff7dc;
  border: 1px solid #759817;
  border-left-width: 3px;
  border-radius: 2px;
  display: grid;
  gap: 1px;
  font-size: .52rem;
  line-height: 1.12;
  overflow: hidden;
  padding: 1px 2px;
  position: absolute;
}

.planner-preview-event strong {
  display: block;
  overflow: hidden;
  overflow-wrap: anywhere;
  white-space: normal;
}

.planner-preview-event small {
  color: #4e5b69;
  display: block;
  font-size: .46rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.planner-preview-event-time {
  color: #4e5b69;
  display: block;
  font-size: .44rem;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

.planner-preview-event.is-tight {
  align-content: normal;
  align-items: center;
  display: flex;
  gap: 2px;
  padding: 0 2px;
}

.planner-preview-event.is-tight strong {
  flex: 1 1 auto;
  font-size: .5rem;
  line-height: 1;
  min-width: 0;
  overflow-wrap: normal;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.planner-preview-event.is-tight .planner-preview-event-time {
  flex: 0 0 auto;
  font-size: .42rem;
  margin: 0;
}

.planner-preview-empty {
  color: #667382;
  font-size: .56rem;
  margin: 1rem;
}

.planner-preview-sheet.is-overview {
  aspect-ratio: 297 / 210;
  grid-template-rows: auto auto minmax(0, 1fr);
  min-width: 47rem;
  width: min(100%, 66rem);
}

.planner-preview-sheet.is-day {
  aspect-ratio: 210 / 297;
  min-width: 34rem;
  width: min(100%, 46rem);
}

.planner-preview-sheet.is-day .planner-preview-event {
  font-size: .58rem;
  min-height: 9px;
}

.planner-preview-sheet.is-day .planner-preview-event small {
  font-size: .5rem;
}

.planner-preview-sheet.is-day .planner-preview-event-time {
  font-size: .48rem;
}

.planner-preview-week-head {
  background: #f7f9fa;
  border: 1px solid #cfd7df;
  border-bottom: 0;
  display: grid;
  font-size: .54rem;
  min-height: 1.65rem;
}

.planner-preview-week-head > * {
  align-items: center;
  border-left: 1px solid #cfd7df;
  display: flex;
  justify-content: center;
  min-width: 0;
  padding: .2rem;
}

.planner-preview-week-head > :first-child {
  border-left: 0;
}

.planner-preview-week-head .is-active {
  background: #f1f7df;
}

.planner-preview-week-corner {
  color: var(--muted);
}

.planner-preview-week-grid {
  background: #fff;
  border: 1px solid #cfd7df;
  height: auto;
  min-height: 0;
  overflow: hidden;
  position: relative;
}

.planner-preview-week-line {
  border-top: 1px solid #edf0f2;
  left: 0;
  pointer-events: none;
  position: absolute;
  right: 0;
}

.planner-preview-week-line.is-hour {
  border-color: #d8dee4;
}

.planner-preview-week-time {
  color: #667382;
  font-size: .43rem;
  left: .15rem;
  line-height: 1;
  padding-top: .12rem;
  position: absolute;
  z-index: 2;
}

.planner-preview-week-day {
  border-left: 1px solid #cfd7df;
  bottom: 0;
  min-width: 0;
  position: absolute;
  top: 0;
}

.planner-preview-week-day .planner-preview-event {
  font-size: .5rem;
  line-height: 1.06;
  min-width: 0;
}

.planner-preview-overview {
  display: grid;
}

.planner-preview-row {
  align-items: center;
  border-bottom: 1px solid #e2e7eb;
  display: grid;
  font-size: .58rem;
  gap: .45rem;
  grid-template-columns: 5.5rem 9rem minmax(0, 1fr);
  min-height: 1.3rem;
}

.planner-preview-row small {
  color: #5f6b7a;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.compact-list {
  display: grid;
  gap: .4rem;
  margin: .75rem 0;
}

.compact-list-row {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: .5rem;
  grid-template-columns: auto minmax(0, 1fr) auto;
  padding: .45rem 0;
}

.color-swatch {
  background: var(--swatch);
  border: 1px solid rgba(0, 0, 0, .15);
  border-radius: 3px;
  height: 1rem;
  width: 1rem;
}

/* Gruppen-Generator */
.group-context-panel {
  align-items: center;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: 1rem;
}

.group-context-panel > div {
  display: grid;
  gap: .12rem;
}

.group-context-panel .eyebrow {
  color: var(--brand-dark);
  font-size: .72rem;
  font-weight: 800;
  text-transform: uppercase;
}

.group-context-panel small {
  color: var(--muted);
}

.group-test-filter {
  background: #f7f9fa;
  border: 1px solid var(--line);
  border-radius: 7px;
  padding: .6rem .75rem;
}

.group-test-filter label {
  margin: 0;
}

.group-create-panel {
  margin-bottom: 1rem;
}

.group-create-grid {
  align-items: start;
  gap: 1rem;
  grid-template-columns: 1fr;
}

.group-create-section {
  background: #f8fafb;
  border: 1px solid var(--line);
  border-radius: 7px;
  display: grid;
  gap: .85rem;
  margin: 0;
  min-width: 0;
  padding: .85rem;
}

.group-create-basics,
.group-create-rules {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.group-create-grid .field-label {
  margin-bottom: 0;
}

.group-create-grid fieldset.group-create-section {
  grid-column: auto;
}

.group-create-grid legend {
  font-size: .9rem;
  font-weight: 800;
  padding: 0 .25rem;
}

.group-role-choices {
  display: grid;
  gap: .55rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.group-role-choices .checkbox-line {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 6px;
  min-height: 2.8rem;
  padding: .55rem .65rem;
}

.group-create-grid .form-actions {
  grid-column: 1 / -1;
  margin-top: 0;
}

.group-privacy-note {
  border-top: 1px solid var(--line);
  margin: 1rem 0 0;
  padding-top: .75rem;
}

.group-plan-list {
  display: grid;
  gap: 1rem;
}

.group-plan-card {
  margin: 0;
}

.group-plan-header {
  border-bottom: 1px solid var(--line);
  margin: -1rem -1rem 1rem;
  padding: 1rem;
}

.group-board {
  display: grid;
  gap: .75rem;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  margin-top: 1rem;
}

.group-column {
  background: #f8fafb;
  border: 1px solid var(--line);
  border-radius: 7px;
  min-width: 0;
  overflow: hidden;
  transition: border-color .12s ease, background .12s ease;
}

.group-column.is-drop-target {
  background: #f2f8df;
  border-color: var(--brand);
}

.group-column > header {
  align-items: center;
  border-top: 4px solid var(--group-color);
  display: flex;
  gap: .6rem;
  justify-content: space-between;
  padding: .7rem .75rem;
}

.group-name-form {
  align-items: center;
  display: grid;
  gap: .35rem;
  grid-template-columns: minmax(0, 1fr) auto;
  margin: 0;
  min-width: 0;
}

.group-name-form input {
  font-size: .92rem;
  font-weight: 800;
  min-height: 2.25rem;
  min-width: 0;
  padding: .35rem .45rem;
}

.group-column > header h3 {
  font-size: 1rem;
  margin: 0;
}

.group-column > header span {
  color: var(--muted);
  font-size: .76rem;
  white-space: nowrap;
}

.group-member-list {
  display: grid;
  gap: .4rem;
  min-height: 4rem;
  padding: .6rem;
}

.group-member {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 6px;
  display: grid;
  gap: .65rem;
  grid-template-columns: minmax(0, 1fr);
  padding: .7rem;
}

.group-member[draggable="true"] {
  cursor: grab;
}

.group-member.is-dragging {
  opacity: .45;
}

.group-member-person {
  display: grid;
  gap: .1rem;
  min-width: 0;
}

.group-member strong,
.group-member small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.group-member small {
  color: var(--muted);
  font-size: .75rem;
}

.group-member-actions {
  display: grid;
  gap: .55rem;
  min-width: 0;
}

.group-target-field {
  display: grid;
  gap: .25rem;
  min-width: 0;
}

.group-target-field > span {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 700;
}

.group-target-field select {
  max-width: none;
  min-height: 2.25rem;
  padding: .3rem 1.7rem .3rem .45rem;
  width: 100%;
}

.group-member-action-row {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  justify-content: space-between;
}

.group-lock-choice {
  align-items: center;
  display: inline-flex;
  font-size: .76rem;
  gap: .3rem;
  margin: 0;
}

.group-lock-choice input {
  flex: 0 0 auto;
  height: 1.1rem;
  margin: 0;
  width: 1.1rem;
}

.icon-checkbox {
  align-items: center;
  cursor: pointer;
  display: inline-flex;
  justify-content: center;
  margin: 0;
}

.icon-checkbox input {
  height: 1.1rem;
  width: 1.1rem;
}

.icon-checkbox span[aria-hidden="true"] {
  display: none;
}

.group-unassigned {
  border: 1px solid var(--line);
  border-radius: 7px;
  margin-top: 1rem;
  padding: .65rem;
}

.group-unassigned summary {
  cursor: pointer;
  font-weight: 800;
}

.group-unassigned-person {
  margin-top: .5rem;
}

.assignment-list {
  display: grid;
  gap: .45rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.assignment-list li {
  align-items: start;
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: .6rem;
  grid-template-columns: 6.3rem minmax(0, 1fr);
  padding: .45rem 0;
}

.assignment-list time {
  color: var(--muted);
  font-variant-numeric: tabular-nums;
  font-weight: 700;
}

.assignment-list span {
  display: grid;
}

.assignment-list small {
  color: var(--muted);
}

.schedule-planner-meta {
  align-items: center;
  color: var(--muted);
  display: flex;
  flex-wrap: wrap;
  font-size: .82rem;
  gap: .25rem .7rem;
  line-height: 1.35;
  margin-top: .28rem;
  max-width: 100%;
  min-width: 0;
  overflow-wrap: anywhere;
}

.schedule-planner-meta strong {
  color: var(--text);
  font-weight: 700;
}

@media (max-width: 1080px) {
  .planner-layout {
    grid-template-columns: 1fr;
  }

  .planner-editor {
    max-height: none;
    position: static;
  }

  .group-create-grid {
    grid-template-columns: 1fr;
  }

  .group-create-basics,
  .group-create-rules {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 1050px) {
  .planner-editor-flow {
    grid-template-columns: 1fr;
  }

  .planner-editor-card-assignments,
  .planner-editor-actions {
    grid-column: auto;
  }
}

@media (max-width: 850px) {
  .planner-timeline {
    display: none;
  }

  .planner-mobile-list {
    display: grid;
    gap: .45rem;
    margin-top: .85rem;
  }

  .planner-custom-frame-row {
    grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
  }

  .planner-frame-override-grid {
    grid-template-columns: 1fr;
  }

  .planner-custom-frame-title {
    grid-column: 1 / -1;
  }
}

@media (max-width: 720px) {
  .program-planner-title,
  .planner-toolbar,
  .planner-settings .section-heading,
  .planner-subsection-heading,
  .planner-day-workspace .section-heading,
  .group-plan-header {
    align-items: stretch;
    flex-direction: column;
  }

  .group-context-panel {
    align-items: stretch;
    flex-direction: column;
  }

  .program-planner-title .button,
  .planner-toolbar .button,
  .planner-settings .section-heading .button,
  .planner-subsection-heading .button,
  .planner-day-workspace .section-heading .button,
  .group-plan-header .button {
    width: 100%;
  }

  .planner-sidebar,
  .planner-assignment-card-grid {
    grid-template-columns: 1fr;
  }

  .planner-editor-heading,
  .planner-editor-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .planner-editor-heading [data-planner-delete-top] {
    width: 100%;
  }

  .planner-custom-frame-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .planner-custom-frame-row .button {
    grid-column: 1 / -1;
    width: 100%;
  }

  .planner-editor-time-grid {
    grid-template-columns: 1fr;
  }

  .planner-editor-actions .row-actions,
  .planner-editor-actions .button {
    width: 100%;
  }

  .planner-editor .row-actions {
    min-width: 0;
  }

  .group-create-grid {
    grid-template-columns: 1fr;
  }

  .group-create-basics,
  .group-create-rules,
  .group-role-choices {
    grid-template-columns: 1fr;
  }

  .group-board {
    grid-template-columns: 1fr;
  }

  .group-name-form {
    grid-template-columns: 1fr;
  }

  .group-name-form .button {
    width: 100%;
  }

  .assignment-list li {
    grid-template-columns: 1fr;
  }
}
.form-builder-preview-logo {
  align-items: center;
  background: #fff;
  border: 1px dashed var(--line);
  border-radius: 4px;
  color: var(--muted);
  display: flex;
  font-size: .72rem;
  font-weight: 800;
  height: 34px;
  justify-content: center;
  margin: 0 0 .5rem;
  width: 72px;
}

.form-builder-preview-logo-image {
  display: block;
  height: auto;
  margin: 0 0 .5rem;
  max-height: 42px;
  max-width: 92px;
  object-fit: contain;
  width: auto;
}

.branding-logo-preview {
  display: block;
  margin: 0 0 1.25rem;
  max-height: 110px;
  max-width: 260px;
  object-fit: contain;
}

.profile-history-actions {
  align-items: end;
  display: flex;
  flex-wrap: wrap;
  gap: .35rem 1rem;
  justify-content: space-between;
  margin-top: .85rem;
}

.profile-history-send-form {
  display: grid;
  gap: .35rem;
  max-width: 34rem;
  width: 100%;
}

.profile-history-send-row,
.profile-history-delete-row {
  align-items: center;
  display: flex;
  gap: .5rem;
}

.profile-history-send-row input,
.profile-history-delete-row input {
  flex: 1 1 15rem;
  min-width: 0;
}

.profile-history-send-row .button,
.profile-history-delete-row .button {
  flex: 0 0 auto;
  white-space: nowrap;
}

.profile-history-more {
  margin-left: auto;
}

.profile-history-more > summary {
  color: var(--muted);
  cursor: pointer;
  font-size: .86rem;
  font-weight: 700;
  padding: .25rem .15rem;
}

.profile-history-more > summary:hover,
.profile-history-more > summary:focus-visible {
  color: var(--brand-dark);
}

.profile-history-more[open] {
  flex-basis: 100%;
  margin-left: 0;
}

.profile-history-delete-panel {
  background: var(--danger-bg);
  border: 1px solid #f0b7b2;
  border-radius: 8px;
  margin-top: .45rem;
  max-width: 42rem;
  padding: .75rem;
}

.profile-history-delete-panel > p {
  margin: 0 0 .35rem;
}

.profile-history-delete-panel form {
  display: grid;
  gap: .35rem;
  margin-top: .65rem;
}

@media (max-width: 620px) {
  .profile-history-more {
    margin-left: 0;
  }
}

.profile-communication-panel .check {
  align-items: flex-start;
}

.metric-grid {
  display: grid;
  gap: .75rem;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  margin: 1rem 0;
}

.metric-grid article {
  align-content: start;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: .25rem;
  padding: 1rem;
}

.metric-grid strong {
  display: block;
  font-size: 2rem;
  line-height: 1.1;
}

.metric-grid span {
  color: var(--muted);
}

.checky-widget {
  bottom: 1.25rem;
  max-width: calc(100vw - 2.5rem);
  position: fixed;
  right: 1.25rem;
  width: max-content;
  z-index: 1250;
}

.checky-launch {
  align-items: center;
  background: var(--brand);
  border: 2px solid #fff;
  border-radius: 999px;
  box-shadow: 0 12px 32px rgb(23 32 51 / 24%);
  color: var(--ink);
  cursor: pointer;
  display: inline-flex;
  flex-direction: row-reverse;
  font: inherit;
  font-weight: 850;
  gap: 0;
  max-width: 100%;
  min-height: 62px;
  min-width: 62px;
  overflow: hidden;
  padding: .3rem;
  transition: background-color 160ms ease, box-shadow 160ms ease;
}

.checky-launch span {
  margin-right: 0;
  max-width: 0;
  opacity: 0;
  overflow: hidden;
  transform: translateX(.35rem);
  transition: margin-right 180ms ease, max-width 180ms ease, opacity 120ms ease, transform 180ms ease;
  white-space: nowrap;
}

.checky-launch:hover,
.checky-launch:focus-visible {
  background: var(--brand-hover);
}

.checky-launch:hover span,
.checky-launch:focus-visible span {
  margin-right: .6rem;
  max-width: 8.5rem;
  opacity: 1;
  transform: translateX(0);
}

.checky-launch img {
  background: #fff;
  border-radius: 50%;
  flex: 0 0 48px;
  height: 48px;
  width: 48px;
}

.checky-panel {
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 18px;
  bottom: calc(100% + .75rem);
  box-shadow: 0 24px 70px rgb(23 32 51 / 28%);
  display: grid;
  grid-template-rows: auto auto minmax(120px, 1fr) max-content max-content;
  max-height: min(720px, calc(100vh - 7rem));
  overflow: hidden;
  position: absolute;
  right: 0;
  width: min(430px, calc(100vw - 2rem));
}

.checky-panel-header {
  align-items: center;
  background: #fff;
  border-bottom: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  padding: .8rem .9rem;
  grid-row: 1;
}

.checky-panel-header > div {
  align-items: center;
  display: flex;
  gap: .65rem;
}

.checky-panel-header img {
  height: 42px;
  width: 42px;
}

.checky-panel-header span {
  display: grid;
  line-height: 1.2;
}

.checky-panel-header strong {
  font-size: 1.08rem;
}

.checky-panel-header small {
  color: var(--muted);
}

.checky-close {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 50%;
  color: var(--muted);
  cursor: pointer;
  display: inline-flex;
  font-size: 1.8rem;
  height: 42px;
  justify-content: center;
  line-height: 1;
  width: 42px;
}

.checky-close:hover {
  background: var(--bg);
  color: var(--ink);
}

.checky-status {
  background: var(--brand-soft);
  border-bottom: 1px solid var(--line);
  color: var(--brand-dark);
  font-size: .85rem;
  margin: 0;
  padding: .45rem .9rem;
  grid-row: 2;
}

.checky-status.is-error {
  background: var(--danger-bg);
  color: var(--danger);
}

.checky-conversation {
  align-content: start;
  display: grid;
  gap: 1rem;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 1rem;
  grid-row: 3;
}

.checky-welcome {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: .9rem;
}

.checky-welcome > :first-child,
.checky-message-assistant > :first-child {
  margin-top: 0;
}

.checky-welcome > :last-child,
.checky-message-assistant > :last-child {
  margin-bottom: 0;
}

.checky-turn {
  display: grid;
  gap: .55rem;
}

.checky-message {
  border-radius: 14px;
  padding: .75rem .85rem;
}

.checky-message-user {
  background: var(--brand-soft);
  border: 1px solid #cadf9a;
  justify-self: end;
  max-width: 88%;
}

.checky-message-assistant {
  background: #fff;
  border: 1px solid var(--line);
  justify-self: stretch;
}

.checky-message-assistant p,
.checky-message-assistant ol {
  margin: .65rem 0;
}

.checky-message-assistant ol {
  padding-left: 1.3rem;
}

.checky-answer-title {
  align-items: center;
  display: flex;
  gap: .55rem;
}

.checky-answer-title img {
  flex: 0 0 auto;
  height: 30px;
  width: 30px;
}

.checky-short-answer {
  font-weight: 700;
}

.checky-interpretation {
  background: #f3f7e8;
  border-left: 3px solid var(--brand);
  color: var(--muted);
  font-size: .82rem;
  padding: .45rem .55rem;
}

.checky-suggestions {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin-top: .8rem;
}

.checky-suggestions > span {
  color: var(--muted);
  flex-basis: 100%;
  font-size: .8rem;
  font-weight: 750;
}

.checky-suggestions form {
  margin: 0;
}

.checky-suggestions button,
.checky-feedback button,
.checky-panel-footer button {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--brand-dark);
  cursor: pointer;
  font: inherit;
  font-size: .82rem;
  font-weight: 750;
  padding: .34rem .62rem;
}

.checky-suggestions button:hover,
.checky-feedback button:hover,
.checky-panel-footer button:hover {
  border-color: var(--brand);
}

.checky-feedback {
  align-items: center;
  color: var(--muted);
  display: flex;
  font-size: .82rem;
  gap: .5rem;
  margin-top: .8rem;
}

.checky-feedback form {
  display: flex;
  gap: .35rem;
  margin: 0;
}

.checky-feedback-result {
  color: var(--muted);
  font-size: .82rem;
}

.checky-share-question {
  border-top: 1px solid var(--line);
  margin-top: .75rem;
  padding-top: .65rem;
}

.checky-share-question summary {
  color: var(--brand-dark);
  cursor: pointer;
  font-size: .85rem;
  font-weight: 800;
}

.checky-share-question form {
  display: grid;
  gap: .65rem;
  margin-top: .65rem;
}

.checky-share-question textarea {
  min-height: 80px;
}

.checky-question-form {
  align-content: start;
  background: #fff;
  border-top: 1px solid var(--line);
  display: grid;
  gap: .35rem;
  padding: .8rem .9rem;
  grid-row: 4;
}

.checky-question-form > label {
  font-size: .82rem;
  font-weight: 800;
}

.checky-question-form > div {
  align-items: end;
  display: grid;
  gap: .5rem;
  grid-template-columns: 1fr auto;
}

.checky-question-form textarea {
  min-height: 58px;
  resize: vertical;
}

.checky-question-form small {
  color: var(--muted);
  font-size: .74rem;
}

.checky-panel-footer {
  align-items: center;
  background: #fff;
  border-top: 1px solid var(--line);
  display: flex;
  font-size: .78rem;
  justify-content: space-between;
  padding: .55rem .9rem;
  grid-row: 5;
}

.checky-panel-footer form {
  margin: 0;
}

.checky-panel-footer button {
  border: 0;
  padding-left: 0;
}

.checky-admin-stats {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.checky-audience-grid {
  display: grid;
  gap: .45rem;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}

.checky-admin-article-list {
  display: grid;
  gap: .8rem;
  margin-bottom: 1.5rem;
}

.checky-admin-article {
  margin: 0;
}

.checky-admin-article > summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
}

.checky-admin-article > summary > span:first-child {
  display: grid;
  gap: .25rem;
}

.checky-admin-article > summary small {
  color: var(--muted);
  font-weight: 500;
}

.checky-admin-article-content {
  border-top: 1px solid var(--line);
  margin-top: 1rem;
  padding-top: 1rem;
}

.checky-version-list {
  display: grid;
  gap: .45rem;
  list-style: none;
  padding: 0;
}

.checky-version-list li {
  display: grid;
}

.checky-version-list span {
  color: var(--muted);
  font-size: .85rem;
}

.checky-preview-list {
  display: grid;
  gap: .75rem;
  margin-top: 1rem;
}

.checky-preview-result {
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: .9rem;
}

.checky-preview-result.is-primary {
  background: var(--brand-soft);
  border-color: var(--brand);
}

.checky-preview-result h3 {
  margin: .55rem 0 .25rem;
}

@media (max-width: 760px) {
  .checky-widget {
    bottom: .75rem;
    max-width: calc(100vw - 1.5rem);
    right: .75rem;
  }

  .checky-widget.is-open {
    inset: 0;
    max-width: none;
    width: auto;
  }

  .checky-widget.is-open .checky-launch {
    display: none;
  }

  .checky-panel {
    border: 0;
    border-radius: 0;
    bottom: 0;
    height: 100dvh;
    max-height: none;
    position: fixed;
    right: 0;
    width: 100vw;
  }

  body.checky-panel-open {
    overflow: hidden;
  }

  .checky-question-form > div {
    grid-template-columns: 1fr;
  }

  .checky-question-form .button {
    width: 100%;
  }

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

  .checky-admin-article > summary {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (prefers-reduced-motion: reduce) {
  .checky-launch,
  .checky-launch span {
    transition: none;
  }
}

/* Central CRM */
.crm-workspace-head {
  align-items: end;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
  justify-content: space-between;
  margin-bottom: .75rem;
}

.crm-workspace-head > div {
  flex: 1 1 28rem;
  min-width: 0;
}

.crm-workspace-head h1 {
  font-size: clamp(1.7rem, 4vw, 2.45rem);
  line-height: 1.08;
  margin: 0;
}

.crm-workspace-head .eyebrow,
.crm-workspace-head .muted {
  margin: 0;
}

.crm-workspace-head .muted {
  margin-top: .3rem;
}

.crm-scope-switcher {
  align-items: end;
  display: flex;
  flex: 0 1 26rem;
  gap: .5rem;
  margin: 0;
  min-width: min(100%, 19rem);
}

.crm-scope-switcher label {
  flex: 1 1 auto;
  min-width: 0;
}

.crm-scope-switcher select {
  min-width: 13rem;
}

.crm-scope-switcher.is-enhanced .button {
  display: none;
}

.crm-scope-switcher.is-loading select {
  cursor: progress;
  opacity: .72;
}

.crm-tabs,
.crm-detail-tabs,
.crm-person-tabs {
  align-items: stretch;
  display: flex;
  gap: .2rem;
  margin: 0 0 1rem;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  padding: 0 0 .15rem;
  scrollbar-width: thin;
}

.crm-tabs {
  border-bottom: 1px solid var(--line);
}

.crm-tabs a,
.crm-detail-tabs a,
.crm-person-tabs a {
  align-items: center;
  border: 1px solid transparent;
  color: var(--ink);
  display: inline-flex;
  flex: 0 0 auto;
  font-size: .91rem;
  font-weight: 750;
  justify-content: center;
  line-height: 1.25;
  min-height: 40px;
  padding: .52rem .72rem;
  text-decoration: none;
  white-space: nowrap;
}

.crm-tabs a {
  border-radius: 7px 7px 0 0;
  margin-bottom: -1px;
}

.crm-tabs a:hover,
.crm-tabs a:focus-visible,
.crm-detail-tabs a:hover,
.crm-detail-tabs a:focus-visible,
.crm-person-tabs a:hover,
.crm-person-tabs a:focus-visible {
  background: var(--brand-soft);
  color: var(--brand-dark);
}

.crm-tabs a[aria-current="page"] {
  background: var(--surface);
  border-color: var(--line) var(--line) var(--surface);
  color: var(--brand-dark);
}

.crm-page,
.crm-content,
.crm-card-list,
.crm-section-list,
.crm-quality-list {
  display: grid;
  gap: .85rem;
}

.crm-page > .panel,
.crm-card-list > .panel,
.crm-card-list > article {
  margin-bottom: 0;
  min-width: 0;
}

.crm-toolbar,
.crm-results-head,
.crm-panel-head,
.crm-record-head,
.crm-record-footer {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .6rem 1rem;
  justify-content: space-between;
}

.crm-toolbar {
  margin-bottom: .75rem;
}

.crm-toolbar > :first-child,
.crm-results-head > :first-child,
.crm-panel-head > :first-child,
.crm-record-head > :first-child {
  min-width: 0;
}

.crm-toolbar h2,
.crm-results-head h2,
.crm-panel-head h2,
.crm-record-head h2,
.crm-record-head h3 {
  margin: 0;
}

.crm-toolbar p,
.crm-results-head p,
.crm-panel-head p,
.crm-record-head p {
  margin: .15rem 0 0;
}

.crm-toolbar-actions,
.crm-record-actions,
.crm-bulk-actions,
.crm-inline-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}

.crm-filter-panel {
  padding: .85rem 1rem;
}

.crm-filter-panel > summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  font-weight: 800;
  gap: .75rem;
  justify-content: space-between;
  list-style: none;
}

.crm-filter-panel > summary::-webkit-details-marker {
  display: none;
}

.crm-filter-panel > summary::after {
  color: var(--brand-dark);
  content: "+";
  font-size: 1.2rem;
  line-height: 1;
}

.crm-filter-panel[open] > summary::after {
  content: "\2212";
}

.crm-filter-panel[open] > summary {
  border-bottom: 1px solid var(--line);
  margin-bottom: .85rem;
  padding-bottom: .75rem;
}

.crm-filter-form,
.crm-filter-builder {
  display: grid;
  gap: .75rem;
}

.crm-filter-quick {
  align-items: end;
  display: grid;
  gap: .65rem;
  grid-template-columns: minmax(15rem, 2fr) repeat(2, minmax(10rem, 1fr)) auto;
}

.crm-filter-rows {
  display: grid;
  gap: .5rem;
}

.crm-filter-row {
  align-items: end;
  background: #fbfcfd;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: .5rem;
  grid-template-columns: minmax(6.5rem, .6fr) minmax(10rem, 1.1fr) minmax(9rem, .9fr) minmax(11rem, 1.25fr) auto;
  padding: .65rem;
}

.crm-filter-row > label {
  font-size: .84rem;
  min-width: 0;
}

.crm-filter-row :is(input, select) {
  min-width: 0;
}

.crm-filter-value-controls {
  display: grid;
  gap: .4rem;
  min-width: 0;
}

.crm-filter-value-controls.is-qualification-expiry {
  grid-template-columns: minmax(0, 1.6fr) minmax(4.75rem, .7fr);
}

.crm-filter-value-controls > :is(input, select) {
  width: 100%;
}

.crm-filter-remove {
  align-self: end;
  min-height: 42px;
  white-space: nowrap;
}

.crm-filter-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.crm-filter-chip-list,
.crm-chip-list,
.crm-tags,
.crm-meta-list {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.crm-filter-chip-list {
  margin-top: .65rem;
}

.crm-chip,
.crm-filter-chip,
.crm-tag {
  align-items: center;
  background: #f1f4f7;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--ink);
  display: inline-flex;
  font-size: .8rem;
  font-weight: 700;
  gap: .25rem;
  line-height: 1.25;
  max-width: 100%;
  padding: .22rem .5rem;
}

.crm-filter-chip {
  background: var(--brand-soft);
  border-color: #cee29e;
  color: var(--brand-dark);
}

.crm-chip > span,
.crm-filter-chip > span,
.crm-tag > span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.crm-chip button,
.crm-filter-chip button,
.crm-tag button {
  background: transparent;
  border: 0;
  border-radius: 999px;
  color: currentColor;
  min-height: 1.35rem;
  padding: 0 .22rem;
}

.crm-results-head {
  margin-bottom: .55rem;
}

.crm-results-count,
.crm-selection-summary,
.crm-table-meta {
  color: var(--muted);
  font-size: .88rem;
}

.crm-people-wrap {
  border: 1px solid var(--line);
  border-radius: 8px;
  max-width: 100%;
  min-width: 0;
  overflow: auto;
  width: 100%;
}

form[data-crm-selection-form] {
  min-width: 0;
}

.crm-people-table {
  margin: 0;
  min-width: 850px;
}

.crm-people-table thead th {
  background: #f7f9fb;
  box-shadow: inset 0 -1px var(--line);
  position: sticky;
  top: 0;
  z-index: 1;
}

.crm-people-table th,
.crm-people-table td {
  padding: .58rem .65rem;
  vertical-align: middle;
}

.crm-people-table tbody tr:hover td {
  background: #fbfdf7;
}

.crm-people-table tbody tr.is-selected td {
  background: var(--brand-soft);
}

.crm-people-table .crm-select-column {
  text-align: center;
  width: 3rem;
}

.crm-people-table input[type="checkbox"],
.crm-selection-control input[type="checkbox"] {
  accent-color: var(--brand);
  height: 1.15rem;
  margin: 0;
  min-height: 0;
  padding: 0;
  width: 1.15rem;
}

.crm-person-link,
.crm-person-name {
  color: var(--ink);
  font-weight: 800;
  text-decoration: none;
}

.crm-person-link:hover,
.crm-person-link:focus-visible {
  color: var(--brand-dark);
  text-decoration: underline;
  text-underline-offset: .16rem;
}

.crm-person-meta,
.crm-record-meta {
  color: var(--muted);
  display: block;
  font-size: .82rem;
  margin-top: .08rem;
}

.crm-bulk-bar {
  align-items: center;
  background: #fbfcfd;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: flex;
  flex-wrap: wrap;
  gap: .65rem 1rem;
  justify-content: space-between;
  margin-top: .7rem;
  padding: .65rem .75rem;
}

.crm-bulk-bar.is-empty .crm-bulk-actions {
  opacity: .62;
}

.crm-empty-state {
  color: var(--muted);
  padding: 2rem 1rem;
  text-align: center;
}

.crm-empty-state h2,
.crm-empty-state h3 {
  color: var(--ink);
  margin: 0 0 .3rem;
}

.crm-pagination {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  justify-content: center;
  margin-top: .75rem;
}

.crm-pagination a,
.crm-pagination span {
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 6px;
  display: inline-flex;
  justify-content: center;
  min-height: 36px;
  min-width: 36px;
  padding: .3rem .55rem;
  text-decoration: none;
}

.crm-pagination [aria-current="page"] {
  background: var(--brand);
  border-color: var(--brand);
  color: var(--ink);
  font-weight: 800;
}

.crm-detail-head {
  align-items: flex-start;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  display: flex;
  flex-wrap: wrap;
  gap: .9rem 1.25rem;
  justify-content: space-between;
  margin-bottom: .75rem;
  padding: 1rem;
}

.crm-detail-identity {
  align-items: flex-start;
  display: flex;
  flex: 1 1 30rem;
  gap: .8rem;
  min-width: 0;
}

.crm-detail-avatar {
  align-items: center;
  background: var(--brand-soft);
  border: 1px solid #cee29e;
  border-radius: 999px;
  color: var(--brand-dark);
  display: inline-flex;
  flex: 0 0 2.75rem;
  font-size: .9rem;
  font-weight: 850;
  height: 2.75rem;
  justify-content: center;
  text-transform: uppercase;
}

.crm-detail-title {
  min-width: 0;
}

.crm-detail-title h1 {
  font-size: clamp(1.45rem, 3.5vw, 2rem);
  line-height: 1.15;
  margin: 0;
}

.crm-detail-title p {
  color: var(--muted);
  margin: .2rem 0 .45rem;
}

.crm-detail-actions {
  align-items: center;
  display: flex;
  flex: 0 1 auto;
  flex-wrap: wrap;
  gap: .45rem;
}

.crm-detail-tabs,
.crm-person-tabs {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: .25rem;
}

.crm-detail-tabs a,
.crm-person-tabs a {
  border-radius: 6px;
}

.crm-detail-tabs a[aria-current="page"],
.crm-person-tabs a[aria-current="page"] {
  background: var(--brand-soft);
  border-color: #cee29e;
  color: var(--brand-dark);
}

.crm-detail-layout {
  align-items: start;
  display: grid;
  gap: .85rem;
  grid-template-columns: minmax(0, 1fr) minmax(15rem, 19rem);
}

.crm-detail-main,
.crm-detail-side {
  display: grid;
  gap: .85rem;
  min-width: 0;
}

.crm-detail-side > .panel {
  margin: 0;
}

.crm-metrics {
  display: grid;
  gap: .65rem;
  grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
}

.crm-metric {
  background: #fbfcfd;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: .12rem;
  padding: .72rem .8rem;
}

.crm-metric strong {
  font-size: 1.35rem;
  line-height: 1.2;
}

.crm-metric span {
  color: var(--muted);
  font-size: .82rem;
}

.crm-section-grid,
.crm-settings-grid,
.crm-quality-grid {
  display: grid;
  gap: .85rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.crm-section,
.crm-record-card,
.crm-campaign-card,
.crm-automation-card,
.crm-task-card,
.crm-quality-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  margin: 0;
  min-width: 0;
  padding: .9rem 1rem;
}

.crm-record-card,
.crm-campaign-card,
.crm-automation-card,
.crm-task-card,
.crm-quality-card {
  display: grid;
  gap: .65rem;
}

.crm-record-body > :first-child,
.crm-section > :first-child {
  margin-top: 0;
}

.crm-record-body > :last-child,
.crm-section > :last-child {
  margin-bottom: 0;
}

.crm-definition-list {
  display: grid;
  gap: .42rem .85rem;
  grid-template-columns: minmax(8rem, max-content) minmax(0, 1fr);
  margin: 0;
}

.crm-definition-list dt {
  color: var(--muted);
  font-size: .84rem;
  font-weight: 750;
}

.crm-definition-list dd {
  margin: 0;
  min-width: 0;
  overflow-wrap: anywhere;
}

.crm-status {
  align-items: center;
  background: #eef2f6;
  border: 1px solid transparent;
  border-radius: 999px;
  color: var(--muted);
  display: inline-flex;
  font-size: .78rem;
  font-weight: 800;
  line-height: 1.2;
  padding: .25rem .52rem;
  white-space: nowrap;
}

.crm-status.is-success,
.crm-status[data-status="active"],
.crm-status[data-status="approved"],
.crm-status[data-status="completed"],
.crm-status[data-status="done"],
.crm-status[data-status="sent"] {
  background: var(--ok-bg);
  color: #146c43;
}

.crm-status.is-warning,
.crm-status[data-status="review"],
.crm-status[data-status="scheduled"],
.crm-status[data-status="paused"],
.crm-status[data-status="open"] {
  background: var(--warn-bg);
  color: var(--warn);
}

.crm-status.is-danger,
.crm-status[data-status="failed"],
.crm-status[data-status="overdue"],
.crm-status[data-status="blocked"] {
  background: var(--danger-bg);
  color: var(--danger);
}

.crm-status.is-info,
.crm-status[data-status="sending"],
.crm-status[data-status="in_progress"] {
  background: #e8f1fb;
  color: #1d4f7a;
}

.crm-timeline {
  display: grid;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
}

.crm-timeline > li {
  display: grid;
  gap: .12rem;
  grid-template-columns: 1rem minmax(0, 1fr);
  padding: 0 0 .85rem;
  position: relative;
}

.crm-timeline > li::before {
  background: var(--brand);
  border: 3px solid var(--surface);
  border-radius: 999px;
  box-shadow: 0 0 0 1px var(--line);
  content: "";
  grid-column: 1;
  height: .72rem;
  margin-top: .34rem;
  width: .72rem;
  z-index: 1;
}

.crm-timeline > li:not(:last-child)::after {
  background: var(--line);
  bottom: -.15rem;
  content: "";
  left: .34rem;
  position: absolute;
  top: 1rem;
  width: 2px;
}

.crm-timeline-entry {
  grid-column: 2;
  min-width: 0;
}

.crm-timeline-entry > :first-child {
  margin-top: 0;
}

.crm-timeline-entry > :last-child {
  margin-bottom: 0;
}

.crm-timeline-time {
  color: var(--muted);
  display: block;
  font-size: .8rem;
}

.crm-campaign-card[data-status="failed"],
.crm-task-card[data-priority="urgent"],
.crm-task-card[data-priority="high"] {
  border-left: 4px solid var(--danger);
}

.crm-campaign-card[data-status="scheduled"],
.crm-task-card[data-priority="medium"] {
  border-left: 4px solid #d69e2e;
}

.crm-campaign-card[data-status="completed"],
.crm-automation-card[data-status="active"],
.crm-task-card[data-status="done"] {
  border-left: 4px solid #2f855a;
}

.crm-record-meta {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .2rem .7rem;
}

.crm-record-footer {
  border-top: 1px solid var(--line);
  padding-top: .65rem;
}

.crm-campaign-progress {
  display: grid;
  gap: .3rem;
}

.crm-campaign-progress progress {
  accent-color: var(--brand);
  height: .65rem;
  width: 100%;
}

.crm-campaign-progress span {
  color: var(--muted);
  font-size: .8rem;
}

.crm-automation-trigger {
  background: #f7f9fb;
  border-left: 3px solid var(--brand);
  border-radius: 4px;
  font-size: .88rem;
  padding: .5rem .65rem;
}

.crm-task-grid {
  align-items: start;
  display: grid;
  gap: .85rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.crm-task-column {
  background: #f3f5f7;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: .65rem;
  min-width: 0;
  padding: .7rem;
}

.crm-task-column > h2,
.crm-task-column > h3 {
  font-size: 1rem;
  margin: 0;
}

.crm-task-comments {
  border-top: 1px solid var(--line);
  display: grid;
  gap: .45rem;
  padding-top: .6rem;
}

.crm-task-comment {
  background: #f7f9fb;
  border-radius: 6px;
  font-size: .88rem;
  padding: .5rem .6rem;
}

.crm-task-comment p {
  margin: 0;
}

.crm-quality-compare {
  display: grid;
  gap: .65rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.crm-quality-person {
  background: #f7f9fb;
  border: 1px solid var(--line);
  border-radius: 7px;
  padding: .7rem;
}

.crm-quality-person > :first-child {
  margin-top: 0;
}

.crm-quality-person > :last-child {
  margin-bottom: 0;
}

.crm-confirmation-hint {
  background: var(--warn-bg);
  border: 1px solid #e1ca78;
  border-radius: 7px;
  color: #604400;
  font-size: .88rem;
  margin: .45rem 0 0;
  padding: .55rem .65rem;
}

.crm-confirmation-hint.is-danger {
  background: var(--danger-bg);
  border-color: #f0b7b2;
  color: var(--danger);
}

.crm-inline-form,
.crm-compact-form {
  align-items: end;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.crm-inline-form > label,
.crm-compact-form > label {
  flex: 1 1 11rem;
}

.crm-letter-batch {
  display: grid;
  gap: 1.25rem;
}

.crm-letter {
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: 0 8px 24px rgb(23 32 51 / 8%);
  color: #111;
  margin: 0 auto;
  min-height: min(297mm, calc(100vh - 3rem));
  padding: clamp(1.5rem, 5vw, 25mm) clamp(1.25rem, 6vw, 22mm);
  width: min(100%, 210mm);
}

.crm-letter-sender {
  font-size: .72rem;
  margin-bottom: 1.5rem;
  text-decoration: underline;
}

.crm-letter-address {
  line-height: 1.35;
  margin-bottom: 2rem;
  min-height: 2.8cm;
  white-space: pre-line;
}

.crm-letter-date {
  margin: 0 0 1.5rem;
  text-align: right;
}

.crm-letter-subject {
  font-weight: 800;
  margin-bottom: 1.2rem;
}

.crm-letter-body {
  overflow-wrap: anywhere;
  white-space: pre-line;
}

.crm-letter-footer {
  color: #444;
  font-size: .75rem;
  margin-top: 2rem;
}

.crm-search-panel {
  padding: .9rem 1rem;
}

.crm-search-panel > form {
  display: grid;
  gap: .75rem;
}

.crm-search-row,
.crm-filter-toolbar,
.crm-list-head,
.crm-person-header,
.crm-person-status {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .65rem 1rem;
}

.crm-search-row,
.crm-filter-toolbar {
  align-items: end;
}

.crm-search-row > label,
.crm-filter-toolbar > label {
  flex: 0 1 14rem;
  min-width: 0;
}

.crm-search-row > label.wide {
  flex: 1 1 24rem;
}

.crm-advanced-filters {
  border-top: 1px solid var(--line);
  padding-top: .7rem;
}

.crm-advanced-filters > summary {
  color: var(--brand-dark);
  cursor: pointer;
  font-weight: 800;
  list-style-position: outside;
  margin-left: 1rem;
}

.crm-advanced-filters[open] > summary {
  margin-bottom: .75rem;
}

.crm-filter-toolbar {
  margin-bottom: .65rem;
}

[data-crm-filter-list] {
  display: grid;
  gap: .5rem;
}

[data-crm-filter-add] {
  margin-top: .55rem;
}

.crm-list-head {
  justify-content: space-between;
  margin-bottom: .65rem;
}

.crm-list-head h2,
.crm-list-head p {
  margin: 0;
}

.crm-list-head p {
  margin-top: .15rem;
}

.crm-column-options {
  max-width: 24rem;
  padding: .55rem 0 0;
}

.crm-person-link {
  display: grid;
  gap: .08rem;
}

.crm-person-link > span {
  color: var(--muted);
  font-size: .8rem;
  font-weight: 500;
}

.crm-bulk-bar > strong {
  margin-right: auto;
}

.crm-bulk-bar > :is(select, input) {
  flex: 1 1 10rem;
  max-width: 16rem;
}

.crm-person-header {
  align-items: flex-start;
  justify-content: space-between;
}

.crm-person-header > :first-child {
  flex: 1 1 28rem;
  min-width: 0;
}

.crm-person-header h2 {
  font-size: clamp(1.45rem, 3.5vw, 2rem);
  line-height: 1.15;
  margin: .45rem 0 0;
}

.crm-person-header p {
  color: var(--muted);
  margin: .2rem 0 .5rem;
}

.crm-person-status {
  align-items: flex-start;
  flex: 0 1 auto;
  gap: .35rem;
  justify-content: flex-end;
}

.crm-metrics > article {
  background: #fbfcfd;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: .12rem;
  min-width: 0;
  padding: .72rem .8rem;
}

.crm-metrics > article strong {
  font-size: 1.3rem;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.crm-metrics > article span {
  color: var(--muted);
  font-size: .82rem;
}

.crm-overview-grid {
  display: grid;
  gap: .85rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: .85rem;
}

.crm-overview-grid > .panel {
  margin: 0;
}

.crm-chip[style*="--crm-chip-color"] {
  border-color: var(--crm-chip-color);
  box-shadow: inset 3px 0 0 var(--crm-chip-color);
}

.crm-note {
  background: #fffbea;
  border-left: 3px solid #d69e2e;
  border-radius: 4px;
  margin-bottom: 0;
  padding: .65rem .75rem;
}

.crm-tag-picker,
.crm-consent-grid {
  display: grid;
  gap: .5rem;
  margin-bottom: .75rem;
}

.crm-tag-picker {
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
}

.crm-tag-option,
.crm-consent-grid > .check {
  background: #f7f9fb;
  border: 1px solid var(--line);
  border-radius: 7px;
  margin: 0;
  padding: .55rem .65rem;
}

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

.crm-campaign-head {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  gap: .75rem 1rem;
  justify-content: space-between;
}

.crm-campaign-head > div {
  flex: 1 1 28rem;
  min-width: 0;
}

.crm-campaign-head h2 {
  margin: .4rem 0 .15rem;
}

.crm-campaign-head p {
  color: var(--muted);
  margin: 0;
}

.crm-campaign-actions {
  align-items: end;
  border-top: 1px solid var(--line);
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin-top: .85rem;
  padding-top: .75rem;
}

.crm-inline-action {
  align-items: end;
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin: 0;
}

.crm-inline-action > label {
  flex: 1 1 12rem;
}

.crm-message-preview {
  background: #f7f9fb;
  border: 1px solid var(--line);
  border-radius: 7px;
  font: inherit;
  line-height: 1.55;
  max-height: 28rem;
  overflow: auto;
  padding: .75rem;
  white-space: pre-wrap;
}

:is(.crm-status-draft, .crm-status-pending_approval, .crm-status-scheduled, .crm-status-paused) {
  background: var(--warn-bg);
  color: var(--warn);
}

:is(.crm-status-approved, .crm-status-sent, .crm-status-completed) {
  background: var(--ok-bg);
  color: #146c43;
}

:is(.crm-status-sending, .crm-status-queued, .crm-status-prepared) {
  background: #e8f1fb;
  color: #1d4f7a;
}

:is(.crm-status-failed, .crm-status-cancelled) {
  background: var(--danger-bg);
  color: var(--danger);
}

.crm-letter-print {
  background: #eef1f4;
  color: #111;
  margin: 0;
  padding: 1.25rem;
}

.crm-letter-toolbar {
  display: flex;
  justify-content: center;
  margin: 0 auto 1rem;
  max-width: 210mm;
}

.crm-letter-page {
  background: #fff;
  border: 1px solid #d8dde3;
  box-shadow: 0 8px 24px rgb(23 32 51 / 8%);
  margin: 0 auto 1.25rem;
  min-height: 297mm;
  overflow-wrap: anywhere;
  padding: 25mm 22mm 20mm;
  width: min(100%, 210mm);
}

.crm-letter-page address {
  font-style: normal;
  line-height: 1.4;
  margin: 16mm 0 18mm;
  min-height: 32mm;
}

.crm-letter-page h1 {
  font-size: 1.15rem;
  line-height: 1.35;
  margin: 0 0 1.2rem;
}

.crm-letter-page .crm-letter-date {
  margin-bottom: 1.5rem;
  text-align: right;
}

.crm-letter-page .crm-letter-body {
  line-height: 1.55;
  white-space: normal;
}

.crm-task-list {
  display: grid;
  gap: .75rem;
}

.crm-task-list > .panel {
  margin: 0;
}

.crm-task-card > header {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  gap: .6rem 1rem;
  justify-content: space-between;
}

.crm-task-card > header > div {
  flex: 1 1 24rem;
  min-width: 0;
}

.crm-task-card h3 {
  display: inline;
  font-size: 1.05rem;
  margin: 0 0 0 .35rem;
}

.crm-task-card header p {
  margin: .3rem 0 0;
}

:is(.crm-priority-high, .crm-priority-urgent) {
  background: var(--danger-bg);
  color: var(--danger);
}

.crm-priority-low {
  background: #eef2f6;
  color: var(--muted);
}

.crm-task-dates {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem 1.5rem;
  margin: 0;
}

.crm-task-dates > div {
  display: grid;
  gap: .08rem;
}

.crm-task-dates dt {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 750;
}

.crm-task-dates dd {
  margin: 0;
}

.crm-comment-list {
  display: grid;
  gap: .4rem;
  list-style: none;
  margin: .55rem 0 0;
  padding: 0;
}

.crm-comment-list > li {
  background: #f7f9fb;
  border-radius: 6px;
  padding: .5rem .6rem;
}

.crm-comment-list p {
  margin: 0;
}

.crm-task-actions {
  border-top: 1px solid var(--line);
  display: grid;
  gap: .65rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding-top: .7rem;
}

.crm-task-actions > form {
  align-items: end;
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin: 0;
}

.crm-task-actions > form > label {
  flex: 1 1 10rem;
}

.crm-merge-form {
  align-items: end;
  display: grid;
  gap: .45rem;
  grid-template-columns: repeat(2, minmax(8.5rem, 1fr));
  min-width: min(28rem, 60vw);
}

.crm-merge-form > .button {
  grid-column: 1 / -1;
  justify-self: start;
}

.crm-settings-grid > .panel {
  margin: 0;
  min-width: 0;
}

.crm-permission-list {
  display: grid;
  gap: .35rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.crm-permission-list > li {
  align-items: center;
  background: #f7f9fb;
  border: 1px solid var(--line);
  border-radius: 6px;
  display: grid;
  gap: .35rem .75rem;
  grid-template-columns: minmax(10rem, .8fr) minmax(12rem, 1.4fr) auto;
  padding: .5rem .65rem;
}

.crm-permission-list code {
  color: var(--brand-dark);
  font-size: .8rem;
  overflow-wrap: anywhere;
}

.crm-permission-list strong {
  font-size: .8rem;
  white-space: nowrap;
}

@media (max-width: 1050px) {
  .crm-filter-quick {
    grid-template-columns: minmax(14rem, 2fr) repeat(2, minmax(9rem, 1fr));
  }

  .crm-filter-quick > .button,
  .crm-filter-quick > .actions {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .crm-filter-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .crm-filter-remove {
    justify-self: start;
  }

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

@media (max-width: 760px) {
  .crm-workspace-head {
    align-items: stretch;
  }

  .crm-scope-switcher {
    flex-basis: 100%;
  }

  .crm-scope-switcher select {
    min-width: 0;
  }

  .crm-tabs,
  .crm-detail-tabs,
  .crm-person-tabs {
    margin-inline: -1rem;
    padding-inline: 1rem;
  }

  .crm-filter-quick,
  .crm-filter-row,
  .crm-detail-layout,
  .crm-section-grid,
  .crm-settings-grid,
  .crm-quality-grid,
  .crm-task-grid,
  .crm-quality-compare,
  .crm-overview-grid,
  .crm-consent-grid,
  .crm-task-actions {
    grid-template-columns: 1fr;
  }

  .crm-search-row,
  .crm-filter-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .crm-search-row > label,
  .crm-search-row > label.wide,
  .crm-filter-toolbar > label {
    flex-basis: auto;
    width: 100%;
  }

  .crm-filter-quick > .button,
  .crm-filter-quick > .actions {
    grid-column: auto;
  }

  .crm-filter-actions .button,
  .crm-record-actions .button {
    flex: 1 1 auto;
  }

  .crm-detail-head {
    padding: .85rem;
  }

  .crm-detail-identity,
  .crm-detail-actions {
    flex-basis: 100%;
  }

  .crm-bulk-bar {
    align-items: stretch;
    flex-direction: column;
  }

  .crm-bulk-bar > strong {
    margin-right: 0;
  }

  .crm-bulk-bar > :is(select, input) {
    max-width: none;
    width: 100%;
  }

  .crm-definition-list {
    grid-template-columns: 1fr;
  }

  .crm-definition-list dd + dt {
    border-top: 1px solid var(--line);
    margin-top: .25rem;
    padding-top: .45rem;
  }

  .crm-letter {
    min-height: 0;
    padding: 1.25rem;
  }

  .crm-letter-print {
    padding: .65rem;
  }

  .crm-letter-page {
    min-height: 0;
    padding: 1.25rem;
  }

  .crm-campaign-actions,
  .crm-inline-action {
    align-items: stretch;
    flex-direction: column;
  }

  .crm-merge-form {
    grid-template-columns: 1fr;
    min-width: 15rem;
  }

  .crm-merge-form > .button {
    grid-column: auto;
  }

  .crm-permission-list > li {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .crm-permission-list code {
    grid-column: 1;
    grid-row: 1;
  }

  .crm-permission-list strong {
    grid-column: 2;
    grid-row: 1;
  }

  .crm-permission-list span {
    grid-column: 1 / -1;
    grid-row: 2;
  }
}

@media (max-width: 480px) {
  .crm-scope-switcher {
    align-items: stretch;
    flex-direction: column;
  }

  .crm-scope-switcher:not(.is-enhanced) .button {
    width: 100%;
  }

  .crm-toolbar,
  .crm-results-head,
  .crm-panel-head,
  .crm-record-head,
  .crm-record-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .crm-toolbar-actions,
  .crm-inline-actions {
    width: 100%;
  }

  .crm-toolbar-actions .button,
  .crm-inline-actions .button {
    flex: 1 1 auto;
  }
}

@media print {
  @page {
    margin: 0;
    size: A4;
  }

  body.crm-letter-print {
    background: #fff;
    padding: 0;
  }

  .crm-letter-print .crm-letter-toolbar {
    display: none !important;
  }

  .crm-letter-page {
    border: 0;
    box-shadow: none;
    break-after: page;
    margin: 0;
    min-height: 297mm;
    page-break-after: always;
    width: 210mm;
  }

  .crm-letter-page:last-child {
    break-after: auto;
    page-break-after: auto;
  }

  body:has(.crm-letter-batch) {
    background: #fff;
  }

  body:has(.crm-letter-batch) :is(.topbar, .mobile-nav, .app-footer, .checky-widget, .test-mode-banner, .maintenance-admin-banner, .crm-no-print) {
    display: none !important;
  }

  body:has(.crm-letter-batch) .container {
    margin: 0;
    max-width: none;
    padding: 0;
    width: auto;
  }

  .crm-letter-batch {
    display: block;
  }

  .crm-letter {
    border: 0;
    box-shadow: none;
    break-after: page;
    min-height: 297mm;
    padding: 25mm 22mm 20mm;
    page-break-after: always;
    width: 210mm;
  }

  .crm-letter:last-child {
    break-after: auto;
    page-break-after: auto;
  }
}

.live-hero .actions,
.muster-toolbar {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}

.live-hero .actions form,
.muster-toolbar form {
  margin: 0;
}

.live-stat-grid {
  display: grid;
  gap: .85rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 1rem;
}

.live-stat-card,
.live-dashboard-metric {
  align-content: start;
  display: grid;
  gap: .2rem;
  min-width: 0;
  text-decoration: none;
}

.live-stat-card {
  border: 2px solid transparent;
  margin: 0;
}

.live-stat-card:hover,
.live-stat-card:focus-visible,
.live-stat-card.is-active {
  border-color: var(--brand);
}

.live-stat-card strong,
.live-dashboard-metric strong {
  color: var(--brand-dark);
  font-size: clamp(1.65rem, 4vw, 2.5rem);
  line-height: 1;
}

.live-stat-card span,
.live-dashboard-metric span {
  color: var(--muted);
  font-size: .88rem;
  font-weight: 700;
  overflow-wrap: normal;
  word-break: normal;
}

.live-stat-card.tone-success,
.live-dashboard-metric.tone-success {
  background: #eef8f0;
}

.live-stat-card.tone-warning,
.live-dashboard-metric.tone-warning {
  background: #fff8e7;
}

.live-dashboard-metric.tone-danger {
  background: #fff0ef;
}

.live-dashboard-metric {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: .9rem;
}

.live-dashboard-metric.is-link {
  color: inherit;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.live-dashboard-metric.is-link:hover,
.live-dashboard-metric.is-link:focus-visible {
  border-color: var(--brand);
  box-shadow: 0 8px 20px rgba(23, 32, 51, .08);
  transform: translateY(-1px);
}

.live-dashboard-overview {
  align-items: center;
  display: grid;
  gap: 1rem 1.25rem;
}

.live-dashboard-overview .section-heading {
  display: grid;
  gap: .85rem;
  min-width: 0;
}

.live-dashboard-overview .section-heading h2 {
  margin-bottom: .35rem;
}

.live-dashboard-overview .section-heading p,
.live-dashboard-overview .section-heading .actions,
.live-dashboard-overview .live-stat-grid {
  margin: 0;
}

@media (min-width: 851px) {
  .live-dashboard-overview {
    grid-template-columns: minmax(17rem, .8fr) minmax(28rem, 1.4fr);
  }
}

.live-filter-form {
  align-items: end;
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-bottom: 1rem;
}

.live-filter-form label {
  flex: 1 1 18rem;
  margin: 0;
}

.live-person-list {
  display: grid;
  gap: .65rem;
}

.live-person-row {
  align-items: center;
  background: #fffaf0;
  border: 1px solid #eadfbf;
  border-radius: 8px;
  display: grid;
  gap: .75rem;
  grid-template-columns: minmax(12rem, 1fr) minmax(10rem, auto) minmax(12rem, auto);
  padding: .8rem;
}

.live-person-row.is-arrived {
  background: #f2faf4;
  border-color: #c8e5cd;
}

.live-person-main,
.live-person-state {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .55rem;
}

.live-person-main {
  flex-direction: column;
}

.live-person-main > div {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}

.live-person-main > span,
.live-person-number {
  color: var(--muted);
  font-size: .82rem;
}

.live-check-in-action {
  margin: 0;
  text-align: right;
}

.empty-success {
  background: #eef8f0;
  border: 1px solid #c8e5cd;
  border-radius: 8px;
  margin: 0;
  padding: .8rem;
}

.preparation-check-list {
  display: grid;
  gap: .55rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  list-style: none;
  margin: 0;
  padding: 0;
}

.preparation-check-list li {
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: .65rem;
  grid-template-columns: auto minmax(0, 1fr) auto;
  padding: .7rem;
}

.preparation-check-list li.is-ready {
  background: #f2faf4;
  border-color: #c8e5cd;
}

.preparation-check-list li.is-open {
  background: #fff8e7;
  border-color: #eadfbf;
}

.preparation-check-list li > div {
  display: grid;
  gap: .15rem;
}

.preparation-check-list li span {
  color: var(--muted);
  font-size: .85rem;
}

.preparation-check-symbol {
  align-items: center;
  background: #fff;
  border: 1px solid currentColor;
  border-radius: 50%;
  color: var(--brand-dark) !important;
  display: inline-flex;
  font-size: .9rem !important;
  font-weight: 800;
  height: 1.8rem;
  justify-content: center;
  width: 1.8rem;
}

.preparation-check-note {
  margin: .8rem 0 0;
}

.muster-summary {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.muster-section {
  break-inside: avoid;
}

.muster-status-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  margin: 0;
  min-width: 18rem;
}

.muster-status-actions [aria-pressed="true"] {
  box-shadow: 0 0 0 2px var(--brand-dark);
}

.muster-status-safe {
  background: #f2faf4;
}

.muster-status-clarify {
  background: #fff0ef;
}

.muster-print-root.is-print-view {
  background: #fff;
}

@media (max-width: 840px) {
  .preparation-check-list li {
    align-items: start;
    grid-template-columns: auto minmax(0, 1fr);
  }

  .preparation-check-list li > .button {
    grid-column: 2;
    justify-self: start;
  }

  .live-person-row {
    align-items: stretch;
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .live-check-in-action {
    grid-column: 1 / -1;
    text-align: left;
  }

  .live-check-in-action .button {
    width: 100%;
  }
}

@media (max-width: 680px) {
  .preparation-check-list {
    grid-template-columns: minmax(0, 1fr);
  }

  .live-stat-grid,
  .muster-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .live-person-row,
  .preparation-check-list li {
    grid-template-columns: minmax(0, 1fr);
  }

  .preparation-check-list li > .button {
    grid-column: auto;
    justify-self: stretch;
    width: 100%;
  }

  .live-person-state {
    justify-content: flex-start;
  }

  .live-filter-form > :is(button, .button) {
    flex: 1 1 auto;
  }

  .muster-status-actions {
    min-width: 14rem;
  }
}

@media (max-width: 420px) {
  .live-stat-grid,
  .muster-summary {
    grid-template-columns: 1fr;
  }
}

@media print {
  body:has(.muster-print-root) {
    background: #fff;
  }

  body:has(.muster-print-root) :is(.topbar, .mobile-nav, .app-footer, .checky-widget, .test-mode-banner, .maintenance-admin-banner, .muster-no-print, .footer-role-hint) {
    display: none !important;
  }

  body:has(.muster-print-root) .container {
    margin: 0;
    max-width: none;
    padding: 9mm;
    width: auto;
  }

  .muster-print-root .hero,
  .muster-print-root .panel,
  .muster-print-root .live-dashboard-metric {
    border: 1px solid #777;
    box-shadow: none;
  }

  .muster-print-root .hero {
    margin-bottom: 5mm;
    padding: 5mm;
  }

  .muster-print-root .panel {
    margin: 0 0 5mm;
    padding: 4mm;
  }

  .muster-print-root table {
    font-size: 9pt;
  }

  .muster-print-root th,
  .muster-print-root td {
    padding: 2mm;
  }
}

.passkey-shell {
  display: grid;
  gap: 1.25rem;
  margin: 0 auto;
  max-width: 860px;
}

.public-portal .passkey-shell {
  margin-top: clamp(.75rem, 2vw, 1.5rem);
}

.login-passkey-fallback {
  align-items: start;
  border-top: 1px solid var(--line);
  display: grid;
  gap: .65rem;
  margin-top: 1rem;
  padding-top: 1rem;
}

.login-passkey-fallback > p {
  color: var(--muted);
  font-size: .9rem;
  margin: 0;
}

.login-passkey-fallback > .button {
  justify-self: start;
}

.passkey-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 8px 24px rgba(23, 32, 51, .06);
  display: grid;
  gap: 1rem;
  padding: clamp(1.1rem, 2.5vw, 1.75rem);
}

.passkey-card > :first-child,
.passkey-card > :first-child > :first-child {
  margin-top: 0;
}

.passkey-card > :last-child,
.passkey-card > :last-child > :last-child {
  margin-bottom: 0;
}

.passkey-card > div > :last-child {
  margin-bottom: 0;
}

.passkey-card :is(h1, h2) {
  margin: .25rem 0 .65rem;
}

.passkey-device-list {
  display: grid;
  gap: .75rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.passkey-device-list > li {
  align-items: center;
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 10px;
  display: grid;
  gap: .35rem 1rem;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: .85rem 1rem;
}

.passkey-device-list > li > :not(.button) {
  min-width: 0;
}

.recovery-code-grid {
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 10px;
  display: grid;
  font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
  font-size: clamp(.76rem, 1.45vw, .9rem);
  font-variant-numeric: tabular-nums;
  gap: .55rem 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  letter-spacing: .035em;
  list-style: none;
  margin: 0;
  padding: 1rem;
}

.recovery-code-grid.single {
  grid-template-columns: minmax(0, 1fr);
}

.recovery-code-grid > * {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 7px;
  overflow-x: auto;
  padding: .5rem .65rem;
  text-align: center;
  white-space: nowrap;
}

.passkey-status {
  border-radius: 8px;
  margin: 0;
  padding: .7rem .85rem;
}

.passkey-status[data-state="working"],
.passkey-status[data-state="info"] {
  background: #eef4ff;
  color: #203b67;
}

.passkey-status[data-state="success"] {
  background: var(--ok-bg);
  color: var(--brand-dark);
}

.passkey-status[data-state="error"] {
  background: var(--danger-bg);
  color: var(--danger);
}

.security-summary {
  align-items: start;
  background: var(--brand-soft);
  border: 1px solid rgba(149, 193, 30, .38);
  border-radius: 10px;
  display: grid;
  gap: .35rem;
  grid-template-columns: auto minmax(0, 1fr);
  padding: .9rem 1rem;
}

.security-summary > :first-child {
  color: var(--brand-dark);
  font-weight: 800;
}

.security-summary p {
  margin: 0;
}

[data-passkey-create][aria-busy="true"],
[data-passkey-get][aria-busy="true"] {
  cursor: wait;
  opacity: .72;
}

@media (max-width: 680px) {
  .passkey-card {
    border-radius: 10px;
  }

  .passkey-device-list > li {
    align-items: stretch;
    grid-template-columns: minmax(0, 1fr);
  }

  .passkey-device-list > li > .button {
    justify-self: stretch;
    width: 100%;
  }

  .recovery-code-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .security-summary {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Zusammenhängende Verwaltungsübersichten */
.record-overview-panel {
  padding: clamp(.85rem, 2vw, 1.35rem);
}

.record-overview-panel > h2 {
  margin: 0 0 .8rem;
}

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

.record-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-left: 5px solid #7c8ca1;
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(23, 32, 51, .055);
  display: flex;
  flex-direction: column;
  gap: .75rem;
  min-width: 0;
  padding: 1rem;
}

.record-status-confirmed {
  border-left-color: #3b9b68;
}

.record-status-received,
.record-status-email_pending,
.record-status-guardian_pending {
  border-left-color: #3a7bd5;
}

.record-status-waitlist {
  border-left-color: #d39118;
}

.record-status-incomplete {
  border-left-color: #8b5fc1;
}

.record-status-rejected,
.record-status-withdrawn {
  border-left-color: #c14545;
}

.record-card-header {
  align-items: start;
  display: grid;
  gap: .65rem;
  grid-template-columns: minmax(0, 1fr) auto;
}

@media (max-width: 480px) {
  .record-card-header {
    grid-template-columns: minmax(0, 1fr);
  }

  .record-card-header > .badge {
    justify-self: start;
    max-width: 100%;
    white-space: normal;
  }
}

.record-card-header h2,
.payment-record-person h2 {
  font-size: 1.12rem;
  line-height: 1.25;
  margin: .08rem 0;
  overflow-wrap: anywhere;
}

.record-card-header p,
.payment-record-person p {
  color: var(--muted);
  font-size: .86rem;
  margin: 0;
}

.record-eyebrow {
  color: var(--muted);
  display: block;
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .055em;
  line-height: 1.25;
  text-transform: uppercase;
}

.status-badge {
  align-self: start;
  background: #eef3f8;
  border-color: transparent;
  color: var(--ink);
  white-space: nowrap;
}

.record-badge-row {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
}

.record-badge-row .badge {
  line-height: 1.2;
  max-width: 100%;
  white-space: normal;
}

.record-fact-grid,
.payment-metric-grid {
  display: grid;
  gap: .55rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}

.record-fact-grid > div {
  background: #f7f9fb;
  border: 1px solid #e8edf2;
  border-radius: 8px;
  min-width: 0;
  padding: .52rem .62rem;
}

.record-fact-grid dt,
.payment-metric-grid dt {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .025em;
  line-height: 1.25;
  margin: 0 0 .12rem;
  text-transform: uppercase;
}

.record-fact-grid dd,
.payment-metric-grid dd {
  font-size: .91rem;
  font-weight: 760;
  line-height: 1.3;
  margin: 0;
  min-width: 0;
  overflow-wrap: anywhere;
}

.record-fact-grid .wide-fact {
  grid-column: 1 / -1;
}

.record-card-footer {
  align-items: center;
  border-top: 1px solid var(--line);
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: auto;
  padding-top: .75rem;
}

.record-more-actions {
  min-width: 0;
  position: relative;
}

.record-more-actions > summary,
.payment-edit-details > summary {
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 7px;
  color: var(--brand-strong);
  cursor: pointer;
  display: inline-flex;
  font-size: .86rem;
  font-weight: 800;
  line-height: 1.2;
  list-style: none;
  min-height: 2.35rem;
  padding: .5rem .72rem;
}

.record-more-actions > summary::-webkit-details-marker,
.payment-edit-details > summary::-webkit-details-marker {
  display: none;
}

.record-more-actions > summary::after,
.payment-edit-details > summary::after {
  content: "›";
  font-size: 1.15rem;
  margin-left: .45rem;
  transform: rotate(90deg);
}

.record-more-actions[open] > summary::after,
.payment-edit-details[open] > summary::after {
  transform: rotate(-90deg);
}

.record-action-menu {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  padding-top: .6rem;
}

.record-action-menu form {
  display: inline-flex;
  margin: 0;
}

.record-select {
  align-items: center;
  color: var(--muted);
  display: inline-flex;
  font-size: .8rem;
  font-weight: 750;
  gap: .42rem;
  margin: 0;
}

.record-select input[type="checkbox"] {
  flex: 0 0 auto;
  height: 1.1rem;
  margin: 0;
  min-height: 0;
  padding: 0;
  width: 1.1rem;
}

.record-bulk-actions {
  align-items: center;
  background: #f2f5f8;
  border: 1px solid var(--line);
  border-radius: 10px;
  display: flex;
  gap: .75rem;
  justify-content: space-between;
  margin-top: 1rem;
  padding: .75rem;
}

.record-bulk-actions > span {
  color: var(--muted);
  font-size: .86rem;
  font-weight: 750;
}

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

.self-registration-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 12px 30px rgba(22, 36, 54, .08);
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
}

.self-registration-media {
  aspect-ratio: 16 / 5;
  background: #dfe7ef;
  overflow: hidden;
  position: relative;
}

.self-registration-media > img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.self-registration-media::after {
  background: linear-gradient(180deg, rgba(8, 20, 39, .08), rgba(8, 20, 39, .45));
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}

.self-registration-media.is-standard {
  align-items: center;
  background:
    radial-gradient(circle at 82% 20%, rgba(255, 255, 255, .42), transparent 26%),
    linear-gradient(135deg, #111f36, #31516e 62%, #82bd13);
  display: flex;
  padding: 1rem;
}

.self-registration-standard-mark {
  bottom: .7rem;
  color: #fff;
  display: grid;
  gap: .06rem;
  left: .85rem;
  position: absolute;
  z-index: 1;
}

.self-registration-standard-mark strong {
  font-size: clamp(1.25rem, 2.7vw, 1.8rem);
  letter-spacing: -.03em;
}

.self-registration-standard-mark small {
  font-size: .78rem;
  font-weight: 800;
  opacity: .84;
}

.self-registration-media-badges {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  left: .85rem;
  position: absolute;
  top: .75rem;
  z-index: 2;
}

.self-registration-media-badge {
  backdrop-filter: blur(8px);
  background: rgba(255, 255, 255, .94);
  border-radius: 999px;
  color: var(--ink);
  font-size: .72rem;
  font-weight: 900;
  line-height: 1.1;
  padding: .32rem .55rem;
}

.self-registration-media-badge.is-success {
  background: rgba(226, 246, 234, .96);
  color: #146c43;
}

.self-registration-media-badge.is-warning {
  background: rgba(255, 246, 213, .96);
  color: #785500;
}

.self-registration-media-badge.is-danger {
  background: rgba(255, 231, 231, .96);
  color: #9c231c;
}

.self-registration-media-badge.is-info {
  background: rgba(228, 240, 255, .96);
  color: #1f548d;
}

.self-registration-media-badge.is-muted {
  color: #536273;
}

.self-registration-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
  padding: 1rem;
}

.self-registration-heading h2,
.self-registration-heading p {
  margin: 0;
}

.self-registration-heading h2 {
  font-size: 1.28rem;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.self-registration-provider {
  color: var(--brand-dark);
  font-size: .74rem;
  font-weight: 850;
  letter-spacing: .035em;
  margin-bottom: .25rem !important;
  text-transform: uppercase;
}

.self-registration-heading .record-eyebrow {
  margin-top: .28rem;
}

.self-registration-meta {
  color: var(--muted);
  display: flex;
  flex-wrap: wrap;
  font-size: .88rem;
  gap: .35rem .85rem;
  margin: .72rem 0;
}

.self-registration-meta span {
  align-items: center;
  display: inline-flex;
  min-width: 0;
  overflow-wrap: anywhere;
}

.self-registration-meta span + span::before {
  color: #a1adba;
  content: "•";
  margin-right: .85rem;
}

.self-registration-payment {
  background: #f4f7f9;
  border: 1px solid #e3e9ee;
  border-radius: 12px;
  overflow: hidden;
}

.self-registration-payment > header {
  align-items: center;
  display: flex;
  gap: .6rem;
  justify-content: space-between;
  padding: .55rem .65rem .2rem;
}

.self-registration-payment > header span {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .025em;
  text-transform: uppercase;
}

.self-registration-payment > header strong {
  border-radius: 999px;
  font-size: .74rem;
  line-height: 1.1;
  padding: .24rem .48rem;
}

.self-registration-payment.is-success > header strong {
  background: var(--ok-bg);
  color: #206342;
}

.self-registration-payment.is-warning > header strong,
.self-registration-payment.is-pending > header strong {
  background: #fff4cf;
  color: #775300;
}

.self-registration-payment.is-danger > header strong {
  background: #fff0ef;
  color: var(--danger);
}

.self-registration-payment.is-muted > header strong {
  background: #e8edf2;
  color: #536273;
}

.self-registration-payment-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  padding: .35rem;
}

.self-registration-payment-metrics > div {
  min-width: 0;
  padding: .35rem .25rem;
  text-align: center;
}

.self-registration-payment-metrics > div + div {
  border-left: 1px solid #dce4ea;
}

.self-registration-payment-metrics dt {
  color: var(--muted);
  font-size: .68rem;
  font-weight: 800;
  line-height: 1.2;
  text-transform: uppercase;
}

.self-registration-payment-metrics dd {
  font-size: .95rem;
  font-weight: 850;
  line-height: 1.25;
  margin: .12rem 0 0;
  overflow-wrap: anywhere;
}

.self-registration-payment.is-danger .self-registration-payment-open {
  color: var(--danger);
}

.self-registration-payment.is-success .self-registration-payment-open {
  color: #206342;
}

.self-registration-card .record-badge-row {
  margin-top: .65rem;
}

.self-registration-actions {
  align-items: center;
  border-top: 1px solid var(--line);
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: auto;
  padding-top: .8rem;
}

.self-registration-card .registration-options {
  border: 0;
  margin: 0 0 0 auto;
  padding: 0;
}

.self-registration-card .registration-options > summary {
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 7px;
  display: inline-flex;
  min-height: 2.35rem;
  padding: .5rem .72rem;
}

.self-registration-card .registration-options[open] {
  flex-basis: 100%;
  margin: .2rem 0 0;
  padding-top: .65rem;
}

.phone-link {
  overflow-wrap: anywhere;
  text-decoration-thickness: .08em;
  text-underline-offset: .16em;
}

/* Kompakte Verwaltungslisten */
.management-table-root {
  min-width: 0;
}

.management-live-search {
  align-items: end;
  background: #f4f7fa;
  border: 1px solid var(--line);
  border-radius: 10px;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: .85rem;
  padding: .75rem;
}

.management-live-search label {
  display: grid;
  flex: 1 1 30rem;
  gap: .3rem;
  margin: 0;
  max-width: 40rem;
}

.management-live-search label > span {
  color: var(--ink);
  font-size: .85rem;
  font-weight: 800;
}

.management-live-search input {
  background: var(--surface);
  min-height: 2.65rem;
}

.management-search-status {
  color: var(--muted);
  flex: 0 0 auto;
  font-size: .85rem;
  font-weight: 750;
  padding-bottom: .72rem;
}

.management-table-wrap {
  border: 1px solid var(--line);
  border-radius: 10px;
  overscroll-behavior-inline: contain;
}

.management-table {
  border-collapse: separate;
  border-spacing: 0;
  font-size: .88rem;
  line-height: 1.35;
  margin: 0;
  table-layout: fixed;
  width: 100%;
}

.registrations-management-table {
  min-width: 64rem;
}

.contacts-management-table {
  min-width: 48rem;
}

.people-management-table {
  min-width: 48rem;
}

.management-table th,
.management-table td {
  border-bottom: 1px solid var(--line);
  min-width: 0;
  overflow-wrap: anywhere;
  padding: .68rem .62rem;
  text-align: left;
  vertical-align: top;
}

.management-table th {
  background: #dfe8ef;
  border-bottom: 2px solid #b9c8d4;
  color: var(--ink);
  font-size: .8rem;
  font-weight: 850;
  letter-spacing: .025em;
  padding-bottom: .78rem;
  padding-top: .78rem;
  vertical-align: middle;
}

.management-table th.management-sortable-column {
  padding: 0;
}

.management-sort-button {
  align-items: center;
  appearance: none;
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
  display: flex;
  font: inherit;
  font-weight: inherit;
  gap: .32rem;
  justify-content: space-between;
  letter-spacing: inherit;
  min-height: 2.85rem;
  padding: .72rem .62rem;
  text-align: left;
  width: 100%;
}

.management-sort-button:hover {
  background: rgba(255, 255, 255, .42);
}

.management-sort-button:focus-visible {
  border-radius: 6px;
  outline: 3px solid rgba(92, 139, 21, .36);
  outline-offset: -3px;
}

.management-sort-indicator::before {
  color: #64788a;
  content: "↕";
  display: inline-block;
  font-size: .82rem;
  font-weight: 900;
}

.management-sortable-column[aria-sort="ascending"] .management-sort-indicator::before {
  color: var(--brand-strong);
  content: "↑";
}

.management-sortable-column[aria-sort="descending"] .management-sort-indicator::before {
  color: var(--brand-strong);
  content: "↓";
}

.management-table thead th:first-child {
  border-radius: 9px 0 0;
}

.management-table thead th:last-child {
  border-radius: 0 9px 0 0;
}

.management-table tbody tr:nth-child(even) td {
  background: #f9fbfc;
}

.management-table tbody tr:hover td {
  background: #f2f7fb;
}

.management-table tbody tr:last-child td {
  border-bottom: 0;
}

.management-table [hidden] {
  display: none !important;
}

.table-person-cell > strong,
.table-contact-cell > strong,
.table-phone-cell > strong {
  display: block;
}

.table-row-meta,
.mobile-table-meta {
  color: var(--muted);
  display: block;
  font-size: .76rem;
  margin-top: .18rem;
}

.mobile-table-meta,
.mobile-table-details {
  display: none;
}

.registration-person-tools {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
  margin-top: .28rem;
}

.registration-data-toggle {
  appearance: none;
  background: transparent;
  border: 0;
  color: var(--brand-strong);
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-size: .74rem;
  font-weight: 800;
  padding: 0;
}

.registration-data-toggle::after {
  content: "›";
  font-size: .92rem;
  margin-left: .28rem;
  transform: rotate(90deg);
}

.registration-data-toggle[aria-expanded="true"]::after {
  transform: rotate(-90deg);
}

.registration-detail-row td {
  background: #f4f7fa;
  border-bottom: 1px solid #cbd6df;
  padding: .65rem;
}

.registration-data-panel {
  width: 100%;
}

.registration-data-grid {
  background: #f4f7fa;
  border-radius: 8px;
  display: grid;
  gap: .55rem;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  margin: 0;
}

.registration-data-grid > div {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  min-width: 0;
  padding: .65rem .72rem;
}

.registration-data-grid dt {
  color: var(--muted);
  font-size: .7rem;
  font-weight: 800;
}

.registration-data-grid dd {
  font-size: .8rem;
  margin: .12rem 0 0;
}

.table-status-cell .status-badge {
  display: inline-flex;
  margin-bottom: .25rem;
  white-space: normal;
}

.table-status-notices {
  display: grid;
  gap: .25rem;
  justify-items: start;
}

.table-status-notices .badge {
  line-height: 1.2;
  max-width: 100%;
  white-space: normal;
}

.table-row-actions {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  gap: .38rem;
}

.table-action-details {
  min-width: 0;
  position: relative;
}

.table-action-details > summary {
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 7px;
  color: var(--brand-strong);
  cursor: pointer;
  display: inline-flex;
  font-weight: 800;
  justify-content: center;
  list-style: none;
  min-height: 2.35rem;
  padding: .5rem .68rem;
}

.table-action-details > summary::-webkit-details-marker {
  display: none;
}

.table-action-details > summary::after {
  content: "›";
  font-size: 1.05rem;
  margin-left: .38rem;
  transform: rotate(90deg);
}

.table-action-details[open] > summary::after {
  transform: rotate(-90deg);
}

.table-action-menu {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  min-width: min(22rem, 70vw);
  padding-top: .4rem;
}

.table-action-menu form {
  display: inline-flex;
  margin: 0;
}

.registration-list-section + .registration-list-section {
  margin-top: 1.15rem;
}

.registration-list-heading {
  align-items: center;
  background: #f4f7fa;
  border: 1px solid var(--line);
  border-radius: 10px 10px 0 0;
  display: flex;
  justify-content: space-between;
  padding: .78rem .9rem;
}

.registration-list-heading h2 {
  font-size: 1.05rem;
  margin: 0;
}

.registration-list-heading p {
  color: var(--muted);
  font-size: .78rem;
  margin: .16rem 0 0;
}

.registration-list-heading .eyebrow {
  color: #315e8a;
  font-size: .67rem;
  margin: 0 0 .12rem;
}

.registration-list-section .management-table-wrap {
  border-radius: 0 0 10px 10px;
  border-top: 0;
}

.registration-list-section-waitlist .registration-list-heading {
  background: #fff8e4;
  border-color: #e7ca76;
  box-shadow: inset 4px 0 0 #c98700;
}

.registration-list-section-clarification .registration-list-heading {
  background: #edf4fb;
  border-color: #b8cee2;
  box-shadow: inset 4px 0 0 #5b8fbd;
}

.registration-list-empty {
  border: 1px solid var(--line);
  border-radius: 0 0 10px 10px;
  padding: .9rem;
}

.registration-list-empty p {
  margin: 0;
}

.registration-record-group[hidden],
.registration-detail-row[hidden],
.registration-action-row[hidden] {
  display: none !important;
}

.registrations-management-table > tbody:nth-of-type(even) .registration-table-row td {
  background: #f9fbfc;
}

.registrations-management-table .table-row-actions {
  display: grid;
  gap: .38rem;
  width: 100%;
}

.registration-action-toggle {
  align-items: center;
  background: var(--surface);
  border-color: var(--line);
  box-sizing: border-box;
  color: var(--brand-strong);
  display: inline-flex;
  font-weight: 800;
  justify-content: center;
  min-height: 2.35rem;
  padding: .5rem .68rem;
  width: 100%;
}

.registration-action-toggle::after {
  content: "›";
  font-size: 1.05rem;
  margin-left: .38rem;
  transform: rotate(90deg);
}

.registration-action-toggle[aria-expanded="true"] {
  background: #e7eef4;
  border-color: #aebfcd;
}

.registration-action-toggle[aria-expanded="true"]::after {
  transform: rotate(-90deg);
}

.registration-action-row td {
  background: #f4f7fa !important;
  border-bottom: 1px solid #cbd6df;
  padding: .65rem;
}

.registration-action-panel {
  align-items: stretch;
  display: grid;
  gap: .55rem;
  grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
  width: 100%;
}

.registration-action-panel form {
  display: flex;
  margin: 0;
}

.registration-action-panel .button,
.registration-action-panel form .button {
  box-sizing: border-box;
  justify-content: center;
  margin: 0;
  white-space: normal;
  width: 100%;
}

.table-select-column {
  text-align: center !important;
  width: 2.7rem;
}

.table-select-control {
  display: inline-flex;
  margin: 0;
}

.table-select-control input {
  height: 1.1rem;
  margin: .1rem 0 0;
  min-height: 0;
  padding: 0;
  width: 1.1rem;
}

.table-break {
  overflow-wrap: anywhere;
}

.management-search-empty {
  margin-top: .75rem;
}

.registrations-management-table .table-person-cell {
  width: 19%;
}

.registrations-management-table th:nth-child(2),
.registrations-management-table td:nth-child(2) {
  width: 12%;
}

.registrations-management-table .table-status-cell {
  width: 14%;
}

.registrations-management-table th:nth-child(4),
.registrations-management-table td:nth-child(4) {
  width: 12%;
}

.registrations-management-table th:nth-child(5),
.registrations-management-table td:nth-child(5) {
  width: 6%;
}

.registrations-management-table th:nth-child(6),
.registrations-management-table td:nth-child(6) {
  width: 9%;
}

.registrations-management-table td {
  padding-bottom: .55rem;
  padding-top: .55rem;
  vertical-align: middle;
}

.registrations-management-table .table-health-cell {
  width: 13%;
}

.registrations-management-table .table-action-cell {
  width: 15%;
}

.registration-health-state {
  display: block;
}

.registration-health-state .badge,
.registration-health-empty {
  font-size: .7rem;
  line-height: 1.2;
  max-width: 100%;
  text-align: center;
  white-space: normal;
}

.registration-health-open {
  appearance: none;
  border: 0;
  cursor: pointer;
  font: inherit;
  font-size: .7rem;
  line-height: 1.2;
  max-width: 100%;
  padding: .3rem .5rem;
  text-align: center;
  white-space: normal;
}

.registration-health-open:hover,
.registration-health-open:focus-visible {
  background: #f4d98c;
  color: #704800;
}

.registration-health-dialog {
  background: transparent;
  border: 0;
  max-height: calc(100vh - 2rem);
  max-width: min(48rem, calc(100vw - 2rem));
  overflow: hidden;
  padding: 0;
  width: 100%;
}

.registration-health-dialog::backdrop {
  background: rgba(12, 22, 38, .68);
  backdrop-filter: blur(2px);
}

.registration-health-dialog-panel {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 24px 70px rgba(12, 22, 38, .28);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  max-height: calc(100vh - 2rem);
  overflow: hidden;
}

.registration-health-dialog-panel > header {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  padding: .85rem 1rem;
}

.registration-health-dialog-panel > header .eyebrow {
  margin-bottom: .12rem;
}

.registration-health-dialog-panel > header h2 {
  font-size: 1.2rem;
  margin: 0;
}

.registration-health-close {
  align-items: center;
  appearance: none;
  background: #edf2f6;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--ink);
  cursor: pointer;
  display: inline-flex;
  flex: 0 0 2.35rem;
  font-size: 1.45rem;
  height: 2.35rem;
  justify-content: center;
  line-height: 1;
  padding: 0 0 .12rem;
}

.registration-health-dialog-body {
  overflow: auto;
  padding: 1rem;
}

.registration-health-loading {
  color: var(--muted);
  margin: 0;
  padding: 1.5rem 0;
  text-align: center;
}

.registration-health-privacy {
  margin-bottom: .85rem;
}

.health-person-grid.registration-health-dialog-grid {
  grid-template-columns: minmax(0, 1fr);
}

.registration-health-dialog-grid .health-person-card > summary {
  min-height: 0;
}

.registration-health-dialog-fallback {
  inset: 1rem;
  margin: auto;
  position: fixed;
  z-index: 1000;
}

.people-management-table .table-person-cell {
  width: 29%;
}

.people-management-table .table-action-cell {
  width: 16%;
}

.contacts-management-table {
  table-layout: auto;
}

.contacts-management-table .table-person-cell,
.contacts-management-table .table-birth-cell,
.contacts-management-table .table-contact-cell,
.contacts-management-table .table-phone-cell {
  width: 25%;
}

.contact-person-name,
.contact-birth-date {
  display: block;
  font-weight: 850;
}

.contact-row-actions {
  display: grid;
  gap: .45rem;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
}

.contact-row-actions .button {
  justify-content: center;
  min-width: 0;
  text-align: center;
  width: 100%;
}

.contact-row-actions .emergency-call-button {
  gap: .35rem;
  min-height: 2.75rem;
  padding: .35rem .45rem;
}

.contact-row-actions .emergency-call-button small {
  display: none;
}

.contact-row-actions .emergency-call-button strong {
  font-size: .72rem;
  overflow-wrap: normal;
  white-space: nowrap;
}

.contact-row-actions .emergency-call-icon {
  height: 1.35rem;
  width: 1.35rem;
}

.button.contact-details-button {
  background: #1769aa;
  border-color: #1769aa;
  color: #fff;
  font-size: .7rem;
  font-weight: 800;
  line-height: 1.15;
  min-height: 2.75rem;
  padding: .35rem .25rem;
  white-space: normal;
}

.button.contact-details-button:hover,
.button.contact-details-button:focus-visible {
  background: #10558c;
  border-color: #10558c;
  color: #fff;
}

.emergency-call-button {
  align-items: center;
  display: inline-flex;
  gap: .5rem;
  justify-content: flex-start;
  line-height: 1.15;
  min-height: 2.7rem;
  padding: .48rem .65rem;
  text-align: left;
  white-space: normal;
}

.emergency-call-button > span:last-child {
  display: grid;
  gap: .08rem;
}

.emergency-call-button small {
  color: #fff;
  font-size: .66rem;
  font-weight: 750;
  opacity: .9;
}

.emergency-call-button strong {
  color: #fff;
  font-size: .88rem;
  overflow-wrap: anywhere;
}

.emergency-call-icon {
  align-items: center;
  background: rgba(255, 255, 255, .18);
  border-radius: 50%;
  display: inline-flex;
  flex: 0 0 auto;
  font-size: 1rem;
  height: 1.8rem;
  justify-content: center;
  width: 1.8rem;
}

.emergency-phone-missing {
  display: block;
  font-size: .8rem;
}

.contact-person-title {
  align-items: end;
}

.contact-person-overview {
  display: grid;
  gap: 1rem;
  grid-template-columns: minmax(0, 1.25fr) minmax(18rem, .75fr);
  margin-bottom: 1rem;
}

.contact-detail-panel {
  margin: 0;
}

.contact-detail-panel h2 {
  margin-top: 0;
}

.contact-person-facts {
  display: grid;
  gap: .75rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}

.contact-person-facts > div {
  background: #f4f7fa;
  border-radius: 9px;
  padding: .7rem .8rem;
}

.contact-person-facts dt {
  color: var(--muted);
  font-size: .74rem;
  font-weight: 800;
}

.contact-person-facts dd {
  font-weight: 700;
  margin: .18rem 0 0;
  overflow-wrap: anywhere;
}

.emergency-contact-panel {
  border-left: 5px solid var(--danger);
}

.emergency-contact-panel .eyebrow {
  color: var(--danger);
}

.emergency-contact-name {
  font-size: 1.15rem;
  font-weight: 850;
  margin: 0 0 .8rem;
}

.emergency-contact-panel .emergency-call-button {
  width: 100%;
}

.contact-health-section {
  margin-top: 1rem;
}

.contact-health-grid {
  grid-template-columns: minmax(0, 1fr);
}

.contact-health-grid .health-person-card {
  max-width: none;
  width: 100%;
}

.contact-health-section .health-detail-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.contact-health-unavailable {
  margin-top: 1rem;
}

/* Gesundheitsangaben */
.health-privacy-notice {
  align-items: start;
  background: #fff8e6;
  border: 1px solid #efd38b;
  border-radius: 12px;
  display: grid;
  gap: .8rem;
  grid-template-columns: auto minmax(0, 1fr);
  margin-bottom: 1rem;
  padding: .9rem 1rem;
}

.health-privacy-icon {
  align-items: center;
  background: #d39118;
  border-radius: 50%;
  color: #fff;
  display: inline-flex;
  font-weight: 900;
  height: 1.7rem;
  justify-content: center;
  width: 1.7rem;
}

.health-privacy-notice p {
  margin: .15rem 0 0;
}

.health-details-list {
  margin-top: 1rem;
}

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

.health-person-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-left: 5px solid #3b9b68;
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(23, 32, 51, .055);
  margin: 0;
  min-width: 0;
  padding: 0;
}

.health-person-card.has-health-information {
  border-left-color: #d39118;
}

.health-person-card > summary {
  gap: .7rem;
  min-height: 5rem;
  padding: .9rem 1rem;
}

.health-person-card > summary > span:first-child {
  gap: .12rem;
}

.health-person-card > summary .badge {
  max-width: 12rem;
  text-align: center;
  white-space: normal;
}

.health-person-card > p {
  border-top: 1px solid var(--line);
  margin: 0;
  padding: .8rem 1rem 1rem;
}

.health-person-card .health-detail-grid {
  border-top: 1px solid var(--line);
  margin: 0;
  padding: 1rem;
}

.health-access-management {
  border-radius: 12px;
}

/* Kompakte Zahlungsübersicht */
.payment-overview-panel {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
}

.payment-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.payment-record-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-left: 5px solid #7c8ca1;
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(23, 32, 51, .055);
  display: grid;
  gap: .75rem;
  min-width: 0;
  padding: .9rem 1rem;
}

.payment-record-card.payment-status-open,
.payment-record-card.payment-status-overdue {
  background: #fffafa;
}

.payment-record-card.payment-status-partial {
  background: #fffcf2;
}

.payment-record-card.payment-status-paid {
  background: #f8fdf9;
}

.payment-record-header {
  align-items: start;
  display: grid;
  gap: .45rem .7rem;
  grid-template-columns: minmax(0, 1fr) auto;
}

.payment-record-header .payment-select {
  grid-column: 1 / -1;
}

.payment-record-person {
  min-width: 0;
}

.payment-record-notices {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
}

.payment-record-notices .payment-participation-note {
  background: #eef3f8;
  border-radius: 999px;
  margin: 0;
  padding: .25rem .55rem;
}

.payment-metric-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.payment-metric-grid > div {
  background: #f2f5f8;
  border-radius: 8px;
  padding: .55rem;
  text-align: center;
}

.payment-metric-grid dd {
  font-size: 1.05rem;
}

.payment-open-metric {
  background: #fff0ef !important;
  color: var(--danger);
}

.payment-status-paid .payment-open-metric {
  background: var(--ok-bg) !important;
  color: #206342;
}

.payment-reference {
  background: #f7f9fb;
  border-radius: 8px;
  display: grid;
  gap: .08rem;
  min-width: 0;
  padding: .48rem .62rem;
}

.payment-reference span {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 800;
  text-transform: uppercase;
}

.payment-reference strong {
  font-size: .84rem;
  overflow-wrap: anywhere;
}

.payment-edit-details {
  border-top: 1px solid var(--line);
  padding-top: .7rem;
}

.payment-edit-details > summary {
  width: max-content;
}

.payment-record-editor {
  display: grid;
  gap: .7rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  padding-top: .8rem;
}

.payment-record-editor label {
  font-size: .8rem;
  margin: 0;
}

.payment-record-editor input,
.payment-record-editor select,
.payment-record-editor textarea {
  min-width: 0;
  width: 100%;
}

.payment-record-editor .payment-note {
  grid-column: span 2;
}

.payment-editor-context,
.payment-record-editor .payment-actions {
  grid-column: 1 / -1;
}

.payment-editor-context {
  display: grid;
  gap: .6rem;
}

.payment-contact-details {
  font-size: .85rem;
}

/* Export-Center */
.export-options-panel {
  padding: .9rem 1rem;
}

.export-options-panel h2 {
  font-size: 1rem;
  margin: 0 0 .6rem;
}

.export-test-option .check-row {
  align-items: start;
  margin: 0;
}

.export-test-option .check-row > span {
  display: grid;
  gap: .08rem;
}

.export-test-option small {
  color: var(--muted);
  font-weight: 500;
}

.export-guidance {
  background: #eef5fd;
  border: 1px solid #cbdff6;
  border-radius: 10px;
  margin: 1rem 0;
  padding: .75rem .9rem;
}

.export-guidance p {
  color: #3d526a;
  margin: .15rem 0 0;
}

.export-option-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 1rem;
}

.export-option-card {
  align-items: start;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(23, 32, 51, .055);
  display: grid;
  gap: .7rem 1rem;
  grid-template-columns: auto minmax(0, 1fr);
  min-width: 0;
  padding: 1rem;
}

.export-card-icon {
  align-items: center;
  background: var(--brand-soft);
  border-radius: 10px;
  color: var(--brand-strong);
  display: flex;
  font-size: 1.1rem;
  font-weight: 900;
  height: 2.6rem;
  justify-content: center;
  width: 2.6rem;
}

.export-tone-payments .export-card-icon,
.export-tone-audit .export-card-icon {
  background: #fff1d7;
  color: #7b5100;
}

.export-tone-schedule .export-card-icon,
.export-tone-absences .export-card-icon {
  background: #e8f2ff;
  color: #204c82;
}

.export-card-copy h2 {
  font-size: 1.05rem;
  margin: 0;
}

.export-card-copy p {
  color: var(--muted);
  font-size: .88rem;
  margin: .2rem 0 .55rem;
}

.export-format {
  color: var(--muted);
  font-size: .74rem;
  font-weight: 750;
  text-transform: uppercase;
}

.export-option-card > .button {
  grid-column: 1 / -1;
  justify-self: start;
}

.current-target-choices {
  border: 1px solid var(--line);
  border-radius: 10px;
  margin: 0;
  padding: .75rem;
}

.current-target-choices legend {
  font-weight: 800;
  padding: 0 .25rem;
}

.current-target-choices .choice-card-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.current-target-choices .compact-choice {
  align-items: center;
  min-height: 3.2rem;
  padding: .55rem .65rem;
}

@media (max-width: 980px) {
  .record-card-grid,
  .self-registration-grid,
  .health-person-grid,
  .payment-list,
  .export-option-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .payment-record-editor {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .management-live-search {
    align-items: stretch;
    flex-direction: column;
    gap: .45rem;
    padding: .6rem;
  }

  .management-live-search label {
    flex-basis: auto;
    max-width: none;
  }

  .management-search-status {
    padding: 0;
  }

  .management-table-wrap {
    overflow-x: visible;
  }

  .management-table,
  .registrations-management-table,
  .people-management-table,
  .contacts-management-table {
    font-size: .8rem;
    min-width: 0;
    table-layout: fixed;
    width: 100%;
  }

  .management-table th,
  .management-table td {
    padding: .52rem .35rem;
  }

  .management-table th {
    font-size: .7rem;
  }

  .management-table .table-priority-secondary,
  .management-table .table-priority-tertiary {
    display: none;
  }

  .mobile-table-meta,
  .mobile-table-details {
    display: block;
  }

  .table-row-meta-desktop {
    display: none;
  }

  .mobile-table-details {
    margin-top: .35rem;
  }

  .mobile-table-details > summary {
    color: var(--brand-strong);
    cursor: pointer;
    font-size: .74rem;
    font-weight: 800;
  }

  .mobile-table-details dl {
    display: grid;
    gap: .28rem;
    margin: .38rem 0 0;
  }

  .mobile-table-details dl > div {
    border-top: 1px solid var(--line);
    display: grid;
    gap: .08rem;
    padding-top: .25rem;
  }

  .mobile-table-details dt {
    color: var(--muted);
    font-size: .68rem;
    font-weight: 800;
  }

  .mobile-table-details dd {
    margin: 0;
  }

  .table-row-actions {
    display: grid;
    gap: .3rem;
  }

  .table-row-actions > .button,
  .table-row-actions > .table-action-details,
  .table-action-details > summary {
    font-size: .74rem;
    justify-content: center;
    min-width: 0;
    padding: .42rem .35rem;
    width: 100%;
  }

  .table-action-menu {
    display: grid;
    min-width: 0;
  }

  .table-action-menu .button,
  .table-action-menu form,
  .table-action-menu form .button {
    justify-content: center;
    width: 100%;
  }

  .table-status-cell .badge,
  .management-table td > .badge {
    font-size: .68rem;
    padding: .2rem .3rem;
  }

  .registrations-management-table .table-person-cell {
    width: auto;
  }

  .registrations-management-table .table-status-cell {
    width: auto;
  }

  .registrations-management-table .table-health-cell {
    width: auto;
  }

  .registrations-management-table .table-action-cell {
    width: auto;
  }

  .registrations-management-table td {
    padding: .48rem;
  }

  .registrations-management-table thead {
    display: none;
  }

  .registrations-management-table tbody {
    display: block;
    width: 100%;
  }

  .registrations-management-table tbody tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(9.4rem, .8fr);
    width: 100%;
  }

  .registrations-management-table tbody .table-person-cell {
    border-bottom: 0;
    grid-column: 1;
    grid-row: 1;
    padding-bottom: .55rem;
  }

  .registrations-management-table tbody .table-status-cell,
  .registrations-management-table tbody .table-health-cell {
    border-top: 1px solid var(--line);
    padding-bottom: .38rem;
    padding-top: .38rem;
    text-align: center;
  }

  .registrations-management-table tbody .table-action-cell {
    border-bottom: 0;
    grid-column: 2;
    grid-row: 1;
    padding: .48rem;
  }

  .registrations-management-table tbody .table-status-cell {
    grid-column: 1;
    grid-row: 2;
  }

  .registrations-management-table tbody .table-health-cell {
    grid-column: 2;
    grid-row: 2;
  }

  .registrations-management-table tbody .table-status-cell::before,
  .registrations-management-table tbody .table-health-cell::before,
  .registrations-management-table tbody .table-action-cell::before {
    color: var(--muted);
    display: block;
    font-size: .64rem;
    font-weight: 850;
    margin-bottom: .28rem;
  }

  .registrations-management-table tbody .table-status-cell::before {
    content: "Status";
  }

  .registrations-management-table tbody .table-health-cell::before {
    content: "Gesundheit";
  }

  .registrations-management-table tbody .table-action-cell::before {
    display: none;
  }

  .registrations-management-table .table-action-cell .table-row-actions {
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
  }

  .registrations-management-table .table-action-cell .table-row-actions > .button,
  .registrations-management-table .table-action-cell .table-row-actions > .registration-action-toggle {
    flex: 1 1 0;
  }

  .registrations-management-table .table-action-cell .table-row-actions > .button,
  .registrations-management-table .table-action-cell .table-row-actions > .registration-action-toggle {
    font-size: .6rem;
    overflow-wrap: normal;
    padding: .38rem .18rem;
    white-space: nowrap;
  }

  .registrations-management-table tbody .registration-detail-row,
  .registrations-management-table tbody .registration-action-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .registrations-management-table tbody .registration-detail-row td,
  .registrations-management-table tbody .registration-action-row td {
    grid-column: 1;
    padding: .5rem;
    width: 100%;
  }

  .registration-action-panel {
    grid-template-columns: minmax(0, 1fr);
  }

  .registration-list-heading {
    padding: .65rem .72rem;
  }

  .registrations-management-table .table-status-notices,
  .registrations-management-table .registration-health-state {
    justify-items: center;
  }

  .registrations-management-table .table-status-cell .status-badge {
    margin-bottom: 0;
  }

  .registrations-management-table .table-status-notices {
    display: inline-flex;
    flex-wrap: wrap;
    gap: .18rem;
    margin-left: .2rem;
    vertical-align: middle;
  }

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

  .registration-health-state {
    justify-items: stretch;
    text-align: center;
  }

  .registration-health-state .badge,
  .registration-health-empty {
    display: flex;
    justify-content: center;
    width: 100%;
  }

  .registration-health-open {
    text-align: center;
    width: 100%;
  }

  .registration-health-dialog {
    max-height: calc(100vh - 1rem);
    max-width: calc(100vw - 1rem);
  }

  .registration-health-dialog-panel {
    max-height: calc(100vh - 1rem);
  }

  .registration-health-dialog-panel > header,
  .registration-health-dialog-body {
    padding: .75rem;
  }

  .people-management-table .table-select-column {
    width: 2rem;
  }

  .people-management-table .table-person-cell {
    width: 38%;
  }

  .people-management-table .table-action-cell {
    width: 30%;
  }

  .people-management-table .table-action-cell .button {
    font-size: .7rem;
    padding-left: .25rem;
    padding-right: .25rem;
    white-space: nowrap;
  }

  .contacts-management-table .table-person-cell {
    width: auto;
  }

  .contacts-management-table .table-birth-cell,
  .contacts-management-table .table-contact-cell {
    width: auto;
  }

  .contacts-management-table .table-phone-cell {
    width: auto;
  }

  .contacts-management-table thead {
    display: none;
  }

  .contacts-management-table,
  .contacts-management-table tbody {
    display: block;
  }

  .contacts-management-table tbody tr {
    display: grid;
    gap: 0;
    grid-template-columns: minmax(0, 1fr);
    padding: .65rem;
  }

  .contacts-management-table tbody tr + tr {
    border-top: 1px solid var(--line);
  }

  .contacts-management-table tbody tr:nth-child(even) {
    background: var(--surface);
  }

  .contacts-management-table tbody tr:hover {
    background: var(--surface);
  }

  .contacts-management-table tbody td {
    background: #f4f7fa !important;
    border-bottom: 0;
    border-left: 1px solid #d8e0e7;
    border-radius: 0;
    border-right: 1px solid #d8e0e7;
    border-top: 0;
    display: block;
    padding: .18rem .65rem;
    text-align: center;
    width: 100%;
  }

  .contacts-management-table tbody .table-person-cell {
    border-radius: 8px 8px 0 0;
    border-top: 1px solid #d8e0e7;
    padding-top: .62rem;
  }

  .contacts-management-table tbody .table-birth-cell {
    font-size: .82rem;
  }

  .contacts-management-table tbody .table-contact-cell {
    border-bottom: 1px solid #d8e0e7;
    border-radius: 0 0 8px 8px;
    font-size: .82rem;
    padding-bottom: .62rem;
  }

  .contacts-management-table tbody .table-phone-cell {
    background: transparent !important;
    border: 0;
    margin-top: .45rem;
    padding: 0;
  }

  .contacts-management-table tbody td::before {
    color: var(--muted);
    content: attr(data-label);
    display: block;
    font-size: .66rem;
    font-weight: 850;
    letter-spacing: .025em;
    margin-bottom: .18rem;
    text-transform: uppercase;
  }

  .contacts-management-table tbody .table-person-cell::before {
    display: none;
  }

  .contacts-management-table tbody .table-phone-cell::before {
    display: none;
  }

  .contacts-management-table .contact-person-name {
    color: var(--ink);
    font-size: 1.02rem;
    font-weight: 900;
    line-height: 1.25;
  }

  .contacts-management-table .table-contact-cell strong {
    font-size: .82rem;
    line-height: 1.3;
  }

  .contacts-management-table .contact-birth-date {
    font-size: .82rem;
    line-height: 1.3;
  }

  .contacts-management-table .emergency-call-button {
    gap: .3rem;
    justify-content: center;
    min-height: 2.75rem;
    padding: .32rem .4rem;
    text-align: center;
    width: 100%;
  }

  .contacts-management-table .emergency-call-button > span:last-child {
    justify-items: center;
  }

  .contacts-management-table .emergency-call-icon {
    height: 1.35rem;
    width: 1.35rem;
  }

  .contacts-management-table .emergency-call-button strong {
    font-size: .72rem;
    overflow-wrap: normal;
    white-space: nowrap;
  }

  .contacts-management-table .emergency-call-button small {
    display: none;
  }

  .contacts-management-table .contact-details-button {
    font-size: .66rem;
    line-height: 1.15;
    min-height: 2.75rem;
    padding: .3rem .2rem;
  }

  .contact-person-title {
    align-items: stretch;
    flex-direction: column;
  }

  .contact-person-title .button {
    width: 100%;
  }

  .contact-person-overview {
    grid-template-columns: minmax(0, 1fr);
  }

  .contact-health-section .health-detail-grid,
  .registration-data-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .contact-person-facts {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 640px) {
  .record-card,
  .payment-record-card,
  .export-option-card {
    border-radius: 10px;
    padding: .85rem;
  }

  .record-overview-panel {
    padding: var(--space-4);
  }

  .payment-record-editor {
    grid-template-columns: minmax(0, 1fr);
  }

  .payment-record-editor .payment-note {
    grid-column: auto;
  }

  .record-bulk-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .record-bulk-actions .actions,
  .record-bulk-actions .button,
  .record-card-footer > .button,
  .record-card-footer > .record-more-actions,
  .self-registration-actions > .button,
  .self-registration-card .registration-options {
    flex: 1 1 7rem;
  }

  .record-card-footer > .button,
  .record-card-footer > .record-more-actions > summary,
  .self-registration-actions > .button,
  .self-registration-card .registration-options > summary {
    justify-content: center;
    width: 100%;
  }

  .payment-metric-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .payment-metric-grid dd {
    font-size: .9rem;
  }

  .export-option-card {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .export-option-card > .button {
    justify-self: stretch;
    width: 100%;
  }

  .current-target-choices .choice-card-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .self-registration-meta {
    align-items: flex-start;
    flex-direction: column;
    gap: .2rem;
  }

  .self-registration-meta span + span::before {
    content: none;
  }

  .self-registration-payment > header {
    align-items: flex-start;
    flex-direction: column;
    gap: .3rem;
  }

  .self-registration-payment-metrics dd {
    font-size: .84rem;
  }
}

/* Feedback, vertraulicher Kontakt und Organisationsaufnahme (1.57.0) */
.feedback-public,
.feedback-access,
.confidential-public,
.confidential-thread {
  background:
    radial-gradient(circle at 100% 0, color-mix(in srgb, var(--brand) 14%, transparent), transparent 36rem),
    var(--surface);
  border: 1px solid var(--line);
  border-radius: 22px;
  box-shadow: 0 24px 60px rgba(26, 43, 36, .1);
  display: grid;
  gap: 1.15rem;
  margin: clamp(1rem, 4vw, 3rem) auto;
  max-width: 860px;
  padding: clamp(1rem, 4vw, 2.6rem);
}

.feedback-public > h1,
.feedback-access > h1,
.confidential-public > h1,
.confidential-thread > h1 {
  font-size: clamp(2rem, 6vw, 3.35rem);
  letter-spacing: -.045em;
  line-height: 1.02;
  margin: 0;
}

.feedback-public > h1::before,
.feedback-access > h1::before,
.confidential-public > h1::before,
.confidential-thread > h1::before {
  background: var(--brand);
  border-radius: 999px;
  content: "";
  display: block;
  height: 7px;
  margin-bottom: .8rem;
  width: 62px;
}

.feedback-public > p,
.feedback-access > p,
.confidential-public > p,
.confidential-thread > p {
  color: var(--muted);
  font-size: 1.05rem;
  line-height: 1.65;
  margin: 0;
  max-width: 68ch;
}

.feedback-public form,
.feedback-access form,
.confidential-public form,
.confidential-thread form,
.confidential-case form {
  display: grid;
  gap: 1rem;
  min-width: 0;
}

.feedback-public > .eyebrow,
.confidential-public > .eyebrow {
  color: var(--brand-dark);
  font-size: .8rem;
  line-height: 1.4;
  margin: 0;
  text-transform: uppercase;
}

.feedback-access {
  max-width: 620px;
}

.feedback-progress {
  display: grid;
  gap: .55rem;
  margin: .35rem 0 .15rem;
}

.feedback-progress-track {
  background: var(--line);
  border-radius: 999px;
  height: 8px;
  overflow: hidden;
}

.feedback-progress-value {
  background: linear-gradient(90deg, var(--brand), var(--brand-dark));
  border-radius: inherit;
  display: block;
  height: 100%;
  transition: width .2s ease;
  width: 33.333%;
}

.feedback-progress-meta {
  align-items: center;
  color: var(--muted);
  display: flex;
  flex-wrap: wrap;
  font-size: .9rem;
  font-weight: 700;
  gap: .5rem 1rem;
  justify-content: space-between;
}

.feedback-progress-meta > :last-child {
  margin-left: auto;
  text-align: right;
}

.feedback-step {
  display: grid;
  gap: 1rem;
  min-width: 0;
}

.feedback-step[hidden] {
  display: none;
}

.feedback-step > h2 {
  font-size: clamp(1.25rem, 3vw, 1.65rem);
  margin: .2rem 0;
}

.feedback-question {
  background: color-mix(in srgb, var(--surface) 86%, var(--brand-soft));
  border: 1px solid var(--line);
  border-radius: 16px;
  display: grid;
  gap: .65rem;
  margin: 0;
  min-width: 0;
  padding: clamp(.85rem, 2.5vw, 1.25rem);
}

.feedback-question legend {
  color: var(--ink);
  font-size: 1.05rem;
  font-weight: 850;
  line-height: 1.4;
  padding: 0 .3rem;
}

.feedback-choice {
  align-items: center;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 12px;
  cursor: pointer;
  display: flex;
  font-weight: 720;
  gap: .7rem;
  line-height: 1.3;
  min-height: 48px;
  padding: .7rem .8rem;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.feedback-choice:hover,
.feedback-choice:focus-within {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 17%, transparent);
  transform: translateY(-1px);
}

.feedback-choice input {
  flex: 0 0 auto;
  height: 1.25rem;
  margin: 0;
  width: 1.25rem;
}

.feedback-step textarea,
.confidential-public textarea,
.confidential-thread textarea,
.confidential-case textarea {
  min-height: 8rem;
  resize: vertical;
  width: 100%;
}

.feedback-pii-warning {
  background: #fff5d7;
  border: 1px solid #d9a928;
  border-radius: 10px;
  color: #553c00;
  font-weight: 700;
  margin: 0;
  padding: .65rem .75rem;
}

.feedback-step-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  justify-content: space-between;
  padding-top: .25rem;
}

.feedback-final-controls {
  border-top: 1px solid var(--line);
  display: grid;
  gap: .85rem;
  margin-top: .35rem;
  padding-top: 1rem;
}

.feedback-final-actions,
.feedback-admin-actions,
.feedback-editor-submit-actions,
.feedback-editor-toolbar {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
}

.feedback-final-actions {
  justify-content: flex-end;
}

.feedback-admin-actions {
  gap: .65rem;
}

.feedback-save-status {
  color: var(--muted);
  margin: 0;
  min-height: 1.5em;
}

.feedback-step-actions button,
.feedback-public button,
.feedback-access button,
.confidential-public button,
.confidential-thread button {
  min-height: 46px;
}

.feedback-admin-overview,
.feedback-evaluation {
  display: grid;
  gap: 1rem;
}

.feedback-admin-overview > .feedback-kpi-grid {
  margin-bottom: 0;
}

.feedback-round-card,
.feedback-editor-question,
.feedback-questionnaire-preview,
.feedback-access-sheet {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 14px;
  min-width: 0;
  padding: 1rem;
}

.feedback-editor-form,
.feedback-editor-question-list,
.feedback-editor-question,
.feedback-editor-question-fields,
.feedback-editor-meta-fields {
  display: grid;
  gap: 1rem;
  min-width: 0;
}

.feedback-editor-meta-fields,
.feedback-editor-question-fields {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.feedback-editor-question-header {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .65rem 1rem;
  justify-content: space-between;
  min-width: 0;
}

.feedback-editor-question-position {
  flex: 0 0 auto;
}

.feedback-editor-question-actions {
  display: flex;
  flex: 1 1 22rem;
  flex-wrap: wrap;
  gap: .45rem;
  justify-content: flex-end;
  min-width: 0;
}

.feedback-editor-question-actions button {
  min-height: 42px;
}

.feedback-editor-question-fields > label:has(textarea),
.feedback-editor-question-fields > .check {
  grid-column: 1 / -1;
}

.feedback-editor-submit-actions {
  justify-content: flex-end;
}

.feedback-round-card {
  border-left: 5px solid var(--brand);
}

.feedback-round-card > div {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
}

.feedback-round-card > div form {
  margin: 0;
}

.feedback-access-sheets {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
}

.feedback-access-sheets-intro,
.feedback-access-sheets > :is(h1, p) {
  grid-column: 1 / -1;
}

.feedback-access-sheets-intro {
  display: grid;
  gap: .45rem;
}

.feedback-access-sheets-intro > * {
  margin: 0;
}

.feedback-access-sheet {
  align-content: start;
  align-items: center;
  display: grid;
  gap: .75rem;
  justify-items: center;
  text-align: center;
}

.feedback-access-sheet > * {
  margin-bottom: 0;
  margin-top: 0;
}

.feedback-access-sheet h2 {
  align-items: center;
  display: grid;
  min-height: 5em;
}

.feedback-access-sheet canvas,
[data-feedback-qr] {
  background: #fff;
  border-radius: 8px;
  height: auto;
  image-rendering: pixelated;
  max-width: 100%;
}

.feedback-short-code {
  font-size: 1.4rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: .12em;
}

.feedback-editor-question.is-inactive {
  opacity: .68;
}

.feedback-recipient-preview,
.feedback-role-comparison {
  background: color-mix(in srgb, var(--surface) 92%, var(--brand-soft));
  border: 1px solid var(--line);
  border-radius: 12px;
  display: grid;
  gap: .65rem;
  min-width: 0;
  padding: 1rem;
}

.feedback-recipient-preview > :is(h2, h3, p, ul),
.feedback-role-comparison > :is(h2, h3, p, ul) {
  margin-bottom: 0;
  margin-top: 0;
}

.feedback-recipient-preview > ul,
.feedback-role-comparison > ul {
  padding-left: 1.25rem;
}

.feedback-role-comparison {
  overflow-x: auto;
}

.confidential-public label,
.confidential-thread label,
.confidential-case label {
  display: grid;
  font-weight: 750;
  gap: .4rem;
}

.confidential-public .warning {
  background: var(--warn-bg);
  border: 1px solid color-mix(in srgb, var(--warn) 45%, transparent);
  border-radius: 14px;
  color: #553c00;
  line-height: 1.55;
  padding: 1rem;
}

.confidential-messages,
.confidential-case {
  display: grid;
  gap: .8rem;
}

.confidential-messages article,
.confidential-case article {
  background: color-mix(in srgb, var(--surface) 88%, var(--brand-soft));
  border: 1px solid var(--line);
  border-radius: 14px 14px 14px 4px;
  max-width: 88%;
  padding: .8rem 1rem;
}

.confidential-messages article:nth-child(even) {
  border-radius: 14px 14px 4px 14px;
  justify-self: end;
}

.confidential-messages article p,
.confidential-case article p {
  margin-bottom: 0;
  overflow-wrap: anywhere;
}

[data-registration-progress] {
  display: grid;
  gap: .4rem;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  margin-bottom: .4rem;
}

[data-registration-progress] :is(button, a) {
  align-items: center;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 10px;
  color: var(--muted);
  cursor: pointer;
  display: flex;
  font-size: .78rem;
  font-weight: 800;
  justify-content: center;
  line-height: 1.2;
  min-height: 48px;
  overflow-wrap: anywhere;
  padding: .45rem .35rem;
  text-align: center;
  text-decoration: none;
  width: 100%;
}

[data-registration-progress] :is(button, a)[aria-current="step"] {
  background: var(--brand);
  border-color: var(--brand);
  color: var(--ink);
}

[data-registration-progress] button:disabled {
  cursor: default;
  opacity: .62;
}

[data-organization-application-form] > fieldset {
  background: color-mix(in srgb, var(--surface) 92%, var(--brand-soft));
  border: 1px solid var(--line);
  border-radius: 14px;
  margin: 0;
  min-width: 0;
  padding: 1rem;
}

[data-organization-application-form] > fieldset[hidden] {
  display: none;
}

[data-organization-application-form] > fieldset > legend {
  font-size: 1.15rem;
  font-weight: 850;
  padding: 0 .35rem;
}

[data-affiliation-row] {
  align-items: end;
  display: grid;
  gap: .65rem;
  grid-template-columns: minmax(8rem, .7fr) minmax(12rem, 1fr) auto;
  margin-top: .65rem;
}

[data-affiliation-row] .button,
[data-add-affiliation] {
  min-height: 44px;
}

[data-add-affiliation] {
  margin-top: .65rem;
}

[data-autosave-status] {
  background: var(--brand-soft);
  border-radius: 10px;
  color: var(--brand-dark);
  font-weight: 750;
  margin: 0;
  padding: .65rem .8rem;
}

[data-autosave-status][data-save-error="1"] {
  background: #fff1f0;
  color: var(--danger);
}

.organization-application-summary {
  display: grid;
  gap: .75rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
  margin: 0;
}

.organization-application-summary > div,
.organization-evidence-item,
.organization-template-item {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 12px;
  min-width: 0;
  padding: 1rem;
}

.organization-application-summary dt {
  font-weight: 850;
}

.organization-application-summary dd {
  margin: .25rem 0 0;
  overflow-wrap: anywhere;
}

.organization-evidence-item,
.organization-template-item {
  display: grid;
  gap: .7rem;
  grid-template-columns: minmax(0, 1fr);
  margin-bottom: .75rem;
}

.organization-evidence-item > *,
.organization-template-item > * {
  margin-bottom: 0;
  margin-top: 0;
}

.organization-evidence-item form,
.organization-template-item form {
  display: grid;
  gap: .65rem;
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
}

.organization-evidence-item :is(h3, p, label, button, .button),
.organization-template-item :is(h3, p, label, button, .button) {
  min-width: 0;
  overflow-wrap: anywhere;
}

.organization-evidence-item :is(button, .button),
.organization-template-item :is(button, .button) {
  max-width: 100%;
  white-space: normal;
}

.organization-admin-authorization-list,
.organization-admin-recovery-list {
  display: grid;
  gap: .75rem;
  list-style: none;
  margin: .75rem 0 1rem;
  padding: 0;
}

.organization-admin-authorization-item,
.organization-admin-recovery-item {
  align-items: center;
  background: color-mix(in srgb, var(--surface) 92%, var(--brand-soft));
  border: 1px solid var(--line);
  border-radius: 12px;
  display: grid;
  gap: .75rem 1rem;
  grid-template-columns: minmax(0, 1fr) auto;
  min-width: 0;
  padding: .85rem 1rem;
}

.organization-admin-authorization-copy,
.organization-admin-recovery-copy {
  display: grid;
  gap: .2rem;
  min-width: 0;
}

.organization-admin-authorization-copy span,
.organization-admin-recovery-copy span {
  color: var(--muted);
  overflow-wrap: anywhere;
}

.organization-admin-authorization-actions,
.organization-admin-recovery-actions,
.organization-onboarding-form-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}

.organization-admin-authorization-actions form,
.organization-admin-recovery-actions form {
  margin: 0;
}

.organization-admin-authorization-permissions {
  display: grid;
  gap: .65rem 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.organization-onboarding-reply-verification,
.organization-onboarding-agreements-form {
  margin-top: .85rem;
}

.organization-onboarding-form-actions .button {
  min-height: 44px;
}

.product-center-card {
  display: flex;
  flex-direction: column;
  gap: .75rem;
}

.product-center-card > * {
  margin-bottom: 0;
  margin-top: 0;
}

.product-center-card details {
  min-width: 0;
}

.product-center-details[open] > summary + .form-grid {
  margin-top: var(--space-3);
}

.product-center-card > :is(.button, p:has(> .button)):last-child {
  margin-top: auto;
}

.product-center-card > .button:last-child,
.product-center-card > p:last-child > .button {
  width: 100%;
}

.product-center-check {
  min-height: 44px;
}

.technical-key {
  font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
  overflow-wrap: anywhere;
  word-break: break-word;
}

@media (min-width: 641px) and (max-width: 820px) {
  .feedback-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .product-center-card .product-center-section-heading > div:first-child {
    min-height: 4.5rem;
  }
}

@media (max-width: 820px) {
  .feedback-round-card > div {
    align-items: stretch;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .feedback-round-card > div > *,
  .feedback-round-card > div form,
  .feedback-round-card > div :is(button, .button) {
    width: 100%;
  }

  [data-registration-progress] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  [data-affiliation-row] {
    align-items: stretch;
    grid-template-columns: 1fr;
  }

  [data-affiliation-row] .button {
    justify-self: start;
  }
}

@media (max-width: 640px) {
  .feedback-public,
  .feedback-access,
  .confidential-public,
  .confidential-thread {
    border-left: 0;
    border-radius: 0;
    border-right: 0;
    box-shadow: none;
    margin: .5rem calc(-1 * var(--page-gutter, 1rem));
    padding: 1rem;
  }

  .feedback-step-actions {
    align-items: stretch;
    flex-direction: column-reverse;
  }

  .feedback-step-actions button,
  .feedback-public button,
  .feedback-access button,
  .confidential-public button,
  .confidential-thread button {
    justify-content: center;
    width: 100%;
  }

  .confidential-messages article,
  .confidential-case article {
    max-width: 96%;
  }

  [data-registration-progress] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .feedback-final-actions,
  .feedback-admin-actions,
  .feedback-editor-submit-actions,
  .feedback-editor-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .feedback-final-actions > *,
  .feedback-admin-actions > *,
  .feedback-editor-submit-actions > *,
  .feedback-editor-toolbar > * {
    justify-content: center;
    width: 100%;
  }

  .feedback-editor-meta-fields,
  .feedback-editor-question-fields {
    grid-template-columns: minmax(0, 1fr);
  }

  .feedback-editor-question-fields > * {
    grid-column: 1;
  }

  .feedback-editor-question-actions {
    display: grid;
    flex-basis: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-content: stretch;
    width: 100%;
  }

  .feedback-editor-question-actions button {
    width: 100%;
  }

  .feedback-editor-question-actions button:last-child {
    grid-column: 1 / -1;
  }

  .feedback-round-card > div {
    grid-template-columns: minmax(0, 1fr);
  }

  .feedback-access-sheet h2 {
    min-height: 0;
  }

  .organization-admin-authorization-permissions {
    grid-template-columns: minmax(0, 1fr);
  }

  .organization-admin-authorization-item,
  .organization-admin-recovery-item {
    align-items: stretch;
    grid-template-columns: minmax(0, 1fr);
  }

  .organization-admin-authorization-actions,
  .organization-admin-recovery-actions {
    align-items: stretch;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .organization-admin-authorization-actions .button,
  .organization-admin-recovery-actions .button,
  .organization-onboarding-form-actions .button {
    justify-content: center;
    width: 100%;
  }
}

@media (max-width: 360px) {
  .feedback-editor-question-actions {
    grid-template-columns: minmax(0, 1fr);
  }

  .feedback-editor-question-actions button:last-child {
    grid-column: auto;
  }

  [data-admin-authorization-form] select {
    font-size: .8rem;
  }

  .organization-evidence-item input[type="file"] {
    font-size: .75rem;
    min-width: 0;
    padding: .35rem;
  }
}

@media print {
  .feedback-access-sheets {
    display: block;
  }

  .feedback-access-sheet {
    break-inside: avoid;
    margin-bottom: 1cm;
    min-height: 12cm;
  }
}

@media (prefers-reduced-motion: reduce) {
  .feedback-progress-value,
  .feedback-choice {
    transition: none;
  }

  .feedback-choice:hover {
    transform: none;
  }
}
