:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#17212d;background:#f6f7f9;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,select,textarea{font:inherit}button{cursor:pointer;border:1px solid #d7dce2;background:#fff;color:#25364a;border-radius:10px;padding:10px 14px}button:hover{background:#f2f5f7}button:disabled{opacity:.5;cursor:not-allowed}.primary{border-color:#1f6754;background:#1f6754;color:#fff}.primary:hover{background:#175340}.shell{display:flex;min-height:100dvh}.sidebar{width:260px;flex-shrink:0;background:#e9ecec;border-right:1px solid #d8dedd;padding:20px 14px;display:flex;flex-direction:column;gap:18px}.brand{font-size:19px;font-weight:800;letter-spacing:-.04em;padding:4px 8px}.brand span{font-weight:500;color:#55716b}.conversation-list{overflow:auto;flex:1;display:flex;flex-direction:column;gap:4px}.conversation-list button{text-align:left;border:0;background:transparent;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversation-list button.active{background:#d8e5df;color:#144d3b;font-weight:700}.sidebar-bottom{border-top:1px solid #d2d9d7;padding-top:14px;display:flex;gap:8px}.main{min-width:0;flex:1;display:flex;flex-direction:column;height:100dvh}.topbar{height:72px;flex-shrink:0;border-bottom:1px solid #e1e5e8;background:#fff;display:flex;align-items:center;gap:16px;padding:0 28px}.heading{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.heading strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.heading small{font-size:12px;color:#61717e}.route-label{display:flex;align-items:center;gap:8px;font-size:13px;color:#65717b}.route-label select{border:1px solid #d7dce2;border-radius:8px;padding:8px;background:#fff;color:#23364a}.mobile-menu{display:none}.messages{flex:1;overflow:auto;padding:30px max(24px,calc((100% - 820px)/2));scrollbar-gutter:stable}.empty{text-align:center;margin:18vh auto;color:#6a7782}.empty-mark{font-size:34px;color:#1f6754}.empty h1{font-size:26px;color:#1d2d3b;margin-bottom:8px}.message{margin:0 0 26px;max-width:100%;line-height:1.55}.message.user{margin-left:auto;width:fit-content;max-width:85%;background:#e3ece8;border-radius:16px 16px 4px 16px;padding:12px 16px}.message.assistant{padding:6px 0}.message .meta{font-size:12px;color:#697983;margin-bottom:7px;font-weight:700}.message p{margin:0 0 12px;white-space:pre-wrap;overflow-wrap:anywhere}.message pre{background:#17232c;color:#e9eef1;padding:14px;overflow:auto;border-radius:10px;font-size:13px}.message code{font-family:ui-monospace,SFMono-Regular,monospace}.message img{max-width:min(100%,500px);border-radius:12px;display:block;margin-top:12px}.message .attachment{display:inline-block;border:1px solid #cad4d3;border-radius:8px;padding:6px 10px;margin:6px 6px 0 0;font-size:12px}.message .error{color:#a12b2b}.composer-wrap{width:min(100%,900px);margin:auto;padding:12px 24px 20px}.composer{border:1px solid #cad4d2;background:#fff;border-radius:16px;box-shadow:0 5px 25px rgba(28,44,57,.06);padding:12px}.composer textarea{display:block;resize:vertical;border:0;outline:0;width:100%;min-height:64px;max-height:240px;padding:8px;color:#17212d;background:transparent}.composer-actions{display:flex;gap:8px;align-items:center}.composer-actions button{padding:8px 12px}.spacer{flex:1}.uploads{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}.uploads button{font-size:12px}.notice{height:18px;color:#9a3930;font-size:12px;margin:8px 2px 0}.subtle{border:0;background:transparent;color:#1f6754;padding:4px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}dialog{border:1px solid #d7dedc;border-radius:18px;box-shadow:0 18px 70px rgba(0,0,0,.22);padding:28px;width:min(90vw,440px)}dialog::backdrop{background:rgba(15,31,38,.48)}dialog h2{margin:0 0 10px}dialog p{color:#60717b;line-height:1.5}dialog textarea{width:100%;margin:12px 0}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.voice-panel{text-align:center}.voice-orb{--orb-speed:5s;position:relative;isolation:isolate;width:112px;height:112px;margin:16px auto 24px;border-radius:50%;background:radial-gradient(ellipse at 32% 25%,#fff6d5 0%,#7ef2dc 15%,#4c91ff 42%,#8a4bda 70%,#172b63 100%);box-shadow:0 0 0 10px #e6e0ff99,0 0 34px #59dfff99,0 0 62px #a866ff66,inset -12px -16px 24px #151c5b99;animation:orb-breathe var(--orb-speed) ease-in-out infinite;transition:filter .5s,box-shadow .5s}.voice-orb::before,.voice-orb::after{content:"";position:absolute;z-index:-1;inset:-8px;border-radius:42% 58% 55% 45%;background:conic-gradient(from 0deg,#71f4dc,#5878ff,#d36bff,#ff9c70,#71f4dc);filter:blur(9px);opacity:.72;animation:orb-flow 8s linear infinite}.voice-orb::after{inset:10px;border-radius:50%;background:radial-gradient(circle at 35% 28%,#fff9 0 2%,transparent 25%),radial-gradient(ellipse at 70% 70%,#ffb4e8aa,transparent 52%);filter:blur(1px);opacity:.8;animation:orb-shimmer 4s ease-in-out infinite alternate}.voice-orb[data-state="listening"]{--orb-speed:3.5s;filter:saturate(1.25)}.voice-orb[data-state="thinking"]{--orb-speed:2s;filter:hue-rotate(35deg) saturate(1.4)}.voice-orb[data-state="speaking"]{--orb-speed:.9s;filter:saturate(1.6);box-shadow:0 0 0 12px #e8d9ff99,0 0 42px #60e5ff,0 0 78px #cd63ff,inset -12px -16px 24px #151c5b99}.voice-orb[data-state="reconnecting"]{filter:grayscale(.35);animation:orb-breathe 2.8s ease-in-out infinite,orb-pulse 1.2s ease-in-out infinite alternate}.voice-choice{display:flex;align-items:center;justify-content:center;gap:8px;color:#526474;font-size:13px}.voice-choice select{border:1px solid #d7dce2;border-radius:9px;padding:7px 9px;background:#fff;color:#25364a}.composer-voice-choice{white-space:nowrap}.voice-transcript{min-height:50px}@keyframes orb-breathe{0%,100%{transform:scale(.96)}50%{transform:scale(1.07)}}@keyframes orb-flow{to{transform:rotate(360deg) scale(1.08)}}@keyframes orb-shimmer{from{transform:rotate(-12deg) scale(.94)}to{transform:rotate(12deg) scale(1.06)}}@keyframes orb-pulse{to{opacity:.55}}@media(prefers-reduced-motion:reduce){.voice-orb,.voice-orb::before,.voice-orb::after{animation:none}}.voice-panel .dialog-actions{justify-content:center}@media(max-width:700px){.sidebar{position:fixed;z-index:10;inset:0 auto 0 0;transform:translateX(-100%);transition:transform .2s}.sidebar.open{transform:none;box-shadow:10px 0 20px #0002}.mobile-menu{display:block}.topbar{padding:0 14px;height:62px}.route-label{font-size:0}.route-label select{font-size:12px;max-width:122px}.messages{padding:20px 16px}.composer-wrap{padding:8px 12px 14px}.message.user{max-width:95%}}