.companion-workbench{--companion-ink:#344b4a;--companion-line:#e2e9e4;--companion-accent:#548e7e;container-type:inline-size;box-sizing:border-box;width:100%;min-width:0;max-width:1020px;margin-inline:auto;color:var(--companion-ink);display:flex;flex-direction:column;background:#fdfdf9;border:1px solid #e4e9e0;border-radius:26px;overflow:hidden;box-shadow:0 12px 35px #526f5410}
.companion-workbench *{box-sizing:border-box}.companion-heading{flex:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:21px 26px 16px}.companion-heading h1{font-size:27px;line-height:1.3;margin:4px 0 0;letter-spacing:-.03em}.companion-eyebrow{font-size:10px;color:#879a8c;letter-spacing:.15em}.companion-heading .button{font-size:12px;white-space:nowrap}
.companion-mode-tabs{display:flex;align-items:center;gap:5px;padding:10px 24px;border-block:1px solid #e8ede6;background:#f7f9f3;flex-shrink:0}.companion-mode-tabs button{border:0;background:transparent;padding:9px 15px;border-radius:10px;font:inherit;font-size:13px;color:#7a887d;cursor:pointer}.companion-mode-tabs button[aria-selected=true]{background:#fff;color:#426f65;box-shadow:0 2px 8px #51635412;font-weight:600}.companion-mode-tabs>span{margin-left:auto;font-size:11px;color:#8a9389;max-width:30%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.companion-main-scroll{padding:18px 26px 14px;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;flex:1}.companion-consent-card{padding:13px 16px;border:1px solid #e4e7d7;border-radius:14px;background:#f8f9ef;max-width:680px;margin:0 auto 12px}.companion-consent-card>strong{display:block;font-size:12px;margin-bottom:7px;color:#5d705f}.companion-consent{display:grid;gap:7px}.companion-consent label,.companion-auto-voice{display:flex;gap:8px;align-items:flex-start;font-size:11px;line-height:1.7;color:#728071}.companion-consent input,.companion-auto-voice input{flex:none;margin:3px 0 0;accent-color:#578c78;width:15px;height:15px}.companion-consent-review{max-width:680px;margin:0 auto 5px;font-size:11px;color:#83917e}.companion-consent-review summary{cursor:pointer;padding:5px 0}.companion-consent-review .companion-consent{padding:8px 12px;background:#f7f9f0;border-radius:10px}
.companion-call-stage{display:flex;flex-direction:column;align-items:center;max-width:740px;margin:0 auto}.companion-ai-field{display:flex;flex-direction:column;align-items:center;position:relative;width:100%;padding:4px 0 13px;background:radial-gradient(ellipse at 50% 48%,#e8f8ef99,transparent 57%),radial-gradient(ellipse at 60% 35%,#eee7fc80,transparent 46%)}.companion-avatar{display:inline-block;width:clamp(170px,27vw,260px);aspect-ratio:1;vertical-align:middle}.companion-avatar svg{display:block;width:100%;height:100%;overflow:visible}.ai-sprout{animation:companion-float 4.6s ease-in-out infinite;transform-origin:120px 140px}.ai-eyes{animation:companion-blink 7s infinite;transform-box:fill-box;transform-origin:center}.ai-orbit-dash{transform-origin:120px 130px;animation:companion-orbit 35s linear infinite}.ai-orbits{opacity:.66}.ai-voice-bars{opacity:.15;transform-origin:120px 130px}.ai-sparks{opacity:.55}.companion-avatar[data-avatar-state=thinking] .ai-orbit-dash{animation-duration:5s}.companion-avatar[data-avatar-state=thinking] .ai-eyes{animation:companion-thinking 1.5s ease-in-out infinite}.companion-avatar[data-avatar-state=listening] .ai-orbits{animation:companion-listening 1.6s ease-in-out infinite}.companion-avatar[data-avatar-state=listening] .ai-voice-bars{opacity:.75;animation:companion-spectrum .8s ease-in-out infinite}.companion-avatar[data-avatar-state=talking] .ai-voice-bars{opacity:1;animation:companion-spectrum .42s ease-in-out infinite}.companion-avatar[data-avatar-state=talking] .ai-smile{transform-origin:120px 151px;animation:companion-spectrum .55s ease-in-out infinite}.companion-connection{display:flex;align-items:center;gap:7px;font-size:11px;letter-spacing:.03em;color:#769085;margin-top:3px}.companion-connection i{width:5px;height:5px;background:#8fbba6;border-radius:50%;box-shadow:0 0 0 4px #badbca23}.companion-live-subtitles{text-align:center;width:100%;padding:7px 12px 15px;min-height:110px}.companion-heard{margin:0 0 11px;font-size:12px;line-height:1.7;color:#98a098;overflow-wrap:anywhere}.companion-caption{font-size:clamp(16px,2vw,20px);font-weight:500;line-height:1.85;letter-spacing:.025em;max-width:640px;margin:0 auto;color:#455d57;white-space:pre-wrap;overflow-wrap:anywhere}.companion-caption.is-streaming:after{content:"";display:inline-block;width:3px;height:.9em;vertical-align:-.08em;background:#8db6a3;border-radius:3px;margin-left:5px;animation:companion-cursor 1s steps(2,end) infinite}.companion-caption-status{display:block;font-size:10px;line-height:1.5;min-height:15px;color:#9fa99e;margin-top:7px}
.companion-details{max-width:680px;margin:5px auto 0;border-top:1px solid #edf0e8;color:#899383;font-size:11px}.companion-details>summary{padding:11px 0 4px;cursor:pointer;list-style-position:inside}.companion-context{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:13px 0}.companion-context label{display:grid;gap:5px;color:#72836e;font-size:11px}.companion-context select{width:100%;min-width:0;background:#fff;border:1px solid #e1e8dc;border-radius:9px;padding:8px;color:#546a51;font:inherit;font-size:12px}.companion-evidence p,.companion-small,.companion-privacy{margin:6px 0;font-size:11px;line-height:1.8;color:#899182}.companion-privacy{border-top:1px solid #edf0e8;padding-top:9px;margin-top:10px}
.companion-controls{display:block;flex:none;align-self:stretch;width:100%;min-width:0;max-width:none;margin:0;gap:0;text-align:initial;padding:13px 24px 17px;border-top:1px solid #e5ebe2;background:linear-gradient(#fcfdf9,#f8faf5);position:relative;z-index:1}.companion-notice{margin:0 0 9px;color:#6e897b;font-size:11px;line-height:1.7;text-align:center}.companion-notice:empty{display:none}.companion-notice.is-error{color:#a36554}.companion-call-buttons{display:flex;align-items:center;justify-content:center;gap:9px}.companion-call-buttons .button{min-height:44px;min-width:96px;border-radius:24px;font-size:13px;padding:11px 20px}.companion-start-call{min-width:180px!important;background:#527e6d!important;border-color:#527e6d!important;box-shadow:0 5px 15px #5b856c22}.companion-hangup{color:#a8675f!important;background:#fcf3ef!important;border-color:#eddbd2!important}.companion-call-help{font-size:10px;line-height:1.7;color:#929e90;margin:10px auto 0;max-width:560px;text-align:center}.companion-link,.companion-read{display:block;background:none;border:0;padding:7px 0 0;color:#6a8a76;cursor:pointer;font-size:11px;text-decoration:underline;text-underline-offset:3px}.companion-controls>.companion-link{margin:0 auto}.companion-chat-log{min-height:240px;max-height:400px;overflow:auto;scrollbar-width:thin;padding:6px 1px;overscroll-behavior:contain}.companion-bubble{width:fit-content;max-width:91%;border-radius:16px;padding:12px 16px;margin:0 0 14px;overflow-wrap:anywhere}.companion-bubble>span{font-size:10px;color:#92a18a;display:block;margin-bottom:6px}.companion-bubble p{font-size:14px;line-height:1.85;white-space:pre-wrap;margin:0}.companion-user{background:#eff4ec;border:1px solid #e2eadd;margin-left:auto;border-bottom-right-radius:4px}.companion-assistant{background:#f4f6ed;border:1px solid #e9eddf;border-bottom-left-radius:4px}.companion-bubble small{display:block;margin-top:6px;font-size:10px;color:#a0967d}.companion-empty{text-align:center;padding:30px 5px}.companion-empty h2{font-size:20px;font-weight:500;margin:0 0 20px}.companion-quick{display:grid;gap:8px;max-width:380px;margin:0 auto}.companion-quick button{padding:11px;border:1px solid #e2e9da;border-radius:11px;background:#fdfef8;color:#7b8f72;font:inherit;font-size:12px;cursor:pointer}.companion-composer{max-width:760px;margin:0 auto}.companion-input-label{font-size:11px;display:block;margin-bottom:6px;color:#74846e}.companion-composer textarea{width:100%;min-height:68px;max-height:150px;resize:vertical;border:1px solid #dfe6d9;border-radius:12px;background:#fff;padding:10px 12px;color:#425c45;font:inherit;font-size:13px;line-height:1.6}.companion-composer textarea:focus{outline:3px solid #b7d8bd60;border-color:#8eac91}.companion-composer-actions{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.companion-composer-actions .button{font-size:12px;min-height:36px;padding:7px 14px}.companion-auto-voice{margin-top:8px;font-size:10px}.companion-guest{min-height:0;overflow:auto;text-align:center;padding:25px 22px 35px}.companion-guest .companion-avatar{width:200px}.companion-guest h2{font-weight:500;font-size:22px;margin:9px 0}.companion-guest p{font-size:13px;line-height:1.8;color:#8b9684}.companion-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:22px}.companion-workbench button:focus-visible,.companion-workbench select:focus-visible,.companion-workbench summary:focus-visible{outline:3px solid #b2c9b8;outline-offset:3px}.companion-workbench button:disabled{opacity:.45;cursor:not-allowed}
.companion-compact{height:100%;min-height:0;max-width:none;box-shadow:none;border:0;border-radius:15px}.companion-compact .companion-mode-tabs{padding:7px 12px;border-top:0}.companion-compact .companion-mode-tabs button{font-size:12px;padding:8px 12px}.companion-compact .companion-main-scroll{padding:12px 16px 8px}.companion-compact .companion-avatar{width:clamp(150px,40cqw,220px)}.companion-compact .companion-ai-field{padding:0 0 9px}.companion-compact .companion-live-subtitles{padding:4px 0 10px;min-height:100px}.companion-compact .companion-caption{font-size:17px}.companion-compact .companion-controls{padding:12px 14px 14px}.companion-compact .companion-consent-card{padding:10px 12px;margin-bottom:6px}.companion-compact .companion-chat-log{max-height:none;min-height:200px}.companion-compact .companion-guest{margin:auto 0}.companion-compact .companion-call-help{font-size:10px}
@keyframes companion-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes companion-blink{0%,44%,48%,100%{transform:scaleY(1)}46%{transform:scaleY(.15)}}@keyframes companion-orbit{to{transform:rotate(360deg)}}@keyframes companion-thinking{0%,100%{opacity:.9}50%{opacity:.35}}@keyframes companion-listening{0%,100%{opacity:.45}50%{opacity:1}}@keyframes companion-spectrum{0%,100%{transform:scaleY(.7)}50%{transform:scaleY(1.2)}}@keyframes companion-cursor{50%{opacity:0}}
@container(max-width:600px){.companion-heading{padding:16px 18px}.companion-heading h1{font-size:23px}.companion-eyebrow{font-size:9px}.companion-mode-tabs{padding:8px 14px}.companion-main-scroll{padding:14px 17px 10px}.companion-avatar{width:210px}.companion-caption{font-size:17px}.companion-controls{padding:12px 16px 15px}.companion-consent-card{padding:11px 13px}.companion-call-buttons .button{min-width:82px;padding:10px 15px}.companion-bubble{max-width:96%}.companion-context{gap:8px}}
@media(max-height:720px){.companion-compact .companion-avatar{width:150px}.companion-compact .companion-consent label{font-size:10px}.companion-compact .companion-ai-field{padding-bottom:5px}.companion-compact .companion-live-subtitles{min-height:80px}.companion-compact .companion-caption{font-size:15px}.companion-compact .companion-controls{padding-top:9px;padding-bottom:10px}}
@media(prefers-reduced-motion:reduce){.companion-avatar *,.companion-caption:after{animation:none!important}}

/* Only the full companion page uses the remaining viewport; the shared shell
   measures its wrapping header and mobile navigation through normal flex sizing. */
.workspace:has(#companion-mount){height:100vh;height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.workspace:has(#companion-mount)>.topbar{flex:none}
.workspace:has(#companion-mount)>main{display:flex;flex:1;min-height:0;width:100%;padding-top:20px;padding-bottom:12px}
.workspace:has(#companion-mount)>footer{flex:none;width:100%}
#companion-mount{display:flex;flex:1;min-width:0;min-height:0;width:100%}
#companion-mount>.companion-workbench{height:100%;min-height:0}

.companion-spoken-caption{max-width:640px;margin:0 auto 8px;color:#8a9a8e;font-size:13px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.companion-spoken-caption:empty{display:none}
