.niko-assistance {
  position: fixed;
  z-index: 60;
  right: max(1.25rem, env(safe-area-inset-right));
  bottom: max(1.25rem, env(safe-area-inset-bottom));
}

.niko-assistance [hidden],
.niko-assistance__launcher[hidden],
.niko-assistance__panel[hidden],
.niko-assistance [data-niko-assistance-chat-view][hidden],
.niko-assistance__offer[hidden] {
  display: none !important;
}

.niko-assistance__launcher {
  position: relative;
  display: inline-flex;
  width: 50px;
  height: 50px;
  min-height: 0;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: 0;
  border: 1px solid #8e754b;
  border-radius: .9rem;
  background: #111a17;
  color: #fff;
  box-shadow: 0 10px 24px rgba(17, 19, 19, .16);
  font: inherit;
  font-weight: 750;
  cursor: pointer;
  transition: background 180ms ease, transform 180ms ease;
}

.niko-assistance--labelled .niko-assistance__launcher {
  width: auto;
  max-width: min(18rem, calc(100vw - 2.5rem));
  padding-inline: .9rem;
  border-radius: 999px;
}

.niko-assistance__launcher:hover,
.niko-assistance__launcher:focus-visible {
  background: #21352d;
  transform: translateY(-1px);
}

.niko-assistance:not(.niko-assistance--labelled) .niko-assistance__launcher::after {
  position: absolute;
  right: 0;
  bottom: calc(100% + .55rem);
  padding: .38rem .55rem;
  border-radius: .38rem;
  background: #111a17;
  color: #fff;
  content: attr(data-niko-assistance-tooltip);
  font-size: .72rem;
  font-weight: 700;
  opacity: 0;
  pointer-events: none;
  transform: translateY(.2rem);
  transition: opacity 180ms ease, transform 180ms ease;
  white-space: nowrap;
}

.niko-assistance:not(.niko-assistance--labelled) .niko-assistance__launcher:hover::after,
.niko-assistance:not(.niko-assistance--labelled) .niko-assistance__launcher:focus-visible::after {
  opacity: 1;
  transform: translateY(0);
}

.niko-assistance__launcher-image {
  width: 1.65rem;
  height: 1.65rem;
  border-radius: .35rem;
  object-fit: contain;
}

.niko-assistance__sparkle {
  color: #e4c279;
  font-size: 1.2rem;
  line-height: 1;
}

.niko-assistance__launcher-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.niko-assistance__panel {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: min(24.5rem, calc(100vw - 2.5rem));
  height: min(33rem, calc(100dvh - 3rem));
  max-height: min(36rem, calc(100dvh - 2.5rem - env(safe-area-inset-bottom)));
  overflow: hidden;
  border: 1px solid #cfcfc5;
  border-radius: 1rem;
  background: #f8f7f2;
  box-shadow: 0 22px 54px rgba(17, 19, 19, .18);
}

.niko-assistance__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .8rem .85rem;
  background: #111a17;
  color: #fff;
}

.niko-assistance__identity {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: .65rem;
}

.niko-assistance__logo {
  width: auto;
  max-width: 5.5rem;
  height: 1.65rem;
  object-fit: contain;
}

.niko-assistance__brand {
  flex: 0 0 auto;
  max-width: 6rem;
  overflow: hidden;
  color: #d8b873;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.niko-assistance__heading {
  display: grid;
  min-width: 0;
  gap: .12rem;
}

.niko-assistance__heading strong {
  overflow: hidden;
  font-size: .92rem;
  letter-spacing: -.01em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.niko-assistance__heading > span {
  overflow: hidden;
  color: #d7dfd8;
  font-size: .68rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.niko-assistance__header-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: .35rem;
}

.niko-assistance__header-actions button {
  border: 1px solid rgba(255, 255, 255, .28);
  background: transparent;
  color: #fff;
  cursor: pointer;
}

.niko-assistance__clear {
  min-height: 2rem;
  padding: .3rem .5rem;
  border-radius: .4rem;
  font: inherit;
  font-size: .66rem;
  font-weight: 700;
}

.niko-assistance__close {
  display: grid;
  width: 2.1rem;
  height: 2.1rem;
  place-items: center;
  border-radius: 50%;
  font: inherit;
  font-size: 1.25rem;
}

.niko-assistance [data-niko-assistance-chat-view] {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  min-height: 0;
  padding: .85rem;
  background: #f8f7f2;
}

.niko-assistance__messages {
  display: grid;
  max-height: min(25rem, calc(100dvh - 10.5rem - env(safe-area-inset-bottom)));
  align-content: start;
  gap: .58rem;
  overflow-y: auto;
  padding: .1rem .1rem .75rem;
  overscroll-behavior: contain;
}

.niko-assistance__welcome,
.niko-assistance__message {
  max-width: 88%;
  margin: 0;
  padding: .68rem .76rem;
  border-radius: .25rem .85rem .85rem .85rem;
  background: #e9ede8;
  color: #26332c;
  line-height: 1.42;
}

.niko-assistance__message--user {
  justify-self: end;
  border-radius: .85rem .25rem .85rem .85rem;
  background: #173c30;
  color: #fff;
}

.niko-assistance__message--error {
  border: 1px solid #aa5b4e;
  background: #fff3ef;
  color: #722d23;
}

.niko-assistance__starters {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .42rem;
}

.niko-assistance__starters button,
.niko-assistance__cta {
  min-height: 2.25rem;
  border: 1px solid #bfcfc3;
  border-radius: .45rem;
  background: #fff;
  color: #18382d;
  padding: .4rem .6rem;
  font: inherit;
  font-size: .75rem;
  font-weight: 700;
  cursor: pointer;
}

.niko-assistance__cta {
  justify-self: start;
  border-color: #345447;
}

.niko-assistance__property {
  display: grid;
  gap: .28rem;
  padding: .75rem;
  border: 1px solid #d8d8ce;
  border-radius: .7rem;
  background: #fff;
  text-decoration: none;
}

.niko-assistance__property strong {
  font-family: Georgia, serif;
  font-size: 1rem;
}

.niko-assistance__property span {
  color: #636b65;
  font-size: .8rem;
}

.niko-assistance__chat {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 2.6rem;
  gap: .35rem;
  align-items: center;
  padding: .42rem;
  border: 1px solid #c9d1ca;
  border-radius: .65rem;
  background: #fff;
}

.niko-assistance__chat:focus-within {
  border-color: #8d7347;
  box-shadow: 0 0 0 2px rgba(141, 115, 71, .14);
}

.niko-assistance__chat input,
.niko-assistance__offer input:not([type="checkbox"]),
.niko-assistance__offer textarea {
  width: 100%;
  min-height: 2.6rem;
  border: 1px solid #bfc4bc;
  border-radius: .45rem;
  background: #fff;
  color: #17201c;
  padding: .6rem .7rem;
}

.niko-assistance__chat input {
  min-width: 0;
  min-height: 2.35rem;
  border: 0;
  background: transparent;
  padding: .4rem .5rem;
  outline: 0;
}

.niko-assistance__chat button,
.niko-assistance__offer > button[type="submit"] {
  min-height: 2.6rem;
  border: 1px solid #173c30;
  border-radius: .45rem;
  background: #173c30;
  color: #fff;
  padding: .5rem .8rem;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.niko-assistance__chat button {
  min-height: 2.35rem;
  padding: 0;
  font-size: 0;
}

.niko-assistance__chat button::after {
  content: "➜";
  font-size: 1rem;
}

.niko-assistance__offer {
  display: grid;
  max-height: min(30rem, calc(100dvh - 7rem - env(safe-area-inset-bottom)));
  align-content: start;
  gap: .7rem;
  overflow-y: auto;
  padding: .9rem;
  background: #f8f7f2;
  overscroll-behavior: contain;
}

.niko-assistance__offer-heading {
  display: grid;
  gap: .2rem;
}

.niko-assistance__offer-heading strong {
  font-family: Georgia, serif;
  font-size: 1.2rem;
}

.niko-assistance__offer-heading span,
.niko-assistance__offer-context span {
  color: #636b65;
  font-size: .82rem;
}

.niko-assistance__offer label {
  display: grid;
  gap: .35rem;
  color: #29352e;
  font-size: .85rem;
  font-weight: 700;
}

.niko-assistance__offer textarea {
  min-height: 4.5rem;
  resize: vertical;
}

.niko-assistance__offer label:has(input[type="checkbox"]) {
  grid-template-columns: auto 1fr;
  align-items: start;
  font-weight: 500;
  line-height: 1.4;
}

.niko-assistance__offer input[type="checkbox"] {
  width: 1.1rem;
  height: 1.1rem;
  margin: .16rem 0 0;
}

.niko-assistance__amount {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .5rem;
}

.niko-assistance__amount b {
  min-width: 3.2rem;
  color: #5b4730;
  font-size: .82rem;
  text-align: right;
}

.niko-assistance__offer-context {
  display: grid;
  gap: .2rem;
  margin: 0;
  padding: .7rem;
  border-left: 3px solid #a7834e;
  background: #eeefe9;
}

.niko-assistance__back {
  justify-self: start;
  border: 0;
  background: transparent;
  color: #18382d;
  padding: 0;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.niko-assistance__honeypot {
  position: absolute;
  left: -9999px;
}

@media (max-width: 52rem) {
  body.niko-property-surface .niko-assistance {
    bottom: calc(5.3rem + env(safe-area-inset-bottom));
  }
}

@media (max-width: 40rem) {
  .niko-assistance {
    right: max(.55rem, env(safe-area-inset-right));
    bottom: max(.55rem, env(safe-area-inset-bottom));
    left: max(.55rem, env(safe-area-inset-left));
  }

  .niko-assistance__launcher {
    margin-left: auto;
  }

  .niko-assistance__panel {
    width: 100%;
    height: auto;
    max-height: min(86dvh, 38rem);
    border-radius: .9rem;
  }

  .niko-assistance__logo,
  .niko-assistance__brand {
    display: none;
  }

  body.niko-property-surface .niko-assistance {
    bottom: calc(5.15rem + env(safe-area-inset-bottom));
  }
}

@media (prefers-reduced-motion: reduce) {
  .niko-assistance__launcher,
  .niko-assistance__launcher::after {
    transition: none;
  }
}
