/* MIDIVIS Assistant: isolated UI and SVG motion. No third-party widget styles. */
.assistant-widget{--assistant-offset:18px;position:fixed;right:max(18px,env(safe-area-inset-right));bottom:calc(var(--assistant-offset) + env(safe-area-inset-bottom));z-index:80;font:14px/1.5 Arial,Helvetica,sans-serif;color:#f1f1ed}
.assistant-widget [hidden]{display:none!important}
.assistant-launcher{width:76px;height:90px;display:block;padding:5px;border:0;background:transparent;border-radius:22px;color:#7ec8d4;transition:background .2s}
.assistant-launcher:hover,.assistant-launcher:active{background:#11181cdd;border:0;transform:none}
.assistant-launcher svg{width:100%;height:100%;overflow:visible;filter:none}
.assistant-widget[data-crowded=true]:not(:has(.assistant-panel:not([hidden]))) .assistant-launcher{visibility:hidden}
.assistant-preferences-link{padding:0;border:0;background:none;font:inherit;color:inherit;min-height:30px;text-transform:none;letter-spacing:0;text-align:left}
.assistant-preferences-link:hover{background:none;color:#7ec8d4;border:0}
.assistant-panel{position:absolute;right:0;bottom:102px;display:flex;flex-direction:column;width:390px;max-height:min(640px,calc(100dvh - 145px - env(safe-area-inset-bottom)));border:1px solid #343a3d;border-radius:14px;background:#0b0e10;box-shadow:0 18px 70px #000b;overflow:hidden;animation:assistant-enter .18s ease-out}
.assistant-panel-header,.assistant-welcome,.assistant-fields,.assistant-status{flex-shrink:0}
.assistant-panel-header{display:flex;align-items:center;justify-content:space-between;padding:17px 20px 0;gap:12px}
.assistant-panel-header h2{font-size:17px;letter-spacing:-.02em;margin:0;font-weight:600}
.assistant-close{min-width:40px;min-height:40px;width:40px;height:40px;padding:0;border:0;background:transparent;font:400 28px/1 Arial;color:#a9b0b5;border-radius:6px}
.assistant-close:hover{background:#202428;border:0}
.assistant-welcome{display:flex;align-items:center;gap:16px;padding:8px 20px 14px}
.assistant-portrait{flex:0 0 52px;height:68px;filter:none}
.assistant-portrait svg{width:100%;height:100%;overflow:visible}
.assistant-welcome p{margin:0}.assistant-greeting{font-size:16px}.assistant-local{font-size:12px;line-height:1.6;color:#919ba4}
.assistant-fields{display:grid;grid-template-columns:1fr 138px;gap:6px 10px;padding:0 20px}
.assistant-fields label{font-size:12px;color:#a7afb5;margin:0}.assistant-fields label:first-child{grid-column:1;grid-row:1}.assistant-fields label[for=assistant-category]{grid-column:2;grid-row:1}
.assistant-fields input,.assistant-fields select{min-width:0;width:100%;padding:11px 10px;min-height:44px;margin:0;border:1px solid #383e43;border-radius:5px;background:#14191d;color:#f1f1ed;font:14px/1.4 Arial}
.assistant-fields input{grid-column:1;grid-row:2}.assistant-fields select{grid-column:2;grid-row:2}
.assistant-status{min-height:18px;margin:8px 20px;font-size:12px;line-height:1.5;color:#9ca7af}
.assistant-content{min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 20px 20px;scrollbar-width:thin;scrollbar-color:#3c454b transparent}
.assistant-question{display:block;text-align:left;width:100%;min-height:44px;padding:11px 0;border:0;border-bottom:1px solid #252c31;border-radius:0;background:transparent;color:#d8dfe2;font:14px/1.55 Arial;text-transform:none;letter-spacing:0;white-space:normal;overflow-wrap:anywhere}
.assistant-question:hover,.assistant-question:active{color:#7ec8d4;background:transparent;border-color:#39434a;transform:none}
.assistant-answer{padding:4px 0 22px;margin:0 0 12px;border-bottom:1px solid #444c52}
.assistant-answer h3{font-size:18px;line-height:1.4;margin:0 0 12px;font-weight:500}.assistant-answer h4{font-size:12px;margin:22px 0 2px;color:#9ba6af;font-weight:400}
.assistant-answer p,.assistant-empty{font-size:14px;line-height:1.8;color:#b6c0c7;margin:0 0 15px}
.assistant-text-link{color:#e6edef;font-size:13px;border-bottom:1px solid #60686f;padding-bottom:2px}.assistant-text-link:hover{color:#7ec8d4;border-color:#7ec8d4}
.assistant-quick-links{display:flex;gap:15px;flex-wrap:wrap;margin:24px 0}.assistant-quick-links a{line-height:1.8}
.assistant-settings{font-size:13px;border-top:1px solid #2c3338;padding-top:14px}.assistant-settings summary{cursor:pointer;color:#c2c9cd;min-height:32px}
.assistant-settings label{display:flex;align-items:center;gap:10px;margin:10px 0;min-height:32px;color:#bfc8ce}.assistant-settings input{width:18px;height:18px;accent-color:#ff2548;margin:0}.assistant-settings p{margin-bottom:0}
@keyframes assistant-enter{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(max-width:520px){.assistant-widget{right:max(12px,env(safe-area-inset-right))}.assistant-launcher{width:62px;height:76px}.assistant-panel{position:fixed;right:max(12px,env(safe-area-inset-right));left:max(12px,env(safe-area-inset-left));bottom:calc(104px + env(safe-area-inset-bottom));width:auto;max-height:min(640px,calc(100dvh - 200px - env(safe-area-inset-bottom)));border-radius:12px}.assistant-panel-header{padding:12px 16px 0}.assistant-welcome{padding:4px 16px 10px;gap:10px}.assistant-fields{padding:0 16px;grid-template-columns:minmax(0,1fr) 128px}.assistant-content{padding:0 16px 16px}.assistant-status{margin-left:16px;margin-right:16px}.assistant-local{font-size:11px}.assistant-portrait{flex-basis:44px;height:58px}.assistant-greeting{font-size:15px}}
@media(max-height:560px){.assistant-welcome{display:none}.assistant-panel{bottom:88px;max-height:calc(100dvh - 186px)}.assistant-fields{padding-top:8px}}
@media(prefers-reduced-motion:reduce){.assistant-widget *,.assistant-widget *::before,.assistant-widget *::after{animation:none!important;transition:none!important}}
/* Assistant 1.1 — character drawing, articulated poses and soft expression morphs. */
.assistant-launcher{width:116px;height:136px;padding:3px;border-radius:30px}
.assistant-launcher svg{filter:none}
.assistant-panel{bottom:148px;max-height:min(640px,calc(100dvh - 240px - env(safe-area-inset-bottom)))}
.assistant-welcome{gap:12px;padding:2px 20px 12px;align-items:center}
.assistant-portrait{flex:0 0 118px;height:138px;filter:none}
.assistant-greeting{font-size:18px;line-height:1.35;letter-spacing:-.02em}
.assistant-welcome .assistant-local{margin-top:8px}
.assistant-widget svg{overflow:visible;animation:mascot-hover-11 5.6s cubic-bezier(.45,0,.55,1) infinite;will-change:transform}
.assistant-widget .mascot-pose{transform-origin:133px 217px;transform-box:view-box;transition:transform .58s cubic-bezier(.22,1,.36,1)}
.assistant-widget .mascot-head-pose{transform-origin:115px 205px;transform-box:view-box;transition:transform .62s cubic-bezier(.22,1,.36,1)}
.assistant-widget .mascot-body-pose{transform-origin:128px 229px;transform-box:view-box;transition:transform .58s cubic-bezier(.22,1,.36,1)}
.assistant-widget .wing-upper-pose,.assistant-widget .wing-lower-pose,.assistant-widget .wing-upper-motion,.assistant-widget .wing-lower-motion{transform-origin:166px 220px;transform-box:view-box;transition:transform .65s cubic-bezier(.22,1,.36,1)}
.assistant-widget .arm-left-pose{transform-origin:86px 222px;transform-box:view-box;transition:transform .6s cubic-bezier(.22,1,.36,1)}
.assistant-widget .arm-right-pose{transform-origin:148px 231px;transform-box:view-box;transition:transform .6s cubic-bezier(.22,1,.36,1)}
.assistant-widget .mascot-body-motion{transform-origin:128px 220px;transform-box:view-box;animation:mascot-breathe-11 5.6s ease-in-out infinite}
.assistant-widget .wing-upper-motion{animation:mascot-upper-idle-11 7s ease-in-out infinite}
.assistant-widget .wing-lower-motion{animation:mascot-lower-idle-11 7s ease-in-out infinite}
.assistant-widget .mascot-head-motion{transform-origin:115px 205px;transform-box:view-box;animation:mascot-head-idle-11 7s ease-in-out infinite}
.assistant-widget .mascot-eyes{transform-origin:128px 175px;transform-box:view-box;animation:mascot-blink-11 7.6s ease-in-out infinite}
.assistant-widget .face-gaze{transform-origin:128px 177px;transform-box:view-box;transition:transform .5s ease}
.assistant-widget .eye-left,.assistant-widget .eye-right,.assistant-widget .mascot-mouth,.assistant-widget .brow-left,.assistant-widget .brow-right{transition:d .48s ease,transform .48s ease;transform-box:view-box}
.assistant-widget .mascot-brows{transition:opacity .4s ease}
/* Greeting — the upper wing waves from its shoulder, not from its tip. */
.assistant-widget svg[data-state=greeting] .mascot-pose{transform:rotate(-5deg)}
.assistant-widget svg[data-state=greeting] .mascot-head-pose{transform:rotate(-5deg)}
.assistant-widget svg[data-state=greeting] .wing-upper-pose{transform:rotate(-21deg)}
.assistant-widget svg[data-state=greeting] .wing-lower-pose{transform:rotate(-5deg)}
.assistant-widget svg[data-state=greeting] .arm-left-pose{transform:rotate(18deg)}
.assistant-widget svg[data-state=greeting] .eye-left{d:path('M101 175Q107 165 114 174')}
.assistant-widget svg[data-state=greeting] .eye-right{d:path('M138 171Q146 161 153 171')}
.assistant-widget svg[data-state=greeting] .mascot-mouth{d:path('M120 187C125 190 133 187 138 183C138 200 125 204 120 187Z')}
/* Thinking — gaze up, head inclined, one hand drawn towards the cheek. */
.assistant-widget svg[data-state=thinking] .mascot-head-pose{transform:rotate(-9deg)}
.assistant-widget svg[data-state=thinking] .mascot-body-pose{transform:rotate(3deg)}
.assistant-widget svg[data-state=thinking] .arm-right-pose{transform:rotate(-113deg)}
.assistant-widget svg[data-state=thinking] .wing-upper-pose{transform:rotate(9deg)}
.assistant-widget svg[data-state=thinking] .wing-lower-pose{transform:rotate(8deg)}
.assistant-widget svg[data-state=thinking] .face-gaze{transform:translate(-2px,-3px)}
.assistant-widget svg[data-state=thinking] .eye-left{d:path('M108 168Q105 171 107 175')}
.assistant-widget svg[data-state=thinking] .eye-right{d:path('M147 165Q146 168 142 172')}
.assistant-widget svg[data-state=thinking] .mascot-mouth{d:path('M124 192C128 190 132 191 134 193C130 192 127 193 124 192Z')}
.assistant-widget svg[data-state=thinking] .mascot-brows{opacity:.85}
.assistant-widget svg[data-state=thinking] .brow-left{d:path('M100 157Q107 154 114 157')}
.assistant-widget svg[data-state=thinking] .brow-right{d:path('M140 155Q147 152 153 149')}
/* Happy — raised wings, outward arms, smiling eyes and an open smile. */
.assistant-widget svg[data-state=happy] .mascot-pose{transform:translate(0,-3px) rotate(-6deg)}
.assistant-widget svg[data-state=happy] .mascot-head-pose{transform:rotate(4deg)}
.assistant-widget svg[data-state=happy] .wing-upper-pose{transform:rotate(-29deg)}
.assistant-widget svg[data-state=happy] .wing-lower-pose{transform:rotate(-25deg)}
.assistant-widget svg[data-state=happy] .arm-left-pose{transform:rotate(31deg)}
.assistant-widget svg[data-state=happy] .arm-right-pose{transform:rotate(-36deg)}
.assistant-widget svg[data-state=happy] .eye-left{d:path('M101 176Q108 164 115 174')}
.assistant-widget svg[data-state=happy] .eye-right{d:path('M138 172Q146 159 154 169')}
.assistant-widget svg[data-state=happy] .mascot-mouth{d:path('M118 187C126 192 135 187 141 181C140 204 123 210 118 187Z')}
/* Surprise — wide eyes, rounded mouth, a small recoil and open hands. */
.assistant-widget svg[data-state=surprised] .mascot-pose{transform:translate(-7px,0) rotate(-4deg)}
.assistant-widget svg[data-state=surprised] .mascot-head-pose{transform:rotate(6deg)}
.assistant-widget svg[data-state=surprised] .arm-left-pose{transform:rotate(24deg)}
.assistant-widget svg[data-state=surprised] .arm-right-pose{transform:rotate(-28deg)}
.assistant-widget svg[data-state=surprised] .wing-upper-pose{transform:rotate(-9deg)}
.assistant-widget svg[data-state=surprised] .wing-lower-pose{transform:rotate(12deg)}
.assistant-widget svg[data-state=surprised] .eye-left{d:path('M108 161Q103 173 106 184')}
.assistant-widget svg[data-state=surprised] .eye-right{d:path('M149 157Q148 170 142 182')}
.assistant-widget svg[data-state=surprised] .mascot-mouth{d:path('M124 186C112 183 113 202 124 202C136 203 137 185 124 186Z')}
.assistant-widget svg[data-state=surprised] .mascot-brows{opacity:1}
.assistant-widget svg[data-state=surprised] .brow-left{d:path('M99 152Q107 148 114 152')}
.assistant-widget svg[data-state=surprised] .brow-right{d:path('M140 148Q148 143 155 146')}
/* Sleep — lowered head, folded wings and slow, shallow breathing. */
.assistant-widget svg[data-state=sleeping] .mascot-pose{transform:translate(0,6px) rotate(4deg)}
.assistant-widget svg[data-state=sleeping] .mascot-head-pose{transform:translate(0,7px) rotate(11deg)}
.assistant-widget svg[data-state=sleeping] .wing-upper-pose{transform:rotate(27deg)}
.assistant-widget svg[data-state=sleeping] .wing-lower-pose{transform:rotate(18deg)}
.assistant-widget svg[data-state=sleeping] .arm-right-pose{transform:rotate(14deg)}
.assistant-widget svg[data-state=sleeping] .eye-left{d:path('M101 174Q108 181 115 173')}
.assistant-widget svg[data-state=sleeping] .eye-right{d:path('M137 170Q145 178 153 169')}
.assistant-widget svg[data-state=sleeping] .mascot-mouth{d:path('M124 192C127 194 130 193 133 191C130 195 127 196 124 192Z')}
.assistant-widget svg[data-state=sleeping] .wing-upper-motion,.assistant-widget svg[data-state=sleeping] .wing-lower-motion,.assistant-widget svg[data-state=sleeping] .mascot-head-motion,.assistant-widget svg[data-state=sleeping] .mascot-eyes{animation:none}
.assistant-widget svg[data-state=sleeping] .mascot-body-motion{animation-duration:8s}
/* Error — uncertain brows, a small frown and a protective, folded pose. */
.assistant-widget svg[data-state=error] .mascot-pose{transform:rotate(5deg)}
.assistant-widget svg[data-state=error] .mascot-head-pose{transform:translate(0,2px) rotate(6deg)}
.assistant-widget svg[data-state=error] .wing-upper-pose{transform:rotate(18deg)}
.assistant-widget svg[data-state=error] .wing-lower-pose{transform:rotate(12deg)}
.assistant-widget svg[data-state=error] .arm-left-pose{transform:rotate(-12deg)}
.assistant-widget svg[data-state=error] .arm-right-pose{transform:rotate(22deg)}
.assistant-widget svg[data-state=error] .eye-left{d:path('M109 171Q106 176 108 181')}
.assistant-widget svg[data-state=error] .eye-right{d:path('M148 169Q145 174 142 178')}
.assistant-widget svg[data-state=error] .mascot-mouth{d:path('M121 195C125 188 132 187 137 192C132 190 126 191 121 195Z')}
.assistant-widget svg[data-state=error] .mascot-brows{opacity:1}
.assistant-widget svg[data-state=error] .brow-left{d:path('M100 162Q107 159 114 154')}
.assistant-widget svg[data-state=error] .brow-right{d:path('M138 152Q145 159 153 158')}
@keyframes mascot-hover-11{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes mascot-breathe-11{0%,100%{transform:scale(1)}50%{transform:scale(1.008,1.014)}}
@keyframes mascot-upper-idle-11{0%,65%,100%{transform:rotate(0)}79%{transform:rotate(-2.5deg)}}
@keyframes mascot-lower-idle-11{0%,65%,100%{transform:rotate(0)}82%{transform:rotate(2deg)}}
@keyframes mascot-head-idle-11{0%,65%,100%{transform:rotate(0)}79%{transform:rotate(-.6deg)}}
@keyframes mascot-blink-11{0%,44%,48%,100%{transform:scaleY(1)}46%{transform:scaleY(.08)}}
.assistant-widget[data-motion=off] *,.assistant-widget[data-motion=off] *::before,.assistant-widget[data-motion=off] *::after{animation:none!important;transition:none!important}
@media(max-width:520px){.assistant-launcher{width:92px;height:108px}.assistant-portrait{flex-basis:92px;height:108px}.assistant-welcome{gap:12px;padding:0 16px 8px}.assistant-greeting{font-size:17px}.assistant-panel{bottom:calc(134px + env(safe-area-inset-bottom));max-height:min(640px,calc(100dvh - 224px - env(safe-area-inset-bottom)))}}
@media(max-height:560px){.assistant-panel{bottom:132px;max-height:calc(100dvh - 224px)}.assistant-welcome{display:none}}
@media(prefers-reduced-motion:reduce){.assistant-widget *,.assistant-widget *::before,.assistant-widget *::after{animation:none!important;transition:none!important}}
@media(max-height:560px) and (min-width:521px){.assistant-panel{position:fixed;right:152px;left:auto;bottom:18px;width:min(390px,calc(100vw - 180px));max-height:calc(100dvh - 108px)}}
/* The character gets its own small stage, rather than an icon slot next to text. */
.assistant-welcome{flex-direction:column;gap:1px;padding:0 20px 14px}
.assistant-portrait{flex:0 0 auto;width:146px;height:169px}
.assistant-welcome>div:last-child{text-align:center;max-width:300px}
.assistant-welcome .assistant-local{margin-top:4px}
@media(max-width:520px){.assistant-welcome{padding:0 16px 10px}.assistant-portrait{width:120px;height:139px}}
@media(max-height:700px) and (min-height:561px){.assistant-welcome{flex-direction:row;gap:12px}.assistant-portrait{width:96px;height:111px}.assistant-welcome>div:last-child{text-align:left}}
