/* StradiSapiens: widget di supporto sempre ancorato al viewport. */
:root {
  --ss-wine: #8f2033;
  --ss-wine-dark: #681524;
  --ss-ink: #17130f;
  --ss-paper: #fbfaf7;
  --ss-line: #ded8cc;
  --ss-focus: #1769aa;
  --ss-safe-bottom: max(20px, env(safe-area-inset-bottom));
  --ss-safe-right: max(20px, env(safe-area-inset-right));
}

.stradisapiens-widget { position: fixed; z-index: 90; right: var(--ss-safe-right); bottom: var(--ss-safe-bottom); font-family: "Inter", sans-serif; }
.stradisapiens-symbols { position: absolute; overflow: hidden; }
.stradisapiens-launcher {
  min-width: 64px;
  min-height: 64px;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  padding: 4px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--ss-ink);
  cursor: pointer;
  touch-action: manipulation;
  filter: drop-shadow(0 10px 18px rgba(23,19,15,.24));
  transform-origin: bottom right;
  transition: opacity .18s ease, transform .18s ease;
}
.stradisapiens-launcher:hover .stradisapiens-pet { transform: translateY(-2px); box-shadow: 0 0 0 4px rgba(143,32,51,.18), 0 12px 24px rgba(23,19,15,.25); }
.stradisapiens-launcher:active .stradisapiens-pet { transform: scale(.96); }
.stradisapiens-launcher:focus-visible { outline: 3px solid var(--ss-focus); outline-offset: 4px; }
.stradisapiens-widget.is-open .stradisapiens-launcher { opacity: 0; pointer-events: none; transform: scale(.8); }
.stradisapiens-launcher-copy {
  display: grid;
  min-width: 152px;
  padding: 10px 14px;
  border: 1px solid rgba(23,19,15,.08);
  border-radius: 16px 16px 4px 16px;
  background: #fff;
  text-align: left;
  line-height: 1.12;
}
.stradisapiens-launcher-copy strong { font-family: "Space Grotesk", sans-serif; font-size: 13px; }
.stradisapiens-launcher-copy small { margin-top: 4px; color: #5d564d; font-size: 11px; }

.stradisapiens-pet {
  width: 66px;
  height: 66px;
  flex: 0 0 66px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 3px solid #fff;
  border-radius: 50%;
  background: #efe1ca;
  box-shadow: 0 0 0 3px var(--ss-wine), 0 12px 24px rgba(23,19,15,.22);
  transition: transform .2s ease, box-shadow .2s ease;
}
.stradisapiens-pet svg { width: 68px; height: 68px; transform: translateY(3px); }
.pet-hair { fill: #ddd5c8; stroke: #b9ad9b; stroke-width: 1.1; }
.pet-hair-line { fill: none; stroke: #aaa08f; stroke-width: 1.25; stroke-linecap: round; }
.pet-face { fill: #d9a06c; }
.pet-eye { fill: #292018; transform-box: fill-box; transform-origin: center; }
.pet-nose, .pet-smile { fill: none; stroke: #76503b; stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; }
.pet-coat { fill: var(--ss-wine); }
.pet-jabot { fill: #f7f0e5; stroke: #c9bdac; stroke-width: .7; }
.pet-arm { fill: none; stroke: var(--ss-wine-dark); stroke-width: 5; stroke-linecap: round; }
.pet-violin path:first-child { fill: #bd682f; stroke: #69331f; stroke-width: 1.3; }
.pet-violin path:not(:first-child) { fill: none; stroke: #3c261d; stroke-width: 1.1; stroke-linecap: round; }

.stradisapiens-dialog[hidden] { display: none; }
.stradisapiens-dialog {
  position: fixed;
  right: var(--ss-safe-right);
  bottom: calc(var(--ss-safe-bottom) + 82px);
  width: min(400px, calc(100vw - 32px));
  height: min(630px, calc(100dvh - 126px));
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid rgba(23,19,15,.12);
  border-radius: 24px;
  background: var(--ss-paper);
  box-shadow: 0 28px 80px rgba(23,19,15,.28);
  opacity: 0;
  transform: translateY(16px) scale(.96);
  transform-origin: bottom right;
  transition: opacity .2s ease, transform .24s ease-out;
}
.stradisapiens-dialog.is-open { opacity: 1; transform: translateY(0) scale(1); }
.stradisapiens-dialog:focus-visible { outline: 3px solid var(--ss-focus); outline-offset: 3px; }
.stradisapiens-dialog-header {
  min-height: 76px;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 44px;
  align-items: center;
  gap: 11px;
  padding: 10px 12px 10px 14px;
  background: linear-gradient(135deg, var(--ss-wine-dark), var(--ss-wine));
  color: #fff;
}
.stradisapiens-header-avatar { width: 48px; height: 48px; display: grid; place-items: center; overflow: hidden; border: 2px solid rgba(255,255,255,.78); border-radius: 50%; background: #efe1ca; }
.stradisapiens-header-avatar svg { width: 50px; height: 50px; transform: translateY(2px); }
.stradisapiens-dialog-title { min-width: 0; }
.stradisapiens-dialog-title h2 { margin: 0; font-family: "Space Grotesk", sans-serif; font-size: 17px; line-height: 1.15; }
.stradisapiens-dialog-title p { display: flex; align-items: center; gap: 6px; margin: 4px 0 0; color: rgba(255,255,255,.78); font-size: 10.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.stradisapiens-dialog-title p span { width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: #72d49b; box-shadow: 0 0 0 3px rgba(114,212,155,.16); }
.stradisapiens-close { width: 44px; height: 44px; display: grid; place-items: center; border: 0; border-radius: 12px; background: transparent; color: #fff; cursor: pointer; touch-action: manipulation; }
.stradisapiens-close:hover { background: rgba(255,255,255,.14); }
.stradisapiens-close:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.stradisapiens-close svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.stradisapiens-dialog iframe { width: 100%; min-width: 0; height: 100%; border: 0; background: var(--ss-paper); }

@media (prefers-reduced-motion: no-preference) {
  .stradisapiens-launcher:not([aria-expanded="true"]) .stradisapiens-pet { animation: ss-float 3.8s ease-in-out infinite; }
  .pet-eye { animation: ss-blink 5.2s steps(1,end) infinite; }
}
@keyframes ss-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ss-blink { 0%,91%,100% { transform: scaleY(1); } 94% { transform: scaleY(.08); } }

@media (max-width: 480px) {
  :root { --ss-safe-bottom: max(12px, env(safe-area-inset-bottom)); --ss-safe-right: max(12px, env(safe-area-inset-right)); }
  .stradisapiens-launcher-copy { display: none; }
  .stradisapiens-pet { width: 60px; height: 60px; flex-basis: 60px; }
  .stradisapiens-dialog { inset: max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left)); width: auto; height: auto; border-radius: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  .stradisapiens-launcher, .stradisapiens-pet, .stradisapiens-dialog { transition: none; animation: none; }
}
