#robot-3d{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none}.has-webgl #robot-3d{opacity:1}.has-webgl .fallback-robot{visibility:hidden}#app .robot-wrap{transform:none;transition:none}.robot-version-nav{display:flex;gap:16px;align-items:center;font-size:14px}.robot-version-nav a{color:var(--forest)}.robot-version-nav span{font-weight:700}.has-webgl .floor-shadow{opacity:.5}@media(max-width:767px){.robot-version-nav{gap:8px;font-size:12px}.robot-version-nav a:last-child{display:none}.robot-version-nav span{max-width:70px}.header{gap:8px}.brand img{width:130px}}
.has-webgl .robot-aura{background:radial-gradient(ellipse,#155B5340 0,#155B5326 43%,#155B5308 64%,transparent 74%);filter:blur(18px)}

@media(max-width:767px){.header-actions{gap:8px}.sound-button{width:44px;min-height:44px;padding:8px;justify-content:center;flex-shrink:0}#sound-label{display:none}.brand img{width:120px}.robot-version-nav{font-size:11px;line-height:1.3;gap:6px}.robot-version-nav a{max-width:42px}.wave-button{font-size:0;width:44px;height:44px;min-height:44px;padding:8px;right:4px;bottom:12px;border:1px solid var(--line);border-radius:50%;background:var(--paper);justify-content:center}.wave-button span{font-size:22px}}

.robot-tag .signal-wave{position:static;bottom:auto;left:auto;transform:none;height:20px;gap:3px;flex-shrink:0}.robot-tag .signal-wave i{width:3px;height:8px}.robot-tag .signal-wave i:nth-child(2n){height:14px}.robot-tag .signal-wave i:nth-child(3){height:11px}.app[data-state=speaking] .fallback-robot .robot-mouth{display:initial}.app[data-state=speaking] .fallback-robot .voice-bars{display:none}
/* Night palette: opaque readable panels; original logo keeps its own white ground. */
.theme-button{flex-shrink:0;font-size:24px;display:grid;place-items:center}
html[data-theme=dark]{color-scheme:dark;--paper:#10221F;--ink:#F5F4EE;--forest:#A0CEBC;--mint:#A0CEBC;--lime:#D1ED83;--muted:#B8C9C1;--line:#39534A;--error:#FF9AA2}
html[data-theme=dark] .brand{padding:7px 12px;background:#F5F4EE;border-radius:8px}
html[data-theme=dark] :is(.sound-button,.icon-button,.suggestions button,.composer,.robot-tag,.conversation,.demo-panel,.details-dialog,.demo-panel>.panel-heading){background:#1B332D;color:var(--ink);border-color:var(--line)}
html[data-theme=dark] .composer input{background:transparent;color:var(--ink)}
html[data-theme=dark] .composer input::placeholder{color:var(--muted)}
html[data-theme=dark] :is(.intro-link,.send-button,.presentation-controls #presentation-next,.dialog-action,.sound-button[aria-pressed=true]){background:var(--lime);color:#1D2B2A;border-color:var(--lime)}
html[data-theme=dark] .intro-link:hover{background:#E1F5AF}
html[data-theme=dark] .mic-button{background:#28463B;color:var(--mint)}
html[data-theme=dark] .wave-button{background:#1B332DEB;color:var(--mint)}
html[data-theme=dark] .robot-note{background:#1B332DEB}
html[data-theme=dark] .toast{background:#D1ED83;color:#1D2B2A}
html[data-theme=dark] .ambient{background:radial-gradient(ellipse at 76% 43%,#A0CEBC24,transparent 47%)}
html[data-theme=dark] .has-webgl .robot-aura{background:radial-gradient(ellipse,#A0CEBC24,#155B5326 43%,transparent 74%)}
html[data-theme=dark] .stage-grid{opacity:.2;background-image:linear-gradient(#A0CEBC44 1px,transparent 1px),linear-gradient(90deg,#A0CEBC44 1px,transparent 1px)}
html[data-theme=dark] .portal{opacity:.55}
html[data-theme=dark] .details-dialog::backdrop{background:#06110DE0}
@media(max-width:767px){.header{gap:8px}.header-actions{gap:6px}.robot-version-nav span{display:none}.robot-version-nav{font-size:11px;flex-shrink:0}.brand img{width:104px}.icon-button,.sound-button{width:40px;min-width:40px;height:44px;min-height:44px}.header{width:calc(100% - 32px)}html[data-theme=dark] .brand{padding:5px 6px}}
.info-dialog{width:min(680px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:hidden}
.info-dialog .dialog-top{margin-bottom:16px}.info-dialog h2{margin:0 0 20px}
.info-tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);margin-bottom:20px;padding-bottom:12px}
.info-tabs button{min-height:44px;padding:8px 14px;font-size:16px;line-height:24px;border:1px solid var(--line);border-radius:8px;color:var(--ink)}
.info-tabs button[aria-selected=true]{background:var(--forest);color:white;border-color:var(--forest)}
.info-page[hidden]{display:none}.info-page p:last-child{margin-bottom:0}
html[data-theme=dark] .info-tabs button[aria-selected=true]{background:var(--lime);color:#1D2B2A;border-color:var(--lime)}
@media(max-width:767px){.info-dialog{padding:20px}.info-dialog .dialog-top{margin-bottom:12px}.info-dialog h2{font-size:24px;line-height:30px;margin-bottom:16px}.info-tabs{gap:6px;margin-bottom:16px;padding-bottom:12px}.info-tabs button{flex:1;padding:8px 6px;font-size:14px;line-height:20px}.info-dialog .info-page p{font-size:16px;line-height:24px;margin-bottom:12px}}
@media(max-height:500px) and (min-width:600px){.info-dialog{width:min(820px,calc(100% - 32px));padding:16px 24px}.info-dialog .dialog-top{margin-bottom:8px}.info-dialog h2{font-size:24px;margin-bottom:12px}.info-tabs{margin-bottom:12px;padding-bottom:8px}.info-dialog .info-page p{font-size:16px;line-height:24px;margin-bottom:8px}}
/* The shell occupies the viewport; long conversations keep their own scroll. */
html,body{height:100%;overflow:hidden}
.app{height:100dvh;min-height:0}
.header{height:80px}.stage{min-height:0}.footer{min-height:48px}
.interaction-area{margin-top:8px}.suggestions{margin-bottom:12px}
@media(min-width:768px) and (max-height:850px){.robot-zone{height:100%;max-height:440px;top:50%}.robot-wrap{inset:-12px 14px 30px}.scene-label{top:8px}.greeting{top:52%}.greeting h1{font-size:48px;line-height:1.08;margin:12px 0 16px}.intro-link{margin-top:20px}.greeting-note{margin-top:16px}.header{height:72px}.footer{min-height:44px}}
@media(min-width:768px) and (max-height:680px){.greeting-note{display:none}.greeting h1{font-size:42px}.scene-label{display:none}.suggestions button{min-height:44px}.composer{padding:8px}.input-caption{font-size:12px}}
@media(max-width:767px){.app{height:100dvh;min-height:0}.header{height:64px;flex-shrink:0}.stage,.app.chat-open .stage,.app.demo-open .stage{min-height:0}.greeting{top:8px}.greeting h1{font-size:32px;line-height:36px;margin:8px 0 12px}.greeting p{font-size:16px;line-height:24px}.intro-link{min-height:44px;margin-top:16px;padding:8px 16px}.robot-zone{bottom:0;width:340px;height:clamp(210px,calc(100dvh - 550px),310px);transform:translateX(-50%)}.robot-wrap{inset:-10px 24px 28px}.robot-tag{font-size:14px;padding:6px 12px}.interaction-area{margin-top:8px}.suggestions{margin-bottom:8px;gap:6px}.suggestions button{font-size:13px;padding:8px;min-height:44px}.footer{min-height:40px;gap:8px}.composer{padding:6px}.mic-button,.send-button{height:44px;min-height:44px}.input-caption{font-size:11px;line-height:16px}.wave-button{bottom:8px}.portal-back{height:190px;top:0}.portal-front{height:170px;top:30px}}
@media(max-width:360px){.info-dialog{padding:16px}.info-dialog .dialog-top{margin-bottom:8px}.info-dialog .eyebrow{font-size:12px}.info-dialog h2{font-size:22px;line-height:26px;margin-bottom:12px}.info-tabs{gap:4px;padding-bottom:8px;margin-bottom:12px}.info-tabs button{font-size:13px;padding:6px 4px}.info-dialog .info-page p{font-size:16px;line-height:22px;margin-bottom:10px}}
/* Фирменное стекло АБР: refractive bevel and broad specular reflections. */
.glass-filter-defs{position:absolute;pointer-events:none;overflow:hidden}
html .app :is(.icon-button,.sound-button,:where(.suggestions) button,.wave-button,.intro-link){position:relative;isolation:isolate;border:1px solid rgba(255,255,255,.52);background:radial-gradient(ellipse at 18% 0%,rgba(255,255,255,.88),transparent 59%),linear-gradient(165deg,rgba(255,255,255,.16) 30%,rgba(160,206,188,.17) 64%,rgba(255,255,255,.45) 100%);backdrop-filter:saturate(150%) blur(1px);backdrop-filter:url(#cosco-glass-lens) saturate(150%);-webkit-backdrop-filter:saturate(150%) blur(1px);box-shadow:inset 0 2px 2px rgba(255,255,255,.95),inset 0 -5px 5px rgba(21,91,83,.13),0 9px 18px rgba(21,55,43,.10),0 1px 1px rgba(21,91,83,.24);color:var(--ink)}
html .app .wave-button{position:absolute}
html .app :is(.icon-button,.sound-button,:where(.suggestions) button,.wave-button,.intro-link)::after{content:'';position:absolute;pointer-events:none;inset:0;border-radius:inherit;background:linear-gradient(112deg,transparent 9%,rgba(255,255,255,.34) 24%,transparent 41%,transparent 72%,rgba(255,255,255,.24) 90%,transparent);opacity:.8}
html .app :is(.icon-button,.sound-button,:where(.suggestions) button,.wave-button):hover{background-color:rgba(160,206,188,.18);box-shadow:inset 0 2px 3px white,inset 0 -5px 7px rgba(21,91,83,.18),0 10px 22px rgba(21,55,43,.15)}
html .app .intro-link,html .app .sound-button[aria-pressed=true]{background:radial-gradient(ellipse at 15% 0%,rgba(255,255,255,.38),transparent 65%),linear-gradient(165deg,rgba(21,91,83,.89),rgba(21,91,83,.72) 60%,rgba(160,206,188,.49));color:white;border-color:rgba(160,206,188,.64);text-shadow:0 1px 2px #103E3980}
html[data-theme=dark] .app :is(.icon-button,.sound-button,:where(.suggestions) button,.wave-button){background:radial-gradient(ellipse at 18% 0%,rgba(210,255,234,.27),transparent 62%),linear-gradient(165deg,rgba(160,206,188,.025) 30%,rgba(160,206,188,.09) 65%,rgba(160,206,188,.26));border-color:rgba(160,206,188,.28);color:#F5F4EE;box-shadow:inset 0 2px 2px rgba(232,255,244,.5),inset 0 -5px 6px rgba(0,14,9,.36),0 10px 20px rgba(0,0,0,.22)}
html[data-theme=dark] .app .intro-link,html[data-theme=dark] .app .sound-button[aria-pressed=true]{background:radial-gradient(ellipse at 18% 0%,rgba(255,255,255,.77),transparent 62%),linear-gradient(165deg,rgba(209,237,131,.94),rgba(209,237,131,.73) 62%,rgba(235,255,196,.95));color:#1D2B2A;border-color:#D1ED8380;text-shadow:none}
/* Status is information, never a button. Hide the redundant idle greeting. */
html .app .robot-tag{position:absolute;border:0;border-radius:0;background:none;padding:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;color:var(--muted);font-size:14px;pointer-events:none}
html .app .robot-tag::after,html .app .robot-tag::before{display:none}
.app[data-state=idle] .robot-tag{visibility:hidden}
@supports not (backdrop-filter:blur(1px)){html .app :is(.icon-button,.sound-button,:where(.suggestions) button,.wave-button){background-color:#E6EFE6}html[data-theme=dark] .app :is(.icon-button,.sound-button,:where(.suggestions) button,.wave-button){background-color:#25483A}}

html[data-theme=dark] .app .robot-tag{background:transparent;border:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;color:var(--muted)}
