
    :host {
      display: block;
      font-family: 'DM Sans', sans-serif;
      color: #1A1A1A;
    }
    .symbol {
      width: 64px; height: 64px;
      border-radius: 50%;
      background: #003366;
      display: flex; align-items: center; justify-content: center;
      margin: 0 auto 1rem;
      animation: pop .4s cubic-bezier(.17,.67,.3,1.35);
    }
    @keyframes pop { 0% { transform: scale(0); } 100% { transform: scale(1); } }
    .symbol svg { width: 32px; height: 32px; }
    .titel {
      font-family: 'DM Serif Display', serif;
      font-size: 1.5rem;
      color: #002440;
      margin-bottom: .35rem;
      text-align: center;
    }
    .nachricht {
      color: #6B7280;
      font-size: .92rem;
      text-align: center;
      max-width: 440px;
      margin: 0 auto 1.75rem;
      line-height: 1.6;
    }
    .abschnitt-bezeichnung {
      font-size: .7rem;
      text-transform: uppercase;
      letter-spacing: .06em;
      font-weight: 700;
      color: #6B7280;
      margin-bottom: .6rem;
      margin-top: 1.5rem;
    }
    .info-gitter {
      display: flex;
      flex-direction: column;
      gap: .45rem;
      background: #F6F4F0;
      border-radius: 10px;
      padding: 1rem 1.25rem;
    }
    .info-zeile {
      display: flex;
      align-items: baseline;
      gap: .75rem;
      font-size: .92rem;
      line-height: 1.5;
    }
    .info-bezeichnung {
      flex: 0 0 130px;
      font-weight: 600;
      color: #6B7280;
      font-size: .8rem;
      text-transform: uppercase;
      letter-spacing: .04em;
    }
    .info-wert {
      flex: 1;
      color: #1A1A1A;
      word-break: break-word;
    }
    .termin-liste {
      display: flex;
      flex-direction: column;
      gap: .65rem;
      margin-bottom: 1.5rem;
    }
    .termin-karte {
      display: flex;
      align-items: center;
      justify-content: space-between;
      background: #F6F4F0;
      border-radius: 10px;
      padding: 1rem 1.25rem;
      gap: 1rem;
    }
    .termin-info { flex: 1; }
    .termin-typ {
      font-size: .7rem;
      text-transform: uppercase;
      letter-spacing: .05em;
      font-weight: 700;
      color: #002440;
      margin-bottom: .2rem;
    }
    .termin-wert {
      font-weight: 600;
      font-size: .95rem;
      color: #1A1A1A;
    }
    .termin-zeit {
      font-size: .82rem;
      color: #6B7280;
      margin-top: .15rem;
    }
    .btn-ics {
      display: inline-flex;
      align-items: center;
      gap: .4rem;
      font-family: 'DM Sans', sans-serif;
      font-size: .78rem;
      font-weight: 600;
      padding: .5rem 1rem;
      border-radius: 10px;
      border: 1.5px solid #002440;
      background: #002440;
      color: #fff;
      cursor: pointer;
      transition: .25s ease;
      white-space: nowrap;
    }
    .btn-ics:hover { background: #003366; }
    .btn-ics svg { width: 14px; height: 14px; }
    .aktionen {
      display: flex;
      justify-content: center;
      gap: .75rem;
      flex-wrap: wrap;
      margin-top: 1.5rem;
    }
    .btn-aktion {
      display: inline-flex;
      align-items: center;
      gap: .45rem;
      font-family: 'DM Sans', sans-serif;
      font-size: .85rem;
      font-weight: 600;
      padding: .6rem 1.25rem;
      border-radius: 10px;
      border: 1.5px solid #D6D3CD;
      background: #fff;
      color: #1A1A1A;
      cursor: pointer;
      transition: .25s ease;
    }
    .btn-aktion:hover { border-color: #002440; color: #002440; }
    .btn-aktion svg { width: 16px; height: 16px; }
    @media print {
      .btn-ics, .aktionen { display: none !important; }
      .termin-karte { break-inside: avoid; }
      .symbol { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
    }
  
