/* ---------- Sohana — Home page AI assistant ---------- */
.sohana-launcher {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 1200;
  width: 64px;
  height: 64px;
  border: 1px solid rgba(139, 92, 246, .55);
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: linear-gradient(145deg, rgba(18, 15, 35, .96), rgba(14, 17, 38, .96));
  box-shadow: 0 12px 40px rgba(0,0,0,.45), 0 0 28px rgba(124,58,237,.35), inset 0 0 18px rgba(96,165,250,.08);
  transition: transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med) var(--ease-out), border-color var(--dur-med) var(--ease-out);
}
.sohana-launcher:hover, .sohana-launcher:focus-visible {
  transform: translateY(-4px) scale(1.03);
  border-color: rgba(167, 139, 250, .9);
  box-shadow: 0 18px 50px rgba(0,0,0,.5), 0 0 36px rgba(124,58,237,.48), 0 0 12px rgba(96,165,250,.2);
  outline: none;
}
.sohana-launcher__mark { width: 34px; height: 34px; border-radius: 10px; object-fit: contain; }
.sohana-launcher__ai {
  position: absolute; right: 1px; top: 2px; width: 18px; height: 18px; border-radius: 50%;
  display: grid; place-items: center; font-size: 9px; font-weight: 800; letter-spacing: -.02em;
  color: #fff; background: var(--grad-brand); border: 2px solid #0b0b16;
  box-shadow: 0 0 12px rgba(139,92,246,.65);
}
.sohana-launcher__pulse { position:absolute; inset:-6px; border:1px solid rgba(124,58,237,.22); border-radius:50%; animation: sohanaPulse 2.8s ease-out infinite; pointer-events:none; }
@keyframes sohanaPulse { 0% { transform:scale(.92); opacity:.7; } 70%,100% { transform:scale(1.16); opacity:0; } }

.sohana-panel[hidden] { display:none; }
.sohana-panel {
  position: fixed; right: 24px; bottom: 100px; z-index: 1199;
  width: min(390px, calc(100vw - 32px)); height: min(620px, calc(100vh - 124px));
  display:flex; flex-direction:column; overflow:hidden;
  border:1px solid rgba(139,92,246,.34); border-radius:24px;
  background: linear-gradient(145deg, rgba(9,9,19,.97), rgba(12,13,29,.96));
  box-shadow: 0 30px 90px rgba(0,0,0,.6), 0 0 50px rgba(124,58,237,.2), inset 0 1px 0 rgba(255,255,255,.05);
  backdrop-filter: blur(22px); -webkit-backdrop-filter: blur(22px);
  animation: sohanaIn .35s var(--ease-out);
}
@keyframes sohanaIn { from { opacity:0; transform:translateY(18px) scale(.97); } to { opacity:1; transform:none; } }
.sohana-panel__header {
  display:flex; align-items:center; gap:12px; padding:16px 16px 14px;
  border-bottom:1px solid rgba(255,255,255,.08);
  background:linear-gradient(135deg, rgba(124,58,237,.12), rgba(59,130,246,.06));
}
.sohana-avatar { width:42px; height:42px; flex:0 0 42px; display:grid; place-items:center; border-radius:13px; background:linear-gradient(145deg,rgba(124,58,237,.22),rgba(59,130,246,.16)); border:1px solid rgba(139,92,246,.3); }
.sohana-avatar img { width:26px; height:26px; border-radius:8px; object-fit:contain; }
.sohana-head-copy { min-width:0; flex:1; }
.sohana-head-copy strong { display:block; color:#fff; font-family:var(--font-display); font-size:15px; line-height:1.2; }
.sohana-head-copy span { display:block; color:var(--text-2); font-size:11px; margin-top:3px; }
.sohana-online { color:#86efac !important; }
.sohana-online::before { content:'●'; margin-right:5px; font-size:8px; }
.sohana-icon-btn { width:34px; height:34px; border-radius:10px; display:grid; place-items:center; color:var(--text-2); transition:.2s ease; }
.sohana-icon-btn:hover, .sohana-icon-btn:focus-visible { color:#fff; background:rgba(255,255,255,.07); outline:none; }
.sohana-icon-btn svg { width:17px; height:17px; }
.sohana-messages { flex:1; min-height:0; overflow-y:auto; padding:18px 15px 10px; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:rgba(139,92,246,.4) transparent; }
.sohana-messages::-webkit-scrollbar { width:5px; }
.sohana-messages::-webkit-scrollbar-thumb { background:rgba(139,92,246,.35); border-radius:999px; }
.sohana-message { display:flex; margin:0 0 12px; animation:sohanaMessage .25s var(--ease-out); }
@keyframes sohanaMessage { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }
.sohana-message--user { justify-content:flex-end; }
.sohana-bubble { max-width:88%; padding:11px 13px; border-radius:16px 16px 16px 5px; color:#dfe3ee; font-size:13px; line-height:1.55; background:rgba(255,255,255,.055); border:1px solid rgba(255,255,255,.07); box-shadow:0 8px 24px rgba(0,0,0,.16); }
.sohana-bubble p { margin:0 0 6px; }
.sohana-bubble p:last-child { margin-bottom:0; }
.sohana-message--user .sohana-bubble { border-radius:16px 16px 5px 16px; color:#fff; background:linear-gradient(135deg,rgba(109,40,255,.72),rgba(79,70,229,.62)); border-color:rgba(167,139,250,.3); }
.sohana-bullet { margin:3px 0; }
.sohana-suggestions { display:flex; flex-wrap:wrap; gap:7px; margin-top:2px; }
.sohana-suggestion { padding:8px 10px; border:1px solid rgba(139,92,246,.2); border-radius:999px; color:#cdd2e3; background:rgba(124,58,237,.07); font-size:11px; text-align:left; transition:.2s ease; }
.sohana-suggestion:hover, .sohana-suggestion:focus-visible { color:#fff; border-color:rgba(139,92,246,.55); background:rgba(124,58,237,.15); outline:none; transform:translateY(-1px); }
.sohana-typing-label { color:var(--text-2); font-size:11px; }
.sohana-dots { display:inline-flex; gap:3px; margin-left:7px; vertical-align:middle; }
.sohana-dots i { width:4px; height:4px; border-radius:50%; background:#a78bfa; animation:sohanaDot 1s ease-in-out infinite; }
.sohana-dots i:nth-child(2) { animation-delay:.15s; } .sohana-dots i:nth-child(3) { animation-delay:.3s; }
@keyframes sohanaDot { 0%,100% { opacity:.35; transform:translateY(0); } 50% { opacity:1; transform:translateY(-3px); } }
.sohana-contact-link { display:inline-flex; margin-top:9px; padding:8px 11px; border-radius:10px; color:#fff; font-size:11px; font-weight:700; background:var(--grad-brand); box-shadow:0 7px 18px rgba(109,40,255,.22); }
.sohana-composer { padding:11px 12px 12px; border-top:1px solid rgba(255,255,255,.07); background:rgba(5,5,12,.72); }
.sohana-form { display:flex; align-items:center; gap:8px; padding:6px; border:1px solid rgba(255,255,255,.1); border-radius:15px; background:rgba(255,255,255,.045); }
.sohana-input { min-width:0; flex:1; height:40px; padding:0 9px; color:#fff; background:transparent; border:0; outline:0; font-size:13px; }
.sohana-input::placeholder { color:#71717a; }
.sohana-send { width:40px; height:40px; flex:0 0 40px; display:grid; place-items:center; border-radius:11px; background:var(--grad-brand); box-shadow:0 7px 20px rgba(109,40,255,.25); transition:.2s ease; }
.sohana-send:hover, .sohana-send:focus-visible { transform:translateY(-1px); filter:brightness(1.08); outline:none; }
.sohana-send svg { width:17px; height:17px; }
.sohana-hint { display:flex; justify-content:space-between; align-items:center; margin-top:7px; padding:0 3px; color:#666875; font-size:9px; }
.sohana-clear { color:#85879a; text-decoration:underline; text-underline-offset:2px; }
.sohana-clear:hover, .sohana-clear:focus-visible { color:#c4b5fd; outline:none; }

@media (max-width: 600px) {
  .sohana-launcher { right:16px; bottom:16px; width:58px; height:58px; }
  .sohana-launcher__mark { width:31px; height:31px; }
  .sohana-panel { left:10px; right:10px; bottom:10px; width:auto; height:min(700px, calc(100dvh - 20px)); border-radius:20px; }
  body.sohana-open { overflow:hidden; }
}
@media (prefers-reduced-motion: reduce) {
  .sohana-launcher__pulse, .sohana-panel, .sohana-message, .sohana-dots i { animation:none !important; }
}

.sr-only { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }

/* ---------- Sohana Advanced UX ---------- */
.sohana-panel {
  isolation:isolate;
  transition:opacity .2s ease, transform .2s ease, height .25s ease;
}
.sohana-panel.is-minimized { height:78px; }
.sohana-panel.is-minimized .sohana-messages,
.sohana-panel.is-minimized .sohana-suggestions,
.sohana-panel.is-minimized .sohana-lead-wrap,
.sohana-panel.is-minimized .sohana-composer { display:none; }
.sohana-avatar { position:relative; }
.sohana-avatar__ai { position:absolute; right:-5px; top:-5px; display:grid; place-items:center; width:18px; height:18px; border:2px solid #0b0b16; border-radius:50%; background:var(--grad-brand); color:#fff; font-size:7px; font-weight:800; box-shadow:0 0 12px rgba(139,92,246,.6); }
.sohana-panel__header { min-height:70px; }
.sohana-messages { padding-bottom:14px; }
.sohana-suggestions { flex:0 0 auto; max-height:92px; overflow:auto; padding:0 15px 9px; scrollbar-width:thin; }
.sohana-suggestion { cursor:pointer; }
.sohana-action { display:inline-flex; align-items:center; justify-content:center; margin:9px 6px 0 0; padding:8px 11px; border:1px solid rgba(167,139,250,.28); border-radius:10px; color:#fff; background:linear-gradient(135deg,rgba(109,40,255,.78),rgba(59,130,246,.58)); font-size:11px; font-weight:700; text-decoration:none; box-shadow:0 7px 18px rgba(109,40,255,.18); transition:transform .2s ease, filter .2s ease, border-color .2s ease; }
.sohana-action:hover,.sohana-action:focus-visible { transform:translateY(-1px); filter:brightness(1.08); border-color:rgba(196,181,253,.65); outline:none; }
.sohana-lead-wrap { flex:0 0 auto; padding:0 12px 10px; }
.sohana-lead-form { padding:13px; border:1px solid rgba(139,92,246,.25); border-radius:16px; background:linear-gradient(145deg,rgba(124,58,237,.08),rgba(59,130,246,.045)); box-shadow:inset 0 1px 0 rgba(255,255,255,.04); }
.sohana-lead-title { color:#fff; font-family:var(--font-display); font-size:13px; font-weight:700; }
.sohana-lead-form p { margin:4px 0 10px; color:var(--text-2); font-size:10px; line-height:1.45; }
.sohana-lead-form label { display:block; margin-top:8px; color:#b9bdcb; font-size:10px; }
.sohana-lead-form label span { color:#71717a; }
.sohana-lead-form input,.sohana-lead-form select { width:100%; height:34px; margin-top:5px; padding:0 9px; border:1px solid rgba(255,255,255,.1); border-radius:9px; outline:none; color:#fff; background:rgba(0,0,0,.22); font:inherit; }
.sohana-lead-form select { appearance:auto; }
.sohana-lead-form input:focus,.sohana-lead-form select:focus { border-color:rgba(139,92,246,.7); box-shadow:0 0 0 3px rgba(139,92,246,.1); }
.sohana-lead-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.sohana-lead-actions { display:flex; justify-content:flex-end; gap:7px; margin-top:11px; }
.sohana-lead-actions button { min-height:34px; padding:0 11px; border-radius:9px; font-size:10px; font-weight:700; cursor:pointer; }
.sohana-lead-cancel { color:#aeb2c0; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.08); }
.sohana-lead-submit { color:#fff; background:var(--grad-brand); border:1px solid rgba(167,139,250,.3); }
.sohana-lead-actions button:disabled { opacity:.55; cursor:wait; }
.sohana-messages:focus-visible,.sohana-suggestions:focus-visible { outline:2px solid rgba(139,92,246,.65); outline-offset:-2px; }
.sohana-input { font-size:13px; }
@media (max-width: 600px) {
  .sohana-panel { top:max(10px, env(safe-area-inset-top)); bottom:max(10px, env(safe-area-inset-bottom)); left:8px; right:8px; height:calc(100dvh - max(20px, env(safe-area-inset-top) + env(safe-area-inset-bottom))); max-height:none; }
  .sohana-panel.is-minimized { top:auto; height:70px; }
  .sohana-suggestions { max-height:88px; }
  .sohana-composer { padding-bottom:max(12px, env(safe-area-inset-bottom)); }
  .sohana-lead-grid { grid-template-columns:1fr; gap:0; }
  .sohana-launcher { z-index:1201; }
}
@media (prefers-reduced-motion: reduce) {
  .sohana-action,.sohana-panel { transition:none !important; }
}

.sohana-launcher__tooltip { position:absolute; right:74px; top:50%; transform:translateY(-50%) translateX(5px); padding:8px 10px; border:1px solid rgba(139,92,246,.25); border-radius:9px; background:rgba(8,8,18,.94); color:#e8e9f2; font-size:10px; white-space:nowrap; box-shadow:0 10px 25px rgba(0,0,0,.35); opacity:0; pointer-events:none; transition:opacity .2s ease, transform .2s ease; }
.sohana-launcher:hover .sohana-launcher__tooltip,.sohana-launcher:focus-visible .sohana-launcher__tooltip { opacity:1; transform:translateY(-50%) translateX(0); }
@media (max-width:600px) { .sohana-launcher__tooltip { display:none; } }
