:root{--bg: #ffffff;--surface: #f6f7f9;--ink: #14171f;--muted: #667085;--line-strong: #cfd4dc;--accent: #0077b5;--danger: #b42318;--bubble: #f0f0f2;--icon-ink: #2b2d31;--send-bg: #14171f;--send-fg: #ffffff;--mic-bg: #eeeff2;--composer-bg: var(--bg);--composer-line: var(--line-strong);--ease: cubic-bezier(.2, 0, 0, 1);--header-h: 62px;--anchor-top: 78px;--ease-soft: cubic-bezier(.32, .72, 0, 1);--dur: .28s;font-family:SF Pro Text,Segoe UI Variable Text,Segoe UI,Roboto,Helvetica Neue,system-ui,sans-serif;font-size:16px;line-height:24px;color:var(--ink);color-scheme:light dark;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased}@media(prefers-color-scheme:dark){:root{--bg: #1c1c1e;--surface: #2c2c2e;--ink: #f0f0f0;--muted: #aaaaaa;--line-strong: #3a3a3c;--accent: #4ba8d8;--danger: #f97066;--bubble: #2c2c2e;--icon-ink: #e6e6e6;--send-bg: #f0f0f0;--send-fg: #1c1c1e;--mic-bg: #3a3a3c;--composer-bg: #2c2c2e;--composer-line: transparent}}@media(prefers-reduced-motion:reduce){:root{--dur: 0ms}}*,*:before,*:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;overscroll-behavior-y:none;background:var(--bg)}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;background:var(--bg)}.conversation{flex:1;display:flex;flex-direction:column;padding-bottom:calc(var(--dock-h, 78px) + var(--kb-inset, 0px))}.dock{position:fixed;left:0;right:0;bottom:var(--kb-inset, 0px);z-index:10;display:flex;justify-content:center;padding:10px 12px max(12px,env(safe-area-inset-bottom));background:var(--bg)}.dock:focus-within{padding-bottom:12px}.logo-header{position:sticky;top:0;z-index:9;display:flex;flex-shrink:0;align-items:center;justify-content:flex-start;height:var(--header-h);padding:8px 18px;overflow:hidden;contain:layout style paint;background:var(--bg);transition:transform .36s cubic-bezier(.22,1,.36,1),opacity .24s ease,background-color .3s ease}.logo-header.collapsed{transform:translate3d(0,-100%,0);opacity:0;pointer-events:none;will-change:transform,opacity}.logo-link{display:block}.logo-header img{position:absolute;top:50%;left:28px;height:36px;width:auto;object-fit:contain;transform:translate3d(0,-50%,0);transition:opacity .2s ease,transform .36s cubic-bezier(.22,1,.36,1)}.logo-header.collapsed img{transform:translate3d(0,-48%,0);opacity:0}.header-right{position:absolute;top:50%;right:6px;display:flex;align-items:center;gap:2px;transform:translate3d(0,-50%,0)}.hamburger-btn,.newchat-btn{display:flex;align-items:center;width:40px;height:40px;margin:0;padding:8px;border:0;border-radius:10px;background:transparent;appearance:none;-webkit-appearance:none;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background-color .16s ease,opacity .16s ease}.hamburger-btn:active,.newchat-btn:active{background:var(--surface);opacity:.72}.hamburger-btn:focus-visible,.newchat-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.hamburger-btn{flex-direction:column;justify-content:center;align-items:flex-end;gap:4.5px}.hamburger-btn span{display:block;height:1.5px;border-radius:99px;background:var(--icon-ink);transition:width .16s ease,opacity .16s ease}.hamburger-btn span:nth-child(1),.hamburger-btn span:nth-child(3){width:20px}.hamburger-btn span:nth-child(2){width:12px}.newchat-btn{justify-content:center}.newchat-btn svg{display:block;width:24px;height:24px;color:var(--icon-ink);transition:color .16s ease}@media(prefers-color-scheme:dark){.logo-header img{filter:brightness(0) invert(.86)}}@media(prefers-reduced-motion:reduce){.logo-header,.logo-header img,.hamburger-btn,.hamburger-btn span,.newchat-btn,.newchat-btn svg{transition:none}}.thread{display:flex;flex-direction:column;gap:32px;width:100%;max-width:720px;margin-bottom:auto;margin-inline:auto;padding:28px 20px 48px}.turn{display:flex;flex-direction:column;gap:32px}.turn--last{min-height:calc(100vh - var(--anchor-top) - 48px - var(--dock-h, 78px) - var(--kb-inset, 0px));min-height:calc(100dvh - var(--anchor-top) - 48px - var(--dock-h, 78px) - var(--kb-inset, 0px))}.msg{overflow-wrap:anywhere}.msg--user{position:relative;isolation:isolate;align-self:flex-end;max-width:min(82%,560px);margin-right:8px;padding:11px 18px;border:0;border-radius:20px;background:var(--bubble);white-space:pre-wrap;line-height:1.5}.msg--user:before,.msg--user:after{content:"";position:absolute;bottom:0;z-index:-1;height:20px}.msg--user:before{right:-7px;width:20px;background:var(--bubble);border-bottom-left-radius:16px 14px}.msg--user:after{right:-26px;width:26px;background:var(--bg);border-bottom-left-radius:10px}.msg--assistant{align-self:flex-start;max-width:100%;display:flex;flex-direction:column}.msg__text{margin:0;white-space:pre-wrap;line-height:1.65}.msg__text+.msg__text{margin-top:20px}.msg__text .w{animation:word-in .52s ease-out backwards}@keyframes word-in{0%{opacity:0}}.msg__text--error{color:var(--danger)}.typing{display:inline-flex;gap:4px;padding:8px 0}.typing i{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:typing 1s ease-in-out infinite}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes typing{0%,to{opacity:.25}40%{opacity:1}}@media(prefers-reduced-motion:reduce){.msg__text .w{animation:none}.typing i{animation:none;opacity:.6}}.fi{display:block;width:21px;height:21px;flex-shrink:0;background-color:currentColor;-webkit-mask:var(--icon) center / 100% 100% no-repeat;mask:var(--icon) center / 100% 100% no-repeat}.fi--like{--icon: url(https://cdn.jsdelivr.net/npm/@fluentui/svg-icons@1.1.343/icons/thumb_like_24_regular.svg)}.fi--like-on{--icon: url(https://cdn.jsdelivr.net/npm/@fluentui/svg-icons@1.1.343/icons/thumb_like_24_filled.svg)}.fi--dislike{--icon: url(https://cdn.jsdelivr.net/npm/@fluentui/svg-icons@1.1.343/icons/thumb_dislike_24_regular.svg)}.fi--dislike-on{--icon: url(https://cdn.jsdelivr.net/npm/@fluentui/svg-icons@1.1.343/icons/thumb_dislike_24_filled.svg)}.fi--share{--icon: url(https://cdn.jsdelivr.net/npm/@fluentui/svg-icons@1.1.343/icons/share_ios_24_regular.svg)}.fi--copy{--icon: url(https://cdn.jsdelivr.net/npm/@fluentui/svg-icons@1.1.343/icons/copy_24_regular.svg)}.fi--check{--icon: url(https://cdn.jsdelivr.net/npm/@fluentui/svg-icons@1.1.343/icons/checkmark_24_regular.svg)}.fi--more{--icon: url(https://cdn.jsdelivr.net/npm/@fluentui/svg-icons@1.1.343/icons/more_horizontal_24_regular.svg)}.fi--speaker,.fi--speaker-on{width:24px;height:24px}.fi--speaker{--icon: url(https://cdn.jsdelivr.net/npm/@fluentui/svg-icons@1.1.343/icons/speaker_2_24_regular.svg)}.fi--speaker-on{--icon: url(https://cdn.jsdelivr.net/npm/@fluentui/svg-icons@1.1.343/icons/speaker_2_24_filled.svg)}.msg__actions{display:flex;align-items:center;gap:2px;margin-top:6px;margin-left:-8px}.msg__action{display:grid;place-items:center;flex-shrink:0;width:37px;height:37px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--icon-ink);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--dur) var(--ease)}.msg__action:active{background:var(--surface)}@media(hover:hover){.msg__action:hover{background:var(--surface)}}.msg__action--end{margin-left:14px}.msg__action:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}@media(prefers-reduced-motion:reduce){.msg__action{transition:none}}.composer{position:relative;width:min(100%,720px);padding:16px 20px 16px 16px;border-radius:28px;cursor:text;transition:padding calc(var(--dur) * 1.25) var(--ease-soft),border-radius calc(var(--dur) * 1.25) var(--ease-soft)}.composer[data-expanded=true]{padding:16px 12px 59px 20px;border-radius:22px}.composer>*{position:relative;z-index:1}.composer:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:var(--composer-bg);border:1px solid var(--composer-line)}.composer__field{display:flex;align-items:flex-start;min-height:24px;transition:min-height calc(var(--dur) * 1.25) var(--ease-soft)}.composer[data-expanded=true] .composer__field{min-height:32px}.composer__input{display:block;flex:1 1 0;width:auto;min-width:0;max-height:min(40vh,200px);max-height:min(40svh,200px);margin:0;padding:0;border:0;outline:0;resize:none;overflow-y:auto;background:transparent;color:var(--ink);font:inherit;field-sizing:content;position:relative;top:-1px}.composer__input::placeholder{color:var(--muted)}.composer>.composer__actions{position:absolute;left:8px;right:12px;bottom:11px;height:40px;visibility:hidden;pointer-events:none;transition:visibility 0s linear calc(var(--dur) * .4)}.composer[data-expanded=true]>.composer__actions{visibility:visible;pointer-events:auto;transition:visibility 0s}.composer__actions-row{display:flex;align-items:center;justify-content:space-between;gap:12px;height:100%}.composer__actions-row>.attach,.composer__actions-row>.mic,.composer__actions-row>.send{opacity:0;transform:scale(.5)}.composer__actions-row>.composer__hint{opacity:0}.composer__actions-row>.attach,.composer__actions-row>.mic,.composer__actions-row>.composer__hint{transition:opacity calc(var(--dur) * .4) var(--ease),transform calc(var(--dur) * .4) var(--ease)}.composer__actions-row>.send{transition:opacity calc(var(--dur) * .4) var(--ease),transform calc(var(--dur) * .4) var(--ease),background-color var(--dur) var(--ease),color var(--dur) var(--ease)}.composer[data-expanded=true] .composer__actions-row>.attach,.composer[data-expanded=true] .composer__actions-row>.mic,.composer[data-expanded=true] .composer__actions-row>.send,.composer[data-expanded=true] .composer__actions-row>.composer__hint{opacity:1;transform:none}.composer[data-expanded=true] .composer__actions-row>.attach,.composer[data-expanded=true] .composer__actions-row>.mic,.composer[data-expanded=true] .composer__actions-row>.composer__hint{transition:opacity calc(var(--dur) * .8) var(--ease-soft) calc(var(--dur) * .3),transform calc(var(--dur) * 1.1) var(--ease-soft) calc(var(--dur) * .3)}.composer[data-expanded=true] .composer__actions-row>.send{transition:opacity calc(var(--dur) * .8) var(--ease-soft) calc(var(--dur) * .4),transform calc(var(--dur) * 1.1) var(--ease-soft) calc(var(--dur) * .4),background-color var(--dur) var(--ease),color var(--dur) var(--ease)}.composer__hint{font-size:13px;line-height:18px;color:var(--muted)}@media(pointer:coarse){.composer__hint{display:none}}.attach{display:grid;place-items:center;flex:none;color:var(--icon-ink)}.attach--inline{position:relative;width:24px;height:24px;margin-right:10px;transition:width var(--dur) var(--ease),margin-right var(--dur) var(--ease),opacity calc(var(--dur) * .6) var(--ease),visibility 0s}.attach--inline:after{content:"";position:absolute;inset:-12px -6px -12px -12px}.composer[data-expanded=true] .attach--inline{width:0;margin-right:0;opacity:0;visibility:hidden;overflow:hidden;transition:width var(--dur) var(--ease),margin-right var(--dur) var(--ease),opacity calc(var(--dur) * .6) var(--ease),visibility 0s linear var(--dur)}.attach--inline svg{flex:none}.attach--row{width:40px;height:40px}.attach:active svg{opacity:.6}.send{position:relative;display:grid;place-items:center;flex:none;width:40px;height:40px;margin-left:auto;border-radius:50%;background:var(--send-bg);color:var(--send-fg);transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease)}.mic{display:grid;place-items:center;flex:none;width:40px;height:40px;margin:0 -4px 0 auto;padding:0;border:0;border-radius:50%;background:var(--mic-bg);color:var(--icon-ink);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.mic svg{display:block;width:22px;height:22px}.mic:active{opacity:.7}.mic:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mic+.send{margin-left:0}.send>svg,.send>.send__wave{grid-area:1 / 1;transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease)}.send__arrow{opacity:0;transform:translateY(6px) scale(.6)}.send[data-mode=send] .send__arrow{opacity:1;transform:none}.send[data-mode=send] .send__wave{opacity:0;transform:scale(.6)}.send:disabled{background:var(--surface);color:var(--muted);cursor:default}.send__wave{--wave-in-delay: calc(var(--dur) * .75);--wave-in-dur: calc(var(--dur) * .9);display:flex;align-items:center;justify-content:center;gap:2.5px;height:22px}.send__wave i{display:block;flex:none;width:2.5px;height:2.5px;border-radius:999px;background:currentColor}.send__wave i:nth-child(1){--lo: 4px;--hi: 9px;--stag: 70ms;--phase: 0ms}.send__wave i:nth-child(2){--lo: 4px;--hi: 15px;--stag: 35ms;--phase: 90ms}.send__wave i:nth-child(3){--lo: 4px;--hi: 20px;--stag: 0ms;--phase: .18s}.send__wave i:nth-child(4){--lo: 4px;--hi: 15px;--stag: 35ms;--phase: .27s}.send__wave i:nth-child(5){--lo: 4px;--hi: 9px;--stag: 70ms;--phase: .36s}.composer[data-expanded=true] .send[data-mode=voice] .send__wave i{animation:wave .7s ease-in-out calc(var(--wave-in-delay) + var(--stag) + var(--wave-in-dur) + var(--phase)) infinite alternate backwards,wave-in var(--wave-in-dur) var(--ease-soft) calc(var(--wave-in-delay) + var(--stag)) backwards}@keyframes wave-in{0%{height:2.5px}to{height:var(--lo)}}@keyframes wave{0%{height:var(--lo)}to{height:var(--hi)}}@media(prefers-reduced-motion:reduce){.composer[data-expanded=true] .send[data-mode=voice] .send__wave i{animation:none}.send__wave i{height:calc((var(--lo) + var(--hi)) / 2)}}
