/* SAVA 3.0 Lite */
#savaUiSettingsButton{min-width:34px;font-size:20px;padding:5px 7px;border:0;background:#edf6ef}
#savaUiSettings{position:fixed;top:62px;right:19px;width:min(335px,calc(100vw - 30px));max-height:82dvh;overflow:auto;z-index:95;background:#fff;border:1px solid #d3e7db;border-radius:20px;box-shadow:0 18px 56px #112c2433;padding:18px;display:grid;gap:12px}
#savaUiSettings[hidden]{display:none}
#savaUiSettings label{font-size:12px;display:grid;gap:4px}
#savaUiSettings select{padding:10px;font-size:14px}
.sava-settings-title,.sava-settings-actions{display:flex;align-items:center;justify-content:space-between;gap:7px}
.sava-settings-title strong{font-size:17px}
.sava-settings-title button,.sava-settings-actions button,.sava-install{border:1px solid #d8eadc;border-radius:11px;background:#f5faf7;padding:10px 12px;color:#184c33;cursor:pointer;font-size:12px;font-weight:700}
.sava-settings-title button{padding:5px 11px;font-size:20px}
.sava-install{background:#0b905c;color:white;width:100%;border:0}
#savaUiSettings .sava-check{display:flex;align-items:center;gap:10px;font-size:13px}
#savaUiSettings .sava-check input{width:17px;height:17px;accent-color:#0b905c}
#savaUiSettings small{color:#667a6c}
#savaCompanion{position:fixed;z-index:45;width:74px;height:78px;touch-action:none;user-select:none;filter:drop-shadow(0 8px 12px #1f523327)}
#savaCompanion[hidden]{display:none}
.sava-owl-move{display:block;background:transparent;border:0;padding:0;cursor:grab;touch-action:none;width:70px;height:72px}
.sava-owl-move:active{cursor:grabbing}
.sava-owl-move img{width:70px;height:70px;object-fit:contain;pointer-events:none;animation:sava-breathe 4.5s ease-in-out infinite}
.sava-owl-hide{position:absolute;right:-1px;top:-8px;width:21px;height:21px;padding:0;background:#fff;border:1px solid #c7ddce;border-radius:50%;font-size:16px;line-height:18px;color:#335;opacity:.72}
#savaCompanion:hover .sava-owl-hide{opacity:1}
#savaCompanion[data-mood=happy] img{animation:sava-cheer .6s ease-in-out 2}
#savaCompanion[data-mood=talk] img{animation:sava-talk .42s ease-in-out infinite alternate}
@keyframes sava-breathe{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-3px) rotate(1deg)}}
@keyframes sava-cheer{50%{transform:rotate(9deg) scale(1.08)}}
@keyframes sava-talk{to{transform:scale(1.045)}}
.sava-reduce-motion #savaCompanion img{animation:none!important}
.sava-eye{justify-self:end;border:0;background:#edf5ee;border-radius:9px;cursor:pointer;color:#2d5d3e;padding:4px 9px;font-size:13px;margin-top:-3px}
.sava-read-reply{display:inline-flex;align-items:center;margin:8px 0 0 6px;background:transparent;border:0;border-radius:9px;color:#526b5d;font-size:13px;padding:4px 7px;cursor:pointer}
.sava-read-reply:hover{background:#eaf6ef}
:root[data-sava-theme=paper]{--bg:#faf6ed;--mint:#f1eee3;--line:#e8ddc9;--ink:#382f23}
:root[data-sava-theme=paper] body,:root[data-sava-theme=paper] .prompt-box{background:#faf6ed}
:root[data-sava-theme=paper] .conversation{background:#faf6ed}
:root[data-sava-theme=night]{--bg:#151f20;--ink:#e9f0ec;--muted:#a2b9ad;--line:#314b40;--mint:#173d31}
:root[data-sava-theme=night] body,:root[data-sava-theme=night] .conversation,:root[data-sava-theme=night] .prompt-box{background:#151f20;color:#e9f0ec}
:root[data-sava-theme=night] .side,:root[data-sava-theme=night] .top,:root[data-sava-theme=night] .chat-top,:root[data-sava-theme=night] .bubble.assistant,:root[data-sava-theme=night] .composer{background:#20302b;color:#e9f0ec;border-color:#314b40}
:root[data-sava-theme=night] .menu button,:root[data-sava-theme=night] .menu a{color:#bcd8c9}
:root[data-sava-theme=night] input,:root[data-sava-theme=night] select,:root[data-sava-theme=night] textarea,:root[data-sava-theme=night] #savaUiSettings{background:#253a32;color:#e9f0ec;border-color:#44604e}
@media(max-width:620px){#savaUiSettings{top:53px;right:9px}#savaCompanion{width:60px;height:62px}#savaCompanion .sava-owl-move,#savaCompanion img{width:58px;height:58px}}
@media(prefers-reduced-motion:reduce){#savaCompanion img{animation:none!important}}
#savaCompanion[data-mood=thinking] img{animation:sava-breathe 1.1s ease-in-out infinite}
:root[data-sava-theme=night] .bubble.user{color:#153b2a}
:root[data-sava-theme=night] .sava-read-reply{color:#c5ebdb}
.chat-main .conversation{gap:15px}
.composer textarea{line-height:1.55}
@media(max-width:620px){.chat-main .conversation{padding-bottom:22px}.composer{border-radius:15px}#savaCompanion .sava-owl-hide{width:24px;height:24px}}
/* Subtle indication that local speech recording is active. */
#savaCompanion[data-mood=listen] img{animation:sava-voice-listen 1.15s ease-in-out infinite}
@keyframes sava-voice-listen{0%,100%{transform:scale(1);filter:drop-shadow(0 2px 2px #0b905522)}50%{transform:scale(1.07);filter:drop-shadow(0 1px 8px #0b905566)}}
.sava-reduce-motion #savaCompanion[data-mood=listen] img{animation:none}

/* v34: eye is inside input, not floating; native form layout preserved. */
.sava-password-field{display:block;position:relative;width:100%;min-width:0}
.sava-password-field input{width:100%!important;box-sizing:border-box;padding-right:49px!important}
.sava-password-field .sava-eye{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:39px;height:39px;display:grid;place-items:center;margin:0;border:0;background:transparent;color:#446455;font-size:18px;line-height:1;border-radius:10px;cursor:pointer}
.sava-password-field .sava-eye:hover,.sava-password-field .sava-eye:focus-visible{background:#e7f3ec;outline-offset:2px}
.sava-login-help{display:grid;gap:4px;padding:7px 0;font-size:13px}
.sava-forgot-link{color:#08764c;text-decoration:underline;text-underline-offset:3px;font-weight:700}
.sava-login-help small{line-height:1.45;font-size:11px}
.sava-autosave-note{font-size:12px;color:#557360;margin:2px 0 0}
.sava-settings-done{min-height:42px;width:100%;background:#0b905c;border:0;border-radius:11px;color:white;font-weight:700;cursor:pointer}
.sava-save-chat{white-space:nowrap;padding-inline:10px!important;font-size:12px}
@media(max-width:650px){.sava-save-chat{font-size:12px;padding-inline:7px!important}.sava-password-field .sava-eye{width:44px;height:44px}}

/* SAVA simple mobile layout. */
@media(max-width:620px){
 html,body,#root{max-width:100%;overflow-x:hidden}
 .layout{height:100dvh;min-height:0;overflow:hidden}
 .content{height:100dvh;max-height:100dvh;overflow:hidden;display:flex;flex-direction:column}
 .top{height:56px;min-height:56px;flex-shrink:0;padding:6px 12px;gap:6px;z-index:42}
 .top>.row{gap:9px;flex-wrap:nowrap;min-width:0}
 .top .mobile-menu{width:39px;height:39px;padding:0;border:0;background:transparent;font-size:21px}
 #pageTitle{font-size:0;white-space:nowrap}
 #pageTitle::before{content:'Сава';font-size:20px;font-weight:750}
 #activeExpert{display:none!important}
 .top-right{margin-left:auto;gap:2px}
 .top-right .personal-header-avatar,.top-right>.pill,.top-right .sava-save-chat{display:none!important}
 #savaUiSettingsButton{height:39px;width:39px;border-radius:12px}
 .chatwrap{flex:1;height:auto;min-height:0;overflow:hidden}
 .chat-main{height:100%;min-height:0}
 .chat-top{height:50px;min-height:50px;flex:0 0 auto;display:flex;flex-wrap:nowrap!important;padding:5px 12px;background:#fff}
 .chat-top #specialtySearch,.chat-top .mode-setting{display:none}
 .chat-top #expert{width:100%;min-width:0;max-width:100%;height:39px;font-size:13px;padding:8px 11px;border-radius:12px;background:#f8fbf9}
}

@media(max-width:620px){
 .conversation,.chat-main .conversation{flex:1;min-height:0;padding:13px 16px;gap:12px;overflow-y:auto}
 .bubble{font-size:15px;line-height:1.58;max-width:100%}
 .bubble.assistant{background:transparent;border:0;box-shadow:none;border-radius:0;padding:3px 0 12px;max-width:100%}
 .bubble.user{max-width:88%;border-radius:17px;padding:10px 14px}
 .prompt-box{flex:0 0 auto;padding:8px 10px max(10px,env(safe-area-inset-bottom));border-top:1px solid #e3eae5}
 .composer{padding:6px;border-radius:19px;gap:6px;box-shadow:0 2px 12px #183e2710;align-items:center}
 .composer textarea{font-size:16px;min-height:40px;max-height:118px;line-height:1.45;padding:10px 8px}
 .composer #send{width:43px;height:43px;padding:0;border-radius:14px;white-space:nowrap;font-size:0}
 .composer #send::after{content:'➤';font-size:21px}
 .sava-tools-row{gap:6px;margin-top:4px}
 .sava-tools-row #savaFilePick,.sava-tools-row #savaVoicePick{padding:6px 10px;font-size:12px;background:transparent;border-color:transparent}
 .composer-foot{display:none}
 .side{width:min(280px,82vw);left:-100vw;z-index:65}
 .side.open{left:0}
 #savaCompanion{width:47px;height:49px;z-index:41;filter:drop-shadow(0 2px 5px #123b2324)}
 #savaCompanion .sava-owl-move,#savaCompanion .sava-owl-move img{width:45px;height:45px}
 #savaCompanion .sava-owl-hide{width:17px;height:17px;font-size:12px;line-height:13px;right:-2px;top:-2px}
 #savaUiSettings{top:54px;right:8px}
}
@keyframes sava-greet{0%,100%{transform:rotate(0) scale(1)}35%{transform:rotate(14deg) scale(1.16)}65%{transform:rotate(-9deg) scale(1.07)}}
@keyframes sava-thinking{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(6deg) translateY(-4px)}}
#savaCompanion[data-mood=happy] img{animation:sava-greet 1.15s ease-in-out}
#savaCompanion[data-mood=thinking] img{animation:sava-thinking 1.3s ease-in-out infinite}
.sava-reduce-motion #savaCompanion img{animation:none!important}
@media(max-width:620px){
 #savaCompanion{z-index:45}
 .sava-save-in-menu{font-size:13px}
 .sava-model-in-settings{display:grid;gap:5px}
}

/* v42: the owl occasionally peeks and rocks, without covering mobile controls. */
@keyframes sava-owl-awake{
 0%,48%,100%{transform:rotate(0deg) translateY(0) scale(1)}
 58%{transform:rotate(-7deg) translateY(-5px) scale(1.045)}
 66%{transform:rotate(7deg) translateY(-2px) scale(1.05)}
 74%{transform:rotate(-3deg) translateY(-4px) scale(1.025)}
 84%{transform:rotate(0deg) translateY(0) scale(1)}
}
#savaCompanion[data-mood=idle] .sava-owl-move img{
 transform-origin:center 90%;
 animation:sava-owl-awake 5.8s ease-in-out infinite;
}
#savaCompanion[data-mood=happy] .sava-owl-move img{
 transform-origin:center 90%;
 animation:sava-greet 1.15s ease-in-out;
}
@media(prefers-reduced-motion:reduce){
 #savaCompanion[data-mood=idle] .sava-owl-move img{animation:none!important}
}
.sava-reduce-motion #savaCompanion[data-mood=idle] .sava-owl-move img{animation:none!important}

/* Minimal opening screen on phones: one calm prompt, no second big owl or chips. */
@media(max-width:760px){
 #messages .welcome{width:100%;max-width:420px;display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:45%;gap:10px;padding:18px 14px;text-align:center}
 #messages .welcome .sava-main-avatar{display:none!important}
 #messages .welcome .suggestion-wrap{display:none!important}
 #messages .welcome h2{font-size:clamp(22px,6vw,27px);margin:0;color:var(--ink);font-weight:700}
 #messages .welcome p{font-size:13px;line-height:1.55;max-width:290px;margin:0;color:var(--muted)}
}

/* v46 staging: unobtrusive history search and copy answer affordance. */
.sava-chat-search{display:block;width:calc(100% - 20px);margin:8px 10px 12px;padding:10px 13px;min-height:42px;background:#f7faf8;border:1px solid #dce9df;border-radius:13px;color:#19392a;font-size:14px;outline-offset:2px}
.sava-chat-search:focus{outline:2px solid #3ca476}
#history button[hidden],#historySearchEmpty[hidden]{display:none!important}
.sava-chat-search-empty{font-size:12px;margin:7px 10px 15px}
.sava-copy-answer{display:inline-flex;margin-top:10px;border:0;border-radius:10px;padding:7px 11px;background:#f0f5f1;color:#557667;cursor:pointer;font:inherit;font-size:12px;transition:background .15s ease,color .15s ease}
.sava-copy-answer:hover,.sava-copy-answer:focus-visible{background:#d9eee2;color:#095d3e}
@media(max-width:620px){.sava-copy-answer{min-height:40px;padding:8px 12px}.sava-chat-search{min-height:44px}}

/* Isolated candidate: readable controls and responsive containment. */
.history-scope{display:block;margin:0 10px 12px;color:var(--muted,#526657);font-size:12px;line-height:1.5}
.content,.chat-main,.composer,.studio-page{min-width:0}
.bubble,.sava-account-email{overflow-wrap:anywhere}
.bubble pre{max-width:100%;overflow:auto}
.bubble table{display:block;max-width:100%;overflow:auto}
button,summary,.menu a{min-height:40px}
button:focus-visible,summary:focus-visible,a:focus-visible,select:focus-visible,textarea:focus-visible,input:focus-visible{outline:2px solid #08764c;outline-offset:3px}
.sava-copy-answer{min-height:40px;color:#285b43}
.sava-password-field .sava-eye{width:40px;height:40px}
.overlay .modal{max-width:calc(100vw - 24px);max-height:90dvh;overflow:auto;box-sizing:border-box}
#studioMenuBackdrop{position:fixed;inset:0;border:0;background:#102d2166;z-index:64}
:root[data-sava-theme=night] .sava-copy-answer{background:#294739;color:#e9f0ec}
:root[data-sava-theme=night] .sava-password-field .sava-eye{color:#e9f0ec}
@media(min-width:621px){#studioMenuBackdrop{display:none}}
@media(max-width:620px){
 .top .mobile-menu,#savaUiSettingsButton,.chat-top #expert{min-height:40px}
 #pageTitle{font-size:16px;overflow:hidden;text-overflow:ellipsis}
 #pageTitle::before{content:none}
 .sava-tools-row{flex-wrap:wrap}
 .sava-tools-row button{min-height:40px}
 .sava-file-badge{max-width:100%;overflow-wrap:anywhere}
 #savaCompanion .sava-owl-hide{width:40px;height:40px;right:-10px;top:-18px;background:transparent;border:0}
 .studio-page{overflow-y:auto;padding:16px}
}
@media(prefers-reduced-motion:reduce){
 #savaCompanion img,#savaCompanion .sava-owl-move img{animation:none!important}
 *,*::before,*::after{scroll-behavior:auto!important;transition:none!important}
}
/* Keep the chat list scrollable above sidebar footer on narrow screens. */
@media(max-width:620px){
 .side.open{display:flex;flex-direction:column;height:100dvh;overflow:hidden}
 .side-history{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}
 .sidebar-foot{position:relative;flex:0 0 auto;z-index:1}
 #history button{position:relative}
}
