:root {
  --accent: #3f6838;
  --link: #61b14b;
  --text: #233024;
  --muted: #9f9ea3;
  --line: #ddddda;
  --surface: #ffffff;
  --overlay: rgba(15, 20, 14, 0.7);
  --soft: #f3f4f1;
  --soft-strong: #e5e8e1;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  color: var(--text);
  background: #ffffff;
}

a {
  color: var(--link);
  text-decoration: none;
}

a:hover,
a:focus-visible {
  text-decoration: underline;
}

.page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.hero {
  position: relative;
  min-height: 48px;
  padding: 0 1rem;
  background: #f4f4f2;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.hero-band__home {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  flex: 0 0 auto;
  color: var(--accent);
}

.hero-band__home img {
  width: 20px;
  height: 20px;
  display: block;
}

.hero-band__home:hover,
.hero-band__home:focus-visible {
  background: rgba(63, 104, 56, 0.12);
  text-decoration: none;
}

.hero-band__actions {
  position: absolute;
  top: 50%;
  right: 1.5rem;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.internal-nav {
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
}

.internal-nav__toggle,
.internal-nav__menu {
  display: none;
}

.internal-nav__inner {
  margin: 0;
  padding: 0;
  display: flex;
  gap: 1.25rem;
  min-height: 48px;
  align-items: center;
  justify-content: flex-start;
}

.internal-nav__link {
  display: inline-flex;
  align-items: center;
  min-height: 48px;
  color: var(--accent);
  font-size: 0.95rem;
  text-decoration: none;
}

.internal-nav__link.is-active {
  color: var(--accent);
  font-weight: 600;
}

.login-trigger {
  position: absolute;
  top: 50%;
  right: 1.5rem;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--accent);
  cursor: pointer;
}

.login-trigger-form {
  position: static;
  margin: 0;
}

.admin-trigger {
  position: static;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  color: var(--accent);
}

.admin-trigger img {
  width: 20px;
  height: 20px;
  display: block;
}

.admin-trigger:hover,
.admin-trigger:focus-visible {
  background: rgba(63, 104, 56, 0.12);
  text-decoration: none;
}

.login-trigger-form .login-trigger {
  position: static;
  transform: none;
}

.login-trigger:hover,
.login-trigger:focus-visible {
  background: rgba(63, 104, 56, 0.12);
  color: #1f351d;
}

.login-trigger svg {
  width: 20px;
  height: 20px;
}

.login-trigger img {
  width: 20px;
  height: 20px;
  display: block;
}

main {
  flex: 1;
}

.intro-logo {
  max-width: 1200px;
  margin: 0 auto;
  padding: 4.25rem 1.5rem 2.5rem;
}

.intro-logo__image {
  display: block;
  width: min(100%, 415px);
  margin: 0 auto;
}

.contacts {
  max-width: 1200px;
  margin: 0 auto;
  padding: 4.4rem 1.5rem 6.5rem;
}

.contacts--internal {
  max-width: none;
  width: 100%;
  padding: 0;
}

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

.card {
  position: relative;
  background: var(--soft);
}

.card--editable {
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.card--editable .card__image {
  order: 1;
}

.card--editable .card__body {
  order: 2;
}

.card__actions {
  order: 3;
  margin-top: auto;
  padding: 0 1rem 1rem;
  display: inline-flex;
  gap: 0.35rem;
  justify-content: flex-end;
}

.card__actions form {
  margin: 0;
}

.card__image {
  aspect-ratio: 4 / 3;
  width: 100%;
  object-fit: cover;
  display: block;
  background: var(--soft-strong);
}

.card__body {
  padding: 1rem;
}

.card__role {
  margin: 0 0 0.55rem;
  font-size: 1.12rem;
  font-weight: 700;
  color: var(--accent);
  line-height: 1.35;
}

.card__name {
  margin: 0 0 0.45rem;
  font-size: 1rem;
  font-weight: 500;
}

.card__meta {
  margin: 0.2rem 0 0;
  color: var(--muted);
  font-size: 0.92rem;
  word-break: break-word;
}

.card__mail {
  margin: 0;
  color: var(--muted);
  font-size: 0.95rem;
  word-break: break-word;
}

.mail-button {
  margin-top: 0.2rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--accent);
  font: inherit;
  cursor: pointer;
  text-align: left;
}

.mail-button:hover,
.mail-button:focus-visible {
  text-decoration: underline;
}

.about {
  max-width: 1200px;
  margin: 0 auto;
  padding: 3.5rem 1.5rem 5rem;
  color: var(--muted);
  line-height: 1.7;
  text-align: center;
}

.about p {
  margin: 0;
  font-size: 1.1rem;
}

.about__actions {
  margin-top: 1.3rem;
}

.internal-home {
  max-width: 1200px;
  margin: 0 auto;
  padding: 4.75rem 1.5rem 3rem;
}

.internal-home__inner {
  display: flex;
  flex-direction: column;
  gap: 4rem;
}

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

.overview-card {
  position: relative;
  display: grid;
  align-content: start;
  gap: 0.9rem;
  min-height: 100%;
  padding: 1.25rem;
  border-radius: 0;
  background: var(--soft);
  color: var(--text);
  box-shadow: inset 0 0 0 1px var(--line);
  transition: background 160ms ease, box-shadow 160ms ease;
  text-align: center;
}

.overview-card:hover,
.overview-card:focus-visible {
  background: var(--soft-strong);
  box-shadow: inset 0 0 0 1px #d6d6d6;
  text-decoration: none;
}

.overview-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  margin: 0 auto 0.15rem;
  border-radius: 999px;
  background: #ffffff;
  color: var(--accent);
  box-shadow: inset 0 0 0 1px var(--line);
}

.overview-card__icon svg {
  width: 34px;
  height: 34px;
  display: block;
}

.overview-card h3 {
  margin: 0;
  font-size: 1.15rem;
  line-height: 1.25;
  color: var(--accent);
}

.overview-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.65;
}

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

.tool-card {
  display: block;
  background: var(--soft);
  padding: 1.25rem;
  color: var(--text);
}

.tool-card:hover,
.tool-card:focus-visible {
  background: var(--soft-strong);
  text-decoration: none;
}

.tool-card__eyebrow {
  margin: 0 0 0.45rem;
  color: var(--muted);
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.tool-card h2 {
  margin: 0 0 0.55rem;
  font-size: 1.2rem;
  color: var(--accent);
}

.tool-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.65;
}

.tool-card--gallery {
  display: grid;
  grid-template-rows: auto 1fr;
  background: #ffffff;
  padding: 0;
  overflow: hidden;
  min-height: 100%;
  box-shadow: inset 0 0 0 1px #e3e3e3;
}

.tool-card-wrap {
  position: relative;
}

.tool-card-wrap__action {
  position: absolute;
  top: 0.7rem;
  right: 0.7rem;
  z-index: 2;
  margin: 0;
}

.tool-card-wrap__action-button {
  position: absolute;
  top: 0.85rem;
  right: 0.85rem;
  z-index: 2;
}

.tool-card__preview {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  background: var(--soft-strong);
}

.tool-card__preview--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    linear-gradient(180deg, #efefef 0%, #e7e7e7 100%);
  color: #7a7a7a;
  font-size: 0.84rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.tool-card__content {
  display: grid;
  gap: 0.6rem;
  align-content: start;
  padding: 1rem 1rem 1.05rem;
}

.tool-card--gallery .tool-card__eyebrow {
  margin-bottom: 0;
  padding-right: 2.3rem;
}

.tool-card--gallery .tool-card__title {
  margin: 0;
  font-size: 1.08rem;
  line-height: 1.4;
  color: var(--accent);
}

.tool-card--gallery .tool-card__meta {
  margin: 0;
  min-height: 2.9em;
  color: var(--muted);
  line-height: 1.45;
}

.tool-card--gallery .tool-card__count {
  margin: 0;
  padding-top: 0.75rem;
  border-top: 1px solid #ececec;
  color: #4d4d4d;
  font-size: 0.92rem;
}

.footer {
  border-top: 1px solid #e8e8e8;
  padding: 1rem 1.5rem 2rem;
}

.footer__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  gap: 1.25rem;
  flex-wrap: wrap;
}

.overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  background: var(--overlay);
}

.overlay.is-visible {
  display: flex;
}

.dialog {
  width: min(420px, 100%);
  background: #ffffff;
  padding: 1.5rem;
}

.dialog--wide {
  width: min(760px, 100%);
}

.dialog__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1rem;
}

.dialog h2 {
  margin: 0;
  font-size: 1.25rem;
  color: var(--accent);
}

.dialog__close {
  border: 0;
  background: transparent;
  color: var(--text);
  width: 40px;
  height: 40px;
  cursor: pointer;
  font-size: 1.25rem;
  line-height: 1;
}

.dialog__text {
  margin: 0 0 1rem;
  color: var(--muted);
  line-height: 1.6;
}

.field {
  margin-bottom: 0.9rem;
}

.field label {
  display: block;
  margin-bottom: 0.3rem;
  font-size: 0.92rem;
}

.field input {
  width: 100%;
  border: 0;
  padding: 0.8rem 0.75rem;
  font: inherit;
  background: var(--soft);
}

.field textarea {
  width: 100%;
  border: 0;
  padding: 0.8rem 0.75rem;
  font: inherit;
  background: var(--soft);
  resize: vertical;
}

.field select {
  width: 100%;
  border: 0;
  padding: 0.8rem 0.75rem;
  font: inherit;
  background: var(--soft);
}

.dialog__actions {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  margin-top: 1rem;
}

.dialog__actions--end {
  justify-content: flex-end;
}

.btn {
  border: 0;
  background: var(--accent);
  color: #ffffff;
  padding: 0.8rem 1rem;
  font: inherit;
  cursor: pointer;
}

.btn--secondary {
  background: var(--soft-strong);
  color: var(--accent);
}

.status {
  min-height: 1.2rem;
  margin-top: 0.8rem;
  font-size: 0.9rem;
  color: #8b1f1f;
}

.status--error {
  color: #8b1f1f;
}

.status--success {
  color: var(--accent);
}

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

.field--disabled {
  opacity: 0.55;
}

.is-hidden {
  display: none !important;
}

.internal-page {
  max-width: 1440px;
  width: 100%;
  margin: 0 auto;
  padding: 3.25rem 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
}

.page-intro {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.page-intro--public {
  justify-content: center;
  text-align: center;
}

.page-intro--public > div {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.page-intro__logo {
  display: block;
  width: min(100%, 170px);
  margin: 0 auto 1rem;
}

.page-intro__actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.btn--with-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
}

.btn--with-icon svg {
  width: 1rem;
  height: 1rem;
  flex: 0 0 auto;
}

.btn--icon-only {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  width: 42px;
  height: 42px;
  padding: 0;
  flex: 0 0 42px;
}

.btn--icon-only svg {
  width: 2rem;
  height: 2rem;
}

.page-intro__eyebrow,
.calendar-panel__eyebrow,
.calendar-note__eyebrow {
  margin: 0 0 0.35rem;
  color: var(--muted);
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.page-intro__title,
.calendar-panel h2,
.calendar-note h2 {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 600;
}

.calendar-panel,
.calendar-note,
.gallery-panel,
.gallery-overview {
  background: var(--soft);
  padding: 1.5rem;
}

.gallery-overview .tool-grid {
  gap: 1.6rem;
}

.gallery-overview__grid {
  align-items: stretch;
}

.calendar-panel {
  width: 100%;
}

.gallery-panel__head {
  margin-bottom: 1rem;
}

.gallery-panel__meta {
  margin: 0 0 0.5rem;
  color: var(--text);
  font-size: 0.95rem;
}

.gallery-panel__text {
  margin: 0;
  color: var(--muted);
  line-height: 1.65;
}

.gallery-upload {
  display: grid;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.gallery-upload__actions {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.gallery-upload__select,
.list-actions__select {
  min-height: 2.75rem;
  padding: 0.65rem 0.9rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #ffffff;
  color: var(--text);
}

.gallery-empty {
  padding-top: 1rem;
}

.gallery-empty--panel {
  padding: 0.4rem 0 0;
}

.gallery-empty h2 {
  margin: 0 0 0.5rem;
  font-size: 1.15rem;
}

.gallery-empty p {
  margin: 0;
  color: var(--muted);
  line-height: 1.6;
}

.gallery-empty__action {
  margin-top: 1rem;
}

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

.gallery-card {
  background: #ffffff;
}

.gallery-card__button {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.gallery-card__button img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background: var(--soft-strong);
}

.gallery-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.85rem 0.9rem;
}

.gallery-card__meta {
  display: grid;
  gap: 0.4rem;
  min-width: 0;
}

.gallery-card__meta span:first-child {
  min-width: 0;
  font-size: 0.88rem;
  color: var(--muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gallery-card__consent {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  padding: 0.22rem 0.55rem;
  font-size: 0.8rem;
  color: #5c5c5c;
  background: #ececec;
  white-space: normal;
}

.gallery-card__consent.is-allowed {
  background: #e8f1e8;
  color: #315131;
}

.gallery-card__consent.is-blocked {
  background: #f4e6e6;
  color: #8a3d3d;
}

.gallery-card__footer form {
  margin: 0;
}

.checkbox-field {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  color: var(--text);
  line-height: 1.5;
}

.checkbox-field input {
  margin-top: 0.15rem;
}

.checkbox-field--soft {
  align-items: center;
  gap: 0.75rem;
  padding: 0.8rem 0.9rem;
  background: var(--soft);
}

.checkbox-field--soft input {
  width: 18px;
  height: 18px;
  margin-top: 0;
  accent-color: var(--accent);
  flex: 0 0 18px;
}

.checkbox-field--soft span {
  color: var(--text);
  font-weight: 500;
}

.gallery-lightbox .dialog {
  width: min(1100px, calc(100vw - 2rem));
}

.dialog--gallery {
  padding-bottom: 1.25rem;
}

.gallery-lightbox__content {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
}

.gallery-lightbox__figure {
  margin: 0;
  display: grid;
  gap: 0.85rem;
  justify-items: center;
}

.gallery-lightbox__figure img {
  max-width: 100%;
  max-height: min(72vh, 820px);
  display: block;
}

.gallery-lightbox__figure figcaption {
  color: var(--muted);
  font-size: 0.9rem;
}

.ideas-panel {
  background: var(--soft);
  padding: 1.6rem;
}

.ideas-panel__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1.25rem;
}

.ideas-panel__eyebrow {
  margin: 0 0 0.35rem;
  color: var(--muted);
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ideas-panel__head h2 {
  margin: 0;
  font-size: 1.28rem;
  font-weight: 600;
}

.ideas-panel__status {
  margin-top: 0;
  margin-bottom: 1.1rem;
}

.public-events {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem 3rem;
}

.public-events__head {
  margin-bottom: 1.1rem;
}

.public-events__grid {
  display: grid;
  gap: 1rem;
}

.public-event-card {
  background: #ffffff;
  padding: 1.25rem;
  border-top: 3px solid #dfe6d9;
}

.public-event-card__summary h2,
.public-event-card__summary h3 {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 600;
}

.public-event-card__date,
.public-event-card__meta,
.public-event-card__availability,
.public-event-card__closed,
.public-event-card__note {
  margin: 0.45rem 0 0;
  color: var(--muted);
  line-height: 1.55;
}

.public-event-card__summary {
  padding-bottom: 0.9rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid #e6ebe3;
}

.public-event-card__text {
  margin: 0.8rem 0 0;
  color: var(--text);
  line-height: 1.65;
}

.public-event-card__toggle {
  margin-top: 1rem;
}

.public-event-card__form {
  margin-top: 1rem;
}

.public-event-overview {
  background: #f6f8f4;
  padding: 1.25rem;
  margin-bottom: 1rem;
}

.public-event-overview__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.15rem;
}

.public-event-overview__title {
  min-width: 0;
}

.public-event-overview__eyebrow {
  margin: 0 0 0.35rem;
  color: var(--muted);
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.public-event-overview__head h2 {
  margin: 0;
  font-size: 1.55rem;
  line-height: 1.15;
}

.public-event-overview__lead {
  margin: 0.55rem 0 0;
  max-width: 40rem;
  color: var(--muted);
  line-height: 1.6;
}

.public-event-overview__actions {
  display: flex;
  align-items: flex-start;
}

.public-event-overview__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  background: #ffffff;
}

.public-event-overview__item {
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr);
  gap: 0.85rem;
  align-items: baseline;
  padding: 0.9rem 1rem;
  border-bottom: 1px solid #e6ebe3;
}

.public-event-overview__item span {
  color: var(--muted);
  font-size: 0.88rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.public-event-overview__item strong {
  color: var(--text);
  font-size: 1rem;
  font-weight: 600;
  word-break: break-word;
}

.public-event-overview__text {
  margin: 1rem 0 0;
  color: var(--text);
  line-height: 1.7;
}

.event-detail__meta.is-hidden {
  display: none;
}

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

.registration-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.registration-toolbar__eyebrow {
  margin: 0 0 0.35rem;
  color: var(--muted);
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.registration-toolbar h2 {
  margin: 0;
  font-size: 1.1rem;
}

.registration-group {
  background: #ffffff;
  padding: 1.25rem;
  border-top: 3px solid #dfe6d9;
  box-shadow: 0 10px 24px rgba(27, 27, 27, 0.04);
}

.registration-group__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}

.registration-group__head h2 {
  margin: 0;
  font-size: 1.16rem;
  line-height: 1.25;
}

.registration-group__header-actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.55rem;
}

.registration-group__meta {
  margin: 0.4rem 0 0;
  color: var(--muted);
}

.registration-group__meta-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.6rem;
}

.registration-group__meta-pill {
  display: inline-flex;
  align-items: center;
  padding: 0.42rem 0.7rem;
  background: #f6f8f4;
  color: var(--text);
  font-size: 0.88rem;
  line-height: 1.3;
  border: 1px solid #e4eadf;
}

.registration-table {
  display: grid;
  gap: 0;
  border-top: 1px solid #e3e8df;
}

.registration-share-status {
  margin-bottom: 1rem;
}

.registration-table__head,
.registration-row {
  display: grid;
  grid-template-columns: 1.1fr 1.25fr 0.8fr 1.3fr 1fr auto;
  gap: 1rem;
  align-items: start;
}

.registration-table__head {
  padding: 0 0 0.75rem;
  color: var(--muted);
  font-size: 0.84rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.registration-row {
  padding: 1rem 0;
  border-bottom: 1px solid #e9ede6;
}

.registration-row__cell strong {
  display: block;
  color: var(--text);
  font-size: 1rem;
}

.registration-row__cell p,
.registration-entry__time,
.registration-entry__note {
  margin: 0.35rem 0 0;
  color: var(--muted);
}

.registration-row__cell[data-label="Kontakt"] p + p {
  margin-top: 0.18rem;
}

.registration-row__cell:first-child p {
  margin-top: 0.2rem;
}

.registration-row__cell--action {
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
}

.registration-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.registration-actions form {
  margin: 0;
}

.document-upload__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem 1.1rem;
}

.document-upload__hint {
  margin: 0.45rem 0 0;
  color: var(--muted);
  font-size: 0.88rem;
}

.document-filters {
  display: grid;
  gap: 1rem;
  margin-bottom: 1.1rem;
  padding: 1.1rem 1.15rem;
  background: #ffffff;
}

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

.document-filters__actions {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  flex-wrap: wrap;
}

.ideas-filter {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.ideas-filter label {
  color: var(--muted);
  font-size: 0.92rem;
}

.ideas-filter select {
  min-width: 180px;
}

.field--full {
  grid-column: 1 / -1;
}

.field--owner.is-hidden {
  display: none;
}

.ideas-list {
  display: grid;
  gap: 1.15rem;
}

.idea-entry {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem 1.25rem;
  padding: 1.1rem 1.15rem;
  background: #ffffff;
}

.document-entry {
  grid-template-columns: 168px minmax(0, 1fr) auto;
  align-items: start;
}

.idea-entry--todo {
  box-shadow: inset 4px 0 0 0 var(--accent);
}

.idea-entry__meta-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  grid-column: 1 / -1;
}

.idea-entry__main h3 {
  margin: 0;
  font-size: 1.1rem;
  line-height: 1.35;
}

.document-entry__preview {
  width: 168px;
  min-width: 168px;
  align-self: start;
  padding: 0.45rem;
  background: #f3efe7;
  border: 1px solid #ddd4c7;
  box-shadow: inset 0 0 0 1px #ffffff;
  overflow: hidden;
}

.document-entry__main {
  display: grid;
  align-content: start;
}

.document-preview-image {
  width: 100%;
  height: 220px;
  border: 0;
  background: #f5f3ef;
}

.document-preview-link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.document-preview-image {
  display: block;
  object-fit: cover;
  border: 1px solid #d9d3c7;
  background: #ffffff;
}

.document-title-link {
  color: inherit;
  text-decoration: none;
}

.document-title-link:hover,
.document-title-link:focus-visible,
.document-preview-link:hover .document-preview-image,
.document-preview-link:focus-visible .document-preview-image {
  box-shadow: 0 0 0 2px rgba(49, 82, 59, 0.16);
}

.idea-entry__category,
.idea-entry__status {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0.15rem 0.5rem;
  font-size: 0.74rem;
  background: #ececec;
  color: var(--text);
}

.idea-entry__status {
  background: #f1f4f0;
  color: var(--accent);
}

.idea-entry__status--neu {
  background: #eef2ed;
  color: var(--accent);
}

.idea-entry__status--in-pruefung {
  background: #eee9dd;
  color: #80622d;
}

.idea-entry__status--in-arbeit {
  background: #e7ece9;
  color: #355247;
}

.idea-entry__status--zurueckgestellt {
  background: #ececec;
  color: #6d6d6d;
}

.idea-entry__status--erledigt {
  background: #e4ebe3;
  color: #587155;
}

.idea-entry__meta {
  margin: 0.45rem 0 0;
  color: var(--muted);
  font-size: 0.88rem;
}

.idea-entry__description {
  margin: 0.7rem 0 0;
  color: var(--text);
  line-height: 1.65;
}

.idea-entry__actions {
  display: inline-flex;
  align-items: flex-start;
  gap: 0.35rem;
  align-self: start;
  flex-wrap: wrap;
}

.idea-entry__actions form {
  margin: 0;
}

.document-share-status {
  margin-top: 0;
  margin-bottom: 1rem;
}

.document-action {
  border: 0;
  background: #ececec;
  color: #4f4f4f;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 34px;
  padding: 0.5rem 0.7rem;
  cursor: pointer;
  text-decoration: none;
  font: inherit;
}

.document-action svg {
  width: 15px;
  height: 15px;
  display: block;
}

.document-action:hover,
.document-action:focus-visible {
  background: #dfe3de;
  color: var(--text);
}

.document-action--secondary {
  background: #f1f4f0;
  color: var(--accent);
}

.document-action--danger:hover,
.document-action--danger:focus-visible {
  background: #f3dddd;
  color: #8f2f2f;
}

.idea-entry--deferred {
  opacity: 0.82;
}

.idea-entry--completed {
  opacity: 0.62;
}

.ideas-archive {
  display: grid;
  gap: 0.9rem;
  margin-top: 1.2rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}

.ideas-archive__title {
  margin: 0;
  font-size: 1rem;
  color: var(--muted);
}

.ideas-archive__text {
  margin: 0;
  color: #8a8a8a;
  line-height: 1.6;
}

.supervision-list {
  display: grid;
  gap: 1.25rem;
}

.ideas-panel__meta {
  margin-bottom: 1rem;
  color: var(--muted);
}

.ideas-panel__meta p {
  margin: 0;
}

.supervision-slot {
  background: #ffffff;
  padding: 1.2rem;
}

.supervision-slot--full {
  box-shadow: inset 4px 0 0 0 #b64646;
}

.supervision-slot__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}

.supervision-slot__actions {
  display: flex;
  align-items: flex-start;
}

.supervision-slot__head h2 {
  margin: 0;
  font-size: 1.1rem;
  line-height: 1.4;
}

.supervision-slot__status {
  margin: 0.35rem 0 0;
  color: var(--muted);
}

.supervision-slot__empty p {
  margin: 0;
  color: var(--muted);
  line-height: 1.6;
}

.supervision-entry-list {
  display: grid;
  gap: 0.85rem;
}

.supervision-entry {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.85rem 1rem;
  padding: 0.95rem 1rem;
  background: #f8f8f8;
}

.supervision-entry__people {
  display: grid;
  gap: 0.75rem;
}

.supervision-person h3 {
  margin: 0;
  font-size: 1rem;
}

.supervision-person p {
  margin: 0.2rem 0 0;
  color: var(--muted);
  line-height: 1.55;
}

.supervision-entry__actions {
  display: flex;
  align-items: flex-start;
}

.internal-page--public {
  max-width: 1200px;
}

.supervision-public {
  display: grid;
  grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
  gap: 1.5rem;
}

.supervision-public__summary {
  display: grid;
  gap: 1rem;
  align-content: start;
}

.supervision-public__head {
  display: grid;
  gap: 0.35rem;
}

.supervision-public__summary h2,
.supervision-public__archive h3 {
  margin: 0;
  font-size: 1.08rem;
}

.supervision-public__head p {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.supervision-public__slots {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.8rem;
}

.supervision-public__slot {
  background: #ffffff;
  padding: 1rem;
  display: block;
  color: inherit;
  min-height: 100%;
  box-shadow: inset 0 0 0 1px #e6e6e6;
}

.supervision-public__slot--full {
  opacity: 0.7;
}

.supervision-public__slot:hover,
.supervision-public__slot:focus-visible {
  text-decoration: none;
  background: #f8f8f8;
}

.supervision-public__slot h3,
.supervision-public__slot h4 {
  margin: 0;
  font-size: 1rem;
  line-height: 1.45;
}

.supervision-public__slot p {
  margin: 0.45rem 0 0;
  color: var(--muted);
}

.supervision-public__time {
  margin-top: 0.3rem;
  color: var(--text);
  font-size: 0.95rem;
}

.supervision-public__availability {
  padding-top: 0.7rem;
  border-top: 1px solid #ededed;
  color: var(--accent);
  font-size: 0.92rem;
  font-weight: 600;
}

.supervision-public__archive {
  display: grid;
  gap: 0.8rem;
  padding-top: 0.4rem;
}

.supervision-form {
  background: #ffffff;
  padding: 1.25rem;
}

.supervision-form__honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.supervision-form__expanders {
  margin-top: 1rem;
}

.supervision-form__group + .supervision-form__group {
  margin-top: 1.4rem;
  padding-top: 1.4rem;
  border-top: 1px solid #ececec;
}

.supervision-form__group-head {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-bottom: 0.9rem;
}

.supervision-form__group h2 {
  margin: 0;
  font-size: 1.05rem;
}

.supervision-form__hint {
  margin: 0.35rem 0 0.9rem;
  color: var(--muted);
  font-size: 0.92rem;
}

.supervision-form__group-head .supervision-form__hint {
  margin: 0;
}

.supervision-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--accent);
  font: inherit;
  cursor: pointer;
}

.supervision-toggle__icon {
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #ececec;
  color: var(--accent);
  font-size: 1rem;
  line-height: 1;
}

.calendar-panel__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 1.25rem;
  margin-bottom: 1.25rem;
  flex-wrap: wrap;
}

.calendar-panel__toolbar {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.calendar-view-switch {
  display: flex;
  gap: 0.5rem;
  padding: 0.25rem;
  background: #ffffff;
}

.calendar-view-switch .btn {
  min-width: 88px;
}

.btn.is-active {
  background: var(--accent);
  color: #ffffff;
}

.calendar-panel__controls {
  display: flex;
  gap: 0.75rem;
}

.calendar-panel__controls .btn {
  min-width: 120px;
}

.calendar-view-panel {
  width: 100%;
  contain: layout paint;
}

.calendar-month-scroll {
  width: 100%;
}

.calendar-grid {
  display: grid;
  grid-template-columns: 56px repeat(7, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
}

.calendar-grid--head {
  margin-bottom: 1px;
}

.calendar-grid--head span {
  background: #f8f8f8;
  padding: 0.85rem 0.4rem;
  text-align: center;
  font-size: 0.9rem;
  color: var(--muted);
}

.calendar-week {
  min-height: 148px;
  background: #f8f8f8;
  padding: 0.85rem 0.35rem;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  font-size: 0.82rem;
  color: var(--muted);
}

.calendar-cell {
  min-height: 148px;
  background: #ffffff;
  padding: 0.85rem;
  display: flex;
  flex-direction: column;
}

.calendar-cell--empty {
  background: #f8f8f8;
}

.calendar-cell--today {
  background: #eef2ed;
}

.calendar-cell--saturday {
  background: #f7f7f7;
}

.calendar-cell--sunday {
  background: #f1f1f1;
}

.calendar-cell__day {
  font-size: 1rem;
  font-weight: 600;
  color: var(--text);
}

.calendar-cell__content {
  flex: 1;
  margin-top: 0.6rem;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.calendar-mini-event {
  position: relative;
  padding: 0.45rem 0.5rem;
  background: #f8f8f8;
  border-left: 3px solid var(--line);
  cursor: pointer;
}

.calendar-mini-event--busy {
  border-left-color: #b64646;
}

.calendar-mini-event--free {
  border-left-color: var(--accent);
}

.calendar-mini-event--public {
  box-shadow: inset 0 0 0 1px #d6e0e5;
}

.calendar-mini-event--expired {
  opacity: 0.5;
}

.calendar-mini-event__head {
  display: flex;
  align-items: flex-start;
  gap: 0.4rem;
}

.calendar-mini-event__title {
  display: block;
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.3;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  word-break: break-word;
}

.calendar-mini-event__meta {
  display: flex;
  gap: 0.35rem;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 0.3rem;
  font-size: 0.72rem;
  color: var(--muted);
}

.event-detail {
  display: grid;
  gap: 0.8rem;
}

.event-detail__meta {
  margin: 0;
  color: var(--muted);
  line-height: 1.6;
}

.event-detail__description {
  color: var(--text);
  line-height: 1.7;
}

.event-detail__share {
  display: grid;
  gap: 0.6rem;
  margin: 0.2rem 0 0.3rem;
  padding: 0.9rem;
  background: var(--soft);
}

.event-detail__share-label {
  margin: 0;
  color: var(--muted);
  font-size: 0.9rem;
}

.event-detail__share-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.65rem;
}

.event-detail__share-input {
  width: 100%;
  min-width: 0;
  border: 0;
  padding: 0.8rem 0.75rem;
  font: inherit;
  background: #ffffff;
}

.event-detail__share-open {
  color: var(--accent);
  text-decoration: none;
}

.event-detail__description p {
  margin: 0;
}

.calendar-mini-event__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.35rem;
  background: rgba(248, 248, 248, 0.96);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.is-hidden {
  display: none;
}

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

.list-view {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}

.list-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  background: #ffffff;
  padding: 1rem;
}

.list-actions__buttons {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.list-actions__status {
  margin: 0;
  color: var(--muted);
  line-height: 1.5;
  width: 100%;
}

.calendar-share-status {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 132px;
  align-items: center;
  gap: 1rem;
  margin-top: 0.8rem;
  padding: 1rem;
  background: #f7f7f5;
  box-shadow: inset 0 0 0 1px #e2e2de;
}

.calendar-share-status__main {
  display: grid;
  gap: 0.75rem;
}

.calendar-share-status__headline {
  margin: 0;
  color: var(--text);
  font-weight: 600;
}

.calendar-share-status__link-row {
  display: flex;
  gap: 0.6rem;
  align-items: center;
  flex-wrap: wrap;
}

.calendar-share-status__input {
  flex: 1 1 320px;
  min-width: 0;
  border: 1px solid #dadad4;
  background: #ffffff;
  color: var(--text);
  padding: 0.65rem 0.75rem;
  font: inherit;
}

.calendar-share-status__qr {
  width: 132px;
  height: 132px;
  display: block;
  background: #ffffff;
  padding: 0.45rem;
  box-shadow: inset 0 0 0 1px #e2e2e2;
}

.calendar-share-status__actions {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  flex-wrap: wrap;
}

.calendar-share-status__actions a {
  color: inherit;
}

@media (max-width: 760px) {
  .calendar-share-status {
    grid-template-columns: 1fr;
  }

  .calendar-share-status__qr {
    justify-self: start;
  }
}

.list-archive {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  margin-top: 0.8rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}

.list-archive__title {
  margin: 0;
  font-size: 1rem;
  color: var(--muted);
}

.list-archive__text {
  margin: 0;
  color: #8a8a8a;
  line-height: 1.6;
}

.list-entry {
  display: grid;
  grid-template-columns: 32px 72px minmax(0, 1fr) auto;
  gap: 1.2rem;
  background: #ffffff;
  padding: 1.15rem;
}

.list-entry--saturday {
  background: #f7f7f7;
}

.list-entry--sunday {
  background: #f1f1f1;
}

.list-entry--expired {
  opacity: 0.6;
}

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

.list-entry__select input {
  width: 18px;
  height: 18px;
}

.list-entry__date {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: #f8f8f8;
  min-height: 72px;
}

.list-entry__date span {
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--accent);
}

.list-entry__date small {
  color: var(--muted);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.list-entry__content h3 {
  margin: 0 0 0.35rem;
  font-size: 1rem;
}

[data-event-card] {
  outline: none;
}

[data-event-card].is-active,
[data-event-card]:focus-visible {
  box-shadow: inset 0 0 0 1px #cfd7cc;
}

.calendar-mini-event.is-active .calendar-mini-event__overlay,
.calendar-mini-event:focus-visible .calendar-mini-event__overlay {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.list-entry__meta {
  margin: 0 0 0.25rem;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.6;
}

.list-entry__content p {
  margin: 0;
  color: var(--muted);
  line-height: 1.6;
}

.list-entry__people {
  color: var(--text);
}

.list-entry__content p:last-child {
  color: #9a9a9a;
}

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

.year-card {
  background: #ffffff;
  padding: 1.1rem;
}

.year-card__title {
  margin: 0 0 0.3rem;
  font-size: 1rem;
  color: var(--accent);
}

.year-card__meta {
  margin: 0 0 0.8rem;
  color: var(--muted);
  font-size: 0.8rem;
}

.year-card__weekdays,
.year-card__days {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.25rem;
}

.year-card__weekdays {
  margin-bottom: 0.45rem;
}

.year-card__weekdays span {
  text-align: center;
  font-size: 0.72rem;
  color: var(--muted);
}

.year-card__day {
  min-height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  position: relative;
  background: #f8f8f8;
  font-size: 0.8rem;
}

.year-card__day-number {
  line-height: 1;
}

.year-card__day--has-event {
  padding-left: 0.35rem;
}

.year-card__day-indicator {
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  background: var(--line);
}

.year-card__day-indicator--busy {
  background: #b64646;
}

.year-card__day-indicator--free {
  background: var(--accent);
}

.year-card__day--empty {
  background: transparent;
}

.year-card__day--today {
  background: #eef2ed;
}

.year-card__day--saturday {
  background: #f7f7f7;
}

.year-card__day--sunday {
  background: #f1f1f1;
}

.year-card__events {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  margin-top: 0.9rem;
}

.year-card__event {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.45rem 0.5rem;
  background: #f8f8f8;
  border-left: 3px solid var(--line);
  cursor: pointer;
}

.year-card__event--busy {
  border-left-color: #b64646;
}

.year-card__event--free {
  border-left-color: var(--accent);
}

.year-card__event--public {
  box-shadow: inset 0 0 0 1px #d6e0e5;
}

.year-card__event--expired {
  opacity: 0.55;
}

.year-card__event-main {
  display: flex;
  gap: 0.45rem;
  min-width: 0;
}

.year-card__event-date {
  font-size: 0.78rem;
  color: var(--muted);
  white-space: nowrap;
}

.year-card__event-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.year-card__event-title {
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.3;
}

.year-card__event-meta {
  font-size: 0.72rem;
  color: var(--muted);
  line-height: 1.35;
}

.event-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  flex-shrink: 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 120ms ease;
}

.event-actions form {
  margin: 0;
}

.event-actions--compact {
  gap: 0.25rem;
}

.event-actions.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

[data-event-card].is-active .event-actions,
[data-event-card]:focus-visible .event-actions,
.list-entry:hover .event-actions,
.list-entry:focus-within .event-actions {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.icon-button {
  width: 30px;
  height: 30px;
  padding: 0;
  border: 0;
  background: #ececec;
  color: #4f4f4f;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  text-decoration: none;
}

.icon-button svg {
  width: 15px;
  height: 15px;
  display: block;
}

.icon-button:hover,
.icon-button:focus-visible {
  background: #dfe3de;
  color: var(--text);
}

.icon-button--danger:hover,
.icon-button--danger:focus-visible {
  background: #f3dddd;
  color: #8f2f2f;
}

.status-badge {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0.1rem 0.45rem;
  font-size: 0.72rem;
  line-height: 1.2;
  background: #ececec;
  color: var(--text);
}

.status-badge--all-day {
  background: #f0f0f0;
  color: #555555;
}

@media (max-width: 1000px) {
  .internal-home__inner {
    gap: 3rem;
  }

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

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

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

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

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

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

@media (max-width: 640px) {
  .hero {
    min-height: 0;
    padding: 0.55rem 1rem 0.75rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    background: #f4f4f2;
  }

  .internal-nav {
    position: relative;
    order: 1;
    flex: 1 1 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    left: auto;
    top: auto;
    transform: none;
    width: auto;
    margin: 0;
    padding: 0;
  }

  .internal-nav__inner {
    display: none;
  }

  .internal-nav__toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    min-width: 36px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--accent);
    cursor: pointer;
    margin: 0;
  }

  .internal-nav__toggle svg {
    width: 18px;
    height: 18px;
    display: block;
  }

  .internal-nav__icon--close {
    display: none;
  }

  .internal-nav__toggle.is-open .internal-nav__icon--menu {
    display: none;
  }

  .internal-nav__toggle.is-open .internal-nav__icon--close {
    display: block;
  }

  .internal-nav__menu {
    position: static;
    flex: 0 0 calc(100% + 2rem);
    width: calc(100% + 2rem);
    margin: 0.55rem -1rem 0;
    padding: 0.15rem 1rem 0;
    background: #f4f4f2;
    border: 0;
    box-sizing: border-box;
  }

  .internal-nav__menu.is-open {
    display: grid;
    gap: 0;
  }

  .internal-nav__menu .internal-nav__link {
    display: flex;
    align-items: center;
    min-height: 38px;
    padding: 0.45rem 0;
    font-size: 0.9rem;
    background: transparent;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
  }

  .internal-nav__menu .internal-nav__link:first-child {
    border-top: 0;
  }

  .internal-nav__menu .internal-nav__link.is-active {
    color: var(--accent);
    font-weight: 600;
  }

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

  .hero-band__actions {
    order: 2;
    position: static;
    transform: none;
    margin-left: auto;
  }

  .contacts {
    padding: 3rem 1rem 5rem;
  }

  .contacts--internal {
    padding: 0;
  }

  .internal-home {
    padding: 3.5rem 1rem 2rem;
  }

  .internal-home__inner {
    gap: 2.25rem;
  }

  #monthViewButton,
  #monthView {
    display: none;
  }

  .intro-logo {
    padding: 3rem 1rem 2rem;
  }

  .intro-logo__image {
    width: min(100%, 224px);
  }

  .gallery-panel,
  .gallery-overview {
    padding: 1.1rem;
  }

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

  .ideas-panel {
    padding: 1.1rem;
  }

  .public-events {
    padding: 0 1rem 2rem;
  }

  .public-event-overview__head {
    grid-template-columns: 1fr;
  }

  .public-event-overview__actions {
    justify-content: flex-start;
  }

  .public-event-overview__grid {
    grid-template-columns: 1fr;
  }

  .public-event-overview__item {
    grid-template-columns: 1fr;
    gap: 0.3rem;
  }

  .registration-table__head {
    display: none;
  }

  .registration-row {
    grid-template-columns: 1fr;
    gap: 0.65rem;
    padding: 1rem 0;
  }

  .registration-row__cell {
    display: grid;
    gap: 0.2rem;
  }

  .registration-row__cell::before {
    content: attr(data-label);
    color: var(--muted);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }

  .registration-row__cell--action {
    justify-content: flex-start;
  }

  .registration-group__header-actions {
    width: 100%;
  }

  .document-upload__grid {
    grid-template-columns: 1fr;
  }

  .document-filters__grid {
    grid-template-columns: 1fr;
  }

  .document-entry {
    grid-template-columns: 1fr;
  }

  .document-entry__preview {
    width: 100%;
    min-width: 0;
  }

  .idea-entry__actions {
    justify-content: flex-start;
  }

  .supervision-public {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }

  .supervision-public__summary {
    gap: 0.8rem;
  }

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

  .supervision-public__slot {
    padding: 0.9rem;
  }

  .ideas-panel__head {
    align-items: flex-start;
  }

  .ideas-filter {
    width: 100%;
    align-items: flex-start;
    flex-direction: column;
    gap: 0.45rem;
  }

  .ideas-filter select {
    width: 100%;
    min-width: 0;
  }

  .idea-entry {
    grid-template-columns: 1fr;
    gap: 0.85rem;
  }

  .supervision-entry {
    grid-template-columns: 1fr;
  }

  .idea-entry__actions {
    justify-content: flex-start;
  }

  .gallery-lightbox__content {
    grid-template-columns: 1fr;
  }

  .gallery-lightbox__content .btn {
    width: 100%;
  }

  .overview-card {
    padding: 1rem;
  }

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

  .card__body {
    padding: 0.8rem;
  }

  .card__role {
    font-size: 1rem;
  }

  .card__name,
  .card__mail {
    font-size: 0.92rem;
  }

  .about,
  .internal,
  .footer {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .overlay {
    align-items: flex-start;
    padding: 0.85rem;
    overflow-y: auto;
  }

  .dialog {
    width: 100%;
    max-width: none;
    max-height: calc(100vh - 1.7rem);
    padding: 1rem;
    overflow-y: auto;
  }

  .dialog--wide {
    width: 100%;
  }

  .dialog__head {
    margin-bottom: 0.85rem;
  }

  .dialog h2 {
    font-size: 1.12rem;
  }

  .dialog__text {
    margin-bottom: 0.85rem;
    font-size: 0.94rem;
  }

  .dialog__close {
    width: 36px;
    height: 36px;
    flex: 0 0 auto;
  }

  .form-grid {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }

  .field {
    margin-bottom: 0.75rem;
  }

  .field input,
  .field textarea,
  .field select {
    padding: 0.75rem 0.7rem;
    font-size: 16px;
  }

  .field textarea {
    min-height: 120px;
  }

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

  .dialog__actions .btn {
    width: 100%;
    text-align: center;
  }

  .event-detail__share-row {
    grid-template-columns: 1fr;
  }

  .status {
    margin-top: 0.75rem;
  }

  .overview-card {
    padding: 1rem;
  }

  .tool-grid {
    grid-template-columns: 1fr;
    gap: 0.8rem;
  }

  .internal-page {
    padding: 2.2rem 1rem;
  }

  .calendar-panel__head {
    align-items: flex-start;
  }

  .page-intro {
    align-items: flex-start;
  }

  .page-intro--public {
    align-items: center;
  }

  .page-intro__actions {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
  }

  .page-intro__actions .btn,
  .page-intro__actions .btn--secondary {
    width: 100%;
    text-align: center;
  }

  .page-intro__actions .btn--icon-only {
    width: 42px;
    min-width: 42px;
    flex: 0 0 42px;
    align-self: flex-start;
  }

  .calendar-panel__toolbar {
    width: 100%;
    justify-content: space-between;
  }

  .calendar-month-scroll {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 0.35rem;
  }

  .calendar-grid {
    min-width: 720px;
  }

  .calendar-grid--head span {
    padding: 0.65rem 0.2rem;
    font-size: 0.8rem;
  }

  .calendar-cell {
    min-height: 126px;
    padding: 0.55rem;
  }

  .calendar-mini-event__title {
    -webkit-line-clamp: 2;
    font-size: 0.76rem;
  }

  .calendar-mini-event {
    padding: 0.4rem 0.45rem;
  }

  .calendar-mini-event__meta {
    font-size: 0.7rem;
  }

  .calendar-grid {
    grid-template-columns: 44px repeat(7, minmax(88px, 1fr));
  }

  .calendar-week {
    min-height: 126px;
    padding: 0.65rem 0.2rem;
    font-size: 0.75rem;
  }

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

  .list-entry {
    grid-template-columns: 28px 60px minmax(0, 1fr);
    gap: 0.8rem;
  }

  .list-entry__actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }
}

@media (max-width: 380px) {
  .overlay {
    padding: 0.6rem;
  }

  .dialog {
    max-height: calc(100vh - 1.2rem);
    padding: 0.9rem;
  }

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

.print-page {
  background: #ffffff;
}

.print-layout {
  max-width: 1100px;
  margin: 0 auto;
  padding: 2.5rem 2rem 3rem;
}

.print-header {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--line);
}

.print-header__logo {
  width: 132px;
  height: auto;
  display: block;
}

.print-header__eyebrow {
  margin: 0 0 0.35rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.82rem;
}

.print-header h1 {
  margin: 0;
  font-size: 1.8rem;
  line-height: 1.2;
}

.print-header__text p:last-child {
  margin: 0.45rem 0 0;
  color: var(--muted);
}

.print-toolbar {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  padding: 1.25rem 0 1.5rem;
}

.print-section {
  display: grid;
  gap: 1.25rem;
}

.print-slot {
  background: var(--soft);
  padding: 1.2rem 1.25rem;
  break-inside: avoid;
}

.print-slot__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 0.95rem;
  border-bottom: 1px solid var(--line);
}

.print-slot__head h2 {
  margin: 0;
  font-size: 1.15rem;
}

.print-slot__head p,
.print-slot__status {
  margin: 0.35rem 0 0;
  color: var(--muted);
  line-height: 1.55;
}

.print-people {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem;
  padding-top: 1rem;
}

.print-person {
  background: #ffffff;
  padding: 0.85rem 0.9rem;
  min-height: 100%;
}

.print-person h3 {
  margin: 0;
  font-size: 1rem;
  line-height: 1.35;
}

.print-person p {
  margin: 0.35rem 0 0;
  color: var(--text);
  line-height: 1.6;
  word-break: break-word;
}

.print-slot__empty,
.print-empty {
  color: var(--muted);
  line-height: 1.6;
}

.print-empty h2 {
  margin: 0 0 0.5rem;
  color: var(--text);
}

.print-calendar-list {
  display: grid;
  gap: 0.8rem;
}

.print-calendar-item {
  background: var(--soft);
  padding: 1rem 1.1rem;
  break-inside: avoid;
}

.print-calendar-item__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.print-calendar-item__head h2 {
  margin: 0;
  font-size: 1.05rem;
}

.print-calendar-item__head p,
.print-calendar-item__meta,
.print-calendar-item__people,
.print-calendar-item__text {
  margin: 0.35rem 0 0;
  line-height: 1.55;
}

.print-calendar-item__meta {
  color: var(--muted);
}

.print-calendar-item__people {
  color: var(--text);
}

.print-calendar-item__text {
  color: var(--muted);
}

.tool-grid--admin {
  margin-bottom: 1.2rem;
}

.admin-quicknav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
}

.admin-quicknav__link {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0.45rem 0.8rem;
  background: #f3efe7;
  border: 1px solid var(--line);
  color: var(--text);
  text-decoration: none;
  font-size: 0.92rem;
}

.admin-section-panel {
  display: grid;
  gap: 1rem;
}

.admin-section-panel__head {
  margin-top: 0;
}

.permissions-panel {
  margin-bottom: 0;
}

.permissions-groups {
  display: grid;
  gap: 1rem;
}

.permissions-group {
  display: grid;
  gap: 0;
  border: 1px solid var(--line);
  background: #fbfbfa;
  overflow: hidden;
}

.permissions-group__head {
  padding: 0.95rem 1rem;
  background: #f5f3ef;
  border-bottom: 1px solid var(--line);
}

.permissions-group__head h3 {
  margin: 0;
  font-size: 1rem;
  color: var(--accent);
}

.permissions-matrix {
  background: transparent;
}

.permissions-matrix__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(110px, 120px) minmax(110px, 132px);
  align-items: center;
  min-height: 58px;
  border-bottom: 1px solid var(--line);
}

.permissions-matrix__row:last-child {
  border-bottom: 0;
}

.permissions-matrix__row--head {
  min-height: 62px;
  background: #eef2eb;
}

.permissions-matrix__cell {
  padding: 0.85rem 1rem;
  color: var(--muted);
  text-align: center;
}

.permissions-matrix__cell--label {
  color: var(--text);
  text-align: left;
}

.permissions-matrix__row--head .permissions-matrix__cell {
  font-size: 0.9rem;
  color: var(--text);
  font-weight: 600;
}

.permissions-matrix__heading {
  display: inline-block;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  font-size: 0.78rem;
}

.permissions-matrix__role {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 88px;
  min-height: 36px;
  padding: 0.4rem 0.9rem;
  border: 1px solid var(--line);
  background: #ffffff;
  color: var(--text);
  font-size: 0.82rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.permissions-matrix__role--admin {
  border-color: rgba(47, 77, 44, 0.22);
  color: var(--accent);
}

.permissions-matrix__role--user {
  color: var(--muted);
}

.permissions-matrix__cell--check {
  display: flex;
  align-items: center;
  justify-content: center;
}

.permissions-matrix__cell--check input {
  width: 18px;
  height: 18px;
  accent-color: var(--accent);
}

.permissions-panel__actions {
  justify-content: flex-start;
  padding-top: 1rem;
}

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

.ideas-panel__head--history {
  margin-top: 2.2rem;
}

.history-intro {
  margin-bottom: 1rem;
  padding: 0.95rem 1.05rem;
  border-left: 2px solid rgba(47, 77, 44, 0.2);
  background: #f7f8f5;
}

.history-intro p {
  margin: 0;
  color: var(--muted);
}

.newsletter-link-form {
  display: grid;
  gap: 1rem;
  margin-bottom: 1.2rem;
  padding: 1rem;
  background: #fcfcfb;
  border: 1px solid var(--line);
}

.newsletter-link-form label {
  display: grid;
  gap: 0.45rem;
}

.newsletter-link-form span {
  color: var(--muted);
  font-size: 0.88rem;
}

.newsletter-link-form input {
  width: 100%;
  border: 1px solid #d9ddd6;
  background: #ffffff;
  color: var(--text);
  padding: 0.8rem 0.85rem;
  font: inherit;
}

.newsletter-share-status {
  margin-bottom: 0.25rem;
}

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

.history-entry {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.9rem 1.2rem;
  padding: 1.05rem 1.15rem;
  border: 1px solid var(--line);
  background: #fcfcfb;
}

.history-entry--reverted {
  background: #f5f5f4;
}

.history-entry__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  grid-column: 1 / -1;
  padding-bottom: 0.2rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.04);
}

.history-entry__meta-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.8rem;
}

.history-entry__scope,
.history-entry__state {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0.3rem 0.75rem;
  border: 1px solid var(--line);
  background: #ffffff;
  color: var(--muted);
  font-size: 0.78rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.history-entry__scope {
  color: var(--accent);
  border-color: rgba(47, 77, 44, 0.18);
}

.history-entry__time {
  color: var(--muted);
  font-size: 0.84rem;
  white-space: nowrap;
}

.history-entry__main h3 {
  margin: 0;
  font-size: 1rem;
  line-height: 1.4;
}

.history-entry__main p {
  margin: 0.4rem 0 0;
  color: var(--muted);
  font-size: 0.94rem;
}

.history-entry__actions {
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
}

.history-entry__placeholder {
  display: block;
  width: 110px;
  min-height: 1px;
}

@media (max-width: 1000px) {
  .print-people {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .print-layout {
    padding: 1rem;
  }

  .print-header {
    align-items: flex-start;
    gap: 1rem;
  }

  .print-header__logo {
    width: 92px;
  }

  .print-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .print-people {
    grid-template-columns: 1fr;
  }

  .print-slot__head {
    flex-direction: column;
  }

  .permissions-matrix__row {
    grid-template-columns: minmax(0, 1fr) 84px 112px;
    min-height: 52px;
  }

  .permissions-matrix__cell {
    padding: 0.8rem 0.7rem;
    font-size: 0.92rem;
  }

  .permissions-matrix__row--head {
    min-height: 56px;
  }

  .permissions-matrix__role {
    min-width: 0;
    width: 100%;
    min-height: 34px;
    padding: 0.35rem 0.45rem;
    font-size: 0.74rem;
  }

  .admin-quicknav {
    flex-direction: column;
  }

  .history-entry {
    grid-template-columns: 1fr;
  }

  .history-entry__head {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.55rem;
  }

  .history-entry__actions {
    justify-content: flex-start;
  }

  .history-entry__placeholder {
    display: none;
  }
}

@media print {
  @page {
    size: A4 portrait;
    margin: 10mm;
  }

  body {
    background: #ffffff;
  }

  .print-layout {
    max-width: none;
    padding: 0;
    font-size: 11px;
  }

  .print-toolbar {
    display: none;
  }

  .print-header {
    gap: 0.9rem;
    padding-bottom: 0.75rem;
    margin-bottom: 0.5rem;
  }

  .print-header__logo {
    width: 70px;
  }

  .print-header__eyebrow {
    margin-bottom: 0.15rem;
    font-size: 0.62rem;
  }

  .print-header h1 {
    font-size: 1.2rem;
  }

  .print-header__text p:last-child {
    margin-top: 0.2rem;
    font-size: 0.8rem;
  }

  .print-section {
    grid-template-columns: 1fr;
    gap: 0.4rem;
  }

  .print-slot {
    background: #ffffff;
    padding: 0.45rem 0;
    border-bottom: 1px solid #d8d8d8;
  }

  .print-calendar-list {
    gap: 0.45rem;
  }

  .print-calendar-item {
    background: #ffffff;
    padding: 0.45rem 0;
    border-bottom: 1px solid #d8d8d8;
  }

  .print-calendar-item__head h2 {
    font-size: 0.92rem;
    line-height: 1.25;
  }

  .print-calendar-item__head p,
  .print-calendar-item__meta,
  .print-calendar-item__people,
  .print-calendar-item__text {
    margin-top: 0.15rem;
    font-size: 0.76rem;
    line-height: 1.35;
  }

  .print-slot__head {
    gap: 0.35rem;
    padding-bottom: 0.35rem;
  }

  .print-slot__head h2 {
    font-size: 0.92rem;
    line-height: 1.25;
  }

  .print-slot__head p,
  .print-slot__status {
    margin-top: 0.12rem;
    font-size: 0.76rem;
    line-height: 1.35;
  }

  .print-people {
    gap: 0.35rem;
    padding-top: 0.45rem;
  }

  .print-person {
    border: 1px solid #e0e0e0;
    padding: 0.45rem 0.5rem;
  }

  .print-person h3 {
    font-size: 0.83rem;
  }

  .print-person p {
    margin-top: 0.15rem;
    font-size: 0.72rem;
    line-height: 1.3;
  }

  .print-slot__empty,
  .print-empty {
    font-size: 0.78rem;
  }
}
