/* SAVA mobile composer R2: visible-viewport keyboard layout and compact native controls. */
@media (max-width:720px) {
 html,body,#root {
  height:var(--sava-visible-height,100dvh)!important;
  min-height:0!important;
  max-height:var(--sava-visible-height,100dvh)!important;
  overflow:hidden!important;
  overscroll-behavior:none;
 }
 #root>.layout {
  height:var(--sava-visible-height,100dvh)!important;
  max-height:var(--sava-visible-height,100dvh)!important;
  min-height:0!important;
  overflow:hidden!important;
 }
 #root .layout>.content {
  height:100%!important;max-height:100%!important;min-height:0!important;
  display:flex!important;flex-direction:column!important;overflow:hidden!important;
 }
 #root .content>.top {
  flex:0 0 auto!important;min-height:57px!important;padding:7px 9px!important;
  gap:5px!important;display:flex!important;align-items:center!important;
  overflow:hidden!important;
 }
 #root .content>.top .row {
  flex:1 1 auto!important;display:flex!important;align-items:center!important;
  gap:3px!important;min-width:0!important;white-space:nowrap;
 }
 #root .content>.top .top-right {
  flex:0 0 auto!important;display:flex!important;align-items:center!important;
  gap:3px!important;
 }
 #root .top-right>.pill,#root #activeExpert {display:none!important}
 #root .content>.top .top-right .personal-header-avatar {
  flex:0 0 29px!important;width:29px!important;min-width:29px!important;
 }
 #root .content>.top .top-right .personal-header-avatar img {
  height:29px!important;width:29px!important;object-fit:contain!important;
 }
 #root #pageTitle {
  flex:1 1 auto!important;min-width:0!important;max-width:none!important;
  overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;
  font-size:15px!important;line-height:1.2!important;font-weight:650!important;margin:0!important;
 }
 #root .top .mobile-menu.sava-mobile-menu-button,
 #root .content>.top .sava-mobile-quick {
  display:flex!important;flex:none!important;align-items:center!important;
  justify-content:center!important;flex-direction:column!important;gap:0!important;
  border:0!important;background:transparent!important;color:#194c3d!important;
  padding:2px!important;margin:0!important;border-radius:11px!important;
  min-width:34px!important;width:34px!important;height:42px!important;
  box-shadow:none!important;cursor:pointer;outline-offset:2px!important;
 }
 #root .top .mobile-menu.sava-mobile-menu-button {
  min-width:43px!important;width:43px!important;
 }
 #root .top .mobile-menu.sava-mobile-menu-button svg,
 #root .content>.top .sava-mobile-quick svg {
  display:block!important;width:23px!important;height:23px!important;
  stroke:currentColor;stroke-width:1.9;fill:none;stroke-linecap:round;stroke-linejoin:round;
  pointer-events:none;
 }
 #root .top .mobile-menu.sava-mobile-menu-button .sava-menu-word {
  font-size:10px!important;line-height:1!important;font-weight:600!important;
 }
 #root .content>.top .sava-mobile-quick:active,
 #root .content>.top .sava-mobile-quick:focus-visible {
  background:#e8f4ed!important;
 }
 #root #chatView.chatwrap {
  height:auto!important;max-height:none!important;
  flex:1 1 auto!important;min-height:0!important;overflow:hidden!important;
 }
 #root #chatView>.chat-main {
  height:100%!important;min-height:0!important;display:flex!important;
  flex-direction:column!important;overflow:hidden!important;
 }
 #root #chatView .chat-top {flex:0 0 auto!important}
 #root #chatView .chat-top .mode-setting {display:none!important}
 #root #messages.conversation {
  height:auto!important;min-height:0!important;flex:1 1 auto!important;
  overflow-y:auto!important;overflow-x:hidden!important;
  overscroll-behavior-y:contain;
 }
 #root #chatView .prompt-box {
  position:relative!important;top:auto!important;bottom:auto!important;
  transform:none!important;flex:0 0 auto!important;min-height:0!important;
  overflow:visible!important;
  padding:7px 11px max(6px,env(safe-area-inset-bottom))!important;
  margin:0!important;z-index:5!important;
  border-top:1px solid #e9eee9;
  background:#fff!important;
 }
 #root #chatView .composer.sava-composer-r2 {
  display:flex!important;flex-direction:column!important;align-items:stretch!important;
  gap:0!important;min-height:0!important;width:100%!important;
  border:1px solid #d9e7de!important;background:#fff!important;
  border-radius:22px!important;padding:5px 8px 6px!important;
  box-shadow:0 3px 14px rgba(12,68,45,.07)!important;
 }
 #root #chatView .composer.sava-composer-r2 #prompt {
  display:block!important;flex:none!important;box-sizing:border-box!important;
  width:100%!important;min-width:0!important;max-width:100%!important;
  min-height:40px!important;max-height:35vh;
  border:0!important;outline:0!important;box-shadow:none!important;
  resize:none!important;overflow-y:auto!important;overscroll-behavior:contain;
  font:inherit!important;font-size:16px!important;line-height:1.42!important;
  padding:8px 10px 5px!important;margin:0!important;
  background:transparent!important;color:#193c2d!important;
 }
 #root #chatView .sava-mobile-controls {
  display:flex!important;flex:0 0 auto!important;align-items:center!important;
  justify-content:space-between!important;gap:6px!important;
  width:100%!important;min-height:44px!important;box-sizing:border-box!important;
 }
 #root #chatView .sava-mobile-model-picker {
  position:relative;display:flex!important;flex:1 1 auto!important;
  min-width:0!important;max-width:calc(100% - 105px)!important;
  align-items:center!important;height:42px!important;
  padding:0!important;border:0!important;
  color:#345b48;
 }
 #root #chatView .sava-mobile-model-picker::after {
  content:'⌄';position:absolute;right:10px;top:5px;
  font-size:23px;color:#496e5a;pointer-events:none;
 }
 #root #chatView .sava-mobile-model-picker #mode {
  appearance:none!important;-webkit-appearance:none!important;
  display:block!important;box-sizing:border-box!important;
  width:100%!important;min-width:0!important;max-width:100%!important;
  min-height:40px!important;height:40px!important;
  background:#f1f6f2!important;color:#194e39!important;
  border:0!important;outline-offset:2px!important;border-radius:21px!important;
  padding:5px 30px 5px 13px!important;margin:0!important;
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
  font-size:13px!important;line-height:1.2!important;font-weight:600!important;
 }
 #root #chatView .sava-mobile-controls #savaFilePick {
  flex:0 0 43px!important;max-width:43px!important;
 }
 #root #chatView .sava-mobile-controls #send {
  flex:0 0 45px!important;max-width:45px!important;
 }
 #root #chatView .composer-foot {min-height:0!important;max-height:45px!important;overflow:auto}
 #root .layout>.side.open {
  max-height:var(--sava-visible-height,100dvh)!important;
  height:var(--sava-visible-height,100dvh)!important;
 }
}
#sava-mobile-notice {
 position:fixed;bottom:calc(env(safe-area-inset-bottom) + 95px);left:50%;
 transform:translate(-50%,12px);max-width:min(90vw,380px);z-index:400000;
 opacity:0;pointer-events:none;transition:opacity .15s,transform .15s;
 padding:10px 16px;background:#173e2e;color:white;border-radius:16px;
 font:500 13px/1.4 system-ui,sans-serif;text-align:center;box-shadow:0 8px 25px #1233;
}
#sava-mobile-notice.visible {opacity:1;transform:translate(-50%,0)}
@media (prefers-reduced-motion:reduce) {
 #sava-mobile-notice {transition:none}
}

/* R3 mobile refinement: compact composer, no giant Android-native model dialog. */
@media(max-width:720px) {
 #root #chatView .composer.sava-composer-r3 {
  display:flex!important;flex-direction:column!important;align-items:stretch!important;
  flex-wrap:nowrap!important;gap:0!important;min-height:0!important;
  height:auto!important;padding:5px 8px 6px!important;
  overflow:visible!important;border-radius:20px!important;
 }
 #root #chatView .composer.sava-composer-r3 #prompt {
  display:block!important;box-sizing:border-box!important;
  min-height:36px!important;height:auto;max-height:116px!important;
  flex:0 0 auto!important;width:100%!important;max-width:100%!important;
  margin:0!important;padding:6px 10px 4px!important;
  border:0!important;outline:0!important;box-shadow:none!important;
  background:transparent!important;font-size:16px!important;line-height:1.35!important;
 }
 /* The original hidden file button retains its handler; the compact proxy calls it. */
 #root #chatView .composer.sava-composer-r3 #savaFilePick {
  display:none!important;
 }
 #root #chatView .composer.sava-composer-r3 .sava-mobile-controls {
  display:flex!important;flex-direction:row!important;align-items:center!important;
  flex-wrap:nowrap!important;justify-content:flex-start!important;
  gap:4px!important;width:100%!important;
  min-height:40px!important;height:40px!important;padding:0!important;margin:0!important;
 }
 #root #chatView .composer.sava-composer-r3 .sava-mobile-attach-proxy {
  display:flex!important;flex:none!important;align-items:center!important;justify-content:center!important;
  width:38px!important;height:38px!important;min-width:38px!important;
  padding:0!important;margin:0!important;border:0!important;border-radius:12px!important;
  background:transparent!important;color:#406956!important;
  font:300 27px/1 system-ui,sans-serif!important;box-shadow:none!important;
  cursor:pointer;
 }
 #root #chatView .composer.sava-composer-r3 .sava-mobile-attach-proxy:active {
  background:#edf5ee!important;
 }
 #root #chatView .composer.sava-composer-r3 .sava-mobile-model-picker {
  display:flex!important;position:relative!important;flex:0 1 auto!important;
  width:auto!important;max-width:min(140px,calc(100% - 100px))!important;
  min-width:0!important;height:38px!important;max-height:38px!important;
  margin:0!important;padding:0!important;border:0!important;
  align-items:center!important;justify-content:flex-start!important;
 }
 #root #chatView .composer.sava-composer-r3 .sava-mobile-model-picker::after {
  display:none!important;content:none!important;
 }
 #root #chatView .composer.sava-composer-r3 #savaMobileModelButton {
  position:relative;display:inline-flex!important;align-items:center!important;justify-content:flex-start!important;
  width:auto!important;max-width:100%!important;min-width:0!important;
  height:34px!important;min-height:34px!important;
  border:0!important;border-radius:10px!important;background:transparent!important;
  color:#65776a!important;box-shadow:none!important;
  padding:5px 19px 5px 6px!important;margin:0!important;
  font:500 12px/1.2 system-ui,sans-serif!important;
  text-align:left!important;white-space:nowrap!important;overflow:hidden!important;
  text-overflow:ellipsis!important;cursor:pointer;
 }
 #root #chatView .composer.sava-composer-r3 #savaMobileModelButton::after {
  content:'⌄';position:absolute;right:3px;top:5px;
  color:#839286;font-size:15px;font-weight:400;pointer-events:none;
 }
 #root #chatView .composer.sava-composer-r3 #savaMobileModelButton:active,
 #root #chatView .composer.sava-composer-r3 #savaMobileModelButton[aria-expanded="true"] {
  background:#f1f5f1!important;color:#345d49!important;
 }
 #root #chatView .composer.sava-composer-r3 .sava-mobile-model-menu {
  display:flex;flex-direction:column;position:absolute!important;
  bottom:calc(100% + 7px)!important;left:-5px!important;
  width:205px!important;max-width:calc(100vw - 80px)!important;
  max-height:min(45dvh,190px)!important;overflow-y:auto!important;
  padding:5px!important;gap:1px!important;
  background:#fff!important;color:#1d3d2c!important;
  border:1px solid #dce8df!important;border-radius:14px!important;
  box-shadow:0 10px 30px rgba(12,45,28,.16)!important;
  z-index:50!important;
 }
 #root #chatView .composer.sava-composer-r3 .sava-mobile-model-menu[hidden]{
  display:none!important;
 }
 #root #chatView .composer.sava-composer-r3 .sava-mobile-model-item {
  display:flex!important;position:relative!important;align-items:center!important;
  justify-content:space-between!important;flex:none!important;
  width:100%!important;min-height:40px!important;
  padding:8px 29px 8px 11px!important;margin:0!important;
  border:0!important;border-radius:9px!important;
  background:transparent!important;color:#2c4839!important;
  font:500 13px/1.25 system-ui,sans-serif!important;
  text-align:left!important;cursor:pointer;
 }
 #root #chatView .composer.sava-composer-r3 .sava-mobile-model-item[aria-pressed="true"] {
  background:#edf6ef!important;color:#1b6746!important;
 }
 #root #chatView .composer.sava-composer-r3 .sava-mobile-model-item[aria-pressed="true"]::after {
  content:'✓';position:absolute;right:12px;top:9px;font-size:15px;color:#21855a;
 }
 #root #chatView .composer.sava-composer-r3 .sava-mobile-model-item[disabled] {
  opacity:.4!important;cursor:not-allowed!important;
 }
 #root #chatView .composer.sava-composer-r3 .sava-mobile-controls #send {
  display:inline-grid!important;margin-left:auto!important;
  flex:0 0 43px!important;width:43px!important;min-width:43px!important;
  height:43px!important;min-height:43px!important;
 }
 #root #chatView .prompt-box {
  padding-top:4px!important;padding-bottom:max(5px,env(safe-area-inset-bottom))!important;
 }
}
/* Keep native model controls in the desktop header, not an extra unused row. */
@media(min-width:721px) {
 #chatView .sava-mobile-controls {display:none!important}
}

/* R4: clear main pane; specialist choice belongs to the interactive top-right owl. */
@media(max-width:720px){
 #root #chatView .chat-top {
  display:none!important;
 }
 #root .content>.top #assistantHeaderAvatar.sava-mobile-expert-toggle {
  position:relative!important;cursor:pointer!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  flex:none!important;width:39px!important;height:42px!important;
  min-width:39px!important;min-height:42px!important;
  border-radius:12px!important;touch-action:manipulation;
 }
 #root .content>.top #assistantHeaderAvatar.sava-mobile-expert-toggle:focus-visible {
  outline:2px solid #25875a!important;outline-offset:2px!important;
 }
 #root .content>.top #assistantHeaderAvatar.sava-mobile-expert-toggle[aria-expanded="true"] {
  background:#ecf6ee!important;
 }
 #root #chatView .composer.sava-composer-r3 .sava-mobile-controls {
  position:relative!important;overflow:visible!important;
 }
 #root #chatView .composer.sava-composer-r3 .sava-mobile-attach-menu {
  position:absolute!important;bottom:calc(100% + 9px)!important;left:0!important;
  z-index:70!important;display:flex!important;flex-direction:column!important;
  width:190px!important;max-width:calc(100vw - 55px)!important;
  padding:5px!important;gap:2px!important;
  background:#fff!important;border:1px solid #deebe2!important;
  border-radius:15px!important;box-shadow:0 12px 34px rgba(8,45,28,.17)!important;
 }
 #root #chatView .composer.sava-composer-r3 .sava-mobile-attach-menu[hidden] {
  display:none!important;
 }
 #root #chatView .composer.sava-composer-r3 .sava-mobile-attach-item {
  display:flex!important;flex-direction:row!important;align-items:center!important;
  gap:12px!important;width:100%!important;min-height:46px!important;
  padding:7px 10px!important;margin:0!important;border:0!important;
  border-radius:10px!important;box-shadow:none!important;background:transparent!important;
  text-align:left!important;color:#254734!important;
  font:500 14px/1.3 system-ui,sans-serif!important;cursor:pointer;
 }
 #root #chatView .composer.sava-composer-r3 .sava-mobile-attach-icon {
  flex:none!important;display:flex!important;align-items:center!important;
  justify-content:center!important;width:28px!important;height:28px!important;
  border-radius:8px!important;background:#eaf4ee!important;color:#39815c!important;
  font:500 22px/1 system-ui,sans-serif!important;
 }
 #root #chatView .composer.sava-composer-r3 .sava-mobile-attach-item:active {
  background:#eef7f0!important;
 }
 #savaMobileExpertMenu.sava-mobile-expert-menu {
  position:fixed!important;z-index:310000!important;
  display:flex!important;flex-direction:column!important;align-items:stretch!important;
  width:min(326px,calc(100vw - 24px))!important;max-width:calc(100vw - 24px)!important;
  max-height:min(65dvh,490px)!important;min-height:0!important;
  padding:13px!important;margin:0!important;border:1px solid #dceade!important;
  border-radius:17px!important;background:#fff!important;color:#234833!important;
  box-shadow:0 18px 48px rgba(12,38,23,.22)!important;overflow:hidden!important;
 }
 #savaMobileExpertMenu.sava-mobile-expert-menu[hidden] {
  display:none!important;
 }
 #savaMobileExpertMenu.sava-mobile-expert-menu > strong {
  display:block!important;font:650 16px/1.3 system-ui,sans-serif!important;
 }
 #savaMobileExpertMenu.sava-mobile-expert-menu > small {
  display:block!important;color:#72857a!important;
  font:400 11px/1.45 system-ui,sans-serif!important;
  margin:2px 0 11px!important;
 }
 #savaMobileExpertMenu #savaMobileExpertSearch {
  display:block!important;box-sizing:border-box!important;width:100%!important;
  height:42px!important;min-height:42px!important;padding:9px 12px!important;
  margin:0 0 9px!important;border:1px solid #dae8de!important;
  border-radius:12px!important;background:#f9fcf9!important;
  color:#193e2b!important;font:400 16px/1.25 system-ui,sans-serif!important;
 }
 #savaMobileExpertMenu .sava-mobile-expert-list {
  flex:1 1 auto!important;min-height:0!important;max-height:min(46dvh,360px)!important;
  overflow-y:auto!important;overscroll-behavior:contain!important;
  display:flex!important;flex-direction:column!important;gap:2px!important;
 }
 #savaMobileExpertMenu .sava-mobile-expert-option {
  display:block!important;position:relative!important;flex:none!important;
  width:100%!important;min-height:39px!important;border:0!important;
  border-radius:9px!important;padding:9px 27px 9px 10px!important;margin:0!important;
  box-shadow:none!important;background:transparent!important;color:#285039!important;
  font:500 13px/1.3 system-ui,sans-serif!important;text-align:left!important;
  white-space:normal!important;overflow-wrap:anywhere!important;cursor:pointer;
 }
 #savaMobileExpertMenu .sava-mobile-expert-option[aria-pressed="true"] {
  background:#eaf5ed!important;color:#1c6945!important;
 }
 #savaMobileExpertMenu .sava-mobile-expert-option[aria-pressed="true"]::after {
  content:'✓';position:absolute;right:10px;top:9px;color:#218657;
 }
 #savaMobileExpertMenu .sava-mobile-expert-empty {
  padding:13px!important;margin:0!important;color:#7d8d83!important;font-size:13px!important;
 }
}
@media(min-width:721px){
 #savaMobileExpertMenu.sava-mobile-expert-menu {display:none!important}
}
