#paa-open{
 position:fixed;left:16px;bottom:16px;z-index:99980;border:0;border-radius:999px;background:#171714;color:#fff;
 padding:12px 16px;box-shadow:0 5px 22px rgba(0,0,0,.24);font:600 13px system-ui;cursor:pointer;min-height:44px
}
#paa-panel{
 position:fixed;left:16px;bottom:16px;z-index:99990;width:min(390px,calc(100vw - 32px));height:min(560px,calc(100svh - 80px));
 background:#fff;border:1px solid #ddd;border-radius:14px;box-shadow:0 12px 42px rgba(0,0,0,.3);overflow:hidden;font:14px system-ui;color:#222
}
.paa-head{height:54px;padding:0 16px;background:#171714;color:#fff;display:flex;align-items:center;justify-content:space-between}
.paa-head button{border:0;background:transparent;color:#fff;font-size:28px;cursor:pointer}
#paa-messages{height:calc(100% - 137px);overflow:auto;padding:14px;background:#f5f2ec}
.paa-msg{max-width:86%;padding:10px 12px;border-radius:12px;margin:0 0 10px;line-height:1.45}
.paa-ai{background:#fff;border:1px solid #ddd}.paa-user{background:#171714;color:#fff;margin-left:auto}
#paa-form{border-top:1px solid #ddd;padding:10px;background:#fff}.paa-input-row{display:flex;gap:6px}
#paa-input{flex:1;min-width:0;border:1px solid #ccc;border-radius:8px;padding:10px;font-size:16px}
#paa-send,#paa-mic{border:0;border-radius:8px;padding:0 12px;background:#171714;color:#fff;cursor:pointer;min-width:44px}
#paa-mic.listening{outline:3px solid #c44}
@media(max-width:700px){
 #paa-open{left:10px;bottom:max(10px,env(safe-area-inset-bottom));font-size:12px;padding:10px 13px}
 #paa-panel{left:8px;bottom:8px;width:calc(100vw - 16px);height:min(620px,calc(100svh - 24px));border-radius:12px}
}
#paa-voice-status{min-height:18px;margin-top:5px;font-size:11px;color:#6a675f}
#paa-mic{font-size:18px;transition:transform .15s ease,box-shadow .15s ease}
#paa-mic.listening{outline:0!important;transform:scale(1.05);box-shadow:0 0 0 4px rgba(23,23,20,.16)}
#paa-send{font-size:18px}

#paa-mic.listening{background:#6d1d1d!important;color:#fff!important}

#paa-voice-lang{
 width:52px;min-width:52px;border:1px solid #bbb;border-radius:8px;background:#fff;
 color:#222;font:700 13px system-ui;padding:0 5px;text-align:center
}
@media(max-width:700px){
 #paa-voice-lang{width:50px;min-width:50px;font-size:12px}
}

.paa-audio-action{display:flex;justify-content:flex-start;margin:4px 0 12px}
.paa-play-answer{
 border:0;border-radius:999px;background:#171714;color:#fff;
 min-height:42px;padding:10px 15px;font:600 13px system-ui;cursor:pointer;
 box-shadow:0 2px 8px rgba(0,0,0,.12)
}
.paa-play-answer:disabled{opacity:.72;cursor:default}
@media(max-width:700px){
 .paa-play-answer{min-height:46px;font-size:14px;padding:11px 16px}
}

#paa-mic{
 touch-action:none;
 user-select:none;
 -webkit-user-select:none;
 -webkit-touch-callout:none;
}
#paa-mic.listening{
 background:#a51e1e!important;
 color:#fff!important;
 transform:scale(1.06);
 box-shadow:0 0 0 5px rgba(165,30,30,.18)!important;
}

/* v2.0 large, explicit voice control */
#paa-form .paa-input-row{
 display:grid!important;
 grid-template-columns:64px 58px 1fr 58px!important;
 gap:8px!important;
 align-items:stretch!important;
}
#paa-mic{
 min-width:64px!important;
 min-height:56px!important;
 padding:8px!important;
 border-radius:12px!important;
 display:flex!important;
 flex-direction:column!important;
 align-items:center!important;
 justify-content:center!important;
 gap:2px!important;
 touch-action:manipulation!important;
}
#paa-mic .paa-mic-icon{font-size:22px;line-height:1!important}
#paa-mic .paa-mic-label{display:none}
#paa-mic.listening{
 background:#a51e1e!important;
 color:#fff!important;
 transform:none!important;
 box-shadow:0 0 0 4px rgba(165,30,30,.15)!important;
}
@media(max-width:700px){
 #paa-form{padding:10px 12px 12px!important}
 #paa-form .paa-input-row{
   grid-template-columns:70px 60px 1fr 62px!important;
   gap:8px!important;
 }
 #paa-mic{
   min-width:70px!important;
   height:60px!important;
   min-height:60px!important;
 }
 #paa-mic .paa-mic-icon{font-size:25px!important}
 #paa-voice-lang{
   width:60px!important;
   min-width:60px!important;
   height:60px!important;
   font-size:14px!important;
 }
 #paa-input{
   height:60px!important;
   min-height:60px!important;
   font-size:16px!important;
 }
 #paa-send{
   width:62px!important;
   min-width:62px!important;
   height:60px!important;
   min-height:60px!important;
   font-size:22px!important;
 }
}

/* On very narrow phones, move voice to its own full-width button */
@media(max-width:430px){
 #paa-form .paa-input-row{
   grid-template-columns:64px 1fr 58px!important;
 }
 #paa-voice-lang{
   grid-column:1!important;
   grid-row:1!important;
   width:64px!important;
   min-width:64px!important;
 }
 #paa-input{grid-column:2!important;grid-row:1!important}
 #paa-send{grid-column:3!important;grid-row:1!important}
 #paa-mic{
   grid-column:1 / -1!important;
   grid-row:2!important;
   width:100%!important;
   height:58px!important;
   min-height:58px!important;
   flex-direction:row!important;
   gap:9px!important;
   margin-top:2px!important;
   font-size:15px!important;
 }
 #paa-mic .paa-mic-label{
   display:inline!important;
   font:700 15px system-ui!important;
 }
}

/* v2.1 SIMPLE FOR EVERYONE */
#paa-form{
 padding:12px!important;
}
#paa-form .paa-simple-voice{
 display:block!important;
 width:100%!important;
 margin:0 0 10px!important;
}
#paa-mic{
 width:100%!important;
 min-height:64px!important;
 border:0!important;
 border-radius:14px!important;
 background:#171714!important;
 color:#fff!important;
 display:flex!important;
 align-items:center!important;
 justify-content:center!important;
 gap:12px!important;
 padding:12px 18px!important;
 font:800 16px system-ui!important;
 letter-spacing:.01em!important;
 box-shadow:none!important;
}
#paa-mic .paa-mic-icon{font-size:25px!important}
#paa-mic .paa-mic-label{display:inline!important;font:800 16px system-ui!important}
#paa-mic.listening{
 background:#b51f1f!important;
 transform:none!important;
 box-shadow:0 0 0 5px rgba(181,31,31,.16)!important;
}
#paa-mic.working{
 background:#4d4b46!important;
}
#paa-voice-status{
 min-height:20px!important;
 margin:7px 2px 0!important;
 text-align:center!important;
 color:#68655e!important;
 font:500 12px system-ui!important;
}
#paa-form .paa-type-row{
 display:grid!important;
 grid-template-columns:1fr 56px!important;
 gap:8px!important;
}
#paa-input{
 min-height:52px!important;
 height:52px!important;
 font-size:16px!important;
 border-radius:10px!important;
}
#paa-send{
 min-width:56px!important;
 width:56px!important;
 height:52px!important;
 min-height:52px!important;
 border-radius:10px!important;
 font-size:21px!important;
}
#paa-voice-lang{display:none!important}
@media(max-width:700px){
 #paa-panel{
   left:8px!important;
   bottom:8px!important;
   width:calc(100vw - 16px)!important;
   height:min(640px,calc(100svh - 24px))!important;
 }
 #paa-mic{
   min-height:68px!important;
   font-size:17px!important;
 }
 #paa-mic .paa-mic-label{font-size:17px!important}
}

/* v2.6 — larger NATIVE launcher with correct hidden-state behavior.
   IMPORTANT: never force #paa-open to display while the assistant panel is open. */

/* Kill every experimental bridge/duplicate from the old Property Polish add-ons. */
html body #kpp-ai-bridge,
html body .kpp103-bridge {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* When the native launcher is hidden by Property AI Assistant JS, KEEP IT HIDDEN. */
html body button#paa-open[hidden] {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Large styling applies ONLY while the native launcher is actually visible. */
html body button#paa-open:not([hidden]) {
  position: fixed !important;
  left: 18px !important;
  right: auto !important;
  bottom: 22px !important;
  z-index: 99980 !important;
  width: auto !important;
  min-width: 300px !important;
  min-height: 64px !important;
  padding: 14px 22px !important;
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  border: 1px solid #b99a62 !important;
  border-radius: 12px !important;
  background: #171714 !important;
  color: #fff !important;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
  text-align: center !important;
  text-decoration: none !important;
  box-shadow: 0 9px 28px rgba(0,0,0,.30) !important;
  cursor: pointer !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: none !important;
  -webkit-tap-highlight-color: transparent !important;
}

html body button#paa-open:not([hidden]):hover {
  background: #11110f !important;
  box-shadow: 0 11px 32px rgba(0,0,0,.34) !important;
  transform: translateY(-1px) !important;
}

html body button#paa-open:not([hidden]):focus-visible {
  outline: 3px solid rgba(185,154,98,.55) !important;
  outline-offset: 3px !important;
}

@media (max-width: 767px) {
  html body button#paa-open:not([hidden]) {
    left: 14px !important;
    right: 14px !important;
    bottom: max(16px, env(safe-area-inset-bottom)) !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 62px !important;
    padding: 14px 18px !important;
    border-radius: 12px !important;
    font-size: 17px !important;
  }
}


/* v2.7 — PANEL FIT FIX
   The voice controls are taller than the old 137px form allowance.
   Flex layout guarantees that nothing at the bottom is clipped. */
html body #paa-panel[hidden] {
  display: none !important;
}
html body #paa-panel:not([hidden]) {
  display: flex !important;
  flex-direction: column !important;
  height: min(560px, calc(100dvh - 32px)) !important;
  max-height: calc(100dvh - 32px) !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}
html body #paa-panel:not([hidden]) .paa-head {
  flex: 0 0 54px !important;
  height: 54px !important;
  min-height: 54px !important;
  box-sizing: border-box !important;
}
html body #paa-panel:not([hidden]) #paa-messages {
  flex: 1 1 auto !important;
  height: auto !important;
  min-height: 0 !important;
  overflow-y: auto !important;
  box-sizing: border-box !important;
}
html body #paa-panel:not([hidden]) #paa-form {
  flex: 0 0 auto !important;
  height: auto !important;
  min-height: 0 !important;
  box-sizing: border-box !important;
  background: #fff !important;
}
@media (max-width: 700px) {
  html body #paa-panel:not([hidden]) {
    left: 8px !important;
    bottom: max(8px, env(safe-area-inset-bottom)) !important;
    width: calc(100vw - 16px) !important;
    height: min(520px, calc(100dvh - 24px)) !important;
    max-height: calc(100dvh - 24px) !important;
  }
}
@supports not (height: 100dvh) {
  html body #paa-panel:not([hidden]) {
    height: min(560px, calc(100vh - 32px)) !important;
    max-height: calc(100vh - 32px) !important;
  }
  @media (max-width: 700px) {
    html body #paa-panel:not([hidden]) {
      height: min(520px, calc(100vh - 24px)) !important;
      max-height: calc(100vh - 24px) !important;
    }
  }
}


/* v2.8 — MOBILE TYPE FIELD FIX
   Give typing its own full-width row and prevent theme/mobile CSS from crushing the input. */
html body #paa-panel #paa-form {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
}
html body #paa-panel #paa-form .paa-simple-voice,
html body #paa-panel #paa-form .paa-type-row {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
}
html body #paa-panel #paa-form .paa-type-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 58px !important;
  gap: 10px !important;
  align-items: stretch !important;
  margin: 0 !important;
  padding: 0 !important;
}
html body #paa-panel #paa-input {
  display: block !important;
  grid-column: 1 !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  height: 54px !important;
  min-height: 54px !important;
  margin: 0 !important;
  padding: 12px 14px !important;
  box-sizing: border-box !important;
  font-size: 16px !important;
  line-height: 1.25 !important;
  border: 1px solid #cfcfcf !important;
  border-radius: 12px !important;
  background: #fff !important;
  color: #222 !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}
html body #paa-panel #paa-send {
  display: flex !important;
  grid-column: 2 !important;
  align-items: center !important;
  justify-content: center !important;
  width: 58px !important;
  min-width: 58px !important;
  max-width: 58px !important;
  height: 54px !important;
  min-height: 54px !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  flex: 0 0 58px !important;
}

@media (max-width: 700px) {
  html body #paa-panel:not([hidden]) #paa-form {
    padding: 12px 14px calc(14px + env(safe-area-inset-bottom)) !important;
  }
  html body #paa-panel #paa-form .paa-type-row {
    grid-template-columns: minmax(0, 1fr) 60px !important;
    gap: 10px !important;
  }
  html body #paa-panel #paa-input {
    width: 100% !important;
    min-width: 0 !important;
    height: 56px !important;
    min-height: 56px !important;
    font-size: 16px !important; /* prevents iOS auto-zoom */
  }
  html body #paa-panel #paa-send {
    width: 60px !important;
    min-width: 60px !important;
    max-width: 60px !important;
    height: 56px !important;
    min-height: 56px !important;
  }
  html body #paa-panel #paa-mic {
    width: 100% !important;
  }
}

/* Keep the page launcher out of the way whenever the panel is open. */
html body:has(#paa-panel:not([hidden])) #paa-open {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
