/* R55: quiet message surfaces; advanced tools stay behind one manual action. */
html #app #view-chats #messages .voice-player {
  grid-template-columns:44px minmax(36px,1fr) 44px!important;
}
html #app #view-chats #messages .voice-player__more {grid-column:3;grid-row:1/3}
#app #messages .voice-player__menu .voice-player__speed {
  grid-area:auto;min-width:0;width:100%;min-height:44px;text-align:left;font-size:14px;
}
.voice-player__status {grid-column:2;grid-row:2;min-width:0;font-size:11px;line-height:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:none}
html #app #messages .voice-player:is(.is-buffering,.has-media-error) .voice-player__dur {visibility:hidden}
#app #messages .voice-player.is-buffering .voice-player__wave-wrap {opacity:1}
.media-wait-r55 {font:700 24px/1 system-ui,sans-serif;letter-spacing:2px}
#app #messages .voice-transcript {user-select:text;-webkit-user-select:text}
#app #messages .voice-transcript__text {user-select:text!important;-webkit-user-select:text!important;overscroll-behavior:contain;touch-action:pan-y}
#app #messages .voice-transcript__title:focus {outline:none}
#app #messages .voice-transcript__title:focus-visible,
#app #messages .voice-transcript__text:focus-visible {outline:2px solid var(--accent,#2563eb);outline-offset:3px;border-radius:4px}
.voice-transcript__status {font-size:12px;color:var(--muted,#65728a);line-height:1.5}
.voice-transcript__status:empty {display:none}
#app #view-chats #messages .vy-vc2-player > .vy-vc2-tools-toggle {left:auto;right:8px;top:8px}
.vy-vc2-note__status {position:absolute;left:10px;right:10px;bottom:52px;text-align:center;padding:4px 5px;border-radius:999px;background:rgb(9 15 26 / .85);color:#fff;font-size:10px;line-height:16px;pointer-events:none}
.vy-vc2-note__status:empty {display:none}
.vy-vc2-note:is(.is-buffering,.has-media-error) .vy-vc2-note__badge {opacity:1}
.vy-vc2-note:is(.is-buffering,.has-media-error) .vy-vc2-note__mute {visibility:hidden}
.vy-vc2-note.has-media-error .vy-vc2-note__badge svg {width:36px;height:36px}
/* The microphone graph occupies one stable row from recording to preview. */
.record-bar__meter {display:flex;align-items:center;gap:12px;flex:1 0 100%;min-width:0;height:44px}
.record-bar__meter[hidden],.record-bar__wave[hidden] {display:none!important}
.record-bar__wave {display:flex;align-items:center;justify-content:space-between;gap:3px;flex:1;min-width:60px;height:28px;color:var(--accent,#2563eb)}
.record-bar__wave i {display:block;flex:1;max-width:5px;min-width:1px;height:2px;border-radius:3px;background:currentColor}
.record-bar__level {max-width:50%;font-size:11px;line-height:1.4;color:var(--muted,#65728a)}
.record-bar__wave[hidden] + .record-bar__level {max-width:100%}
/* Keep the scene and action slots fixed when the same video switches sources. */
.vy-vc2-ov__seek-wrap {width:min(64vw,248px);height:44px;flex:none;display:flex;align-items:center}
.vy-vc2-ov__seek {width:100%;height:44px;margin:0;accent-color:#fff;cursor:pointer}
.vy-vc2-ov__seek[hidden] {visibility:hidden;display:block!important}
.vy-vc2-ov__play {position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:52px;height:52px;background:rgb(9 15 26 / .55)}
.vy-vc2-ov__play:active {transform:translate(-50%,-50%)}
.vy-vc2-ov__play svg {width:28px;height:28px}
.vy-vc2-ov.is-preview-playing .vy-vc2-ov__play {opacity:0}
.vy-vc2-ov.is-preview-playing .vy-vc2-ov__play:is(:hover,:focus-visible) {opacity:1}
.vy-vc2-ov .vy-vc2-ov__acts {display:grid;grid-template-columns:64px 64px 64px;grid-template-rows:64px;gap:12px;align-items:center;justify-items:center}
.vy-vc2-ov [data-vc2=cancel] {grid-column:1;grid-row:1}
.vy-vc2-ov :is([data-vc2=start],[data-vc2=stop],[data-vc2=retry]) {grid-column:2;grid-row:1}
.vy-vc2-ov [data-vc2=send] {grid-column:3;grid-row:1}
.vy-vc2-ov .vy-vc2-btn[hidden],.vy-vc2-ov .circle-effects[hidden],.vy-vc2-ov__effects-toggle[hidden] {display:none!important}
.vy-vc2-ov__effects-toggle {position:absolute;right:16px;top:16px;min-height:44px;padding:8px 16px;border:1px solid #ffffff3b;border-radius:999px;background:rgb(9 15 26 / .5);color:#fff;font:inherit;font-size:13px}
.vy-vc2-ov .circle-effects {position:absolute;right:16px;top:66px;z-index:2;width:min(300px,calc(100vw - 32px));background:#172033;border-radius:16px;padding:12px;box-sizing:border-box}
.vy-vc2-ov :is(button,input):focus-visible {outline:2px solid #fff;outline-offset:3px}
.vy-vc2-ov .vy-vc2-btn--snd {width:44px;height:44px}
@media(max-height:700px) {.vy-vc2-ov {gap:10px}.vy-vc2-ov__stage {width:min(58vw,220px)}.vy-vc2-ov__sub {max-width:min(340px,calc(100vw - 32px))}}
@media(prefers-reduced-motion:reduce) {.vy-vc2-ov__play,.media-wait-r55 {animation:none!important;transition:none!important}}
/* Owner review: translucent video edge instead of the permanent blue ring. */
html #app #view-chats #messages .vy-vc2-note{background:transparent;box-shadow:0 5px 18px rgb(25 40 60 / .10),0 0 0 .5px rgb(255 255 255 / .4)}
html #app #view-chats #messages .vy-vc2-note__ring{inset:-2px;background:conic-gradient(rgb(255 255 255 / .88) var(--vy-p,0%),rgb(110 126 148 / .14) 0);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 1px));mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 1px));opacity:.65}
html #app #view-chats #messages .vy-vc2-note:not(.is-playing) .vy-vc2-note__ring{background:rgb(255 255 255 / .30)}
html #app #view-chats #messages .vy-vc2-note__video{-webkit-mask-image:radial-gradient(farthest-side,#000 calc(100% - 1.25px),rgb(0 0 0 / .5) calc(100% - .4px),transparent 100%);mask-image:radial-gradient(farthest-side,#000 calc(100% - 1.25px),rgb(0 0 0 / .5) calc(100% - .4px),transparent 100%)}
html #app #view-chats #messages .vy-vc2-note:focus-visible{outline:2px solid var(--text,#172033);outline-offset:5px}
html #app #view-chats #messages .msg .bubble:not(:has(.vy-vc2-note,.voice-player)){box-shadow:0 2px 6px rgb(24 42 68 / .035);border-color:transparent}
html #app #view-chats #messages .msg--out .bubble:not(:has(.vy-vc2-note,.voice-player)){background:color-mix(in srgb,var(--accent-soft,#e8efff) 86%,var(--surface,#fff) 10%)!important}
html #app #view-chats #messages .msg--in .bubble:not(:has(.vy-vc2-note,.voice-player)){background:color-mix(in srgb,var(--surface,#fff) 94%,transparent)!important}
html #app #view-chats #messages .bubble .file-chip{background:rgb(255 255 255 / .12)!important;border-color:transparent!important;box-shadow:none}
/* Manual controls live in one anchored surface, never as discs over the clip. */
html body .r55-circle-menu.vy-vc2-controls{position:fixed;z-index:4600;inset:auto;display:grid!important;grid-template-columns:1fr 1fr!important;grid-template-rows:auto!important;gap:4px!important;width:min(280px,calc(100vw - 16px));height:auto;max-height:calc(100dvh - 16px);overflow:auto;box-sizing:border-box;margin:0!important;padding:12px!important;border:1px solid color-mix(in srgb,var(--line,#d9e1ef) 55%,transparent);border-radius:22px;background:var(--surface,#fff)!important;color:var(--text,#172033);box-shadow:0 18px 56px rgb(18 35 62 / .20),0 3px 10px rgb(18 35 62 / .06);font:500 13px/1.4 var(--font,inherit);animation:r55-circle-menu-in 150ms ease-out;isolation:isolate}
html body .r55-circle-menu[hidden]{display:none!important}
.r55-circle-menu__head{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:3px 3px 0}
html body .r55-circle-menu .vy-vc2-controls__time{font-size:11px;color:var(--muted,#687992);font-variant-numeric:tabular-nums;white-space:nowrap}
html body .r55-circle-menu input[type=range]{grid-column:1/-1;appearance:none;-webkit-appearance:none;width:100%;min-width:0;height:32px;min-height:32px;margin:0;background:transparent;cursor:pointer;filter:none}
.r55-circle-menu input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:8px;background:linear-gradient(to right,var(--accent,#245bea) var(--played,0%),var(--line,#e2e7f0) var(--played,0%))}
.r55-circle-menu input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:14px;height:14px;margin-top:-5px;border-radius:50%;background:var(--accent,#245bea);border:2px solid var(--surface,#fff);box-shadow:0 1px 5px #16345c33}
.r55-circle-menu input[type=range]::-moz-range-track{height:4px;border-radius:8px;background:var(--line,#e2e7f0)}
.r55-circle-menu input[type=range]::-moz-range-progress{height:4px;border-radius:8px;background:var(--accent,#245bea)}
.r55-circle-menu input[type=range]::-moz-range-thumb{width:12px;height:12px;border:2px solid var(--surface,#fff);border-radius:50%;background:var(--accent,#245bea)}
.r55-circle-menu__speeds{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:3px;padding:3px;border-radius:14px;background:color-mix(in srgb,var(--muted,#697a94) 8%,var(--surface,#fff));margin-bottom:5px}
.r55-circle-menu__speeds button{border:0;border-radius:11px;min-height:40px;padding:0 4px;background:transparent;color:var(--muted,#697a94);font:600 13px/1.3 inherit;cursor:pointer;transition:background 130ms,color 130ms,box-shadow 130ms}
.r55-circle-menu__speeds button[aria-pressed=true]{background:var(--surface,#fff);color:var(--accent,#245bea);box-shadow:0 2px 5px #182c4710}
html body .r55-circle-menu :is(.vy-vc2-controls__download,.vy-vc2-controls__fullscreen){position:static;display:flex;align-items:center;justify-content:center;gap:7px;min-width:0;width:100%;min-height:44px;height:44px;box-sizing:border-box;padding:8px;border:0;border-radius:13px;background:transparent;color:inherit;text-decoration:none;font:500 13px/1.4 inherit;cursor:pointer}
.r55-circle-menu :is(button,a):hover{background:color-mix(in srgb,var(--accent,#245bea) 7%,var(--surface,#fff))}
.r55-circle-menu :is(button,a):active{transform:scale(.97)}
.r55-circle-menu :is(button,a,input):focus-visible{outline:2px solid var(--accent,#245bea);outline-offset:2px}
html body #app #view-chats #messages .msg .bubble :is(.vy-vc2-player.mg-vwrap,.mg-vwrap:has(.vy-vc2-player)) > .mg-vexpand{display:none!important}
html #app #view-chats #messages .bubble:has(.vy-vc2-player.is-tools-open) > .bubble__meta,
html #app #view-chats #messages .vy-vc2-player.is-tools-open .vy-vc2-note__dur{visibility:visible!important}
@keyframes r55-circle-menu-in{from{opacity:0;transform:translateY(5px) scale(.98)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){html body .r55-circle-menu,.r55-circle-menu *{animation:none!important;transition:none!important}}
