:root {
  --green: #008939;
  --bg: #dcdcdc;
  --text: #1d1d1d;
  --muted: #999999;
  --white: #ffffff;
  --topbar-height: 112px;
  --header-shadow: 0 2px 4px rgba(0, 0, 0, 0.16);
  --header: 24px;
  --container-gap: 24px;
  --margin-header-bottom: 10px;
  --variable-gap: calc(1rem + 2vh);
}

.home {
  min-height: 100vh;
  min-height: 100dvh;
  background: var(--bg);
  color: var(--text);
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-weight: 400;
  display: flex;
  flex-direction: column;
}

.topbar {
  position: sticky;
  top: 0;
  z-index: 2;
  height: var(--topbar-height);
  width: 100%;
  background: var(--white);
  border-radius: 0 0 16px 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.topbar,
.messe-und-orte .app,
.pnv .app,
.packliste .app,
.sicherheit .app,
.notfaelle .app,
:is(.day-page, .montag, .dienstag, .mittwoch, .donnerstag, .freitag, .samstag, .sonntag) .app {
  box-shadow: var(--header-shadow);
}

.topbar-content {
  position: relative;
  width: 480px;
  max-width: calc(100% - 32px);
  height: var(--topbar-height);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

.topbar-icon-button {
  border: 0;
  background: transparent;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.topbar-icon-button img {
  width: 24px;
  height: 24px;
}

.topbar-theme-toggle {
  position: absolute;
  left: calc(50% - 152px);
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
}

.topbar-alert-link {
  position: absolute;
  right: calc(50% - 152px);
  top: 50%;
  transform: translateY(-50%);
  text-decoration: none;
}

.messe-und-orte .header-alert-link,
.pnv .header-alert-link,
.packliste .header-alert-link,
.sicherheit .header-alert-link,
.notfaelle .header-alert-link,
:is(.day-page, .montag, .dienstag, .mittwoch, .donnerstag, .freitag, .samstag, .sonntag) .header-alert-link {
  position: absolute;
  right: calc(50% - 152px);
  top: 50%;
  transform: translateY(-50%);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.messe-und-orte .subpage,
.pnv .subpage,
.packliste .subpage,
.sicherheit .subpage,
.notfaelle .subpage,
:is(.day-page, .montag, .dienstag, .mittwoch, .donnerstag, .freitag, .samstag, .sonntag) .subpage {
  position: relative;
  border-left-color: transparent !important;
}

.messe-und-orte .subpage::before,
.pnv .subpage::before,
.packliste .subpage::before,
.sicherheit .subpage::before,
.notfaelle .subpage::before,
:is(.day-page, .montag, .dienstag, .mittwoch, .donnerstag, .freitag, .samstag, .sonntag) .subpage::before {
  content: "";
  position: absolute;
  margin-bottom: 2px;
  left: 0;
  top: 0;
  bottom: 0;
  width: 5px;
  border-radius: 999px;
  background: var(--green);
}

.topbar-logo {
  width: 64px;
  height: auto;
}

.content {
  width: 480px;
  max-width: calc(100% - 32px);
  margin: 0 auto;
  padding-top: 24px;
  min-height: calc(100vh - var(--topbar-height));
  min-height: calc(100dvh - var(--topbar-height));
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
  gap: var(--variable-gap);
}

.week-card {
  background: var(--white);
  border-radius: 24px;
  padding: 16px;
}

.week-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}

.week-head img {
  width: 32px;
  height: 32px;
}

.week-head h1 {
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.32px;
  line-height: 24px;
  margin: 0;
}

.week-head p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 21px;
}

.days {
  display: flex;
  gap: 8px;
  width: 100%;
}

.days a {
  flex: 1;
  min-width: 0;
  display: block;
  text-decoration: none;
  color: inherit;
}

.days button {
  width: 100%;
  height: 47px;
  border: 1px solid #222;
  border-radius: 12px;
  background: var(--white);
  color: var(--text);
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.28px;
  line-height: 21px;
  cursor: pointer;
}

.live-widget {
  background: var(--white);
  border-radius: 24px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.live-widget-head {
  display: flex;
  align-items: center;
  gap: 10px;
}

.live-widget-head h2 {
  margin: 0;
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.32px;
  line-height: 24px;
}

.live-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: var(--green);
  box-shadow: 0 0 0 0 var(--green);
  animation: livePulse 1.8s infinite;
}

@keyframes livePulse {
  0% {
    box-shadow: 0 0 0 0 var(--green);
  }

  70% {
    box-shadow: 0 0 0 8px rgba(0, 137, 57, 0);
  }

  100% {
    box-shadow: 0 0 0 0 rgba(0, 137, 57, 0);
  }
}

.live-widget-subtitle {
  margin: 0;
  color: var(--muted);
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 13px;
  line-height: 19px;
}

.live-widget-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.live-slot {
  border: 1px solid #d0d0d0;
  border-radius: 16px;
  padding: 12px;
  min-height: 144px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.live-slot-label {
  margin: 0;
  color: var(--muted);
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.24px;
  line-height: 18px;
  text-transform: uppercase;
}

.live-slot-time {
  margin: 0;
  color: var(--green);
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 13px;
  font-weight: 700;
  line-height: 19px;
}

.live-slot-title {
  margin: 0;
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
}

.live-slot-detail {
  margin: 0;
  color: var(--text);
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 13px;
  line-height: 19px;
}

.live-slot-link {
  margin-top: auto;
  color: var(--green);
  text-decoration: none;
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 13px;
  font-weight: 700;
  line-height: 19px;
}

.live-slot-link:hover,
.live-slot-link:focus-visible {
  text-decoration: underline;
}

.menu-list {
  display: flex;
  flex-direction: column;
  gap: 26px;
}

.menu-row,
.menu-tile {
  display: flex;
  align-items: center;
  justify-content: space-between;
  text-decoration: none;
  color: inherit;
  background: var(--white);
  border-radius: 24px;
}

.menu-row {
  min-height: 65px;
  padding: 0 16px;
}

.menu-left {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.32px;
}

.icon-ring {
  width: 32px;
  height: 32px;
  border: 1px solid #000;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.icon-ring img {
  width: 18px;
  height: 18px;
}

.arrow {
  width: 16px;
  height: 16px;
  display: inline-block;
}

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

.menu-tile {
  min-height: 65px;
  padding: 0 0 0 12px;
}

.menu-tile .menu-left {
  white-space: nowrap;
}

.menu-row-alert {
  border: 2.5px solid var(--green);
  margin-top: 24px;
  margin-bottom: 24px;
}

.site-footer {
  color: #adadad;
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-weight: 300;
  font-size: 12px;
  line-height: 18px;
  margin-top: 12px;
  margin-bottom: 28px;
  padding-left: 16px;
  padding-right: 16px;
  display: flex;
  flex-direction: row;
  justify-content: left;
  gap: 32px;
}

.site-footer p {
  margin: 0;
}

.footer-link-style {
  margin: 0;
  color: inherit;
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-weight: 300;
  font-size: 12px;
  line-height: 18px;
  text-decoration: none;
  text-decoration: underline;
}

.info-container,
[style*="--container-style: info"] {
  border: 2px solid var(--green) !important;
  border-radius: 12px !important;
  background: var(--white) !important;
  padding: 16px 20px !important;
}

.info-container .info-text,
[style*="--container-style: info"] .info-text {
  margin: 0;
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.45;
  color: var(--text);
}

.info-container .info-text::before,
[style*="--container-style: info"] .info-text::before {
  content: "\2139\fe0f\00a0";
}

.info-container [class$="-detail"],
[style*="--container-style: info"] [class$="-detail"] {
  margin-top: 0 !important;
  color: var(--text) !important;
}

.alert-container,
[style*="--container-style: alert"] {
  border: 2px solid var(--green) !important;
  border-radius: 12px !important;
  background: #000000 !important;
  color: #ffffff !important;
  padding: 16px 20px !important;
}

.alert-container .alert-title,
[style*="--container-style: alert"] .alert-title {
  margin: 0;
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 21px;
  color: inherit;
}

.alert-container .alert-text,
[style*="--container-style: alert"] .alert-text {
  margin: 6px 0 0;
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.45;
  color: inherit;
}

.alert-container [class$="-line"],
.alert-container [class$="-detail"],
[style*="--container-style: alert"] [class$="-line"],
[style*="--container-style: alert"] [class$="-detail"] {
  color: inherit !important;
}

body.dark-mode .alert-container,
body.dark-mode [style*="--container-style: alert"] {
  background: #ffffff !important;
  color: #000000 !important;
}

@media (max-width: 620px) {
  .info-container,
  [style*="--container-style: info"],
  .alert-container,
  [style*="--container-style: alert"] {
    padding: 14px 16px !important;
  }
}

body.dark-mode {
  --bg: #1d1d1d;
  --text: #ffffff;
  --white: #000000;
  --muted: #bcbcbc;
  --header-shadow: 0 2px 6px rgba(255, 255, 255, 0.16);
}

body.dark-mode .topbar-icon-button img,
body.dark-mode .icon-ring img {
  filter: brightness(0) saturate(100%) invert(28%) sepia(94%) saturate(1169%) hue-rotate(114deg) brightness(93%)
    contrast(102%);
}

body.dark-mode #theme-toggle-icon {
  filter: none;
}

body.dark-mode .days button {
  border-color: #ffffff;
  color: var(--text);
}

body.dark-mode .icon-ring {
  border-color: #ffffff;
}

body.dark-mode .site-footer {
  color: #8f8f8f;
}

body.dark-mode .live-slot {
  border-color: #3b3b3b;
}

body.dark-mode .live-slot-detail {
  color: #d5d5d5;
}

body.dark-mode .messe-und-orte .pdf-preview-head,
body.dark-mode .pnv .pdf-preview-head {
  border-bottom-color: #333333;
}

body.dark-mode .messe-und-orte .pdf-open-new-tab,
body.dark-mode .messe-und-orte .pdf-preview-close,
body.dark-mode .pnv .pdf-open-new-tab,
body.dark-mode .pnv .pdf-preview-close {
  background: #1f1f1f;
  color: #ffffff;
}

@media (max-width: 620px) {
  .content {
    width: 100%;
  }

  .topbar-theme-toggle {
    left: 12px;
  }

  .topbar-alert-link {
    right: 12px;
  }

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

  .live-slot {
    min-height: 0;
  }

  .messe-und-orte .header-alert-link,
  .pnv .header-alert-link,
  .packliste .header-alert-link,
  .sicherheit .header-alert-link,
  .notfaelle .header-alert-link,
  :is(.day-page, .montag, .dienstag, .mittwoch, .donnerstag, .freitag, .samstag, .sonntag) .header-alert-link {
    right: 12px;
  }
}

/* Messe & Orte page */
.messe-und-orte {
  min-height: 100vh;
  background: var(--bg);
  color: var(--text);
}

.messe-und-orte .app {
  position: sticky;
  top: 0;
  z-index: 2;
  width: 100%;
  background: var(--white);
  border-radius: 0 0 16px 16px;
}

.messe-und-orte .container {
  width: 480px;
  max-width: calc(100% - 32px);
  margin: 0 auto;
  padding: 0 0 10px;
}

.messe-und-orte .container-2 {
  position: relative;
  height: 112px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0;
}

.messe-und-orte .button {
  position: absolute;
  left: calc(50% - 152px);
  top: 50%;
  transform: translateY(-50%);
  border: 0;
  background: transparent;
  color: var(--green);
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  display: inline-flex;
  align-items: left;
  gap: 8px;
  cursor: pointer;
  padding: 0;
}

.messe-und-orte .icon {
  width: 16px;
  height: 16px;
}

.messe-und-orte .text-wrapper-2 {
  font-size: 14px;
  line-height: 1;
  letter-spacing: 0.28px;
}

.messe-und-orte .frame {
  width: 64px;
  height: auto;
}

.messe-und-orte .subpage {
  margin-top: 0;
  border-left: 5px solid var(--green);
  padding-left: 12px;
}

.messe-und-orte .messe-orte {
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: var(--header);
  font-weight: 700;
  letter-spacing: 0.32px;
  line-height: 24px;
}

.messe-und-orte .orte-messe {
  width: 480px;
  max-width: calc(100% - 32px);
  margin: 18px auto 0;
  display: flex;
  flex-direction: column;
  gap: var(--container-gap);
}

.messe-und-orte .pdf-button {
  min-height: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-radius: 18px;
  background: var(--white);
  color: var(--text);
  padding: 16px 18px;
}

.messe-und-orte .text,
.messe-und-orte .zona-tortona-wrapper,
.messe-und-orte .fuorisalone-wrapper {
  display: flex;
  align-items: center;
}

.messe-und-orte .text-wrapper {
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.28px;
  line-height: 21px;
}

.messe-und-orte .div-wrapper {
  display: flex;
  align-items: center;
}

.messe-und-orte .div {
  width: 16px;
  height: 16px;
}

.messe-und-orte .pdf-preview-overlay,
.pnv .pdf-preview-overlay {
  position: fixed;
  inset: 0;
  z-index: 20;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(0, 0, 0, 0.45);
}

.messe-und-orte .pdf-preview-overlay.is-open,
.pnv .pdf-preview-overlay.is-open {
  display: flex;
}

.messe-und-orte .pdf-preview,
.pnv .pdf-preview {
  width: min(960px, 100%);
  height: min(88vh, 760px);
  border-radius: 16px;
  overflow: hidden;
  background: var(--white);
  display: flex;
  flex-direction: column;
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.28);
}

.messe-und-orte .pdf-preview-head,
.pnv .pdf-preview-head {
  min-height: 56px;
  padding: 10px 14px;
  border-bottom: 1px solid #e6e6e6;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.messe-und-orte .pdf-preview-title,
.pnv .pdf-preview-title {
  margin: 0;
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.28px;
  line-height: 21px;
}

.messe-und-orte .pdf-preview-actions,
.pnv .pdf-preview-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.messe-und-orte .pdf-open-new-tab,
.messe-und-orte .pdf-preview-close,
.pnv .pdf-open-new-tab,
.pnv .pdf-preview-close {
  border: 0;
  border-radius: 10px;
  padding: 8px 10px;
  background: #f3f3f3;
  color: var(--text);
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.2px;
  line-height: 1;
  cursor: pointer;
}

.messe-und-orte .pdf-open-new-tab,
.pnv .pdf-open-new-tab {
  text-decoration: none;
}

.messe-und-orte .pdf-preview-frame,
.pnv .pdf-preview-frame {
  width: 100%;
  height: 100%;
  border: 0;
  flex: 1;
}

@media (max-width: 620px) {
  .messe-und-orte .button {
    left: 12px;
  }

  .messe-und-orte .button,
  .messe-und-orte .text-wrapper-2 {
    font-size: 14px;
  }

  .messe-und-orte .icon {
    width: 16px;
    height: 16px;
  }

  .messe-und-orte .frame {
    width: 64px;
  }

  .messe-und-orte .messe-orte {
    font-size: var(--header);
  }

  .messe-und-orte .pdf-button {
    min-height: 70px;
    border-radius: 14px;
    padding: 12px 14px;
  }

  .messe-und-orte .text-wrapper {
    font-size: 14px;
  }

  .messe-und-orte .div {
    font-size: 24px;
  }

  .messe-und-orte .pdf-preview-overlay,
  .pnv .pdf-preview-overlay {
    padding: 10px;
  }

  .messe-und-orte .pdf-preview,
  .pnv .pdf-preview {
    height: 92vh;
    border-radius: 12px;
  }

  .messe-und-orte .pdf-preview-head,
  .pnv .pdf-preview-head {
    min-height: 52px;
    padding: 8px 10px;
  }
}

/* OePNV page */
.pnv {
  min-height: 100vh;
  background: var(--bg);
  color: var(--text);
}

.pnv .app {
  position: sticky;
  top: 0;
  z-index: 2;
  width: 100%;
  background: var(--white);
  border-radius: 0 0 16px 16px;
}

.pnv .container {
  width: 480px;
  max-width: calc(100% - 32px);
  margin: 0 auto;
  padding: 0 0 10px;
}

.pnv .container-2 {
  position: relative;
  height: 112px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.pnv .button {
  position: absolute;
  left: calc(50% - 152px);
  top: 50%;
  transform: translateY(-50%);
  border: 0;
  background: transparent;
  color: var(--green);
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  padding: 0;
}

.pnv .icon {
  width: 16px;
  height: 16px;
}

.pnv .text-wrapper-2 {
  font-size: 14px;
  line-height: 1;
  letter-spacing: 0.28px;
}

.pnv .frame {
  width: 64px;
  height: auto;
}

.pnv .subpage {
  margin-top: 0;
  border-left: 5px solid var(--green);
  padding-left: 12px;
}

.pnv .page-title {
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: var(--header);
  font-weight: 700;
  letter-spacing: 0.32px;
  line-height: 24px;
}

.pnv .pnv-content {
  width: 480px;
  max-width: calc(100% - 32px);
  margin: 12px auto 0;
  display: flex;
  flex-direction: column;
  gap: var(--container-gap);
  padding-bottom: 24px;
}

.pnv .pnv-card {
  background: var(--white);
  border-radius: 12px;
  padding: 10px 12px;
}

.pnv .pnv-card h2 {
  margin: 0 0 var(--margin-header-bottom);
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.2px;
  line-height: 24px;
}

.pnv .pnv-card p,
.pnv .pnv-card li {
  margin: 0;
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.45;
}

.pnv .pnv-card p + p {
  margin-top: 6px;
}

.pnv .pnv-warning {
  font-weight: 700;
}

.pnv .pnv-metro-link {
  margin-top: 8px;
  min-height: 48px;
  border: 1.5px solid var(--green);
  border-radius: 12px;
  background: #f3f3f3;
  color: inherit;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: left;
  padding: 0 12px;
  gap: 12px;
}

.pnv .pnv-metro-link-label {
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.28px;
  line-height: 21px;
}

.pnv .pnv-metro-link-arrow {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
}

body.dark-mode .pnv .pnv-metro-link {
  background: #141414;
}

.pnv .pnv-card ul {
  margin: 0;
  padding-left: 1.2em;
  list-style: disc;
}

.pnv .pnv-card li {
  padding-left: 0.2em;
}

.pnv .pnv-card li + li {
  margin-top: 6px;
}

.pnv .pnv-card li::marker {
  color: #000000;
  font-weight: 700;
}

@media (max-width: 620px) {
  .pnv .button {
    left: 12px;
  }

  .pnv .pnv-content {
    margin-top: var(--container-gap);
    gap: var(--container-gap);
  }

  .pnv .pnv-card {
    padding: 10px;
  }

  .pnv .pnv-metro-link {
    min-height: 48px;
    padding: 0 10px;
  }
}

/* Packliste page */
.packliste {
  min-height: 100vh;
  background: var(--bg);
  color: var(--text);
}

.packliste .app {
  position: sticky;
  top: 0;
  z-index: 2;
  width: 100%;
  background: var(--white);
  border-radius: 0 0 16px 16px;
}

.packliste .container {
  width: 480px;
  max-width: calc(100% - 32px);
  margin: 0 auto;
  padding: 0 0 10px;
}

.packliste .container-2 {
  position: relative;
  height: 112px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.packliste .button {
  position: absolute;
  left: calc(50% - 152px);
  top: 50%;
  transform: translateY(-50%);
  border: 0;
  background: transparent;
  color: var(--green);
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  padding: 0;
}

.packliste .icon {
  width: 16px;
  height: 16px;
}

.packliste .text-wrapper-2 {
  font-size: 14px;
  line-height: 1;
  letter-spacing: 0.28px;
}

.packliste .frame {
  width: 64px;
  height: auto;
}

.packliste .subpage {
  margin-top: 0;
  border-left: 5px solid var(--green);
  padding-left: 12px;
}

.packliste .page-title {
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: var(--header);
  font-weight: 700;
  letter-spacing: 0.32px;
  line-height: 24px;
}

.packliste .packliste-content {
  width: 480px;
  max-width: calc(100% - 32px);
  margin: 12px auto 0;
  display: flex;
  flex-direction: column;
  gap: var(--container-gap);
  padding-bottom: 24px;
}

.packliste .packliste-card {
  background: var(--white);
  border-radius: 12px;
  padding: 10px 12px;
}

.packliste .packliste-card h2 {
  margin: 0 0 var(--margin-header-bottom);
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.2px;
  line-height: 1.1;
}

.packliste .packliste-card ul {
  margin: 0;
  padding-left: 1.2em;
  list-style: disc;
}

.packliste .packliste-card li {
  margin: 0;
  padding-left: 0.2em;
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.45;
}

.packliste .packliste-card li + li {
  margin-top: 6px;
}

.packliste .packliste-card li::marker {
  color: #000000;
  font-weight: 700;
}

@media (max-width: 620px) {
  .packliste .button {
    left: 12px;
  }

  .packliste .packliste-content {
    margin-top: var(--container-gap);
    gap: var(--container-gap);
  }

  .packliste .packliste-card {
    padding: 10px;
  }

  .packliste .packliste-card h2 {
    font-size: 16px;
  }
}

/* Sicherheit page */
.sicherheit {
  min-height: 100vh;
  background: var(--bg);
  color: var(--text);
}

.sicherheit .app {
  position: sticky;
  top: 0;
  z-index: 2;
  width: 100%;
  background: var(--white);
  border-radius: 0 0 16px 16px;
}

.sicherheit .container {
  width: 480px;
  max-width: calc(100% - 32px);
  margin: 0 auto;
  padding: 0 0 10px;
}

.sicherheit .container-2 {
  position: relative;
  height: 112px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.sicherheit .button {
  position: absolute;
  left: calc(50% - 152px);
  top: 50%;
  transform: translateY(-50%);
  border: 0;
  background: transparent;
  color: var(--green);
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  padding: 0;
}

.sicherheit .icon {
  width: 16px;
  height: 16px;
}

.sicherheit .text-wrapper-2 {
  font-size: 14px;
  line-height: 1;
  letter-spacing: 0.28px;
}

.sicherheit .frame {
  width: 64px;
  height: auto;
}

.sicherheit .subpage {
  margin-top: 0;
  border-left: 5px solid var(--green);
  padding-left: 12px;
}

.sicherheit .page-title {
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: var(--header);
  font-weight: 700;
  letter-spacing: 0.32px;
  line-height: 24px;
}

.sicherheit .sicherheit-content {
  width: 480px;
  max-width: calc(100% - 32px);
  margin: 12px auto 0;
  display: flex;
  flex-direction: column;
  gap: var(--container-gap);
  padding-bottom: 24px;
}

.sicherheit .sicherheit-alert {
  background: #000000;
  color: #ffffff;
  border-left: 5px solid var(--green);
  border-radius: 12px;
  padding: 10px 12px;
}

.sicherheit .sicherheit-alert h2 {
  margin: 0 0 var(--container-gap);
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.2;
}

.sicherheit .sicherheit-alert p {
  margin: 0;
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
}

.sicherheit .sicherheit-alert .alert-lead {
  margin-bottom: 2px;
}

.sicherheit .sicherheit-card {
  background: var(--white);
  border-radius: 12px;
  padding: 10px 12px;
}

.sicherheit .sicherheit-card h2 {
  margin: 0 0 var(--container-gap);
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.2px;
  line-height: 1.1;
}

.sicherheit .sicherheit-card p,
.sicherheit .sicherheit-card li {
  margin: 0;
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.45;
}

.sicherheit .sicherheit-card ul {
  margin: 0;
  padding-left: 1.2em;
  list-style: disc;
}

.sicherheit .sicherheit-card li + li {
  margin-top: 6px;
}

.sicherheit .sicherheit-card li {
  padding-left: 0.2em;
}

.sicherheit .sicherheit-card li::marker {
  color: #000000;
  font-weight: 700;
}

body.dark-mode .sicherheit .sicherheit-alert {
  background: #ffffff;
  color: #000000;
}

@media (max-width: 620px) {
  .sicherheit .button {
    left: 12px;
  }

  .sicherheit .sicherheit-content {
    margin-top: var(--container-gap);
    gap: var(--container-gap);
  }

  .sicherheit .sicherheit-alert,
  .sicherheit .sicherheit-card {
    padding: 10px;
  }
}

/* Notfaelle page */
.notfaelle {
  min-height: 100vh;
  background: var(--bg);
  color: var(--text);
}

.notfaelle .app {
  position: sticky;
  top: 0;
  z-index: 2;
  width: 100%;
  background: var(--white);
  border-radius: 0 0 16px 16px;
}

.notfaelle .container {
  width: 480px;
  max-width: calc(100% - 32px);
  margin: 0 auto;
  padding: 0 0 10px;
}

.notfaelle .container-2 {
  position: relative;
  height: 112px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.notfaelle .button {
  position: absolute;
  left: calc(50% - 152px);
  top: 50%;
  transform: translateY(-50%);
  border: 0;
  background: transparent;
  color: var(--green);
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  padding: 0;
}

.notfaelle .icon {
  width: 16px;
  height: 16px;
}

.notfaelle .text-wrapper-2 {
  font-size: 14px;
  line-height: 1;
  letter-spacing: 0.28px;
}

.notfaelle .frame {
  width: 64px;
  height: auto;
}

.notfaelle .subpage {
  margin-top: 0;
  border-left: 5px solid var(--green);
  padding-left: 12px;
}

.notfaelle .page-title {
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: var(--header);
  font-weight: 700;
  letter-spacing: 0.32px;
  line-height: 24px;
}

.notfaelle .notfaelle-content {
  width: 480px;
  max-width: calc(100% - 32px);
  margin: 12px auto 0;
  display: flex;
  flex-direction: column;
  gap: var(--container-gap);
  padding-bottom: 24px;
}

.notfaelle .notfaelle-alert {
  background: #000000;
  color: #ffffff;
  border-left: 5px solid var(--green);
  border-radius: 16px;
  padding: 12px 14px;
}

.notfaelle .notfaelle-alert h2 {
  margin: 0 0 var(--margin-header-bottom);
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.2;
}

.notfaelle .notfaelle-alert p {
  margin: 0;
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
}

.notfaelle .notfaelle-alert p + p {
  margin-top: 2px;
}

.notfaelle .notfaelle-card {
  background: var(--white);
  border-radius: 16px;
  padding: 12px 14px;
}

.notfaelle .notfaelle-card h2 {
  margin: 0 0 var(--margin-header-bottom);
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.2;
}

.notfaelle .notfaelle-card p {
  margin: 0;
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.45;
}

.notfaelle .notfaelle-card p + p {
  margin-top: 2px;
}

.notfaelle .slack-channel-link {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}

body.dark-mode .notfaelle .notfaelle-alert {
  background: #ffffff;
  color: #000000;
}

@media (max-width: 620px) {
  .notfaelle .button {
    left: 12px;
  }

  .notfaelle .notfaelle-content {
    margin-top: var(--container-gap);
    gap: var(--container-gap);
  }

  .notfaelle .notfaelle-alert,
  .notfaelle .notfaelle-card {
    border-radius: 12px;
    padding: 10px;
  }
}

/* Day page (shared for all weekday pages with the same structure) */
:is(.day-page, .montag, .dienstag, .mittwoch, .donnerstag, .freitag, .samstag, .sonntag) {
  min-height: 100vh;
  background: var(--bg);
  color: var(--text);
}

:is(.day-page, .montag, .dienstag, .mittwoch, .donnerstag, .freitag, .samstag, .sonntag) .app {
  position: sticky;
  top: 0;
  z-index: 2;
  width: 100%;
  background: var(--white);
  border-radius: 0 0 16px 16px;
}

:is(.day-page, .montag, .dienstag, .mittwoch, .donnerstag, .freitag, .samstag, .sonntag) .container {
  width: 480px;
  max-width: calc(100% - 32px);
  margin: 0 auto;
  padding: 0 0 10px;
}

:is(.day-page, .montag, .dienstag, .mittwoch, .donnerstag, .freitag, .samstag, .sonntag) .container-2 {
  position: relative;
  height: 112px;
  display: flex;
  align-items: center;
  justify-content: center;
}

:is(.day-page, .montag, .dienstag, .mittwoch, .donnerstag, .freitag, .samstag, .sonntag) .button {
  position: absolute;
  left: calc(50% - 152px);
  top: 50%;
  transform: translateY(-50%);
  border: 0;
  background: transparent;
  color: var(--green);
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  padding: 0;
}

:is(.day-page, .montag, .dienstag, .mittwoch, .donnerstag, .freitag, .samstag, .sonntag) .icon {
  width: 16px;
  height: 16px;
}

:is(.day-page, .montag, .dienstag, .mittwoch, .donnerstag, .freitag, .samstag, .sonntag) .text-wrapper-2 {
  font-size: 14px;
  line-height: 1;
  letter-spacing: 0.28px;
}

:is(.day-page, .montag, .dienstag, .mittwoch, .donnerstag, .freitag, .samstag, .sonntag) .frame {
  width: 64px;
  height: auto;
}

:is(.day-page, .montag, .dienstag, .mittwoch, .donnerstag, .freitag, .samstag, .sonntag) .subpage {
  margin-top: 0;
  border-left: 5px solid var(--green);
  padding-left: 12px;
}

:is(.day-page, .montag, .dienstag, .mittwoch, .donnerstag, .freitag, .samstag, .sonntag) .page-title {
  margin: 0;
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: var(--header);
  font-weight: 700;
  letter-spacing: 0.32px;
  line-height: 24px;
}

.day-fallback-note {
  width: 480px;
  max-width: calc(100% - 32px);
  margin: 8px auto 0;
  text-align: center;
  font-size: 12px;
  line-height: 1.4;
  color: #9b9b9b;
}

:is(.day-page, .montag, .dienstag, .mittwoch, .donnerstag, .freitag, .samstag, .sonntag) > [class$="-content"] {
  width: 480px;
  max-width: calc(100% - 32px);
  margin: 16px auto 0;
  display: flex;
  flex-direction: column;
  gap: var(--container-gap);
  padding-bottom: 134px;
}

:is(.day-page, .montag, .dienstag, .mittwoch, .donnerstag, .freitag, .samstag, .sonntag) [class$="-card"] {
  background: var(--white);
  border-radius: 12px;
  padding: 10px 12px;
}

:is(.day-page, .montag, .dienstag, .mittwoch, .donnerstag, .freitag, .samstag, .sonntag) [class$="-line"] {
  margin: 0;
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 21px;
}

:is(.day-page, .montag, .dienstag, .mittwoch, .donnerstag, .freitag, .samstag, .sonntag) [class$="-time"] {
  color: var(--green);
}

:is(.day-page, .montag, .dienstag, .mittwoch, .donnerstag, .freitag, .samstag, .sonntag) [class$="-detail"] {
  margin: 6px 0 0;
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.45;
  color: #6f6f6f;
}

:is(.day-page, .montag, .dienstag, .mittwoch, .donnerstag, .freitag, .samstag, .sonntag) [class$="-card-info"] [class$="-detail"] {
  margin-top: 0;
}

.day-footer {
  position: fixed;
  left: 50%;
  bottom: calc(16px + env(safe-area-inset-bottom));
  transform: translateX(-50%);
  z-index: 6;
  width: 480px;
  max-width: calc(100% - 32px);
  margin: 0;
  padding-bottom: 0;
}

.day-footer-inner {
  width: 100%;
  min-height: 86px;
  border: 0;
  border-radius: 12px;
  background: var(--white);
  box-shadow: 0 -3px 12px rgba(0, 0, 0, 0.24), 0 6px 6px rgba(0, 0, 0, 0.12);
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 0 14px;
}

.day-footer--single-next .day-footer-inner {
  justify-content: flex-end;
}

.day-footer--single-prev .day-footer-inner {
  justify-content: flex-start;
}

.day-footer--dual .day-footer-inner {
  justify-content: space-between;
}

.day-footer-link {
  border: 0;
  background: transparent;
  color: var(--green);
  font-family: "Atlas Grotesk", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 21px;
  letter-spacing: 0.28px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  cursor: pointer;
  padding: 0;
}

.day-footer-link img {
  width: 16px;
  height: 16px;
}

.day-footer-link--prev img {
  transform: rotate(180deg);
}

body.dark-mode .day-footer-inner {
  box-shadow: 0 -4px 10px rgba(255, 255, 255, 0.14), 0 6px 6px rgba(255, 255, 255, 0.08);
}

@media (max-width: 620px) {
  :is(.day-page, .montag, .dienstag, .mittwoch, .donnerstag, .freitag, .samstag, .sonntag) .button {
    left: 12px;
  }

  :is(.day-page, .montag, .dienstag, .mittwoch, .donnerstag, .freitag, .samstag, .sonntag) .page-title {
    font-size: var(--header);
    line-height: 24px;
  }

  :is(.day-page, .montag, .dienstag, .mittwoch, .donnerstag, .freitag, .samstag, .sonntag) > [class$="-content"] {
    margin-top: 10px;
    gap: var(--container-gap);
    padding-bottom: 104px;
  }

  .day-footer {
    bottom: calc(12px + env(safe-area-inset-bottom));
  }

  .day-footer-inner {
    min-height: 70px;
  }
}

