:root {
  --gai-pink: #e50078;
  --gai-pink-2: #ff3c9b;
  --gai-pink-dark: #aa005a;
  --gai-pink-soft: #fff1f8;
  --gai-rose: #fff8fb;
  --gai-text: #171418;
  --gai-muted: #716b72;
  --gai-border: #ece5e9;
  --gai-card: #ffffff;
  --gai-shadow: 0 28px 90px rgba(35, 15, 26, .24);
}

.gai-root, .gai-root * { box-sizing: border-box; }
.gai-root { font-family: inherit; color: var(--gai-text); }
.gai-root [hidden] { display: none !important; }

/* Launcher presentation only; assistant and recommendation logic are unchanged. */
.gai-root .gai-launcher {
  --gai-bubble-size: 88px;
  position: fixed; right: 24px; bottom: 24px; z-index: 999998;
  width: var(--gai-bubble-size); height: var(--gai-bubble-size); min-height: 0;
  padding: 0; margin: 0; border: 2px solid transparent; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: radial-gradient(ellipse at 28% 18%, #ffffff 0%, #ffffff 32%, #fff8fc 62%, #f4dce9 100%);
  color: #e50078; cursor: pointer; overflow: visible; isolation: isolate;
  box-shadow: inset 3px 4px 7px #ffffff, inset -4px -7px 12px #c35b942e, 0 0 14px #ff5cba80, 0 0 28px #ff38a747, 0 10px 10px -5px #7e174e40, 0 18px 28px -8px #710b4540;
  transition: transform .25s ease, box-shadow .25s ease;
  -webkit-tap-highlight-color: transparent;
}
.gai-root .gai-launcher::before { content: ''; position: absolute; top: 7%; left: 16%; width: 58%; height: 27%; border-radius: 50%; background: linear-gradient(170deg, #ffffffeb, #ffffff00); transform: rotate(-22deg); pointer-events: none; }
.gai-root .gai-launcher:hover { transform: translateY(-3px); box-shadow: inset 3px 4px 7px #ffffff, inset -4px -7px 12px #c35b942e, 0 0 18px #ff5cba99, 0 0 34px #ff38a755, 0 13px 12px -6px #7e174e40, 0 22px 32px -8px #710b4547; }
.gai-root .gai-launcher:active { transform: translateY(1px) scale(.97); box-shadow: inset 2px 3px 6px #ffffff, inset -3px -4px 9px #c35b9433, 0 0 16px #ff5cba80, 0 6px 12px -4px #710b4540; }
.gai-root .gai-launcher:focus-visible { outline: 3px solid #a50060; outline-offset: 7px; }
.gai-launcher-ring { position: absolute; inset: -3px; border: 1px solid transparent; border-radius: 50%; pointer-events: none; box-shadow: 0 0 14px #ff65bd99, 0 0 25px #ff299c55; animation: gaiBubblePulse 4s ease-in-out infinite; }
.gai-launcher-spark { position: absolute; top: 9px; right: 14px; width: 10px; height: 10px; display: grid; place-items: center; pointer-events: none; animation: gaiBubbleSpark 4.8s ease-in-out infinite; }
.gai-launcher-spark svg { width: 10px; height: 10px; }
.gai-launcher-text { position: relative; display: flex; flex-direction: column; align-items: center; gap: 5px; width: 100%; line-height: 1; pointer-events: none; }
.gai-launcher-logo { display: block; width: 78%; height: auto; padding: 3px 4px; border-radius: 6px; background: transparent; }
.gai-root .gai-launcher-text small { display: block; margin: 0; font: 600 8px/1.2 Arial, sans-serif; letter-spacing: 1.2px; color: #c50068; }
.gai-launcher-tooltip { position: absolute; right: calc(100% + 16px); top: 50%; width: 236px; max-width: calc(100vw - var(--gai-bubble-size) - 56px); padding: 13px 16px; border: 1px solid #f7cde3; border-radius: 15px; background: #fffafd; color: #652044; box-shadow: 0 8px 28px #6d16451c; font: 500 13px/1.5 Arial, sans-serif; text-align: left; text-transform: none; letter-spacing: 0; white-space: normal; opacity: 0; visibility: hidden; transform: translate(6px,-50%); pointer-events: none; transition: opacity .35s ease, transform .35s ease, visibility .35s; }
.gai-launcher-tooltip::after { content: ''; position: absolute; top: calc(50% - 5px); right: -6px; width: 10px; height: 10px; background: #fffafd; border-top: 1px solid #f7cde3; border-right: 1px solid #f7cde3; transform: rotate(45deg); }
.gai-launcher.gai-tooltip-intro .gai-launcher-tooltip,
.gai-launcher:focus-visible .gai-launcher-tooltip { opacity: 1; visibility: visible; transform: translate(0,-50%); }
@media (hover: hover) { .gai-launcher:hover .gai-launcher-tooltip { opacity: 1; visibility: visible; transform: translate(0,-50%); } }
.gai-launcher[aria-expanded="true"] .gai-launcher-tooltip { opacity: 0; visibility: hidden; }
@keyframes gaiBubblePulse { 0%,100% { transform: scale(1); opacity: .7; } 50% { transform: scale(1.035); opacity: 1; } }
@keyframes gaiBubbleSpark { 0%,70%,100% { opacity: .45; transform: scale(.85); } 80% { opacity: 1; transform: scale(1.1); } }
@media (max-width: 600px) { .gai-root .gai-launcher { --gai-bubble-size: 76px; right: 12px; bottom: 12px; } .gai-root .gai-launcher-text small { font-size: 7px; letter-spacing: 1px; } }
@media (max-width: 370px) { .gai-root .gai-launcher { --gai-bubble-size: 68px; } .gai-root .gai-launcher-text small { font-size: 6.5px; letter-spacing: .8px; } .gai-launcher-tooltip { padding: 10px 12px; font-size: 12px; } }
@media (prefers-reduced-motion: reduce) { .gai-launcher-ring, .gai-launcher-spark { animation: none; } .gai-launcher-tooltip { transition: none; } }

.gai-panel {
  position: fixed;
  right: 24px;
  bottom: 128px;
  z-index: 999999;
  width: min(430px, calc(100vw - 28px));
  max-height: min(760px, calc(100vh - 152px));
  background: rgba(255,255,255,.985);
  border: 1px solid rgba(229,0,120,.14);
  border-radius: 26px;
  overflow: hidden;
  box-shadow: var(--gai-shadow);
  opacity: 0;
  transform: translateY(18px) scale(.978);
  transform-origin: bottom right;
  pointer-events: none;
  transition: opacity .22s ease, transform .22s cubic-bezier(.2,.8,.2,1);
  backdrop-filter: blur(18px);
}
.gai-panel.gai-open { opacity:1; transform:translateY(0) scale(1); pointer-events:auto; }
.gai-accent-line { height:4px; background:linear-gradient(90deg,#ff61ac,#e50078,#9f0057); }

.gai-header { padding:14px 15px; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--gai-border); background:linear-gradient(180deg,#fff,#fffafd); }
.gai-mark { width:42px; height:42px; flex:0 0 42px; padding:5px; border:1px solid #ffd0e6; border-radius:14px; display:grid; place-items:center; background:radial-gradient(circle at 30% 20%,#fff 0,#fff 48%,#fff1f8 100%); box-shadow:inset 2px 3px 5px #fff, inset -2px -3px 6px #e5007814, 0 7px 18px #e5007830, 0 0 12px #ff52aa38; } .gai-mark img { display:block; width:100%; height:auto; max-height:24px; object-fit:contain; }
.gai-title-wrap { min-width:0; display:grid; gap:2px; flex:1; }
.gai-title-wrap strong { font-size:14.5px; font-weight:800; }
.gai-title-wrap span { font-size:10.5px; color:var(--gai-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gai-offline-pill { font-size:8.5px; font-weight:900; letter-spacing:.7px; color:#9d0054; background:#fff0f7; border:1px solid #ffd2e8; padding:5px 7px; border-radius:999px; }
.gai-root .gai-header .gai-icon-btn { display:inline-flex; align-items:center; justify-content:center; padding:0; margin:0; min-width:36px; min-height:36px; max-width:36px; max-height:36px; text-indent:0; letter-spacing:0; font-family:Arial,sans-serif; font-weight:400; text-transform:none; appearance:none; width:36px; height:36px; flex:0 0 36px; border-radius:12px; border:1px solid var(--gai-border); background:#fff; color:#514a50; font-size:21px; line-height:1; cursor:pointer; transition:.15s ease; }
.gai-icon-btn:hover { background:#fff4fa; border-color:#f2bfd9; }

.gai-content { padding:19px; max-height:calc(min(760px, calc(100vh - 152px)) - 73px); overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#e6cad8 transparent; }
.gai-content::-webkit-scrollbar { width:7px; }
.gai-content::-webkit-scrollbar-thumb { background:#e6cad8; border-radius:99px; }

.gai-hero-orb { width:74px; height:74px; margin:4px auto 14px; border-radius:24px; display:grid; place-items:center; color:#fff; background:radial-gradient(circle at 30% 25%,#ff69b4 0,#f22690 35%,#c30069 100%); box-shadow:0 18px 40px rgba(229,0,120,.24); transform:rotate(-3deg); }
#gai-welcome-view { text-align:center; padding:4px 2px 2px; }
#gai-welcome-view h2 { margin:7px auto 10px; max-width:340px; font-size:25px; line-height:1.12; letter-spacing:-.5px; }
#gai-welcome-view > p { margin:0 auto; max-width:355px; color:var(--gai-muted); font-size:12.5px; line-height:1.55; }
.gai-feature-chips { display:flex; flex-wrap:wrap; justify-content:center; gap:7px; margin:16px 0 18px; }
.gai-feature-chips span { padding:7px 10px; border:1px solid #f0dbe6; border-radius:999px; background:#fff9fc; color:#685b63; font-size:10.5px; font-weight:700; }
.gai-start { font-size:13px; min-height:50px!important; }
.gai-start span { margin-left:5px; font-size:16px; }
.gai-privacy-line { display:block; margin-top:11px; color:#9a9298; font-size:9.5px; line-height:1.4; }

.gai-step-meta { display:flex; justify-content:space-between; color:var(--gai-muted); font-size:10.5px; font-weight:700; }
.gai-progress { height:6px; margin-top:8px; background:#f1eaee; border-radius:99px; overflow:hidden; }
.gai-progress span { display:block; height:100%; width:9%; border-radius:99px; background:linear-gradient(90deg,#ff51a6,#e50078); box-shadow:0 0 12px rgba(229,0,120,.22); transition:width .22s ease; }
.gai-question-block { display:flex; align-items:flex-start; gap:11px; margin-top:18px; }
.gai-question-icon { width:34px; height:34px; flex:0 0 34px; border-radius:11px; display:grid; place-items:center; color:#be0065; background:#fff0f7; border:1px solid #ffd6e9; font-size:16px; font-weight:800; }
.gai-question-block h3 { margin:1px 0 4px; font-size:20px; line-height:1.2; color:var(--gai-text); letter-spacing:-.2px; }
.gai-hint, .gai-result-intro { margin:0; font-size:12px; color:var(--gai-muted); line-height:1.48; }

.gai-options { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:16px; }
.gai-option { min-height:50px; border-radius:14px; border:1px solid var(--gai-border); background:#fff; color:var(--gai-text); padding:10px 10px 10px 12px; display:flex; align-items:center; justify-content:space-between; gap:8px; text-align:left; font:inherit; font-size:12.2px; font-weight:650; cursor:pointer; box-shadow:0 2px 8px rgba(28,14,21,.025); transition:transform .14s ease,border-color .14s ease,background .14s ease,box-shadow .14s ease; }
.gai-option:hover { transform:translateY(-1px); border-color:#efb5d2; background:#fffafd; box-shadow:0 7px 16px rgba(75,30,54,.06); }
.gai-option-check { width:21px; height:21px; flex:0 0 21px; border-radius:50%; display:grid; place-items:center; border:1px solid #ddd3d9; color:transparent; background:#fff; font-size:11px; transition:.14s ease; }
.gai-option[aria-pressed="true"] { border-color:#e50078; background:linear-gradient(135deg,#fff7fb,#fff0f7); color:#9f0056; box-shadow:inset 0 0 0 1px rgba(229,0,120,.04),0 7px 17px rgba(229,0,120,.07); }
.gai-option[aria-pressed="true"] .gai-option-check { color:#fff; border-color:#e50078; background:#e50078; }
.gai-error { min-height:18px; margin:8px 0 0; font-size:10.5px; color:#b00055; font-weight:600; }
.gai-nav { display:flex; justify-content:space-between; gap:10px; margin-top:7px; }
.gai-btn { min-height:46px; border-radius:14px; padding:0 16px; font:inherit; font-size:12.5px; font-weight:800; cursor:pointer; transition:transform .15s ease,box-shadow .15s ease,filter .15s ease; }
.gai-btn:hover:not(:disabled) { transform:translateY(-1px); }
.gai-btn-primary { border:0; color:#fff; background:linear-gradient(135deg,#f83297,#e50078 55%,#b30061); box-shadow:0 9px 20px rgba(229,0,120,.18); }
.gai-btn-secondary { border:1px solid var(--gai-border); background:#fff; color:#4e494e; }
.gai-btn:disabled { opacity:.4; cursor:not-allowed; transform:none; }
.gai-full { width:100%; margin-top:14px; }

.gai-eyebrow { display:block; color:#d50071; font-size:9.5px; font-weight:900; letter-spacing:1px; text-transform:uppercase; }
.gai-result-head { display:flex; align-items:center; gap:11px; margin-bottom:6px; }
.gai-result-head h3 { margin:3px 0 0; font-size:23px; line-height:1.1; }
.gai-result-check { width:43px; height:43px; flex:0 0 43px; border-radius:15px; display:grid; place-items:center; color:#fff; font-weight:900; font-size:18px; background:linear-gradient(135deg,#ff3d9b,#d60071); box-shadow:0 9px 20px rgba(229,0,120,.18); }
.gai-section-title { margin:18px 0 8px; font-size:9px; font-weight:900; color:#8f858c; letter-spacing:1.2px; }
.gai-product-card { display:grid; grid-template-columns:90px minmax(0,1fr); gap:12px; align-items:center; padding:12px; margin-bottom:10px; border:1px solid var(--gai-border); border-radius:18px; background:#fff; box-shadow:0 5px 16px rgba(38,18,29,.035); transition:transform .16s ease,box-shadow .16s ease; }
.gai-product-card:hover { transform:translateY(-1px); box-shadow:0 10px 23px rgba(38,18,29,.07); }
.gai-product-card.gai-top { border-color:rgba(229,0,120,.34); background:linear-gradient(135deg,#fff,#fff2f8); box-shadow:0 10px 26px rgba(229,0,120,.09); }
.gai-product-media { width:90px; height:100px; border-radius:14px; background:#fff; display:grid; place-items:center; overflow:hidden; border:1px solid #f0e9ed; }
.gai-root .gai-product-media img { display:block; width:100%; height:100%; max-width:100%; max-height:100%; object-fit:contain; object-position:center; padding:6px; margin:0; border:0; border-radius:0; aspect-ratio:auto; }
.gai-product-placeholder { color:#caa6b9; font-size:24px; }
.gai-product-body { min-width:0; }
.gai-product-kicker { display:block; color:#d70072; font-size:8.8px; font-weight:900; letter-spacing:.72px; text-transform:uppercase; margin-bottom:3px; }
.gai-product-name { display:block; font-size:13.5px; font-weight:850; line-height:1.24; }
.gai-product-note { display:block; font-size:10.5px; color:var(--gai-muted); line-height:1.4; margin-top:5px; }
.gai-product-actions { display:flex; align-items:center; gap:9px; margin-top:8px; flex-wrap:wrap; }
.gai-product-link { display:inline-flex; min-height:34px; align-items:center; justify-content:center; padding:0 11px; border-radius:10px; text-decoration:none!important; background:#e50078; color:#fff!important; font-size:10.3px; font-weight:850; transition:.15s ease; }
.gai-product-link:hover { color:#fff!important; background:#bd0065; }
.gai-product-price { font-size:11.5px; font-weight:850; color:#3d373b; }
.gai-reason-box { margin-top:14px; padding:13px 14px; display:flex; gap:10px; align-items:flex-start; border-radius:16px; background:linear-gradient(135deg,#fbf8fa,#fff9fc); border:1px solid #eee3e9; }
.gai-reason-icon { width:29px; height:29px; flex:0 0 29px; border-radius:10px; display:grid; place-items:center; color:#c40068; background:#fff0f7; }
.gai-reason-box strong { font-size:11.5px; }
.gai-reason-box p { margin:5px 0 0; font-size:10.3px; line-height:1.48; color:var(--gai-muted); }
.gai-disclaimer { margin-top:10px; padding:0 2px; font-size:9.3px; line-height:1.45; color:#989096; }

.gai-launcher:focus-visible,.gai-btn:focus-visible,.gai-option:focus-visible,.gai-icon-btn:focus-visible,.gai-product-link:focus-visible { outline:3px solid rgba(229,0,120,.24); outline-offset:2px; }

@keyframes gaiPulse { 0%{transform:scale(.98);opacity:.7} 70%{transform:scale(1.13);opacity:0} 100%{transform:scale(1.13);opacity:0} }

@media (max-width: 600px) {
  .gai-panel { right:7px; bottom:104px; width:calc(100vw - 14px); max-height:calc(100dvh - 116px); border-radius:22px; }
  .gai-content { max-height:calc(100dvh - 190px); padding:16px; }
  .gai-options { grid-template-columns:1fr; }
  .gai-offline-pill { display:none; }
  #gai-welcome-view h2 { font-size:23px; }
  .gai-product-card { grid-template-columns:80px minmax(0,1fr); }
  .gai-product-media { width:80px; height:94px; }
}

@media (max-width: 370px) {
  .gai-panel { bottom:96px; }
}

@media (prefers-reduced-motion: reduce) {
  .gai-panel,.gai-launcher,.gai-progress span,.gai-option,.gai-product-card,.gai-launcher-ring { transition:none!important; animation:none!important; }
}

/* Availability comes from the WooCommerce Store API, not the recommendation rules. */
.gai-product-stock { display:block; margin-top:7px; font-size:10.5px; line-height:1.4; font-weight:700; color:#716b72; }
.gai-product-stock[data-state="out"], .gai-product-stock[data-state="unavailable"] { color:#b00055; }
.gai-product-stock[data-state="in"] { color:#216b43; }
.gai-product-stock[data-state="backorder"] { color:#855600; }
