/* Aifate HUB — living Companion presentation. Core dialogue remains in companion.js. */
.hibiki-companion-fab{--hibiki-look-x:0px;--hibiki-look-y:0px;--hibiki-highlight-x:0px;--hibiki-micro-x:0px;--hibiki-micro-y:0px;--hibiki-micro-rotate:0deg;--hibiki-micro-scale:1;--hibiki-face-x:0px;--hibiki-face-y:0px;--hibiki-hair-x:0px;--hibiki-hair-y:0px;--hibiki-body-look-x:0px;right:8px!important;bottom:4px!important;width:128px!important;height:166px!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;color:inherit!important;box-shadow:none!important;overflow:visible!important;display:block!important;filter:drop-shadow(0 18px 24px rgba(19,61,93,.22));transition:filter .24s ease,opacity .18s ease,translate .24s ease;touch-action:none;user-select:none;cursor:grab}
.hibiki-companion-fab.hibiki-dragging{cursor:grabbing;translate:0 0}.hibiki-companion-fab.hibiki-positioned{margin:0!important}
.hibiki-companion-fab:hover{translate:0 -2px}.hibiki-companion-fab[hidden]{display:none!important}
.hibiki-avatar-stage{position:relative;display:block;width:115px;height:153px;transform:translate3d(calc(var(--hibiki-look-x) + var(--hibiki-micro-x)),calc(var(--hibiki-look-y) + var(--hibiki-micro-y)),0) rotate(var(--hibiki-micro-rotate)) scale(var(--hibiki-micro-scale));transform-origin:50% 100%;transition:transform .65s cubic-bezier(.2,.72,.24,1)}
.hibiki-avatar-body{position:absolute;inset:0;display:block;transform-origin:50% 100%}
.hibiki-deformable-scene{position:absolute;inset:0;display:block;overflow:visible;transform:translate3d(var(--hibiki-body-look-x),0,0);transform-origin:50% 100%;transition:transform .13s ease-out}
.hibiki-deformable-canvas,.hibiki-deformable-fallback{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:contain;object-position:bottom center;pointer-events:none;user-select:none;-webkit-user-drag:none}
.hibiki-deformable-fallback[hidden]{display:none!important}
.hibiki-deformable-canvas{z-index:2}.hibiki-deformable-fallback{z-index:1}
.hibiki-deformable-scene[data-renderer-ready="webgl2"] .hibiki-deformable-canvas{animation:hibiki-canvas-ready .22s ease both}
.hibiki-layered-scene{position:absolute;inset:0;display:block;overflow:visible;transform:translate3d(var(--hibiki-body-look-x),0,0);transform-origin:50% 100%;transition:transform .13s ease-out}
.hibiki-layer{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:contain;object-position:bottom center;user-select:none;-webkit-user-drag:none;pointer-events:none}
.hibiki-layer-base{z-index:2}
.hibiki-layer-hair-back{z-index:1;transform:translate(calc(13.3% + var(--hibiki-hair-x)),calc(-2.6% + var(--hibiki-hair-y))) scale(.72);transform-origin:0 0;opacity:.58;transition:transform .18s cubic-bezier(.2,.7,.2,1) .12s}
.hibiki-layer-head{position:absolute;inset:0;z-index:3;display:block;transform:translate3d(var(--hibiki-face-x),var(--hibiki-face-y),0) rotate(var(--hibiki-head-r,0deg));transform-origin:60% 30%;transition:transform .13s ease-out}
.hibiki-layer-hair-front{z-index:7;transform:translate(calc(13.3% + var(--hibiki-hair-x)),calc(-2.6% + var(--hibiki-hair-y))) scale(.72);transform-origin:0 0;opacity:.97;transition:transform .18s cubic-bezier(.2,.7,.2,1) .11s}
.hibiki-layer-face{position:absolute;left:var(--anchor-x);top:var(--anchor-y);width:var(--anchor-width);height:var(--anchor-height);overflow:hidden;border-radius:48%;transform:translate(-50%,-50%);-webkit-mask-image:radial-gradient(ellipse at center,#000 48%,rgba(0,0,0,.86) 65%,transparent 80%);mask-image:radial-gradient(ellipse at center,#000 48%,rgba(0,0,0,.86) 65%,transparent 80%)}
.hibiki-face-source{display:block;width:100%;height:100%;object-fit:fill}
.hibiki-layered-rig{position:absolute;inset:0;z-index:8;display:block;pointer-events:none}
.hibiki-layer-eye{position:absolute;left:var(--anchor-x);top:var(--anchor-y);width:var(--anchor-width);height:var(--anchor-height);overflow:hidden;border-radius:48%;transform:translate(-50%,-50%) rotate(-.8deg);-webkit-mask-image:radial-gradient(ellipse,#000 67%,transparent 82%);mask-image:radial-gradient(ellipse,#000 67%,transparent 82%)}
.hibiki-eye-source{position:absolute;inset:-5%;width:110%;height:110%;object-fit:fill;transform:translate(var(--hibiki-pupil-x),var(--hibiki-pupil-y));transition:transform .09s ease-out}
.hibiki-pseudo-rig{position:absolute;inset:0;z-index:2;display:block;pointer-events:none;transform:translate3d(var(--hibiki-face-x,0),var(--hibiki-face-y,0),0);transition:transform .16s ease-out}
.hibiki-rig-eye{position:absolute;left:var(--anchor-x);top:var(--anchor-y);width:var(--anchor-width);height:var(--anchor-height);overflow:hidden;border-radius:50%;transform:translate(-50%,-50%);filter:drop-shadow(0 0 1px rgba(255,255,255,.35))}
.hibiki-rig-pupil{position:absolute;left:50%;top:50%;width:22%;height:48%;border-radius:50%;background:radial-gradient(circle at 62% 26%,rgba(255,255,255,.78) 0 12%,rgba(28,75,103,.5) 17% 48%,rgba(8,27,38,.62) 56% 100%);opacity:calc(.08 + var(--hibiki-rig-strength,0)*.2);mix-blend-mode:multiply;transform:translate(calc(-50% + var(--hibiki-pupil-x,0px)),calc(-50% + var(--hibiki-pupil-y,0px)));transition:transform .09s ease-out,opacity .18s ease}
.hibiki-rig-lid{position:absolute;inset:-8% -4%;border-radius:52%;background:linear-gradient(180deg,rgba(232,181,157,.96),rgba(239,196,174,.96));box-shadow:inset 0 -1px 0 rgba(74,44,36,.4);opacity:0;transform:scaleY(.05);transform-origin:50% 18%}
.hibiki-layered-rig[data-blink="true"] .hibiki-rig-lid,.hibiki-pseudo-rig[data-blink="true"] .hibiki-rig-lid{animation:hibiki-pseudo-blink .19s cubic-bezier(.45,0,.55,1) both}
.hibiki-layer-eyes-closed{position:absolute;left:var(--anchor-x);top:var(--anchor-y);width:var(--anchor-width);height:var(--anchor-height);overflow:hidden;opacity:0;transform:translate(-50%,-50%) rotate(-8deg);transform-origin:50% 50%}
.hibiki-closed-source{position:absolute;width:117%;height:762%;left:-8.7%;top:-346.8%;object-fit:fill}
.hibiki-layered-rig[data-blink="true"] .hibiki-layer-eyes-closed{animation:hibiki-real-eyelids .19s cubic-bezier(.45,0,.55,1) both}
.hibiki-layer-mouth{position:absolute;left:var(--anchor-x);top:var(--anchor-y);width:var(--anchor-width);height:var(--anchor-height);overflow:hidden;border-radius:48%;transform:translate(-50%,-50%) rotate(-8deg);-webkit-mask-image:radial-gradient(ellipse,#000 65%,transparent 84%);mask-image:radial-gradient(ellipse,#000 65%,transparent 84%)}
.hibiki-layer-mouth img{position:absolute;display:block;opacity:0;transition:opacity .11s ease}
.hibiki-mouth-neutral{inset:0;width:100%;height:100%;object-fit:fill;opacity:1!important}
.hibiki-mouth-talk-a{width:186%;height:403%;left:-47.4%;top:-169.9%;object-fit:fill}
.hibiki-mouth-talk-b{width:123.4%;height:267.2%;left:-11.8%;top:-93.9%;object-fit:fill}
.hibiki-layered-rig[data-mouth="talkA"] .hibiki-mouth-neutral,.hibiki-layered-rig[data-mouth="talkB"] .hibiki-mouth-neutral{opacity:0!important}
.hibiki-layered-rig[data-mouth="talkA"] .hibiki-mouth-talk-a,.hibiki-layered-rig[data-mouth="talkB"] .hibiki-mouth-talk-b{opacity:.96}
.hibiki-rig-mouth{position:absolute;left:var(--anchor-x);top:var(--anchor-y);width:var(--anchor-width);height:var(--anchor-height);border-bottom:1px solid rgba(83,33,33,.58);border-radius:0 0 60% 60%;opacity:.25;transform:translate(-50%,-50%) scaleY(.7);transform-origin:50% 0}
.hibiki-avatar-glow{position:absolute;inset:10px 2px 0;border-radius:44%;background:radial-gradient(circle at 50% 42%,color-mix(in srgb,var(--hibiki-accent,#3ca6e8) 56%,transparent),transparent 70%);filter:blur(4px);opacity:.58;transform:scale(1.02);transition:opacity .35s ease,transform .5s ease}
.hibiki-avatar-highlight{position:absolute;inset:11px 14px 34px;z-index:3;border-radius:50%;background:radial-gradient(circle at 62% 32%,rgba(255,255,255,.36),transparent 35%);mix-blend-mode:screen;opacity:.68;pointer-events:none;transform:translate3d(var(--hibiki-face-x,0),var(--hibiki-face-y,0),0);transition:transform .16s ease-out}
.hibiki-thinking-indicator{position:absolute;left:7px;bottom:10px;z-index:3;display:none;gap:3px;align-items:center;padding:5px 6px;border:1px solid rgba(84,153,198,.25);border-radius:99px;background:rgba(255,255,255,.92);box-shadow:0 4px 12px rgba(31,93,132,.13)}
.hibiki-thinking-indicator i{width:3px;height:3px;border-radius:50%;background:#5599c4;animation:hibiki-thought-dot 1.5s ease-in-out infinite}.hibiki-thinking-indicator i:nth-child(2){animation-delay:.17s}.hibiki-thinking-indicator i:nth-child(3){animation-delay:.34s}
.hibiki-fab-caption{position:absolute;right:8px;bottom:8px;z-index:12;display:block;min-width:70px;padding:5px 9px;border:1px solid rgba(66,132,177,.2);border-radius:999px;background:rgba(255,255,255,.9);box-shadow:0 6px 18px rgba(15,31,51,.12);text-align:center;backdrop-filter:blur(8px)}
.hibiki-fab-caption strong{display:none}.hibiki-fab-caption small{font-size:10px;line-height:1;color:#47738e;font-weight:800}

[data-hibiki-state="idle"] .hibiki-avatar-body{animation:hibiki-living-idle 7.6s cubic-bezier(.46,.02,.42,.99) infinite}
[data-hibiki-state="idle"] .hibiki-layered-scene{animation:hibiki-breath-depth 5.4s ease-in-out infinite alternate}
[data-hibiki-state="idle"] .hibiki-avatar-glow{animation:hibiki-breath-glow 5.9s ease-in-out infinite alternate}
[data-hibiki-state="attention"] .hibiki-avatar-body{animation:hibiki-attention .78s cubic-bezier(.16,.78,.24,1) both}
[data-hibiki-state="attention"] .hibiki-avatar-glow,[data-hibiki-state="happy"] .hibiki-avatar-glow,[data-hibiki-state="notify"] .hibiki-avatar-glow,[data-hibiki-state="wake"] .hibiki-avatar-glow{opacity:.92;transform:scale(1.14)}
[data-hibiki-state="attention"] .hibiki-rig-pupil,[data-hibiki-state="notify"] .hibiki-rig-pupil,[data-hibiki-state="error"] .hibiki-rig-pupil{opacity:.9}
[data-hibiki-state="thinking"] .hibiki-avatar-body{animation:hibiki-thinking 2.7s ease-in-out infinite}
[data-hibiki-state="thinking"] .hibiki-avatar-glow{animation:hibiki-thinking-glow 2.3s ease-in-out infinite}
[data-hibiki-state="thinking"] .hibiki-thinking-indicator{display:flex}
[data-hibiki-state="speaking"] .hibiki-avatar-body{animation:hibiki-speaking .68s ease-in-out infinite alternate}
[data-hibiki-state="speaking"][data-hibiki-phase="calm"] .hibiki-avatar-body{animation-duration:1.45s}
[data-hibiki-state="speaking"] .hibiki-layer-head{animation:hibiki-speaking-head .84s ease-in-out infinite alternate}
[data-hibiki-state="speaking"] .hibiki-layer-mouth{animation:hibiki-speaking-jaw .72s ease-in-out infinite alternate}
[data-hibiki-state="happy"] .hibiki-avatar-body{animation:hibiki-happy .94s cubic-bezier(.2,.78,.25,1) both}
[data-hibiki-state="notify"] .hibiki-avatar-body{animation:hibiki-notify 1.25s ease-in-out both}
[data-hibiki-state="error"] .hibiki-avatar-body{animation:hibiki-concern 2s ease-in-out both}
[data-hibiki-state="error"] .hibiki-layered-scene{filter:saturate(.78)}
[data-hibiki-state="error"] .hibiki-avatar-glow{opacity:.32;background:radial-gradient(circle at 50% 42%,rgba(205,145,118,.34),transparent 70%)}
[data-hibiki-state="concern"] .hibiki-avatar-body{animation:hibiki-concern 2s ease-in-out both}
[data-hibiki-state="concern"] .hibiki-deformable-scene{filter:saturate(.86)}
[data-hibiki-state="concern"] .hibiki-avatar-glow{opacity:.36;background:radial-gradient(circle at 50% 42%,rgba(205,145,118,.34),transparent 70%)}
[data-hibiki-state="sleep"] .hibiki-avatar-body{animation:hibiki-sleep 11s ease-in-out infinite}
[data-hibiki-state="sleep"] .hibiki-avatar-glow{opacity:.22}.hibiki-companion-fab[data-hibiki-state="sleep"]{filter:drop-shadow(0 8px 18px rgba(19,61,93,.12))}
[data-hibiki-state="sleep"] .hibiki-rig-pupil{opacity:.18}[data-hibiki-state="wake"] .hibiki-avatar-body{animation:hibiki-wake .72s cubic-bezier(.2,.8,.24,1) both}
[data-hibiki-scrolling="true"] .hibiki-avatar-body,[data-hibiki-scrolling="true"] .hibiki-layered-scene,[data-hibiki-scrolling="true"] .hibiki-layer-head,[data-hibiki-scrolling="true"] .hibiki-avatar-glow{animation-play-state:paused!important}
[data-hibiki-visibility="hidden"] .hibiki-avatar-body,[data-hibiki-visibility="hidden"] .hibiki-layered-scene,[data-hibiki-visibility="hidden"] .hibiki-layer-head,[data-hibiki-visibility="hidden"] .hibiki-avatar-glow,[data-hibiki-visibility="hidden"] .hibiki-thinking-indicator i{animation-play-state:paused!important}
.hibiki-character-changing .hibiki-avatar-stage{opacity:0;transform:translateX(5px) scale(.97)}

@keyframes hibiki-living-idle{0%,100%{transform:translateY(0) rotate(-.25deg)}24%{transform:translateY(-.7px) rotate(.32deg)}57%{transform:translateY(-1.1px) rotate(-.45deg)}78%{transform:translateY(-.4px) rotate(.25deg)}}
@keyframes hibiki-canvas-ready{from{opacity:0}to{opacity:1}}
@keyframes hibiki-breath-shadow{from{box-shadow:0 8px 24px rgba(23,73,108,.18)}to{box-shadow:0 11px 29px rgba(23,73,108,.25)}}
@keyframes hibiki-breath-depth{from{scale:1 1}to{scale:1.004 1.012}}
@keyframes hibiki-breath-glow{from{opacity:.48;transform:scale(.99)}to{opacity:.67;transform:scale(1.055)}}
@keyframes hibiki-attention{0%{transform:translateY(0) scale(1)}40%{transform:translateY(-7px) rotate(1.1deg) scale(1.025)}72%{transform:translateY(-2px) rotate(-.45deg) scale(1.008)}100%{transform:none}}
@keyframes hibiki-thinking{0%,100%{transform:translateY(0) rotate(-1deg) scale(.998,1.002)}48%{transform:translateY(-2px) rotate(-2.3deg) scale(1.002,1.006)}}
@keyframes hibiki-thinking-glow{0%,100%{opacity:.48;transform:scale(1)}50%{opacity:.75;transform:scale(1.08)}}
@keyframes hibiki-thought-dot{0%,65%,100%{opacity:.28;transform:translateY(0)}35%{opacity:1;transform:translateY(-2px)}}
@keyframes hibiki-speaking{from{transform:translateY(0) rotate(-.45deg) scale(1)}to{transform:translateY(-2.2px) rotate(.7deg) scale(1.006)}}
@keyframes hibiki-speaking-head{from{translate:0 0;rotate:-.18deg}to{translate:0 -1.2px;rotate:.28deg}}
@keyframes hibiki-speaking-jaw{from{transform:translate(-50%,-50%) scaleY(.99)}to{transform:translate(-50%,calc(-50% + .7px)) scaleY(1.018)}}
@keyframes hibiki-speech-shadow{from{box-shadow:0 7px 23px rgba(23,73,108,.18)}to{box-shadow:0 11px 29px rgba(46,137,192,.28)}}
@keyframes hibiki-happy{0%{transform:none}43%{transform:translateY(-6px) rotate(1.1deg) scale(1.034)}72%{transform:translateY(-1px) rotate(-.5deg) scale(1.01)}100%{transform:none}}
@keyframes hibiki-notify{0%,100%{transform:none}28%{transform:translate(-1px,-3px) rotate(-1.5deg) scale(1.012)}55%{transform:translate(1px,-4px) rotate(1.5deg) scale(1.018)}78%{transform:translateY(-1px) rotate(-.4deg)}}
@keyframes hibiki-concern{0%,100%{transform:none}35%{transform:translateY(1px) rotate(-1.1deg) scale(.992)}70%{transform:translateY(1px) rotate(.35deg) scale(.995)}}
@keyframes hibiki-sleep{0%,100%{transform:translateY(1px) rotate(-.18deg) scaleX(1) scaleY(1)}53%{transform:translateY(0) rotate(.18deg) scaleX(.998) scaleY(1.005)}}
@keyframes hibiki-wake{0%{transform:translateY(2px) scale(.988)}45%{transform:translateY(-4px) rotate(.7deg) scale(1.025)}100%{transform:none}}
@keyframes hibiki-pseudo-blink{0%,100%{opacity:0;transform:scaleY(.05)}42%,58%{opacity:1;transform:scaleY(1)}}
@keyframes hibiki-real-eyelids{0%,100%{opacity:0}42%,58%{opacity:.98}}
@keyframes hibiki-mouth-cadence{from{transform:translate(-50%,-50%) scaleX(.92) scaleY(.62)}to{transform:translate(-50%,calc(-50% + .7px)) scaleX(1.04) scaleY(1.48)}}

.hibiki-companion-panel{border-color:var(--border,var(--line,#e4e9f2));background:var(--surface,var(--white,#fff))}
.hibiki-companion-panel .companion-header{background:linear-gradient(135deg,#f7fcff 0%,#fff 55%,#eef8ff 100%)}
.hibiki-companion-panel .companion-quick,.hibiki-companion-panel .companion-compose{flex-wrap:wrap;overflow-x:hidden;background:var(--surface,var(--white,#fff))}
.hibiki-companion-identity{display:grid!important;grid-template-columns:42px 1fr;grid-template-rows:auto auto;align-items:center;column-gap:10px;min-width:0}
.hibiki-companion-identity>.hibiki-header-avatar{grid-row:1/3;width:38px;height:51px}.hibiki-companion-identity>.hibiki-header-avatar .hibiki-avatar-glow{inset:0}.hibiki-companion-identity>.hibiki-header-avatar .hibiki-thinking-indicator{left:-2px;bottom:-2px;scale:.8}
.hibiki-companion-identity>strong{align-self:end}.hibiki-companion-identity>small{align-self:start}

.hibiki-companion-nudge{position:fixed;right:240px;bottom:104px;z-index:79;display:grid;gap:7px;width:min(260px,calc(100vw - 270px));padding:11px 12px 9px;border:1px solid #cce9fa;border-radius:17px 17px 4px 17px;background:rgba(255,255,255,.98);box-shadow:0 12px 30px rgba(19,61,93,.16);opacity:0;transform:translate(6px,8px) scale(.96);backdrop-filter:blur(8px)}
.hibiki-companion-nudge.ready{animation:hibiki-nudge-in .28s ease both}.hibiki-companion-nudge.preparing{pointer-events:none}
.hibiki-companion-nudge[data-severity="red"]{border-color:#e8c1b5;box-shadow:0 12px 30px rgba(114,66,52,.16)}.hibiki-nudge-message{margin:0;color:#174c6e;font:700 13px/1.48 Inter,"Noto Sans JP",system-ui,sans-serif}.hibiki-nudge-actions{display:flex;justify-content:flex-end;gap:6px}.hibiki-nudge-view,.hibiki-nudge-later{min-height:28px;padding:4px 10px;border:1px solid #b9dff3;border-radius:999px;background:#fff;color:#174c6e;font:700 11px/1.2 Inter,"Noto Sans JP",system-ui,sans-serif;cursor:pointer}.hibiki-nudge-view{border-color:#248bc7;background:#248bc7;color:#fff}.hibiki-nudge-view:hover{background:#157ab5}.hibiki-nudge-later:hover{background:#eef8fd}.hibiki-companion-nudge.leaving{animation:hibiki-nudge-out .26s ease both}body:has(.app-shell.nav-open) .hibiki-companion-nudge{display:none}
@keyframes hibiki-nudge-in{from{opacity:0;transform:translate(6px,8px) scale(.96)}to{opacity:1;transform:none}}@keyframes hibiki-nudge-out{to{opacity:0;transform:translate(6px,8px) scale(.96)}}

body:has(.sticky-publish-bar) .hibiki-companion-fab{bottom:calc(var(--sticky-footer-height,88px) + 12px + env(safe-area-inset-bottom))!important}
body:has(.sticky-publish-bar) .hibiki-companion-nudge{bottom:calc(var(--sticky-footer-height,88px) + 34px + env(safe-area-inset-bottom))}

@media(max-width:560px){.hibiki-companion-fab{right:0!important;bottom:max(4px,env(safe-area-inset-bottom))!important;width:96px!important;height:126px!important}.hibiki-avatar-stage{width:86px;height:115px;--hibiki-look-x:0px!important;--hibiki-look-y:0px!important;--hibiki-highlight-x:0px!important}.hibiki-fab-caption{right:3px;bottom:4px;min-width:56px;padding:4px 6px}.hibiki-fab-caption small{font-size:8px}.hibiki-companion-panel{right:0;left:0;width:auto;max-width:none}.hibiki-companion-nudge{right:88px;bottom:54px;width:min(222px,calc(100vw - 96px));padding:10px}.hibiki-nudge-message{font-size:12px}body:has(.sticky-publish-bar) .hibiki-companion-fab{bottom:calc(184px + env(safe-area-inset-bottom))!important}body:has(.sticky-publish-bar) .hibiki-companion-nudge{bottom:calc(224px + env(safe-area-inset-bottom))}.app-shell.nav-open .hibiki-companion-fab{display:none!important}}
@media(prefers-reduced-motion:reduce){.hibiki-avatar-stage{transform:none!important}.hibiki-avatar-body,.hibiki-deformable-scene,.hibiki-layered-scene,.hibiki-layer-head,.hibiki-layer-mouth,.hibiki-avatar-glow,.hibiki-thinking-indicator i,.hibiki-companion-nudge,.hibiki-rig-lid{animation:none!important}.hibiki-layer,.hibiki-eye-source,.hibiki-layer-head,.hibiki-deformable-scene,.hibiki-layered-scene,.hibiki-pseudo-rig,.hibiki-rig-pupil,.hibiki-avatar-stage,.hibiki-avatar-glow,.hibiki-avatar-highlight,.hibiki-companion-fab{transition:none!important}.hibiki-eye-source{transform:none!important}.hibiki-rig-pupil{transform:translate(-50%,-50%)!important}.hibiki-rig-lid,.hibiki-layer-eyes-closed{opacity:0!important}}

/* Keyboard-visible Companion viewport; applies after legacy panel declarations. */
.companion-panel.open{top:var(--companion-top,16px);left:var(--companion-left,auto);right:auto;bottom:auto;width:var(--companion-width,min(480px,calc(100vw - 32px)));height:var(--companion-height,min(760px,calc(100svh - 32px)));max-height:none;grid-template-rows:auto auto minmax(0,1fr) auto;box-sizing:border-box;min-width:0;min-height:0}
.companion-panel.companion-compact{border-radius:0}
.companion-header,.companion-quick,.companion-log,.companion-compose{min-width:0;min-height:0;box-sizing:border-box}
.companion-header{grid-row:1}.companion-quick{grid-row:2}.companion-log{grid-row:3}.companion-compose{grid-row:4}
.companion-header{padding-top:max(10px,env(safe-area-inset-top));padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));flex-shrink:0}
.companion-header>div{min-width:0}.companion-header>.button{flex-shrink:0}
.companion-log{overscroll-behavior:contain;overflow-wrap:anywhere;-webkit-overflow-scrolling:touch}
.companion-compose,.hibiki-companion-panel .companion-compose{display:flex;flex-wrap:nowrap;width:100%;gap:9px;padding:10px max(12px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));align-items:center}
.companion-compose textarea{flex:1 1 auto;width:0;min-width:0;max-width:100%;box-sizing:border-box;font-size:16px;max-height:96px}
.companion-compose-row{display:flex;width:100%;min-width:0;gap:9px;align-items:center}.companion-compose-row textarea{width:100%;min-width:0;resize:vertical}.companion-compose.companion-compose-stack{flex-direction:column;align-items:stretch;gap:7px}
.companion-compose .button{flex:0 0 auto;white-space:nowrap;box-sizing:border-box}
@media(max-height:430px){.companion-panel.open{grid-template-rows:auto auto minmax(0,1fr) auto}.companion-header{padding-top:6px;padding-bottom:6px}.companion-header small{display:none}}
.companion-panel.companion-short{grid-template-rows:auto auto minmax(0,1fr) auto}.companion-short .companion-header{padding-top:6px;padding-bottom:6px}.companion-short .companion-header small{display:none}
.hibiki-deformable-canvas[hidden]{display:none!important}
/* Shared full-character retarget presentation; no old face/part overlay. */
.retarget-scene{position:absolute;inset:0;display:block}
.retarget-canvas,.retarget-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;pointer-events:none}
.retarget-canvas[hidden],.retarget-poster[hidden]{display:none!important}
.retarget-stage{--hibiki-look-x:0px;--hibiki-look-y:0px;transform:none}

/* Quick prompts remain available on phones, including keyboard-visible viewports. */
.hibiki-companion-panel .companion-quick{display:flex;flex-wrap:wrap;gap:6px;overflow-x:hidden;padding:8px 10px}
.hibiki-companion-panel .companion-quick .button{min-height:44px;max-width:100%;white-space:normal;overflow-wrap:anywhere;flex:0 1 auto;padding:7px 10px;font-size:12px}
.companion-short .companion-quick{padding:4px 8px;gap:4px}
.companion-short .companion-header{padding-top:4px;padding-bottom:4px}

/* Medium mobile presentation: source frames and motion stay unchanged. */
@media(max-width:560px){
  :root{--hibiki-mobile-width:clamp(92px,25vw,104px)}
  .hibiki-companion-fab{width:calc(var(--hibiki-mobile-width) + 10px)!important;height:calc(var(--hibiki-mobile-width) * 1.333333 + 11px)!important}
  .hibiki-companion-fab .hibiki-fab-avatar{width:var(--hibiki-mobile-width);height:calc(var(--hibiki-mobile-width) * 1.333333)}
  .hibiki-companion-nudge{right:calc(var(--hibiki-mobile-width) + 18px);bottom:calc(var(--hibiki-mobile-width) * .666667);width:min(222px,calc(100vw - var(--hibiki-mobile-width) - 26px))}
}

/* Neo LINE Companion Chat: familiar chronology with one living, reusable speaker. */
.neo-line-companion-chat .hibiki-companion-identity{display:block!important}
.neo-line-companion-chat .hibiki-companion-identity>strong,.neo-line-companion-chat .hibiki-companion-identity>small{display:block}
.neo-line-companion-chat .companion-header{padding-block:11px;background:#fff;border-bottom-color:#dbe7ef}
.neo-line-companion-chat .companion-quick{gap:6px;padding:7px 10px;border-bottom:1px solid #e5edf3;background:#f8fbfd}
.neo-line-companion-chat .companion-log{gap:12px;padding:12px;background:linear-gradient(180deg,#edf5f8,#f7fafb)}
.companion-message.assistant{position:relative;display:block;max-width:96%;transition:padding-top .28s ease}
.companion-message.assistant.companion-live{padding-top:139px}
.companion-static-icon{display:none}
.companion-static-icon img{width:100%;height:100%;object-fit:contain}
.companion-message.assistant>.companion-answer,.companion-message.assistant>.companion-bubble{max-width:100%;border-radius:16px 16px 16px 5px;background:#fff}
.neo-line-companion-chat .companion-bubble.human{max-width:84%;border-radius:16px 16px 5px 16px;background:#247aaf;color:#fff}
.companion-waiting{color:#517184}
.hibiki-chat-active{position:absolute;top:0;left:clamp(10px,6vw,32px);z-index:3;display:block;width:98px;height:131px;pointer-events:none;opacity:0;transform:translate3d(var(--chat-origin-x,0),var(--chat-origin-y,50px),0) scale(.72);transform-origin:50% 100%;filter:drop-shadow(0 8px 13px rgba(20,74,108,.16));transition:opacity .28s ease,transform .32s cubic-bezier(.2,.74,.24,1)}
.hibiki-chat-active .hibiki-chat-avatar{width:98px;height:131px}
.hibiki-chat-active.emerging.active{opacity:1;transform:translate3d(0,0,0) scale(1)}
.hibiki-chat-active.returning{opacity:.05;transform:translate3d(var(--chat-origin-x,0),var(--chat-origin-y,50px),0) scale(.72)}
.hibiki-chat-active.shifted{left:clamp(10px,6vw,32px);transform:translate3d(0,0,0) scale(.94)}
.hibiki-chat-active.suppressed{display:none}
.neo-line-companion-chat .companion-compose{border-top-color:#dbe7ef;background:#fff}
.system-health-section{display:grid;gap:12px}.health-overall{display:inline-block;margin-top:4px}.health-overall.green{color:#19724b}.health-overall.yellow{color:#8a6413}.health-overall.red{color:#a33d32}.health-domain-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:9px}.health-domain{display:grid;gap:5px;padding:10px;border:1px solid #dce7ed;border-left:4px solid #4da778;border-radius:12px;background:#fbfdfe}.health-domain.yellow{border-left-color:#d6a43c}.health-domain.red{border-left-color:#c75b4d}.health-domain p,.health-domain small,.health-environment p{margin:0}.health-domain span{font-size:12px}.health-domain small{color:#577184}.health-environment{padding:8px 10px;border-radius:10px;background:#f5f8fa}.health-actions{display:flex;flex-wrap:wrap;gap:7px}
@media(max-width:560px){
  .companion-message.assistant.companion-live{padding-top:134px}
  .hibiki-chat-active{width:98px;height:131px}
  .hibiki-chat-active .hibiki-chat-avatar{width:98px;height:131px}
  .neo-line-companion-chat .companion-log{padding:10px}
  .neo-line-companion-chat .companion-quick{padding:6px 8px}
}
@media(prefers-reduced-motion:reduce){
  .hibiki-chat-active{transition:none!important;transform:none!important}
}

/* Shared Companion surface: consumed unchanged by HUB, Store, and Twinow. */
.companion-fab{position:fixed;right:22px;bottom:22px;z-index:80;width:auto!important;border-radius:999px!important;box-shadow:0 12px 36px rgba(15,31,51,.22)}
.companion-panel{position:fixed;right:22px;bottom:22px;z-index:130;display:none;width:min(480px,calc(100vw - 32px));height:min(650px,calc(100dvh - 32px));overflow:hidden;border:1px solid var(--border,var(--line,#e4e9f2));border-radius:22px;background:var(--surface,#fff);box-shadow:0 22px 64px rgba(15,31,51,.28)}
.companion-panel.open{display:grid}.companion-header{display:flex;align-items:center;justify-content:space-between;padding:15px 16px;border-bottom:1px solid var(--border,var(--line,#e4e9f2))}.companion-header small{display:block;color:var(--muted,#61716c)}.companion-quick{display:flex;gap:7px;padding:10px 12px;overflow-x:auto}.companion-log{display:flex;min-height:0;flex-direction:column;gap:10px;padding:14px;overflow-y:auto;background:linear-gradient(180deg,#edf5f8,#f7fafb)}.companion-bubble,.companion-answer{max-width:92%;padding:12px 14px;border-radius:15px;background:#fff;box-shadow:0 2px 10px rgba(15,31,51,.07);white-space:pre-wrap;overflow-wrap:anywhere}.companion-bubble.human{align-self:flex-end;background:#183b5b;color:#fff}.companion-bubble p,.companion-answer p{margin:0 0 6px}.companion-compose{border-top:1px solid var(--border,var(--line,#e4e9f2))}.companion-compose textarea{min-height:46px;padding:10px;border:1px solid #cfdde5;border-radius:14px;font:inherit;resize:vertical}.companion-compose .button{min-height:44px;border:0;border-radius:999px;padding:.5rem .9rem;background:#205d85;color:#fff}.companion-panel button:focus-visible,.companion-panel textarea:focus-visible{outline:3px solid #4b85ac;outline-offset:3px}
.companion-identity{min-width:0}.companion-context{margin:.3rem 0 0;color:var(--muted,#61716c);font-size:.78rem;line-height:1.45}.companion-context:empty,.companion-quick[hidden]{display:none!important}.companion-close{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:64px;min-height:44px;padding:0 14px;border:0;border-radius:999px;background:#f4f7f9;color:inherit;font:inherit;cursor:pointer}.companion-tools,.companion-host-actions,.companion-meta{width:100%;min-width:0}.companion-tools{display:flex;align-items:center;gap:6px;min-height:44px;flex-wrap:wrap}.companion-tools[hidden],.companion-host-actions[hidden],.companion-meta[hidden]{display:none!important}.companion-input-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.companion-meta{align-items:center;gap:9px}.companion-form{margin:0}.companion-form>.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;line-height:1}.companion-host-actions :is(a,button),.companion-meta button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:.35rem .7rem;border:1px solid #4b85ac;border-radius:999px;background:#fff;color:#205d85;font:inherit;font-size:.82rem;font-weight:700;line-height:1.2;text-decoration:none;cursor:pointer}
@media(max-width:560px){.companion-panel,.companion-panel.open{top:var(--companion-top,0)!important;left:var(--companion-left,0)!important;right:auto!important;bottom:auto!important;width:var(--companion-width,100vw)!important;height:var(--companion-height,100dvh)!important;max-width:none!important;max-height:none!important;border-radius:0!important}.companion-compose{position:relative;z-index:4;overflow:visible;flex:0 0 auto;padding-bottom:max(10px,env(safe-area-inset-bottom))}.companion-fab{right:14px;bottom:14px}}
/* 響の常設ボタンは、見えている部分だけを操作対象にする（F01）。
   ボタン全体（128×166px）を当たり判定にすると、描画前・描画失敗・透明な余白の部分で通常画面のクリックを奪うため。
   「待機中」の札は常に押せる。姿は描画済み（data-painted="true"）のときだけ、体の中心部分を押せる。 */
.hibiki-companion-fab{pointer-events:none}
.hibiki-companion-fab .hibiki-fab-caption{pointer-events:auto;cursor:pointer}
.hibiki-companion-fab .retarget-scene::after{content:"";position:absolute;left:24%;right:24%;top:10%;bottom:6%;border-radius:45%;pointer-events:none}
.hibiki-companion-fab .retarget-scene[data-painted="true"]::after{pointer-events:auto;cursor:grab}

/* Canonical Hibiki conversation controls: identical in HUB, store and public. */
.companion-panel.hibiki-companion-panel{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-size:14px;line-height:1.6;color:#192f40;background:#fff}
.companion-panel.hibiki-companion-panel .companion-header{padding:11px 16px;background:#fff;color:#192f40;line-height:1.6}
.companion-panel.hibiki-companion-panel .companion-header strong{font-size:14px;line-height:1.6}
.companion-panel.hibiki-companion-panel .companion-form textarea{box-sizing:border-box;min-height:50px;height:50px;max-height:160px;padding:10px;border:1px solid #cfdde5;border-radius:14px;font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;resize:none;color:#192f40;background:#fff}
.companion-panel.hibiki-companion-panel .companion-form>.button{box-sizing:border-box;min-height:46px;padding:8px 14px;border:0;border-radius:999px;background:#087f83;color:#fff;font:14px/1 -apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
.companion-panel.hibiki-companion-panel .companion-quick :is(button,a){box-sizing:border-box;min-height:44px;border-radius:14px;font:12px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
.companion-panel.hibiki-companion-panel :disabled{cursor:wait;opacity:.65}

/* The same horizontal suggestion row and visible controls survive host styles. */
.companion-panel.hibiki-companion-panel .companion-quick{display:flex;flex-wrap:nowrap;align-items:center;gap:6px;padding:7px 10px;max-height:76px;overflow-x:auto;overflow-y:hidden;background:#f8fbfd;overscroll-behavior-x:contain}
.companion-panel.hibiki-companion-panel .companion-quick .companion-suggestion{width:auto;flex:0 0 auto}
.companion-panel.hibiki-companion-panel .companion-quick :is(button,a){flex:0 0 auto;white-space:nowrap;max-width:330px;overflow:hidden;text-overflow:ellipsis;padding:7px 10px;border:1px solid #cfdee7;background:#fff;color:#274f53}
.companion-panel.hibiki-companion-panel .companion-header small{font-size:12px;line-height:1.6;color:#61716c}
.companion-panel.hibiki-companion-panel .companion-close{box-sizing:border-box;min-height:44px;min-width:64px;padding:0 14px;border:0;border-radius:999px;background:#f4f7f9;color:#192f40;font:14px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","Yu Gothic",Meiryo,sans-serif}
.companion-panel.hibiki-companion-panel .shared-input-action.button{display:inline-grid;place-items:center;width:42px;height:42px;min-height:42px;padding:0;border:1px solid #aeb8c7;border-radius:50%;background:#fff;color:#273750}
.companion-panel.hibiki-companion-panel .shared-input-action svg{display:block;width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8}
/* Host navigation is an exclusion zone; the same shared shell keeps the avatar above it. */
@media(max-width:600px){body:has(.mobile-discovery-nav) .hibiki-companion-fab{bottom:calc(58px + env(safe-area-inset-bottom))!important}body:has(.mobile-discovery-nav) .site-footer{padding-bottom:calc(200px + env(safe-area-inset-bottom))}body.tw-store-body:has(.mobile-discovery-nav) .hibiki-companion-fab{bottom:calc(67px + env(safe-area-inset-bottom))!important}}
/* The management page uses plain labels and normal checkbox sizes. */
.companion-setting-group{padding:14px 0;border-bottom:1px solid #e4e9ef}.companion-feature-choices{display:flex;flex-wrap:wrap;gap:18px;margin:10px 0}.companion-feature-choice{display:inline-flex;align-items:center;gap:8px}.companion-feature-choice input[type=checkbox]{width:18px;height:18px;min-height:18px;padding:0;margin:0}.companion-feature-choice:has(input:disabled){color:#6b7280}

/* 2026-10-09 independent audit: lift the companion above any measured fixed action bar (review footer, editor save bar). */
html[style*="--companion-fixed-bar-height"] .hibiki-companion-fab{bottom:calc(var(--companion-fixed-bar-height) + 12px + env(safe-area-inset-bottom))!important}
html[style*="--companion-fixed-bar-height"] .hibiki-companion-nudge{bottom:calc(var(--companion-fixed-bar-height) + 34px + env(safe-area-inset-bottom))}

.companion-short .conversation-note,.companion-short .conversation-choices,.companion-short .companion-quick{display:none!important}
.companion-short .conversation-log{min-height:110px;overflow-y:auto}
.companion-short .conversation-status:empty{display:none}
.companion-short .conversation-meta,.companion-short .conversation-form{padding-top:4px;padding-bottom:4px}

/* Chat layout belongs to the theme. */
.companion-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.companion-tools>.shared-input-actions{display:flex;align-items:center;flex:0 1 auto;gap:6px;flex-wrap:wrap;min-width:0}.companion-tools .shared-input-action{order:0;flex:0 0 42px}.companion-tools .shared-input-feedback{order:1;flex:1 0 100%;min-height:0}.companion-tools .shared-input-feedback:empty{display:none}.companion-tools>.aifate-chat-verification{flex:0 1 300px;margin-left:auto;max-width:100%}
.companion-tools.aifate-chat-tools-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px;width:calc(100% + 20px);margin-left:-10px;margin-right:-10px}.companion-tools.aifate-chat-tools-grid>.shared-input-actions{display:grid;grid-template-columns:repeat(2,30px);gap:4px;align-items:center;justify-content:start}.companion-tools.aifate-chat-tools-grid .shared-input-action.button{width:30px;height:30px;min-width:30px;min-height:30px;padding:0}.companion-tools.aifate-chat-tools-grid .shared-input-feedback{grid-column:1/-1}.companion-tools.aifate-chat-tools-grid>.aifate-chat-verification{margin-left:0;justify-self:end}
.companion-log .aifate-input-status{display:none}.companion-log .aifate-input-status:has(.shared-input-feedback:not(:empty)),.companion-log .aifate-input-status:has(.aifate-input-warning){display:block;margin:8px 0;padding:10px;border:1px solid #c7d6e2;border-radius:10px;background:#fff;color:#344b5e;font-size:12px;line-height:1.5}.aifate-input-status .shared-input-feedback{display:block;min-height:0;font-size:12px;line-height:1.5}.aifate-input-status .shared-input-feedback:empty{display:none}

/* User layout 2026-10-18: header actions, full-width input and a verification footer that collapses when interaction is unnecessary. */
.companion-chat-layout .companion-header{gap:8px}
.companion-chat-layout .companion-identity{flex:1 1 auto}
.companion-chat-layout .companion-header-tools{display:flex;flex:0 0 auto;align-items:center;min-width:0;gap:6px}
.companion-chat-layout .companion-header-tools[hidden]{display:none!important}
.companion-chat-layout .companion-header-tools .shared-input-actions{display:flex;align-items:center;gap:6px;min-width:0}
.companion-chat-layout .companion-header-tools .shared-input-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.companion-chat-layout .companion-host-actions:empty,.companion-chat-layout .conversation-status:empty{display:none}
.companion-chat-layout .companion-form{display:flex;flex-direction:column;align-items:stretch;width:100%;gap:8px}
.companion-chat-layout .companion-form textarea{flex:none;width:100%;margin:0}
.companion-chat-layout .companion-submit-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:0 8px;min-width:0}
.companion-chat-layout .companion-submit-row>.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 14px;border:0;border-radius:999px;background:#087f83;color:#fff;font:inherit;line-height:1.2}
.companion-chat-layout .companion-submit-row>.companion-meta{display:flex;flex:1 1 0;flex-direction:row;align-items:center;gap:4px;width:auto;min-width:0}
.companion-chat-layout .companion-meta .conversation-note{display:block!important;margin:0;font-size:11px;line-height:1.5;color:#61716c;overflow-wrap:anywhere}
/* Turnstile appears only when a person must act (interaction-only). It is laid over the bottom edge of the conversation, right-aligned just above the
   input block (product choice + input), so it never takes a row and never shrinks the conversation area. */
.companion-panel.companion-chat-layout .companion-compose{position:relative;overflow:visible}
.companion-chat-layout .companion-form,.companion-chat-layout .companion-submit-row{position:static}
.companion-chat-layout .companion-submit-row>.companion-tools{position:absolute;right:8px;bottom:calc(100% + 6px);z-index:4;display:flex;flex:none;align-items:flex-end;justify-content:flex-end;min-height:0;width:min(300px,calc(100% - 16px));margin:0;gap:0;pointer-events:none}
.companion-chat-layout .companion-tools>.aifate-chat-verification{flex:0 1 auto;max-width:100%;margin:0;pointer-events:auto}
.companion-chat-layout .companion-host-actions .conversation-product-context{padding:0;background:none;border:0}
.companion-chat-layout .companion-log,.companion-chat-layout.companion-short .conversation-log{min-height:0;overflow-y:auto}
.companion-chat-layout.companion-short .companion-quick{display:flex!important}
@media(max-width:560px){
 .companion-chat-layout .companion-header{padding-left:10px;padding-right:10px;gap:6px}
 .companion-chat-layout .companion-close{min-width:56px;padding:0 10px}
 .companion-chat-layout .companion-header-tools .shared-input-action.button{width:36px;height:36px;min-width:36px;min-height:36px}
 .companion-chat-layout .companion-header-tools .shared-input-actions{gap:4px}
 .companion-chat-layout .companion-submit-row{gap:0 7px}
 .companion-chat-layout .companion-submit-row>.button{padding:8px 10px}
}

/* A visible keyboard keeps every control, with space taken from decoration rather than the log. */
.companion-panel.companion-chat-layout.companion-short .companion-header{padding-top:6px;padding-bottom:6px}
.companion-panel.companion-chat-layout.companion-short .companion-quick{padding:4px 8px}
.companion-panel.companion-chat-layout.companion-short .companion-quick :is(button,a){min-height:36px;padding:4px 8px}
.companion-panel.companion-chat-layout.companion-short .companion-compose{padding-top:6px;padding-bottom:6px;gap:5px}
.companion-panel.companion-chat-layout.companion-short .companion-form{gap:6px}
.companion-panel.companion-chat-layout .companion-submit-row>.companion-meta{white-space:normal;overflow:visible}
.companion-panel.companion-chat-layout.companion-short .companion-log{padding:8px}

/* Keep the chat window inset; only the log fills the space inside the window. */
.companion-panel.companion-chat-layout.companion-compact.open{width:min(480px,calc(var(--companion-width,100vw) - 24px))!important;height:min(650px,calc(var(--companion-height,100dvh) - 24px))!important;left:calc(var(--companion-left,0px) + var(--companion-width,100vw) - min(480px,calc(var(--companion-width,100vw) - 24px)) - 12px)!important;top:calc(var(--companion-top,0px) + var(--companion-height,100dvh) - min(650px,calc(var(--companion-height,100dvh) - 24px)) - 12px)!important;border-radius:18px!important}
.companion-panel.companion-chat-layout.companion-short .companion-header{padding-top:4px;padding-bottom:4px}
.companion-panel.companion-chat-layout.companion-short .companion-host-actions .conversation-product-context label{margin:0;gap:2px;font-size:11px;line-height:1.3}
.companion-panel.companion-chat-layout.companion-short .companion-host-actions .conversation-product-context select{min-height:36px;padding:4px}
.companion-panel.companion-chat-layout.companion-short .companion-compose{gap:3px}
.companion-panel.companion-chat-layout.companion-short .companion-form textarea{max-height:50px}

/* 2026-10-18 user: the send button sits on the input's row (right of the input); the note and other meta follow on the next row. */
.companion-chat-layout .companion-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;column-gap:8px;row-gap:6px}
.companion-chat-layout .companion-form>textarea{grid-column:1;grid-row:1}
.companion-chat-layout .companion-submit-row{display:contents}
.companion-chat-layout .companion-submit-row>.button{grid-column:2;grid-row:1;align-self:end}
.companion-chat-layout .companion-submit-row>.companion-meta{grid-column:1/-1;grid-row:2}
