.ngpt-assessment{
  position:fixed; right:1.25rem; bottom:1.25rem; z-index:60;
  width:320px; max-width:calc(100% - 2.5rem);
  font-family:var(--sans); font-size:1rem; line-height:1.4; color:var(--ink);
}
.ngpt-assessment[hidden],.ngpt-assessment [hidden]{ display:none!important }
body.ngpt-assessment-open{ overflow:hidden }
.ngpt-assessment__backdrop{
  position:fixed; inset:0; z-index:-1;
  background:rgba(0,0,0,.28);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
}
.ngpt-assessment__panel{
  padding:1.25rem; border:1px solid var(--sand); border-radius:3px;
  background:var(--cream); box-shadow:0 10px 32px rgba(0,0,0,.22);
  max-height:calc(100dvh - 2.5rem); overflow-y:auto; overscroll-behavior:contain;
}
.ngpt-assessment__header{ display:flex; align-items:flex-start; gap:.75rem; margin-bottom:1rem }
.ngpt-assessment__heading{ flex:1; min-width:0 }
.ngpt-assessment__heading h2{
  font-family:var(--serif); font-size:1.5rem; font-weight:400;
  line-height:1.15; letter-spacing:0; margin:0 0 .25rem;
}
.ngpt-assessment__heading p{ font-size:.875rem; color:var(--ink-soft); margin:0 }
.ngpt-assessment__close{
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  width:44px; height:44px; padding:0; border:0; background:transparent;
  color:var(--ink); font-size:1.75rem; line-height:1; cursor:pointer;
}
.ngpt-assessment label{ display:block; font-size:.8125rem; font-weight:600; margin:0 0 .35rem }
.ngpt-assessment label span{ font-weight:400 }
.ngpt-assessment input,.ngpt-assessment textarea{
  display:block; width:100%; min-width:0; padding:.65rem .75rem; margin:0 0 .75rem;
  border:1px solid rgba(36,28,23,.25); border-radius:2px; background:#fff;
  color:var(--ink); font-family:var(--sans); font-size:1rem; line-height:1.4;
}
.ngpt-assessment textarea{ height:4rem; resize:vertical }
.ngpt-assessment :focus-visible{ outline:2px solid var(--clay); outline-offset:3px }
.ngpt-assessment__submit,.ngpt-assessment__toggle{
  font:600 .9375rem/1.4 var(--sans); border:1px solid transparent; border-radius:2px;
  padding:.8rem 1rem; background:var(--clay); color:#fff; cursor:pointer;
  white-space:normal; text-align:center;
}
.ngpt-assessment__submit{ display:block; width:100% }
.ngpt-assessment__submit:hover,.ngpt-assessment__toggle:hover{ background:var(--clay-deep) }
.ngpt-assessment__submit:disabled{ cursor:wait; opacity:.7 }
.ngpt-assessment__toggle{ display:block; margin-left:auto; min-height:48px }
.ngpt-assessment__fine{ margin:.75rem 0 0; color:var(--ink-soft); font-size:.75rem }
.ngpt-assessment__status{ font-size:.8125rem; color:var(--ink); margin:.75rem 0 0 }
.ngpt-assessment__status:empty{ display:none }
.ngpt-assessment__trap{ display:none!important }
@media(min-width:761px){
  .ngpt-assessment{ left:auto; right:1.25rem }
  .ngpt-assessment:has(> .ngpt-assessment__panel[hidden]){
    bottom:0; width:auto;
  }
  .ngpt-assessment__toggle{
    margin:0; min-height:52px; padding:.9rem 1.5rem calc(.9rem + env(safe-area-inset-bottom));
    font-size:1rem; white-space:nowrap; border-radius:6px 6px 0 0;
    background:#9DE23F; color:#15220D;
  }
  .ngpt-assessment__toggle:hover{ background:#B0ED5C }
  .ngpt-assessment__toggle:focus-visible{ outline-offset:-4px; outline-color:#15220D }
}
@media(max-width:760px){
  .ngpt-assessment{
    right:1rem; bottom:0; width:calc(100% - 2rem); max-width:360px;
    overflow:hidden;
  }
  .ngpt-assessment__panel{
    position:relative; z-index:1;
    max-height:calc(100dvh - 2rem - env(safe-area-inset-bottom));
    padding-bottom:calc(1.25rem + env(safe-area-inset-bottom));
    margin:0; border-bottom:0; border-radius:6px 6px 0 0; box-shadow:none;
    animation:ngpt-contact-slide-up .25s ease-out;
  }
  .ngpt-assessment__toggle{
    position:relative; z-index:2; width:100%; margin:0; min-height:52px;
    padding:.9rem 1rem calc(.9rem + env(safe-area-inset-bottom));
    background:#9DE23F; color:#15220D; border-radius:6px 6px 0 0;
  }
  .ngpt-assessment__toggle[aria-expanded="true"]{ border-radius:0 }
  .ngpt-assessment__toggle:hover{ background:#B0ED5C }
  .ngpt-assessment__toggle:focus-visible{ outline-offset:-4px; outline-color:#15220D }
  body.ngpt-has-assessment{ padding-bottom:calc(5rem + env(safe-area-inset-bottom)) }
}
@keyframes ngpt-contact-slide-up{
  from{ transform:translateY(100%) }
  to{ transform:translateY(0) }
}
@media(prefers-reduced-motion:reduce){
  .ngpt-assessment__panel{ animation:none }
}
