.modal {
  position: fixed;
  inset: 0;
  z-index: 99999999;
  display: none;
  justify-content: center;
  align-items: center;
}
.modal.active {
  display: flex;
}
.modal.active .modal-overlay {
  opacity: 1;
}
.modal.active .modal-content {
  transform: translateY(0);
  opacity: 1;
}
.modal .modal-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(3px);
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.3s ease;
}
@media (prefers-reduced-motion: reduce) {
  .modal .modal-overlay {
    transition: none;
  }
}
.modal .modal-content {
  position: relative;
  z-index: 1;
  background: rgba(0, 0, 0, 0);
  border-radius: 12px;
  padding: 0;
  max-width: 90%;
  width: 1200px;
  height: 90vh;
  display: flex;
  color: #111;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
  transform: translateY(20px);
  opacity: 0;
  transition: all 0.35s ease;
}
@media (max-width: 480px) {
  .modal .modal-content {
    width: 90%;
    padding: 1.25rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .modal .modal-content {
    transition: none;
  }
}
.modal .modal-content .modal-body {
  height: 100%;
  display: flex;
  flex-direction: column;
  margin-top: 0;
  padding: 0;
  text-align: center;
  border-radius: 12px;
}
.modal .modal-content .modal-body .container-img {
  width: 90px;
  height: 90px;
  position: absolute;
  top: 10px;
  left: 30px;
  display: flex;
  justify-content: center;
  align-items: center;
  background: #fff;
  border-radius: 50%;
  z-index: 99;
}
.modal .modal-content .modal-body .container-img img {
  width: 100%;
}
.modal .modal-content .modal-body .container-concierge {
  width: 100%;
  overflow: hidden;
  display: flex;
  flex: 1;
  border-radius: 12px;
}
.modal .modal-content .modal-body .container-concierge .concierge-chat-widget {
  width: 100%;
  height: 100%;
  border-radius: 12px;
}
.modal .modal-content .modal-body .container-concierge .concierge-chat-widget .aic-app-container {
  border-radius: 12px;
}
.modal .modal-content .modal-body .container-concierge .concierge-chat-widget .aic-app-container .aic-app-header {
  padding-left: 100px !important;
  border-top-right-radius: 12px;
  border-top-left-radius: 12px;
}
.modal .modal-content .modal-body .container-concierge .concierge-chat-widget .aic-app-container .aic-app-header h1 {
  font-size: 26px !important;
  text-align: center !important;
  line-height: 1.2em !important;
  color: #303030 !important;
  margin: 0 !important;
  padding: 1.5em 0 !important;
}
.modal .modal-content .modal-body .container-concierge .concierge-chat-widget .aic-app-container .aic-app-header .aic-header-controls {
  position: absolute;
  top: 10px;
  right: 10px;
}
.modal .modal-content .modal-body .container-concierge .concierge-chat-widget .aic-app-container .aic-app-header .aic-header-controls .aic-menu-controls .aic-burger-button svg {
  fill: #303030 !important;
}
.modal .modal-content .modal-body .container-concierge .concierge-chat-widget .aic-app-container .aic-app-header .aic-header-controls .aic-menu-controls .aic-close-widget-button {
  display: none !important;
}
.modal .modal-content .modal-body .container-concierge .concierge-chat-widget .aic-app-container .aic-disclaimer {
  border-bottom-right-radius: 12px;
  border-bottom-left-radius: 12px;
}
.modal .modal-content .modal-body .container-concierge .concierge-chat-widget .aic-app-container .aic-disclaimer .aic-disclaimer-link {
  color: rgba(85, 60, 76, 0.7) !important;
}
.modal .modal-content .modal-body .container-concierge .concierge-chat-widget .aic-app-container .aic-disclaimer .aic-disclaimer-link:focus, .modal .modal-content .modal-body .container-concierge .concierge-chat-widget .aic-app-container .aic-disclaimer .aic-disclaimer-link:hover {
  color: #303030 !important;
}
.modal .modal-close {
  position: absolute;
  top: 0.4rem;
  right: 0.8rem;
  background: transparent;
  border: none;
  color: #555;
  font-size: 1.8rem;
  line-height: 1;
  cursor: pointer;
  transition: color 0.2s;
}
.modal .modal-close:focus, .modal .modal-close:hover {
  color: #000;
}

#chat-widget-container.open {
  z-index: 999999999 !important;
}

.container-concierge-trigger {
  position: fixed;
  right: max(12px, env(safe-area-inset-right));
  bottom: max(12px, env(safe-area-inset-bottom));
  width: 140px;
  height: 120px;
  z-index: 9999;
  /* optionales Feintuning: */
  -webkit-tap-highlight-color: transparent;
}
.container-concierge-trigger .bubble {
  position: absolute;
  top: 0;
  left: 0;
  transform: translate(-90%, -60%);
  background: #e8e6e6;
  padding: 10px;
  border-radius: 5px;
}
.container-concierge-trigger .bubble .container-text p {
  margin-bottom: 0;
  line-height: 1.2em;
}
.container-concierge-trigger > img {

}
.container-concierge-trigger .concierge-hit {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  outline: 0;
  padding: 0;
  margin: 0;
  cursor: pointer;
}
.container-concierge-trigger .btn-scale {
  position: absolute;
  top: 0;
  right: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  outline: 0;
  padding: 0;
  margin: 0;
  line-height: 1;
  cursor: pointer;
}

:root {
  /* Typography */
  --font-family-base: 'IBM Plex Sans', sans-serif;
  --line-height-base: 1.5;
  --font-weight-normal: 400;

  /* Font Sizes */
  --font-size-base-small: 0.875rem;
  --font-size-base: 1rem;
  --font-size-base-big: 1.125rem;

  /* Header */
  --header-title-align: left;
  --header-padding: 0.8em 1.2em;

  /* Chat Bubble */
  --chat-bubble-radius: 1.25em;
  --chat-bubble-radius-user-bottom-right: 0.3em;
  --chat-bubble-radius-assistant-bottom-left: 0.3em;
  --chat-bubble-padding: 0.8em 1.2em;
  --chat-bubble-max-width: 80%;

  /* Avatar */
  --avatar-user-path: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxjaXJjbGUgY3g9IjIwIiBjeT0iMjAiIHI9IjE5IiBmaWxsPSIjNzhCRTQ4IiBzdHJva2U9InJnYmEoMTIwLCAxOTAsIDcyLCAwLjUpIiBzdHJva2Utd2lkdGg9IjIiLz4KICAgIDxwYXRoIGQ9Ik0yMCAxMEMxNy4yMzg2IDEwIDE1IDEyLjIzODYgMTUgMTVDMTUgMTcuNzYxNCAxNy4yMzg2IDIwIDIwIDIwQzIyLjc2MTQgMjAgMjUgMTcuNzYxNCAyNSAxNUMyNSAxMi4yMzg2IDIyLjc2MTQgMTAgMjAgMTBaIiBmaWxsPSIjRkZGRkZGIi8+CiAgICA8cGF0aCBkPSJNMjggMzBDMjggMjUuNTgxNyAyNC40MTgzIDIyIDIwIDIyQzE1LjU4MTcgMjIgMTIgMjUuNTgxNyAxMiAzMCIgc3Ryb2tlPSIjRkZGRkZGIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8L3N2Zz4=");
  --avatar-assistant-path: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxjaXJjbGUgY3g9IjIwIiBjeT0iMjAiIHI9IjE5IiBmaWxsPSJyZ2JhKDYwLCA2MCwgNjAsIDEpIiBzdHJva2U9InJnYmEoMTIwLCAxOTAsIDcyLCAwLjUpIiBzdHJva2Utd2lkdGg9IjIiLz4KICAgIDxwYXRoIGQ9Ik0yMCAxMUMxNi4xMzQgMTEgMTMgMTQuMTM0IDEzIDE4QzEzIDIxLjg2NiAxNi4xMzQgMjUgMjAgMjVDMjMuODY2IDI1IDI3IDIxLjg2NiAyNyAxOEMyNyAxNC4xMzQgMjMuODY2IDExIDIwIDExWk0yMCAxM0MyMi43NjE0IDEzIDI1IDE1LjIzODYgMjUgMThDMjUgMjAuNzYxNCAyMi43NjE0IDIzIDIwIDIzQzE3LjIzODYgMjMgMTUgMjAuNzYxNCAxNSAxOEMxNSAxNS4yMzg2IDE3LjIzODYgMTMgMjAgMTNaIiBmaWxsPSJyZ2JhKDEyMCwgMTkwLCA3MiwgMC45KSIvPgogICAgPHBhdGggZD0iTTE3IDE3LjVDMTcgMTguMzI4NCAxNy42NzE2IDE5IDE4LjUgMTlDMTkuMzI4NCAxOSAyMCAxOC4zMjg0IDIwIDE3LjVDMjAgMTYuNjcxNiAxOS4zMjg0IDE2IDE4LjUgMTZDMTcuNjcxNiAxNiAxNyAxNi42NzE2IDE3IDE3LjVaIiBmaWxsPSJyZ2JhKDEyMCwgMTkwLCA3MiwgMC45KSIvPgogICAgPHBhdGggZD0iTTIwIDE3LjVDMjAgMTguMzI4NCAyMC42NzE2IDE5IDIxLjUgMTlDMjIuMzI4NCAxOSAyMyAxOC4zMjg0IDIzIDE3LjVDMjMgMTYuNjcxNiAyMi4zMjg0IDE2IDIxLjUgMTZDMjAuNjcxNiAxNiAyMCAxNi42NzE2IDIwIDE3LjVaIiBmaWxsPSJyZ2JhKDEyMCwgMTkwLCA3MiwgMC45KSIvPgogICAgPHBhdGggZD0iTTE2IDI4QzE2IDI2LjM0MzEgMTcuMzQzMSAyNSAxOSAyNUgyMUMyMi42NTY5IDI1IDI0IDI2LjM0MzEgMjQgMjgiIHN0cm9rZT0icmdiYSgxMjAsIDE5MCwgNzIsIDAuOSkiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPg==");
  --avatar-size: 2.2em;
  --avatar-margin: 0.6em;
  --avatar-user-bottom: 16px;
  --avatar-assistant-bottom: 22px;
  --chat-bubble-align: flex-start;

  /* Input Container */
  --input-container-size: 1.2em;

}

/* Light Theme (default) */
[data-theme="light"] {
  /* Global Colors */
  --color-text-main: rgba(51, 51, 51, 1);
  --color-text-placeholder: rgba(102, 102, 102, 1);
  --color-border: rgba(120, 190, 72, 0.2);
  --color-box-shadow-light: rgba(120, 190, 72, 0.1);

  /* Header */
  --color-header-bg: rgba(120, 190, 72, 1);
  --color-header-title-text: rgba(255, 255, 255, 1);

  /* Chat Container */
  --color-chat-background: rgba(248, 248, 248, 1);

  /* Chat Bubbles */
  --color-user-bubble-bg: rgba(120, 190, 72, 1);
  --color-user-bubble-text: rgba(255, 255, 255, 1);
  --color-server-bubble-bg: rgba(255, 255, 255, 1);
  --color-server-bubble-text: rgba(51, 51, 51, 1);
  --color-timestamp: rgba(150, 150, 150, 1);
  --color-teaser-bubble-bg: rgba(100, 170, 52, 1);
  --color-teaser-bubble-text: rgba(255, 255, 255, 1);

  /* Loading Dots */
  --color-loading-dot: rgba(150, 150, 150, 1);

  /* Burger Menu */
  --burger-menu-bg: rgba(255, 255, 255, 0.98);
  --burger-menu-text: rgba(51, 51, 51, 1);
  --burger-menu-hover-bg: rgba(120, 190, 72, 0.1);
  --burger-menu-warning-text: rgba(220, 53, 69, 1);
  --burger-menu-warning-bg: rgba(220, 53, 69, 0.1);
  --burger-menu-thumb-bg: rgba(120, 190, 72, 1);

  /* Inputs */
  --color-input-bg: rgba(255, 255, 255, 1);
  --color-input-border: rgba(120, 190, 72, 0.25);
  --color-input-placeholder: rgba(150, 150, 150, 1);
  --color-input-container-bg: rgba(240, 240, 240, 1);

  /* Buttons */
  --color-button-bg: rgba(120, 190, 72, 1);
  --color-button-text: rgba(255, 255, 255, 1);
  --color-button-hover-shadow: rgba(120, 190, 72, 0.4);

  /* Image Component */
  --color-image-loading-bg: rgba(240, 240, 240, 1);
  --color-image-caption-text: rgba(102, 102, 102, 1);
  --color-image-caption-border: rgba(220, 220, 220, 1);

  /* Disclaimer Bar */
  --color-disclaimer-inner-shadow: rgba(120, 190, 72, 0.1);
  --color-disclaimer-bg: rgba(245, 245, 245, 1);
  --color-disclaimer-text: rgba(120, 120, 120, 1);

  /* Markdown */
  --color-markdown-link: rgba(120, 190, 72, 1);
  --color-markdown-link-hover: rgba(100, 170, 52, 1);
  --color-blockquote-border: rgba(120, 190, 72, 0.7);
  --color-blockquote-bg: rgba(120, 190, 72, 0.05);
  --color-table-border: rgba(120, 190, 72, 0.2);
  --color-table-header-bg: rgba(120, 190, 72, 0.1);
  --color-markdown-code-container-bg: rgba(245, 245, 245, 1);

  /* AIConcierge Deep Link Pills */
  --color-aiconcierge-pill-bg: rgba(240, 240, 240, 1);
  --color-aiconcierge-pill-hover-bg: rgba(230, 230, 230, 1);
  --color-aiconcierge-pill-border: rgba(120, 190, 72, 0.2);

  /* Carousel */
  --color-carousel-item-bg: rgba(255, 255, 255, 1);
  --color-carousel-item-shadow: rgba(0, 0, 0, 0.1);
  --color-carousel-item-title: rgba(51, 51, 51, 1);
  --color-carousel-item-subtitle: rgba(102, 102, 102, 1);
  --color-carousel-item-button: rgba(120, 190, 72, 1);
  --color-carousel-item-button-hover-bg: rgba(120, 190, 72, 0.1);
  --color-carousel-nav-bg: rgba(255, 255, 255, 1);
  --color-carousel-nav-border: rgba(220, 220, 220, 1);
  --color-carousel-nav-shadow: rgba(0, 0, 0, 0.1);
  --color-carousel-nav-color: rgba(102, 102, 102, 1);
  --color-carousel-nav-hover-bg: rgba(245, 245, 245, 1);
  --color-carousel-nav-hover-shadow: rgba(0, 0, 0, 0.15);
  --color-carousel-nav-hover-color: rgba(51, 51, 51, 1);
  --color-carousel-item-border: rgba(230, 230, 230, 1);

  /* Feedback Form */
  --color-feedback-input-border: rgba(220, 220, 220, 1);
  --color-feedback-input-border-focus: rgba(120, 190, 72, 1);
  --color-feedback-input-border-invalid: rgba(220, 53, 69, 1);
  --color-feedback-submit-bg: rgba(120, 190, 72, 1);
  --color-feedback-submit-bg-hover: rgba(100, 170, 52, 1);
  --color-feedback-submit-text: rgba(255, 255, 255, 1);
  --color-feedback-message-text: rgba(102, 102, 102, 1);
  --color-feedback-confirmation-text: rgba(40, 167, 69, 1);

  /* Error Message */
  --color-error: rgba(220, 53, 69, 1);
  --color-error-background: rgba(220, 53, 69, 0.1);

}

/* Dark Theme */
[data-theme="dark"] {
  /* Global Colors */
  --color-text-main: rgba(245, 245, 245, 1);
  --color-text-placeholder: rgba(170, 170, 170, 1);
  --color-border: rgba(120, 190, 72, 0.2);
  --color-box-shadow-light: rgba(120, 190, 72, 0.15);

  /* Header */
  --color-header-bg: rgba(80, 135, 45, 1);
  --color-header-title-text: rgba(255, 255, 255, 1);

  /* Chat Container */
  --color-chat-background: rgba(40, 40, 40, 1);

  /* Chat Bubbles */
  --color-user-bubble-bg: rgba(120, 190, 72, 0.9);
  --color-user-bubble-text: rgba(255, 255, 255, 1);
  --color-server-bubble-bg: rgba(60, 60, 60, 1);
  --color-server-bubble-text: rgba(245, 245, 245, 1);
  --color-timestamp: rgba(180, 180, 180, 1);
  --color-teaser-bubble-bg: rgba(100, 170, 52, 0.9);
  --color-teaser-bubble-text: rgba(255, 255, 255, 1);

  /* Loading Dots */
  --color-loading-dot: rgba(180, 180, 180, 1);

  /* Burger Menu */
  --burger-menu-bg: rgba(40, 40, 40, 0.98);
  --burger-menu-text: rgba(245, 245, 245, 1);
  --burger-menu-hover-bg: rgba(120, 190, 72, 0.15);
  --burger-menu-warning-text: rgba(255, 107, 114, 1);
  --burger-menu-warning-bg: rgba(255, 107, 114, 0.1);
  --burger-menu-thumb-bg: rgba(120, 190, 72, 0.9);

  /* Inputs */
  --color-input-bg: rgba(60, 60, 60, 1);
  --color-input-border: rgba(120, 190, 72, 0.25);
  --color-input-placeholder: rgba(180, 180, 180, 1);
  --color-input-container-bg: rgba(35, 35, 35, 1);

  /* Buttons */
  --color-button-bg: rgba(120, 190, 72, 0.9);
  --color-button-text: rgba(255, 255, 255, 1);
  --color-button-hover-shadow: rgba(120, 190, 72, 0.5);

  /* Image Component */
  --color-image-loading-bg: rgba(60, 60, 60, 1);
  --color-image-caption-text: rgba(180, 180, 180, 1);
  --color-image-caption-border: rgba(80, 80, 80, 1);

  /* Disclaimer Bar */
  --color-disclaimer-inner-shadow: rgba(120, 190, 72, 0.15);
  --color-disclaimer-bg: rgba(50, 50, 50, 1);
  --color-disclaimer-text: rgba(180, 180, 180, 1);

  /* Markdown */
  --color-markdown-link: rgba(150, 210, 102, 1);
  --color-markdown-link-hover: rgba(170, 230, 122, 1);
  --color-blockquote-border: rgba(120, 190, 72, 0.7);
  --color-blockquote-bg: rgba(120, 190, 72, 0.1);
  --color-table-border: rgba(120, 190, 72, 0.2);
  --color-table-header-bg: rgba(120, 190, 72, 0.15);
  --color-markdown-code-container-bg: rgba(50, 50, 50, 1);

  /* AIConcierge Deep Link Pills */
  --color-aiconcierge-pill-bg: rgba(60, 60, 60, 1);
  --color-aiconcierge-pill-hover-bg: rgba(70, 70, 70, 1);
  --color-aiconcierge-pill-border: rgba(120, 190, 72, 0.2);

  /* Carousel */
  --color-carousel-item-bg: rgba(60, 60, 60, 1);
  --color-carousel-item-shadow: rgba(0, 0, 0, 0.3);
  --color-carousel-item-title: rgba(245, 245, 245, 1);
  --color-carousel-item-subtitle: rgba(180, 180, 180, 1);
  --color-carousel-item-button: rgba(120, 190, 72, 0.9);
  --color-carousel-item-button-hover-bg: rgba(120, 190, 72, 0.15);
  --color-carousel-nav-bg: rgba(60, 60, 60, 1);
  --color-carousel-nav-border: rgba(80, 80, 80, 1);
  --color-carousel-nav-shadow: rgba(0, 0, 0, 0.3);
  --color-carousel-nav-color: rgba(180, 180, 180, 1);
  --color-carousel-nav-hover-bg: rgba(70, 70, 70, 1);
  --color-carousel-nav-hover-shadow: rgba(0, 0, 0, 0.4);
  --color-carousel-nav-hover-color: rgba(245, 245, 245, 1);
  --color-carousel-item-border: rgba(80, 80, 80, 1);

  /* Feedback Form */
  --color-feedback-input-border: rgba(80, 80, 80, 1);
  --color-feedback-input-border-focus: rgba(120, 190, 72, 0.9);
  --color-feedback-input-border-invalid: rgba(255, 107, 114, 1);
  --color-feedback-submit-bg: rgba(120, 190, 72, 0.9);
  --color-feedback-submit-bg-hover: rgba(100, 170, 52, 0.9);
  --color-feedback-submit-text: rgba(255, 255, 255, 1);
  --color-feedback-message-text: rgba(180, 180, 180, 1);
  --color-feedback-confirmation-text: rgba(72, 187, 120, 1);

  /* Error Message */
  --color-error: rgba(255, 107, 114, 1);
  --color-error-background: rgba(255, 107, 114, 0.1);

}