:root {
  --bg: #e2f1e7;
  /* Flächen mit Fließtext: helles Mint statt Weiß */
  --panel: #f4fbf7;
  --text-surface: #f4fbf7;
  --text-surface-mid: #eaf6f0;
  --text-surface-deep: #e0f1e8;
  --text-surface-gradient: linear-gradient(180deg, #eef9f2 0%, #e0f3e8 50%, #d4ebdf 100%);
  --panel-soft: #cfead8;
  --text: darkblue;
  --text-soft: #2f4f7a;
  --muted: #35567f;
  --accent: #3f9367;
  --accent-strong: #2a7d52;
  --border: #9ecab0;
  --wave-height: clamp(42px, 6vw, 66px);
  --wave-height-mobile: clamp(44px, 11.2vw, 72px);
  --wave-scale-y: 1.36;
}

* { box-sizing: border-box; }
body[data-theme="blue-light"] {
  --bg: #e8f1fb;
  --panel: #f4f8fd;
  --text-surface: #f4f8fd;
  --text-surface-mid: #e8f0fa;
  --text-surface-deep: #dde9f8;
  --text-surface-gradient: linear-gradient(180deg, #f3f8fd 0%, #e5effa 50%, #d7e6f7 100%);
  --panel-soft: #d3e1f4;
  --text: #11365c;
  --text-soft: #204f7f;
  --muted: #355d88;
  --accent: #3c77b2;
  --accent-strong: #2a5f97;
  --border: #9fbede;
}
body[data-theme="blue-dark"] {
  --bg: #243448;
  --panel: #31465f;
  --text-surface: #2d425a;
  --text-surface-mid: #364f6b;
  --text-surface-deep: #3f5c7c;
  --text-surface-gradient: linear-gradient(180deg, #3a536f 0%, #324964 50%, #2a3f58 100%);
  --panel-soft: #436181;
  --text: #eef5ff;
  --text-soft: #d9e9ff;
  --muted: #c4d7ef;
  --accent: #5b9cdd;
  --accent-strong: #4683c1;
  --border: #5e7da0;
}
body[data-theme="red-light"] {
  --bg: #faecec;
  --panel: #fff5f4;
  --text-surface: #fff5f4;
  --text-surface-mid: #fbe9e8;
  --text-surface-deep: #f7dedd;
  --text-surface-gradient: linear-gradient(180deg, #fff6f5 0%, #fbe9e8 50%, #f5dcdb 100%);
  --panel-soft: #f0d4d2;
  --text: #5b2028;
  --text-soft: #7a2b35;
  --muted: #874455;
  --accent: #be5a68;
  --accent-strong: #a14553;
  --border: #d7a6ae;
}
body[data-theme="red-dark"] {
  --bg: #3a2a2f;
  --panel: #503940;
  --text-surface: #5b4149;
  --text-surface-mid: #694c55;
  --text-surface-deep: #775963;
  --text-surface-gradient: linear-gradient(180deg, #6d4f58 0%, #5f454d 50%, #513b42 100%);
  --panel-soft: #7b5862;
  --text: #fff1f3;
  --text-soft: #ffdfe4;
  --muted: #f1c7cf;
  --accent: #de7f91;
  --accent-strong: #c66578;
  --border: #9c747d;
}
body[data-theme="orange-medium"] {
  --bg: #f9efd9;
  --panel: #fff7e8;
  --text-surface: #fff7e8;
  --text-surface-mid: #fcefd5;
  --text-surface-deep: #f8e7c1;
  --text-surface-gradient: linear-gradient(180deg, #fff8ec 0%, #f9edd0 50%, #f3dfb7 100%);
  --panel-soft: #edd8ae;
  --text: #4f3920;
  --text-soft: #6e4d2a;
  --muted: #85613a;
  --accent: #ca8a35;
  --accent-strong: #ad7428;
  --border: #d5b179;
}
body {
  margin: 0;
  font-family: "Segoe UI", Arial, sans-serif;
  font-size: 18px;
  background: var(--bg);
  color: var(--text);
  line-height: 1.55;
}
a { color: var(--accent-strong); }
.container { width: min(1080px, 94vw); margin: 0 auto; }
main.container {
  width: 100%;
  max-width: none;
  padding: 0 14px;
}

.site-header { background: var(--panel-soft); border-bottom: 1px solid var(--border); overflow: visible; }
.banner-wave-link {
  display: block;
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  overflow: hidden;
  background: var(--bg);
  border-bottom: 1px solid var(--border);
}
.header-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .45rem;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 10px 1px;
  margin-top: -18px;
  margin-bottom: -99px;
}
.banner-wave {
  width: 100%;
  min-width: 0;
  max-width: none;
  margin: 0;
  height: var(--wave-height);
  object-fit: cover;
  display: block;
  transform: scaleY(var(--wave-scale-y));
  transform-origin: center top;
}
.banner-brand-left,
.banner-brand-right {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: min(180px, 18vw);
  text-decoration: none;
  padding: 0;
  flex: 0 0 auto;
  line-height: 1;
  transform: translateY(-2px);
}
.header-left-tools {
  display: flex;
  align-items: center;
  gap: 20px;
}
.banner-brand-right {
  justify-content: flex-end;
  transform: translateY(calc(-58% + 13px));
}
.banner-berlin {
  height: clamp(34px, 4.2vw, 52px);
  width: auto;
  object-fit: contain;
}
.banner-psag {
  height: clamp(124px, 14vw, 190px);
  width: auto;
  object-fit: contain;
}
.impressum-top-link {
  position: absolute;
  top: 6px;
  right: 10px;
  z-index: 40;
  text-decoration: none;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .03em;
  padding: .2rem .45rem;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--text-surface);
  color: var(--text);
}
.impressum-top-link:hover {
  background: var(--panel-soft);
}
.header-contact-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  text-decoration: none;
  color: var(--text);
  background: var(--panel-soft);
  padding: .28rem .85rem;
  border-radius: 10px;
  border: 1px solid var(--border);
  font-weight: 600;
  min-height: 34px;
  margin-top: 10px; /* mit negativem Header-Offset sichtbar auf Menülinie */
  white-space: nowrap;
}
.header-contact-link:hover {
  background: var(--accent-strong);
  color: #fff;
  border-color: var(--accent-strong);
}
.header-contact-link svg {
  width: 14px;
  height: 14px;
  fill: currentColor;
  flex-shrink: 0;
}
.contact-public {
  margin-top: .6rem;
  padding: .8rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: linear-gradient(180deg, var(--text-surface) 0%, var(--text-surface-mid) 100%);
}
.contact-public-form {
  display: grid;
  gap: .5rem;
}
.contact-public-form label {
  display: grid;
  gap: .2rem;
}
.contact-public-form input,
.contact-public-form textarea {
  font: inherit;
  padding: .38rem .48rem;
  border-radius: 8px;
  border: 1px solid var(--border);
}
.contact-public-form button {
  justify-self: start;
  font: inherit;
  font-weight: 600;
  padding: .42rem .85rem;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--panel-soft);
  color: var(--text);
  cursor: pointer;
}
.contact-public-form button:hover {
  background: var(--accent-strong);
  border-color: var(--accent-strong);
  color: #fff;
}
.contact-public-message {
  margin: .2rem 0 0;
  font-size: .9rem;
}
.main-nav {
  flex: 1;
  display: flex;
  justify-content: flex-end;
  align-self: flex-start;
  margin-top: 2px;
}
.main-nav-centered {
  justify-content: center;
}
.main-nav-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-end;
  gap: .35rem;
}
.main-nav-centered .main-nav-list {
  justify-content: center;
}
.main-nav-item {
  position: relative;
}
.main-nav-item > a {
  display: inline-block;
  text-decoration: none;
  color: var(--text);
  background: var(--panel-soft);
  padding: .28rem .85rem;
  border-radius: 10px;
  border: 1px solid var(--border);
  font-weight: 600;
  min-width: 96px;
  text-align: center;
  white-space: nowrap;
}
.main-nav-item > a.active, .main-nav-item > a:hover { background: var(--accent-strong); }
.main-nav-item > a.active, .main-nav-item > a:hover { color: #fff; border-color: var(--accent-strong); }

.submenu {
  display: none;
  position: absolute;
  top: calc(100% + 0.3rem);
  left: 0;
  margin: 0;
  padding: .35rem;
  list-style: none;
  min-width: 210px;
  background: var(--text-surface);
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: 0 8px 16px rgba(22, 54, 40, 0.12);
  z-index: 50;
}
.submenu li + li { margin-top: .25rem; }
.submenu a {
  display: block;
  text-decoration: none;
  color: var(--text);
  background: var(--text-surface-mid);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: .4rem .6rem;
}
.submenu a:hover, .submenu a.active {
  background: var(--panel-soft);
}
.main-nav-item:hover > .submenu,
.main-nav-item:focus-within > .submenu {
  display: block;
}

.breadcrumbs { margin: 1rem 0; color: var(--muted); font-size: .95rem; }
.breadcrumbs a { color: var(--muted); text-decoration: none; }
.breadcrumbs .sep { margin: 0 .4rem; opacity: .8; }

.content-shell {
  background: var(--text-surface-gradient);
  border: 1px solid #b8d9c4;
  padding: 1.2rem; border-radius: 14px; margin-bottom: 2rem; position: relative;
  box-shadow: 0 4px 14px rgba(30, 83, 54, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.55);
}
.start-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(250px, 290px);
  gap: 1rem;
}
.start-grid > .start-main .content-area {
  padding: .85rem 1rem;
  border-radius: 12px;
  border: 1px solid #b5dcc6;
  background: rgba(255, 255, 255, 0.42);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
}
.countdown-panel {
  background: linear-gradient(165deg, #c4e8d2 0%, #aedcc2 42%, #9ad2b4 100%);
  border: 1px solid #7fb89a;
  border-radius: 12px;
  padding: .9rem;
  box-shadow: 0 6px 16px rgba(22, 70, 48, 0.12);
}
.countdown-panel h2 {
  margin: .1rem 0 .6rem;
  font-size: 1.22rem;
}
.start-activity-feed {
  margin-top: 1rem;
  padding: .65rem .7rem .75rem;
  border-radius: 10px;
  border: 1px solid #6fa688;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 2px 8px rgba(18, 60, 40, 0.08);
}
.start-activity-feed-title {
  margin: 0 0 .45rem;
  font-size: 1.05rem;
  color: #0f3d28;
}
.start-activity-feed-empty {
  margin: 0;
  font-size: .88rem;
  line-height: 1.4;
  color: #305e89;
}
.start-activity-feed-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: .4rem;
}
.start-activity-feed-item {
  margin: 0;
  font-size: .88rem;
  line-height: 1.35;
}
.start-activity-feed-link {
  display: block;
  color: #1a446d;
  text-decoration: none;
  padding: .35rem .45rem;
  border-radius: 8px;
  border: 1px solid transparent;
  background: rgba(255, 255, 255, 0.35);
}
.start-activity-feed-link:hover {
  border-color: #86bda1;
  background: rgba(255, 255, 255, 0.55);
}
.start-activity-feed-date {
  font-weight: 700;
  color: #2f6a4c;
  white-space: nowrap;
}
.start-activity-feed-line {
  color: var(--text);
}
.countdown-clock {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .45rem;
  margin-bottom: .65rem;
}
.countdown-clock div {
  background: var(--text-surface);
  border: 1px solid #9ecab0;
  border-radius: 10px;
  text-align: center;
  padding: .35rem .2rem;
}
.countdown-clock strong {
  display: block;
  font-size: 1.72rem;
  line-height: 1.05;
  color: #14563c;
}
.countdown-clock span {
  font-size: .78rem;
  color: #2a6148;
}
.session-info {
  font-size: .96rem;
  margin: .5rem 0 .25rem;
}
.session-topic {
  margin: .2rem 0 .3rem;
  font-size: .96rem;
}
.session-edit-form {
  margin-top: .65rem;
  display: grid;
  gap: .45rem;
}
.session-edit-form[hidden] {
  display: none !important;
}
.session-edit-form label {
  display: grid;
  gap: .2rem;
  font-size: .86rem;
}
.session-edit-form input {
  height: 32px;
  border: 1px solid #9ecab0;
  border-radius: 8px;
  padding: 0 .45rem;
}
.session-edit-form button {
  height: 34px;
  border: 1px solid #7db391;
  border-radius: 8px;
  background: #eaf7ee;
}
.content-area { min-height: 120px; }
.protocol-page-intro {
  background: rgba(255, 255, 255, 0.35);
  border-radius: 10px;
  padding: .55rem .75rem;
  border: 1px solid rgba(184, 212, 196, 0.75);
  margin-bottom: .5rem;
}
.content-area,
.content-area p,
.content-area li,
.content-area div,
.content-area span {
  color: var(--text);
}
.content-area h1,
.content-area h2,
.content-area h3 {
  color: var(--text-soft);
}
.content-area img {
  max-width: 100%;
  height: auto;
}
.content-area img.img-wrap-left {
  float: left;
  max-width: min(46%, 420px);
  margin: 0.3rem 1rem 0.7rem 0;
}
.content-area img.img-wrap-right {
  float: right;
  max-width: min(46%, 420px);
  margin: 0.3rem 0 0.7rem 1rem;
}
.content-area img.img-no-wrap-center {
  display: block;
  float: none;
  max-width: min(70%, 760px);
  margin: 0.5rem auto 0.9rem;
}
.content-area img.img-no-wrap-full {
  display: block;
  float: none;
  max-width: 100%;
  margin: 0.5rem 0 0.9rem;
}
.content-area::after {
  content: "";
  display: block;
  clear: both;
}
.content-area[hidden] {
  display: none !important;
}

.editor-inline {
  position: absolute;
  top: .7rem;
  right: .7rem;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .45rem;
  z-index: 30;
}
.editor-trigger {
  border: 1px solid var(--border);
  background: #d6ecdf;
  color: #2f5b45;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  cursor: pointer;
  padding: 0;
  font-size: 13px;
  line-height: 1;
}
.theme-admin-panel {
  width: min(240px, calc(100vw - 3rem));
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--text-surface);
  box-shadow: 0 8px 18px rgba(21, 52, 38, 0.12);
}
.theme-admin-panel:not([open]) {
  width: auto;
  border: none;
  box-shadow: none;
  background: transparent;
}
.theme-admin-trigger {
  list-style: none;
  border: 1px solid var(--border);
  background: #d6ecdf;
  color: #2f5b45;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  line-height: 1;
}
.theme-admin-panel > summary::-webkit-details-marker {
  display: none;
}
.theme-admin-inner {
  padding: .45rem .5rem .55rem;
}
.theme-admin-title {
  margin: 0 0 .45rem;
  font-size: .86rem;
  font-weight: 700;
}
.theme-admin-form {
  display: grid;
  gap: .35rem;
}
.theme-admin-form label {
  display: flex;
  align-items: center;
  gap: .4rem;
  font-size: .86rem;
}
.theme-admin-form .theme-admin-contact-field {
  display: grid;
  align-items: initial;
  gap: .2rem;
}
.theme-admin-contact-field input {
  font: inherit;
  padding: .3rem .42rem;
  border-radius: 8px;
  border: 1px solid var(--border);
  min-width: 0;
}
.theme-admin-contact-field select {
  font: inherit;
  padding: .3rem .42rem;
  border-radius: 8px;
  border: 1px solid var(--border);
  min-width: 0;
  background: var(--text-surface);
}
.version-admin-wrap {
  margin-top: .55rem;
  padding-top: .45rem;
  border-top: 1px dashed var(--border);
}
.version-history-form {
  display: grid;
  gap: .35rem;
}
.version-history-form button {
  justify-self: start;
  height: 30px;
  border: 1px solid #9ec7b0;
  border-radius: 8px;
  background: #cfead8;
  cursor: pointer;
}
.version-history-list {
  margin-top: .4rem;
  display: grid;
  gap: .35rem;
  max-height: 260px;
  overflow-y: auto;
}
.version-history-item {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: .35rem .42rem;
  background: var(--text-surface);
  font-size: .82rem;
}
.version-history-item-meta {
  margin: 0 0 .12rem;
  font-weight: 700;
}
.version-history-item-summary {
  margin: 0 0 .2rem;
}
.version-history-item button {
  font: inherit;
  font-size: .78rem;
  padding: .2rem .45rem;
  border-radius: 7px;
  border: 1px solid #86bda1;
  background: #e8f6ee;
  cursor: pointer;
}
.site-admin-wrap {
  margin-top: .55rem;
  padding-top: .45rem;
  border-top: 1px dashed var(--border);
}
.site-admin-form,
.site-admin-row-form {
  display: grid;
  gap: .4rem;
}
.site-admin-form label,
.site-admin-row-form label {
  display: grid;
  gap: .16rem;
  font-size: .82rem;
}
.site-admin-check {
  display: flex !important;
  align-items: center;
  gap: .34rem;
}
.site-admin-form input,
.site-admin-form select,
.site-admin-row-form input {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--border);
  border-radius: 7px;
  padding: .28rem .38rem;
  font: inherit;
}
.site-admin-list {
  display: grid;
  gap: .45rem;
  margin-top: .45rem;
  max-height: 340px;
  overflow-y: auto;
}
.site-admin-item {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: .4rem;
  background: var(--text-surface);
  font-size: .82rem;
}
.site-admin-item.is-trashed {
  opacity: .75;
  background: rgba(255, 255, 255, .45);
}
.site-admin-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  margin-top: .38rem;
}
.site-admin-actions a,
.site-admin-actions button,
.site-admin-form button,
.site-admin-row-form button,
#page-admin-load,
#user-admin-load {
  border: 1px solid #86bda1;
  border-radius: 7px;
  padding: .24rem .45rem;
  background: #e8f6ee;
  color: var(--green-dark);
  font: inherit;
  font-size: .78rem;
  text-decoration: none;
  cursor: pointer;
}
.theme-admin-form button {
  justify-self: start;
  margin-top: .2rem;
  height: 32px;
  border: 1px solid #9ec7b0;
  border-radius: 8px;
  background: #cfead8;
  cursor: pointer;
}
.theme-admin-message {
  margin: .2rem 0 0;
  font-size: .84rem;
}

.code-login-inline {
  display: flex;
  align-items: center;
  gap: .45rem;
  background: #edf8f1;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: .3rem .45rem;
  box-shadow: 0 8px 18px rgba(21, 52, 38, 0.12);
}
.code-login-inline[hidden] {
  display: none !important;
}
.code-login-inline input {
  height: 32px;
  padding: 0 .5rem;
  border: 1px solid #c8dfcf;
  border-radius: 8px;
}
.login-or {
  color: var(--muted);
  font-size: .78rem;
}
.code-login-inline button {
  height: 32px;
  border: 1px solid #9ec7b0;
  border-radius: 8px;
  background: #cfead8;
  cursor: pointer;
}
.code-login-inline #login-message {
  margin: 0;
  font-size: .85rem;
  color: #34644d;
}
.editor-section-inline {
  width: min(420px, calc(100vw - 3rem));
  background: var(--text-surface-gradient);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: .4rem;
  box-shadow: 0 8px 18px rgba(21, 52, 38, 0.12);
}
.editor-section-inline[hidden] {
  display: none !important;
}
.editor-actions { display: flex; gap: .5rem; justify-content: flex-end; margin-bottom: .7rem; }
.editor-actions button {
  height: 34px;
  padding: 0 .85rem;
  border: 1px solid #9ec7b0;
  border-radius: 8px;
  background: #cfead8;
  cursor: pointer;
}
.editor-status {
  margin: .2rem 0 0;
  font-size: .88rem;
  color: #2f6a4c;
}
.protocol-upload-panel {
  width: min(420px, calc(100vw - 3rem));
  max-width: 100%;
  border: 1px solid #c8dfcf;
  border-radius: 10px;
  background: #f4fbf7;
  box-shadow: 0 4px 14px rgba(21, 52, 38, 0.08);
}
.protocol-upload-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  width: 100%;
  margin: 0;
  padding: .5rem .6rem;
  border: none;
  border-radius: 10px;
  font: inherit;
  font-weight: 700;
  font-size: .88rem;
  color: #123d2b;
  background: #e8f4ec;
  cursor: pointer;
  text-align: left;
}
.protocol-upload-toggle:hover {
  background: #d8ecdf;
}
.protocol-upload-toggle-label {
  min-width: 0;
  line-height: 1.25;
}
.protocol-upload-toggle-right {
  display: flex;
  align-items: center;
  gap: .35rem;
  flex-shrink: 0;
}
.protocol-upload-toggle-hint {
  font-weight: 600;
  font-size: .72rem;
  color: #305e89;
}
.protocol-upload-toggle-icon {
  flex-shrink: 0;
  font-size: .65rem;
  color: #2f6a4c;
  line-height: 1;
}
.protocol-upload-toggle-icon::before {
  content: "▲";
}
.protocol-upload-panel.is-collapsed .protocol-upload-toggle-icon::before {
  content: "▼";
}
.protocol-upload-panel.is-collapsed .protocol-upload-panel-body {
  display: none;
}
.protocol-upload-panel-body {
  padding: 0 .55rem .55rem;
  border-top: 1px dashed #b8d4c4;
}
.protocol-upload-form {
  display: grid;
  gap: .3rem;
  border: none;
  border-radius: 0;
  padding: .45rem 0 0;
  margin: 0;
  background: transparent;
}
.protocol-upload-form[hidden] {
  display: none !important;
}
.protocol-upload-form label {
  font-size: .84rem;
}
.protocol-upload-form input[type="file"],
.protocol-upload-form input[type="date"],
.protocol-upload-form input[type="text"] {
  height: 33px;
  border: 1px solid #b9d5c4;
  border-radius: 8px;
  padding: 0 .45rem;
}
.protocol-upload-form button {
  height: 35px;
  border: 1px solid #86bda1;
  border-radius: 8px;
  background: #d7eddf;
  cursor: pointer;
}
.protocol-upload-form p {
  margin: .2rem 0 0;
  font-size: .84rem;
  color: #2f5e8a;
}
.protocol-upload-hint {
  margin: 0 0 .35rem;
  font-size: .84rem;
  color: #35567f;
}
.protocol-dropzone {
  border: 2px dashed #8fb9a3;
  border-radius: 12px;
  padding: .55rem .6rem;
  background: var(--text-surface);
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.protocol-dropzone.is-dragover {
  border-color: #2a7d52;
  background: #eaf7ee;
  box-shadow: 0 0 0 3px rgba(42, 125, 82, 0.18);
}
.protocol-dropzone label {
  display: block;
  margin-bottom: .25rem;
}
.protocol-dropzone input[type="file"] {
  width: 100%;
}
.protocol-extra-upload-form {
  display: grid;
  gap: .3rem;
  border: 1px solid #c8dfcf;
  border-radius: 10px;
  padding: .55rem;
  margin-bottom: .7rem;
  background: #f4fbf7;
}
.protocol-extra-upload-form[hidden] {
  display: none !important;
}
.protocol-extra-upload-form label {
  font-size: .84rem;
}
.protocol-extra-upload-form input[type="file"] {
  height: 33px;
  border: 1px solid #b9d5c4;
  border-radius: 8px;
  padding: 0 .45rem;
}
.protocol-extra-upload-form textarea {
  border: 1px solid #b9d5c4;
  border-radius: 8px;
  padding: .35rem .45rem;
  resize: vertical;
  min-height: 52px;
  font-family: inherit;
}
.protocol-extra-upload-form button {
  height: 35px;
  border: 1px solid #86bda1;
  border-radius: 8px;
  background: #d7eddf;
  cursor: pointer;
}
.protocol-extra-upload-form p {
  margin: .2rem 0 0;
  font-size: .84rem;
  color: #2f5e8a;
}
.protocol-zugabe-abstract-rows {
  display: grid;
  gap: .55rem;
  margin-top: .35rem;
}
.protocol-zugabe-abstract-file-label {
  display: grid;
  gap: .25rem;
  font-size: .86rem;
  color: #254f7a;
}
.protocol-zugabe-abstract-file-title {
  display: block;
  line-height: 1.35;
}
.protocol-zugabe-abstract-file-label textarea {
  font: inherit;
  padding: .35rem .45rem;
  border-radius: 8px;
  border: 1px solid #b9d5c4;
  resize: vertical;
  min-height: 52px;
}
.protocol-extra {
  margin-top: 1.1rem;
  padding: .85rem .95rem;
  border: 1px solid #b8d4c4;
  border-radius: 12px;
  background: linear-gradient(180deg, #f5fcf8 0%, #e8f4ee 100%);
}
.protocol-extra-title {
  margin: 0 0 .55rem;
  font-size: 1.12rem;
  color: #254f7a;
}
.protocol-extra-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: .65rem;
}
.protocol-extra-item {
  border: 1px solid #c5e0cf;
  border-radius: 10px;
  padding: .55rem .65rem;
  background: var(--text-surface-mid);
}
.protocol-extra-abstract {
  margin: 0 0 .35rem;
  font-size: .95rem;
  color: var(--text);
}
.protocol-extra-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .55rem;
}
.protocol-extra-filename {
  font-weight: 700;
  color: #1a446d;
  word-break: break-word;
}
.protocol-extra-download {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 0 .85rem;
  border-radius: 10px;
  border: 1px solid #86bda1;
  background: #d7eddf;
  color: #123d2b;
  text-decoration: none;
  font-weight: 600;
  white-space: nowrap;
}
.protocol-extra-download:hover {
  background: #c7e6d3;
}
.protocol-zugabe-note-form {
  margin-top: .5rem;
  padding-top: .45rem;
  border-top: 1px dashed #c5e0cf;
  display: grid;
  gap: .35rem;
  font-size: .88rem;
}
.protocol-zugabe-note-label {
  display: grid;
  gap: .2rem;
  color: #254f7a;
  font-weight: 600;
}
.protocol-zugabe-note-form textarea {
  font: inherit;
  padding: .35rem .45rem;
  border-radius: 8px;
  border: 1px solid #b8d4c4;
  min-height: 2.5rem;
  resize: vertical;
}
.protocol-zugabe-note-form button {
  justify-self: start;
  font: inherit;
  font-weight: 600;
  padding: .35rem .75rem;
  border-radius: 8px;
  border: 1px solid #86bda1;
  background: #e8f6ee;
  color: #123d2b;
  cursor: pointer;
}
.protocol-zugabe-note-msg {
  margin: 0;
  font-size: .84rem;
}
.protocol-zugabe-delete-wrap {
  margin: .4rem 0 0;
}
.protocol-zugabe-delete-btn {
  font: inherit;
  font-size: .82rem;
  padding: .28rem .55rem;
  border-radius: 8px;
  border: 1px solid #c98a8a;
  background: #fff5f5;
  color: #7a1f1f;
  cursor: pointer;
}
.protocol-zugabe-delete-btn:hover {
  background: #fde8e8;
}
.tox-tinymce-inline {
  border: 1px solid var(--border) !important;
  border-radius: 10px !important;
  background: #f7fcf9 !important;
}

.org-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: .7rem;
  margin-top: 1rem;
}
.org-card {
  background: var(--text-surface);
  color: #1b2d25;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 0;
  overflow: hidden;
  min-width: 0;
}
.org-card--accordion .org-card-details {
  margin: 0;
}
.org-card-summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .45rem;
  padding: .55rem .65rem;
  min-height: 3.1rem;
  background: linear-gradient(180deg, #f7fcf9 0%, #eef6f1 100%);
  border-bottom: 1px solid transparent;
}
.org-card-details[open] > .org-card-summary {
  border-bottom-color: var(--border);
}
.org-card-summary::-webkit-details-marker {
  display: none;
}
.org-card-summary-main {
  display: flex;
  align-items: center;
  gap: .55rem;
  min-width: 0;
  flex: 1;
}
.org-card-summary-logo-wrap {
  flex-shrink: 0;
  width: 48px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.org-card-summary-logo {
  max-width: 48px;
  max-height: 44px;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}
.org-card-summary-logo-placeholder {
  width: 40px;
  height: 36px;
  border-radius: 8px;
  background: linear-gradient(135deg, #dfece4 0%, #c9ddcf 100%);
  border: 1px solid #b8d4c4;
}
.org-card-summary-line {
  display: flex;
  align-items: baseline;
  gap: .15rem;
  min-width: 0;
  flex: 1;
  white-space: nowrap;
}
.org-card-summary-name {
  flex-shrink: 0;
  max-width: 34%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: .95rem;
  font-weight: 700;
  color: #123d28;
}
.org-card-summary-sep {
  flex-shrink: 0;
  color: #6a8a7a;
  font-weight: 400;
}
.org-card-summary-desc {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: .88rem;
  line-height: 1.35;
  color: #2f5e8a;
}
.org-card-summary-expand {
  flex-shrink: 0;
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: #14563c;
  white-space: nowrap;
}
.org-card-details[open] .org-card-summary-expand-closed {
  display: none;
}
.org-card-details:not([open]) .org-card-summary-expand-open {
  display: none;
}
.org-card-body {
  padding: .75rem .8rem .85rem;
}
.org-card-body-desc {
  font-size: .92rem;
  line-height: 1.5;
  margin: 0 0 .55rem;
  color: #1b2d25;
}
.org-card-body-link {
  margin: .35rem 0 0;
  font-size: .95rem;
}
.org-card-keywords {
  margin: 0 0 .45rem;
  font-size: .82rem;
  line-height: 1.35;
  color: #305e89;
}
.org-card-keywords-label {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
  font-size: .72rem;
  color: #1a446d;
  margin-right: .25rem;
}
.org-card-body .actor-org-current-logo img {
  max-width: 100%;
  max-height: 70px;
  object-fit: contain;
  display: block;
}
.org-steckbrief {
  margin: .4rem 0 0;
  font-size: .95rem;
}
.org-steckbrief-title {
  margin: 0 0 .2rem;
  font-size: .8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
  color: #1a446d;
}
.org-steckbrief-list {
  margin: 0;
  padding-left: 1.1rem;
}
.org-steckbrief-list li + li {
  margin-top: .12rem;
}
.org-steckbrief-link {
  font-weight: 600;
  color: #1a446d;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.org-steckbrief-link:hover {
  color: #0f2d4d;
}
.org-card-sort {
  margin: 0 0 .45rem;
  font-size: .82rem;
  line-height: 1.3;
  color: #2f5e8a;
}
.org-card-sort-label {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
  font-size: .72rem;
  color: #1a446d;
  margin-right: .25rem;
}

.actor-schlagwort-editor-panel {
  margin-top: 1.25rem;
  border: 1px solid #9ecab0;
  border-radius: 12px;
  padding: .5rem .75rem .75rem;
  background: linear-gradient(180deg, #f2faf5 0%, #e4f4eb 100%);
}
.actor-schlagwort-editor-panel > summary {
  cursor: pointer;
  font-weight: 700;
  color: #14563c;
  list-style: none;
}
.actor-schlagwort-editor-panel > summary::-webkit-details-marker {
  display: none;
}
.actor-schlagwort-editor-inner {
  margin-top: .65rem;
  padding-top: .55rem;
  border-top: 1px dashed #b8d4c4;
}
.actor-schlagwort-editor-hint {
  margin: 0 0 .75rem;
  font-size: .88rem;
  line-height: 1.45;
  color: #305e89;
}
.actor-schlagwort-editor-fields {
  display: grid;
  gap: .65rem;
}
.actor-schlagwort-editor-fields label {
  display: grid;
  gap: .25rem;
  font-size: .88rem;
  font-weight: 600;
  color: #1a446d;
}
.actor-schlagwort-editor-fields input {
  font: inherit;
  padding: .4rem .5rem;
  border-radius: 8px;
  border: 1px solid #b8d4c4;
  max-width: 100%;
}

.actor-org-manage {
  margin-top: .75rem;
  padding-top: .55rem;
  border-top: 1px dashed #c5e0cf;
}
.actor-org-manage > summary {
  cursor: pointer;
  font-size: .88rem;
  font-weight: 700;
  color: #1a446d;
  list-style: none;
}
.actor-org-manage > summary::-webkit-details-marker {
  display: none;
}
.actor-org-manage-inner {
  margin-top: .55rem;
  padding: .65rem .7rem .75rem;
  border-radius: 10px;
  border: 1px solid #b8d4c4;
  background: rgba(255, 255, 255, 0.55);
}
.actor-org-save-form {
  display: grid;
  gap: .55rem;
  font-size: .88rem;
}
.actor-org-save-form label {
  display: grid;
  gap: .2rem;
  color: #254f7a;
  font-weight: 600;
}
.actor-org-save-form input,
.actor-org-save-form textarea {
  font: inherit;
  padding: .35rem .45rem;
  border-radius: 8px;
  border: 1px solid #b9d5c4;
  max-width: 100%;
}
.actor-org-save-form textarea {
  resize: vertical;
  min-height: 4.5rem;
}
.actor-org-save-form button[type="submit"] {
  justify-self: start;
  font: inherit;
  font-weight: 600;
  padding: .4rem .85rem;
  border-radius: 8px;
  border: 1px solid #86bda1;
  background: #e8f6ee;
  color: #123d2b;
  cursor: pointer;
}
.actor-org-save-message {
  margin: 0;
  font-size: .84rem;
}
.actor-org-delete-wrap {
  margin: .75rem 0 0;
  padding-top: .55rem;
  border-top: 1px dashed #d4c4c4;
}
.actor-org-delete-btn {
  font: inherit;
  font-size: .86rem;
  padding: .35rem .65rem;
  border-radius: 8px;
  border: 1px solid #c98a8a;
  background: #fff5f5;
  color: #7a1f1f;
  cursor: pointer;
}
.actor-org-delete-btn:hover {
  background: #fde8e8;
}

.actor-org-new-panel {
  grid-column: 1 / -1;
  margin-bottom: 0.75rem;
  border: 1px solid #86bda1;
  border-radius: 12px;
  padding: 0.5rem 0.75rem 0.75rem;
  background: linear-gradient(180deg, #f0faf4 0%, #e2f1e8 100%);
}
.actor-org-new-panel > summary {
  cursor: pointer;
  font-weight: 700;
  color: #0f3d28;
  list-style: none;
}
.actor-org-new-panel > summary::-webkit-details-marker {
  display: none;
}
.actor-org-new-inner {
  margin-top: 0.55rem;
  padding-top: 0.5rem;
  border-top: 1px dashed #b8d4c4;
}
.actor-org-new-hint {
  margin: 0 0 0.65rem;
  font-size: 0.88rem;
  line-height: 1.45;
  color: #305e89;
}

.actor-org-logo-field {
  display: grid;
  gap: 0.35rem;
  margin-top: 0.25rem;
}
.actor-org-logo-field-label {
  font-weight: 600;
  color: #254f7a;
  font-size: 0.88rem;
}
.actor-org-logo-dropzone {
  border: 2px dashed #9ecab0;
  border-radius: 10px;
  padding: 0.55rem 0.65rem;
  background: rgba(255, 255, 255, 0.65);
  outline: none;
}
.actor-org-logo-dropzone:focus {
  border-color: #4a8f6c;
  box-shadow: 0 0 0 2px rgba(74, 143, 108, 0.25);
}
.actor-org-logo-dropzone--drag {
  border-color: #2f6a4c;
  background: #e8f6ee;
}
.actor-org-logo-preview-wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
}
.actor-org-logo-preview {
  max-height: 72px;
  max-width: 100%;
  object-fit: contain;
  border-radius: 6px;
  border: 1px solid #c5e0cf;
}
.actor-org-logo-dropzone-hint {
  font-size: 0.84rem;
  color: #305e89;
  line-height: 1.35;
}
.actor-org-logo-file {
  font-size: 0.82rem;
  max-width: 100%;
}
.actor-org-logo-clear {
  justify-self: start;
  font: inherit;
  font-size: 0.82rem;
  padding: 0.28rem 0.55rem;
  border-radius: 8px;
  border: 1px solid #b8c4d4;
  background: #f5f8fc;
  color: #1a446d;
  cursor: pointer;
}
.actor-org-current-logo-label {
  margin: 0.35rem 0 0.15rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: #254f7a;
}
.actor-org-current-logo {
  margin: 0 0 0.35rem;
}
.actor-org-current-logo img {
  max-height: 64px;
  max-width: 100%;
  object-fit: contain;
  border-radius: 6px;
  border: 1px solid #c5e0cf;
}

.actor-org-steckbrief-field {
  display: grid;
  gap: .3rem;
  margin-top: .5rem;
}
.actor-org-steckbrief-label {
  font-weight: 600;
  color: #254f7a;
  font-size: .88rem;
}
.actor-org-steckbrief-hint {
  margin: 0;
  font-size: .8rem;
  line-height: 1.4;
  color: #3d6a9a;
}
.actor-org-steckbrief-dropzone {
  border: 2px dashed #a8c4dd;
  border-radius: 10px;
  padding: .5rem .55rem;
  background: rgba(255, 255, 255, 0.5);
  outline: none;
}
.actor-org-steckbrief-dropzone:focus {
  border-color: #2f5e8a;
  box-shadow: 0 0 0 2px rgba(47, 94, 138, 0.2);
}
.actor-org-steckbrief-dropzone--drag {
  border-color: #1a446d;
  background: #e8f0f8;
}
.actor-org-steckbrief-filename {
  margin: .3rem 0 0;
  font-size: .84rem;
  color: #123d2b;
  font-weight: 600;
  word-break: break-all;
}
.actor-org-steckbrief-file {
  font-size: .82rem;
  max-width: 100%;
}
.actor-org-steckbrief-clear {
  justify-self: start;
  font: inherit;
  font-size: .82rem;
  padding: .28rem .55rem;
  border-radius: 8px;
  border: 1px solid #b8c4d4;
  background: #f5f8fc;
  color: #1a446d;
  cursor: pointer;
}
.actor-org-current-steckbrief {
  margin: .35rem 0 .45rem;
  font-size: .84rem;
  line-height: 1.45;
  color: #254f7a;
}
.actor-org-current-steckbrief p {
  margin: 0 0 .2rem;
}
.actor-org-current-steckbrief ul {
  margin: 0 0 .25rem;
  padding-left: 1.1rem;
}
.actor-org-current-steckbrief a {
  font-weight: 600;
}

.schlagwort-suggest-list {
  margin: 0;
  padding: .25rem 0;
  list-style: none;
  max-height: 240px;
  overflow-y: auto;
  border-radius: 10px;
  border: 1px solid #86bda1;
  background: #fff;
  box-shadow: 0 8px 24px rgba(18, 60, 40, 0.15);
}
.schlagwort-suggest-item {
  padding: .45rem .65rem;
  cursor: pointer;
  font-size: .92rem;
  color: #123d2b;
  line-height: 1.35;
}
.schlagwort-suggest-item:hover,
.schlagwort-suggest-item:focus {
  background: #e8f6ee;
  outline: none;
}
.protocol-list {
  margin-top: 1rem;
  display: grid;
  gap: .7rem;
}
.protocol-card {
  border: 1px solid #b8d4c4;
  border-radius: 12px;
  padding: .55rem .75rem .65rem;
  background: linear-gradient(180deg, #f6fcf9 0%, #e9f5ee 100%);
}
.protocol-card-details {
  margin: 0;
}
.protocol-card-summary {
  list-style: none;
  cursor: pointer;
  display: grid;
  gap: .18rem;
  padding: .2rem .25rem .25rem 0;
}
.protocol-card-summary::-webkit-details-marker {
  display: none;
}
.protocol-card-summary::marker {
  content: "";
}
.protocol-card-summary-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .45rem;
}
.protocol-card-summary-tools {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  flex-shrink: 0;
}
.protocol-card-order-wrap {
  display: inline-flex;
  gap: .12rem;
  margin-right: .1rem;
}
.protocol-card-move {
  border: 1px solid #9ecab0;
  background: var(--text-surface);
  border-radius: 6px;
  width: 1.65rem;
  height: 1.5rem;
  padding: 0;
  cursor: pointer;
  font-size: 0.85rem;
  line-height: 1;
  color: #1a446d;
}
.protocol-card-move:hover {
  background: #e8f6ee;
}
.protocol-card-title {
  margin: 0;
  font-size: 1.08rem;
  color: #1a446d;
  flex: 1;
  min-width: 0;
  line-height: 1.25;
}
.protocol-card-expand-label {
  flex-shrink: 0;
  font-size: .72rem;
  font-weight: 700;
  color: #2f6a4c;
  text-transform: uppercase;
  letter-spacing: .04em;
  padding-top: .12rem;
}
.protocol-card-details[open] > .protocol-card-summary {
  margin-bottom: .45rem;
  padding-bottom: .5rem;
  border-bottom: 1px dashed #b8d4c4;
}
.protocol-card-body {
  padding-top: .1rem;
}
.protocol-date {
  margin: 0;
  color: #2f5e8a;
  font-weight: 700;
  font-size: .92rem;
}
.protocol-card-summary .protocol-date {
  line-height: 1.2;
}
.protocol-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem;
  margin: .45rem 0 0;
}

.protocol-card-zugaben {
  margin-top: .65rem;
  padding-top: .55rem;
  border-top: 1px dashed #9ecab0;
  font-size: .95rem;
}
.protocol-card-zugaben-title {
  margin: 0 0 .35rem;
  font-weight: 700;
  color: #1a446d;
  font-size: .9rem;
}
.protocol-card-zugaben-list {
  margin: 0;
  padding-left: 1.1rem;
  color: var(--text);
}
.protocol-card-zugaben-item {
  margin: .2rem 0;
}
.protocol-card-zugaben-abstract {
  display: block;
  margin-bottom: .15rem;
  color: #305e89;
  font-size: .9rem;
}
.protocol-card-zugaben-link {
  font-weight: 600;
  color: #1e6b4a;
}
.protocol-card-zugaben-item .protocol-zugabe-note-form {
  margin-top: .4rem;
  margin-left: -1.1rem;
  padding-left: 0;
  border-top: none;
  border-left: 2px solid #c5e0cf;
  padding: .35rem 0 .2rem .55rem;
}

.protocol-card-manage {
  margin-top: .75rem;
  border: 1px solid #86bda1;
  border-radius: 10px;
  background: #f6fdf9;
  padding: .2rem .45rem;
}
.protocol-card-manage summary {
  cursor: pointer;
  font-weight: 700;
  color: #123d2b;
  padding: .35rem .25rem;
}
.protocol-card-manage-inner {
  padding: .35rem .25rem .6rem;
  display: grid;
  gap: .75rem;
}
.protocol-card-manage-links {
  margin: 0;
  font-size: .92rem;
}
.protocol-card-meta-form,
.protocol-card-zugabe-form {
  display: grid;
  gap: .45rem;
  font-size: .92rem;
}
.protocol-card-meta-form label,
.protocol-card-zugabe-form label {
  display: grid;
  gap: .2rem;
}
.protocol-card-meta-form input[type="text"],
.protocol-card-meta-form input[type="date"],
.protocol-card-meta-form textarea,
.protocol-card-zugabe-form input[type="file"],
.protocol-card-zugabe-form textarea {
  font: inherit;
  padding: .35rem .45rem;
  border-radius: 8px;
  border: 1px solid #b8d4c4;
}
.protocol-card-meta-form button,
.protocol-card-zugabe-form button {
  justify-self: start;
  margin-top: .2rem;
}
.protocol-card-delete-wrap {
  margin: 0;
  padding-top: .35rem;
  border-top: 1px solid #c5e0cf;
}
.protocol-card-delete-btn {
  font: inherit;
  padding: .4rem .65rem;
  border-radius: 8px;
  border: 1px solid #c98a8a;
  background: #fdecec;
  color: #7a1f1f;
  cursor: pointer;
}
.protocol-card-delete-btn:hover {
  background: #f9d4d4;
}
.protocol-card-meta-message,
.protocol-card-zugabe-message {
  margin: .25rem 0 0;
  font-size: .88rem;
}
.protocol-card-zugabe-hint {
  margin: 0 0 .4rem;
  font-size: .88rem;
  color: #305e89;
}
.protocol-card-zugaben-manage {
  margin-top: .65rem;
  padding: .55rem .6rem .65rem;
  border: 1px dashed #7eb899;
  border-radius: 10px;
  background: #f8fdf9;
}
.protocol-card-zugaben-manage-title {
  margin: 0 0 .25rem;
  font-weight: 700;
  font-size: .95rem;
  color: #123d2b;
}
.protocol-card-zugaben-manage-hint {
  margin: 0 0 .45rem;
  font-size: .84rem;
  color: #305e89;
  line-height: 1.35;
}
.protocol-card-zugaben-manage-empty {
  margin: 0;
  font-size: .88rem;
  color: #305e89;
}
.protocol-card-zugaben-footnote {
  margin: .55rem 0 0;
  font-size: .84rem;
  color: #305e89;
  line-height: 1.35;
  padding: .45rem .55rem;
  border-radius: 8px;
  background: rgba(232, 246, 238, 0.9);
  border: 1px solid #b8d4c4;
}
.protocol-card-zugaben--editable .protocol-card-zugaben-list {
  margin-top: .25rem;
}
.protocol-card-zugabe-form .protocol-zugabe-abstract-rows {
  margin-top: .15rem;
}

.news-page-intro {
  background: rgba(255, 255, 255, 0.35);
  border-radius: 10px;
  padding: .55rem .75rem;
  border: 1px solid rgba(184, 212, 196, 0.75);
  margin-bottom: .75rem;
}
.news-public-submit,
.news-pending-review {
  margin-top: .8rem;
  padding: .75rem;
  border: 1px solid #b8d4c4;
  border-radius: 12px;
  background: linear-gradient(180deg, #f7fcf9 0%, #eaf5ee 100%);
}
.news-public-submit-toggle {
  margin-top: .8rem;
}
.news-public-submit-toggle > summary {
  list-style: none;
}
.news-public-submit-toggle > summary::-webkit-details-marker {
  display: none;
}
.news-public-submit-toggle-btn {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .38rem .7rem;
  border: 1px solid #86bda1;
  border-radius: 999px;
  background: #e8f6ee;
  color: #123d2b;
  font-weight: 600;
  font-size: .9rem;
  cursor: pointer;
  user-select: none;
}
.news-public-submit-toggle-btn::after {
  content: "▾";
  font-size: .78rem;
}
.news-public-submit-toggle[open] .news-public-submit-toggle-btn::after {
  content: "▴";
}
.news-public-submit-toggle[open] .news-public-submit {
  margin-top: .55rem;
}
.news-public-submit h3,
.news-pending-review h3 {
  margin: 0 0 .45rem;
  color: #1a446d;
}
.news-public-submit-form,
.news-pending-card .news-approve-form,
.news-pending-card .news-reject-form {
  display: grid;
  gap: .45rem;
}
.news-public-submit-form label {
  display: grid;
  gap: .2rem;
}
.news-public-submit-form input[type="text"],
.news-public-submit-form input[type="date"],
.news-public-submit-form textarea,
.news-public-submit-form input[type="file"] {
  font: inherit;
  padding: .35rem .45rem;
  border-radius: 8px;
  border: 1px solid #b8d4c4;
}
.news-public-submit-form button,
.news-pending-card button {
  justify-self: start;
  font: inherit;
  padding: .4rem .75rem;
  border-radius: 8px;
  border: 1px solid #86bda1;
  background: #e8f6ee;
  color: #123d2b;
  cursor: pointer;
}
.news-list {
  margin-top: .85rem;
  display: grid;
  gap: .75rem;
}
.news-card {
  border: 1px solid #b8d4c4;
  border-radius: 12px;
  background: linear-gradient(180deg, #f6fcf9 0%, #e9f5ee 100%);
  padding: .55rem .75rem .65rem;
}
.news-card-summary {
  list-style: none;
  cursor: pointer;
}
.news-card-summary::-webkit-details-marker {
  display: none;
}
.news-date {
  margin: 0;
  font-size: .9rem;
  color: #2f5e8a;
  font-weight: 700;
}
.news-card-title {
  margin: .2rem 0;
  color: #1a446d;
}
.news-card-expand-label {
  font-size: .72rem;
  font-weight: 700;
  color: #2f6a4c;
  text-transform: uppercase;
}
.news-card-body {
  padding-top: .45rem;
  border-top: 1px dashed #b8d4c4;
}
.news-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem;
}
.news-card-manage {
  margin-top: .7rem;
  border: 1px solid #86bda1;
  border-radius: 10px;
  background: #f6fdf9;
  padding: .2rem .45rem;
}
.news-card-manage summary {
  cursor: pointer;
  font-weight: 700;
  color: #123d2b;
  padding: .35rem .25rem;
}
.news-card-manage-inner {
  padding: .35rem .25rem .6rem;
  display: grid;
  gap: .7rem;
}
.news-card-manage-links {
  margin: 0;
  font-size: .92rem;
}
.news-card-order-wrap {
  margin: 0;
}
.news-card-move {
  border: 1px solid #9ecab0;
  background: var(--text-surface);
  border-radius: 6px;
  width: 1.65rem;
  height: 1.5rem;
  padding: 0;
  cursor: pointer;
  font-size: .85rem;
  line-height: 1;
  color: #1a446d;
}
.news-card-meta-form {
  display: grid;
  gap: .45rem;
  font-size: .92rem;
}
.news-card-meta-form label {
  display: grid;
  gap: .2rem;
}
.news-card-meta-form input[type="text"],
.news-card-meta-form input[type="date"],
.news-card-meta-form textarea,
.news-card-meta-form input[type="file"] {
  font: inherit;
  padding: .35rem .45rem;
  border-radius: 8px;
  border: 1px solid #b8d4c4;
}
.news-card-meta-form button {
  justify-self: start;
  margin-top: .2rem;
}
.news-card-meta-message {
  margin: .2rem 0 0;
  font-size: .88rem;
}
.news-card-delete-wrap {
  margin: 0;
  padding-top: .35rem;
  border-top: 1px solid #c5e0cf;
}
.news-card-delete-btn {
  font: inherit;
  padding: .38rem .65rem;
  border-radius: 8px;
  border: 1px solid #c98a8a;
  background: #fdecec;
  color: #7a1f1f;
  cursor: pointer;
}
.news-pending-card {
  border: 1px solid #c5e0cf;
  border-radius: 10px;
  padding: .6rem;
  background: #ffffff;
  margin-top: .5rem;
}
.news-pending-card h4 {
  margin: .15rem 0 .35rem;
  color: #1a446d;
}
.news-pending-meta {
  margin: 0;
  font-size: .84rem;
  color: #305e89;
}
.news-pending-actions {
  margin-top: .5rem;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1rem;
}
.news-reject-form button {
  border-color: #c98a8a;
  background: #fff1f1;
  color: #7a1f1f;
}
.news-pending-empty {
  margin: .2rem 0 0;
  color: #305e89;
}

.termine-hero {
  background: linear-gradient(130deg, #e8f6ee 0%, #d4ecdd 58%, #c1e3cf 100%);
  border: 1px solid #9ecab0;
  border-radius: 16px;
  padding: 1rem 1.1rem;
  margin-bottom: 1rem;
}
.termine-hero h2 {
  margin: 0 0 .35rem;
  font-size: clamp(1.3rem, 2.2vw, 2rem);
  color: #1e4f7c;
}
.termine-hero p {
  margin: 0;
}
.termine-badges {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin: .8rem 0 1rem;
}
.termine-badge {
  display: inline-flex;
  align-items: center;
  border: 1px solid #8db9a2;
  background: #eff9f3;
  border-radius: 999px;
  padding: .26rem .7rem;
  font-size: .9rem;
  color: #305e89;
}
.termine-table-wrap {
  border: 1px solid #9ecab0;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 8px 22px rgba(21, 60, 44, 0.08);
}
.termine-table {
  width: 100%;
  border-collapse: collapse;
  background: var(--text-surface);
}
.termine-table th,
.termine-table td {
  padding: .72rem .85rem;
  border-bottom: 1px solid #d5e8dc;
  text-align: left;
  vertical-align: top;
}
.termine-table th {
  background: #d9eee0;
  color: #254f7a;
  font-size: .95rem;
  letter-spacing: .01em;
}
.termine-table tr:last-child td {
  border-bottom: 0;
}
.termine-table td strong {
  color: #1a446d;
}

@media (max-width: 720px) {
  .banner-wave {
    height: var(--wave-height-mobile);
  }
  .start-grid {
    grid-template-columns: 1fr;
  }
  .header-top {
    width: 100%;
    padding: 0 6px 1px;
    margin-top: -10px;
    margin-bottom: -2px;
  }
  .banner-brand-left,
  .banner-brand-right {
    width: min(138px, 22vw);
  }
  .header-left-tools {
    gap: 8px;
  }
  .header-contact-link {
    min-height: 30px;
    padding: .2rem .52rem;
    font-size: .82rem;
    gap: 6px;
    margin-top: 2px;
  }
  .header-contact-link svg {
    width: 12px;
    height: 12px;
  }
  .banner-brand-right {
    transform: translateY(-18%);
  }
  .banner-psag {
    height: clamp(82px, 23vw, 112px);
  }
  .impressum-top-link {
    top: 4px;
    right: 6px;
    font-size: .66rem;
    padding: .15rem .35rem;
  }
  .main-nav-centered {
    justify-content: center;
  }
  .main-nav-centered .main-nav-list {
    justify-content: center;
    flex-wrap: wrap;
    gap: .28rem;
  }
  .main-nav-item > a {
    min-width: 112px;
    padding: .24rem .62rem;
    font-size: .92rem;
  }
  .content-shell {
    padding: 1rem;
  }
  .content-area {
    font-size: 1.04rem;
    line-height: 1.62;
  }
  .submenu {
    position: static;
    margin-top: .35rem;
  }
  .editor-inline { right: .45rem; }
  .code-login-inline {
    width: 100%;
    flex-wrap: wrap;
  }
  .editor-section-inline {
    width: min(95vw, 560px);
  }
  .termine-hero {
    padding: .9rem;
  }
  .termine-badge {
    font-size: .82rem;
  }
  .termine-table th,
  .termine-table td {
    padding: .6rem .58rem;
    font-size: .92rem;
  }
}
