/*
 * Vrch product application layouts
 *
 * This compatibility layer owns page composition, panel geometry, media
 * surfaces, and app-specific responsive adapters only. Semantic colour,
 * typography, and portable `.ui-*` component chrome belong in
 * vrch_colors_and_styles.css. Migrations are move-delete changes: never add a
 * downstream override for a shared primitive, an ID selector, or a raw theme
 * colour here.
 */

:root{
  --cardH:360px;
}

/* VibeCtrl Button Actions: input-first assignment workspace. */
.live-console-vibectrl-actions__dialog{
  width:min(980px, calc(100vw - 36px));
  height:min(740px, calc(100dvh - 24px));
  max-height:calc(100dvh - 24px);
  display:grid;
  grid-template-rows:auto minmax(0, 1fr) auto;
  overflow:hidden;
  background:var(--vrch-surface-1);
}
.live-console-vibectrl-actions__body{
  min-height:0;
  padding:0;
  overflow:hidden;
}
.live-console-vibectrl-actions__workspace{
  min-height:0;
  height:100%;
  display:grid;
  grid-template-columns:minmax(250px, 32%) minmax(0, 1fr);
  overflow:hidden;
}
.live-console-vibectrl-actions__input-list,
.live-console-vibectrl-actions__assignment{
  min-height:0;
  overflow:auto;
  scrollbar-color:var(--vrch-line-strong) var(--vrch-surface-0);
}
.live-console-vibectrl-actions__input-list{
  display:flex;
  flex-direction:column;
  padding:8px;
  border-right:1px solid var(--vrch-line);
  background:var(--vrch-surface-0);
}
.live-console-vibectrl-actions__input-group{
  padding:10px 8px 6px;
  color:var(--vrch-text-dim);
  font:var(--vrch-type-weight) var(--vrch-type-size)/var(--vrch-type-line) var(--vrch-font-control);
  letter-spacing:var(--vrch-type-tracking);
}
.live-console-vibectrl-actions__input-option{
  width:100%;
  min-height:62px;
  display:grid;
  grid-template-columns:38px minmax(0, 1fr) auto;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  border:1px solid transparent;
  border-radius:var(--vrch-radius-compact);
  background:transparent;
  color:var(--vrch-text-muted);
  cursor:pointer;
  text-align:left;
}
.live-console-vibectrl-actions__input-option + .live-console-vibectrl-actions__input-option{
  margin-top:3px;
}
.live-console-vibectrl-actions__input-option:hover{
  border-color:var(--vrch-line);
  background:var(--vrch-surface-2);
}
.live-console-vibectrl-actions__input-option.is-active{
  border-color:var(--vrch-line-strong);
  background:var(--vrch-surface-2);
  box-shadow:inset 0 -2px var(--vrch-theme-action);
  color:var(--vrch-text);
}
.live-console-vibectrl-actions__input-icon{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border:1px solid var(--vrch-line);
  border-radius:var(--vrch-radius-compact);
  background:var(--vrch-surface-1);
  color:var(--vrch-text-secondary);
  font-size:15px;
}
.live-console-vibectrl-actions__input-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.live-console-vibectrl-actions__input-copy strong{
  overflow:hidden;
  color:inherit;
  font:var(--vrch-type-weight) var(--vrch-type-size)/var(--vrch-type-line) var(--vrch-font-control);
  text-overflow:ellipsis;
  white-space:nowrap;
}
.live-console-vibectrl-actions__input-copy span{
  overflow:hidden;
  color:var(--vrch-text-dim);
  font:var(--vrch-type-weight) var(--vrch-type-size)/var(--vrch-type-copy-line) var(--vrch-font-readable);
  text-overflow:ellipsis;
  white-space:nowrap;
}
.live-console-vibectrl-actions__input-count{
  min-width:24px;
  color:var(--vrch-text-dim);
  font:var(--vrch-type-weight) var(--vrch-type-size)/var(--vrch-type-line) var(--vrch-font-control);
  text-align:right;
}
.live-console-vibectrl-actions__input-count.is-assigned{
  color:var(--vrch-text-secondary);
}
.live-console-vibectrl-actions__assignment{
  padding:18px;
  background:var(--vrch-surface-1);
}
.live-console-vibectrl-actions__assignment-header{
  min-height:58px;
  display:grid;
  grid-template-columns:46px minmax(0, 1fr) auto;
  align-items:center;
  gap:12px;
  margin-bottom:14px;
}
.live-console-vibectrl-actions__assignment-icon{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border:1px solid var(--vrch-line);
  border-radius:var(--vrch-radius-compact);
  background:var(--vrch-surface-2);
  color:var(--vrch-text-secondary);
  font-size:17px;
}
.live-console-vibectrl-actions__assignment-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.live-console-vibectrl-actions__assignment-copy > span,
.live-console-vibectrl-actions__assignment-meta{
  color:var(--vrch-text-dim);
  font:var(--vrch-type-weight) var(--vrch-type-size)/var(--vrch-type-line) var(--vrch-font-control);
  letter-spacing:var(--vrch-type-tracking);
  text-transform:uppercase;
}
.live-console-vibectrl-actions__assignment-copy strong{
  overflow:hidden;
  color:var(--vrch-text);
  font:var(--vrch-type-weight) var(--vrch-type-size)/var(--vrch-type-line) var(--vrch-font-control);
  text-overflow:ellipsis;
  white-space:nowrap;
}
.live-console-vibectrl-actions__assignment-meta{
  padding:6px 8px;
  border:1px solid var(--vrch-line);
  border-radius:var(--vrch-radius-compact);
}
.live-console-vibectrl-actions__gesture-list{
  border-top:1px solid var(--vrch-line);
}
.live-console-vibectrl-actions__gesture-row{
  min-height:68px;
  display:grid;
  grid-template-columns:minmax(140px, 35%) minmax(0, 1fr);
  border:1px solid var(--vrch-line);
  border-top:0;
  background:var(--vrch-surface-1);
}
.live-console-vibectrl-actions__gesture-label{
  min-width:0;
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  color:var(--vrch-text-secondary);
  font:var(--vrch-type-weight) var(--vrch-type-size)/var(--vrch-type-line) var(--vrch-font-control);
}
.live-console-vibectrl-actions__gesture-label i{
  width:18px;
  color:var(--vrch-text-muted);
  text-align:center;
}
.live-console-vibectrl-actions__gesture-select{
  min-width:0;
  min-height:66px;
  display:grid;
  grid-template-columns:30px minmax(0, 1fr) 18px;
  align-items:center;
  gap:10px;
  padding:0 14px;
  border:0;
  border-left:1px solid var(--vrch-line);
  border-radius:0;
  background:var(--vrch-surface-0);
  color:var(--vrch-text-secondary);
  cursor:pointer;
  text-align:left;
}
.live-console-vibectrl-actions__gesture-select:hover:not(:disabled){
  background:var(--vrch-surface-hover);
  color:var(--vrch-text);
}
.live-console-vibectrl-actions__gesture-select:disabled{
  cursor:not-allowed;
  opacity:.42;
}
.live-console-vibectrl-actions__gesture-select[aria-expanded="true"]{
  background:var(--vrch-surface-hover);
  box-shadow:inset 0 -2px var(--vrch-theme-action);
  color:var(--vrch-text);
}
.live-console-vibectrl-actions__gesture-icon{
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  color:var(--vrch-text-muted);
}
.live-console-vibectrl-actions__gesture-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.live-console-vibectrl-actions__gesture-copy strong{
  overflow:hidden;
  color:inherit;
  font:var(--vrch-type-weight) var(--vrch-type-size)/var(--vrch-type-line) var(--vrch-font-control);
  text-overflow:ellipsis;
  white-space:nowrap;
}
.live-console-vibectrl-actions__gesture-copy span{
  overflow:hidden;
  color:var(--vrch-text-dim);
  font:var(--vrch-type-weight) var(--vrch-type-size)/var(--vrch-type-copy-line) var(--vrch-font-readable);
  text-overflow:ellipsis;
  white-space:nowrap;
}
.live-console-vibectrl-actions__gesture-chevron{
  color:var(--vrch-text-muted);
  text-align:center;
}
.live-console-vibectrl-actions__timing-note{
  min-height:48px;
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:12px;
  padding:10px 12px;
  border:1px solid var(--vrch-line);
  border-radius:var(--vrch-radius-compact);
  background:var(--vrch-surface-0);
  color:var(--vrch-text-muted);
  font:var(--vrch-type-weight) var(--vrch-type-size)/var(--vrch-type-copy-line) var(--vrch-font-readable);
}
.live-console-vibectrl-actions__timing-note i{
  color:var(--vrch-warning-text);
}
.live-console-vibectrl-actions__footer{
  min-height:64px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:10px 14px;
  border-top:1px solid var(--vrch-line);
  background:var(--vrch-surface-0);
}
.live-console-vibectrl-actions__status{
  min-width:0;
  overflow:hidden;
  color:var(--vrch-text-dim);
  font:var(--vrch-type-weight) var(--vrch-type-size)/var(--vrch-type-copy-line) var(--vrch-font-readable);
  text-overflow:ellipsis;
  white-space:nowrap;
}
.live-console-vibectrl-actions__footer-actions{
  display:flex;
  align-items:center;
  gap:8px;
}
.live-console-vibectrl-actions__menu{
  position:fixed;
  z-index:calc(var(--vrch-layer-modal) + 2);
  max-height:min(420px, calc(100dvh - 24px));
  overflow:auto;
  padding:6px;
  border:1px solid var(--vrch-line-strong);
  border-radius:var(--vrch-radius-compact);
  background:var(--vrch-surface-0);
  box-shadow:var(--vrch-shadow-flyout);
}
.live-console-vibectrl-actions__menu-option{
  width:100%;
  min-height:48px;
  display:grid;
  grid-template-columns:34px minmax(0, 1fr) 22px;
  align-items:center;
  gap:10px;
  padding:6px 9px;
  border:1px solid transparent;
  border-radius:var(--vrch-radius-compact);
  background:transparent;
  color:var(--vrch-text-secondary);
  cursor:pointer;
  text-align:left;
}
.live-console-vibectrl-actions__menu-option:hover,
.live-console-vibectrl-actions__menu-option:focus-visible{
  border-color:var(--vrch-line);
  background:var(--vrch-surface-hover);
  color:var(--vrch-text);
}
.live-console-vibectrl-actions__menu-option.is-selected{
  border-color:var(--vrch-line-strong);
  background:var(--vrch-surface-2);
}
.live-console-vibectrl-actions__menu-icon{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border:1px solid var(--vrch-line);
  border-radius:var(--vrch-radius-compact);
  background:var(--vrch-surface-1);
  color:var(--vrch-text-muted);
}
.live-console-vibectrl-actions__menu-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.live-console-vibectrl-actions__menu-copy strong{
  overflow:hidden;
  font:var(--vrch-type-weight) var(--vrch-type-size)/var(--vrch-type-line) var(--vrch-font-control);
  text-overflow:ellipsis;
  white-space:nowrap;
}
.live-console-vibectrl-actions__menu-copy span{
  overflow:hidden;
  color:var(--vrch-text-dim);
  font:var(--vrch-type-weight) var(--vrch-type-size)/var(--vrch-type-copy-line) var(--vrch-font-readable);
  text-overflow:ellipsis;
  white-space:nowrap;
}
.live-console-vibectrl-actions__menu-check{
  visibility:hidden;
  color:var(--vrch-theme-text);
  text-align:center;
}
.live-console-vibectrl-actions__menu-option.is-selected .live-console-vibectrl-actions__menu-check{
  visibility:visible;
}
@media (min-width:1000px) and (max-height:680px){
  .live-console-vibectrl-actions{
    padding:10px 18px;
  }
  .live-console-vibectrl-actions__dialog{
    width:min(980px, calc(100vw - 36px));
    height:calc(100dvh - 20px);
    max-height:calc(100dvh - 20px);
  }
  .live-console-vibectrl-actions__input-list{
    padding:6px 8px 8px;
  }
  .live-console-vibectrl-actions__input-group{
    padding:5px 4px 2px;
  }
  .live-console-vibectrl-actions__input-option{
    min-height:50px;
    grid-template-columns:32px minmax(0, 1fr) auto;
    gap:8px;
    padding:5px 8px;
  }
  .live-console-vibectrl-actions__input-icon{
    width:32px;
    height:32px;
  }
  .live-console-vibectrl-actions__assignment{
    padding:10px 14px;
  }
  .live-console-vibectrl-actions__assignment-header{
    min-height:46px;
    grid-template-columns:40px minmax(0, 1fr) auto;
    gap:10px;
    margin-bottom:8px;
  }
  .live-console-vibectrl-actions__assignment-icon{
    width:40px;
    height:40px;
  }
  .live-console-vibectrl-actions__assignment-copy strong{
    font-size:var(--vrch-type-size);
  }
  .live-console-vibectrl-actions__gesture-row{
    min-height:56px;
  }
  .live-console-vibectrl-actions__gesture-select{
    min-height:54px;
  }
  .live-console-vibectrl-actions__gesture-copy span{
    display:none;
  }
  .live-console-vibectrl-actions__timing-note{
    min-height:40px;
    margin-top:8px;
    padding:7px 10px;
  }
  .live-console-vibectrl-actions__footer{
    min-height:54px;
    padding:7px 14px;
  }
}
@media (max-width:820px){
  .live-console-vibectrl-actions__dialog{
    width:calc(100vw - 24px);
    height:calc(100dvh - 24px);
    max-height:calc(100dvh - 24px);
  }
  .live-console-vibectrl-actions__workspace{
    grid-template-columns:minmax(210px, 38%) minmax(0, 1fr);
  }
  .live-console-vibectrl-actions__assignment{
    padding:14px;
  }
  .live-console-vibectrl-actions__gesture-row{
    grid-template-columns:116px minmax(0, 1fr);
  }
  .live-console-vibectrl-actions__gesture-label,
  .live-console-vibectrl-actions__gesture-select{
    padding-left:10px;
    padding-right:10px;
  }
}
@media (max-width:620px){
  .live-console-vibectrl-actions{
    align-items:stretch;
    padding:0;
  }
  .live-console-vibectrl-actions__dialog{
    width:100%;
    height:100dvh;
    max-height:100dvh;
    border-width:0;
  }
  .live-console-vibectrl-actions__workspace{
    display:block;
    overflow:auto;
  }
  .live-console-vibectrl-actions__input-list,
  .live-console-vibectrl-actions__assignment{
    overflow:visible;
  }
  .live-console-vibectrl-actions__input-list{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:6px;
    padding:8px 10px 10px;
    border-right:0;
    border-bottom:1px solid var(--vrch-line);
  }
  .live-console-vibectrl-actions__input-group{
    grid-column:1 / -1;
    padding:8px 2px 2px;
  }
  .live-console-vibectrl-actions__input-option{
    min-height:56px;
    grid-template-columns:34px minmax(0, 1fr);
    gap:8px;
    padding:6px 8px;
  }
  .live-console-vibectrl-actions__input-option + .live-console-vibectrl-actions__input-option{
    margin-top:0;
  }
  .live-console-vibectrl-actions__input-icon{
    width:34px;
    height:34px;
  }
  .live-console-vibectrl-actions__input-copy span,
  .live-console-vibectrl-actions__input-count,
  .live-console-vibectrl-actions__gesture-copy span,
  .live-console-vibectrl-actions__status{
    display:none;
  }
  .live-console-vibectrl-actions__assignment{
    padding:12px 10px 16px;
  }
  .live-console-vibectrl-actions__assignment-header{
    min-height:48px;
    grid-template-columns:42px minmax(0, 1fr) auto;
    gap:9px;
    margin-bottom:10px;
  }
  .live-console-vibectrl-actions__assignment-icon{
    width:42px;
    height:42px;
  }
  .live-console-vibectrl-actions__gesture-row{
    min-height:58px;
    grid-template-columns:108px minmax(0, 1fr);
  }
  .live-console-vibectrl-actions__gesture-select{
    min-height:56px;
    grid-template-columns:26px minmax(0, 1fr) 14px;
    gap:7px;
  }
  .live-console-vibectrl-actions__footer{
    min-height:66px;
    padding:9px 10px;
  }
  .live-console-vibectrl-actions__footer-actions{
    width:100%;
    justify-content:flex-end;
  }
  .live-console-vibectrl-actions__footer-actions > .ui-btn--md{
    min-height:44px;
  }
  .live-console-vibectrl-actions__menu{
    inset:auto 8px 8px !important;
    width:auto !important;
    max-height:min(58dvh, 460px);
    padding:8px;
  }
}
@media (max-width:620px) and (max-height:540px){
  .live-console-vibectrl-actions__workspace{
    display:grid;
    grid-template-columns:132px minmax(0, 1fr);
    overflow:hidden;
  }
  .live-console-vibectrl-actions__input-list{
    display:flex;
    flex-direction:column;
    gap:3px;
    padding:6px;
    overflow-y:auto;
    border-right:1px solid var(--vrch-line);
    border-bottom:0;
    overscroll-behavior:contain;
  }
  .live-console-vibectrl-actions__input-group{
    display:none;
  }
  .live-console-vibectrl-actions__input-option{
    width:100%;
    min-height:48px;
    flex:0 0 48px;
    grid-template-columns:30px minmax(0, 1fr);
    gap:6px;
    padding:5px 6px;
  }
  .live-console-vibectrl-actions__input-icon{
    width:30px;
    height:30px;
    font-size:var(--vrch-type-size);
  }
  .live-console-vibectrl-actions__input-copy strong{
    font-size:var(--vrch-type-size);
  }
  .live-console-vibectrl-actions__assignment{
    padding:7px 8px 10px;
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  .live-console-vibectrl-actions__assignment-header{
    min-height:36px;
    grid-template-columns:minmax(0, 1fr) auto;
    gap:6px;
    margin-bottom:5px;
  }
  .live-console-vibectrl-actions__assignment-icon,
  .live-console-vibectrl-actions__assignment-copy > span{
    display:none;
  }
  .live-console-vibectrl-actions__assignment-copy strong{
    font-size:var(--vrch-type-size);
  }
  .live-console-vibectrl-actions__assignment-meta{
    padding:5px 6px;
    font-size:var(--vrch-type-size);
  }
  .live-console-vibectrl-actions__gesture-row{
    min-height:50px;
    grid-template-columns:88px minmax(0, 1fr);
  }
  .live-console-vibectrl-actions__gesture-label{
    gap:6px;
    padding:7px 8px;
    font-size:var(--vrch-type-size);
  }
  .live-console-vibectrl-actions__gesture-select{
    min-height:48px;
    grid-template-columns:24px minmax(0, 1fr) 12px;
    gap:6px;
    padding:0 8px;
  }
  .live-console-vibectrl-actions__gesture-icon{
    width:24px;
    height:24px;
  }
  .live-console-vibectrl-actions__gesture-copy strong{
    font-size:var(--vrch-type-size);
  }
  .live-console-vibectrl-actions__timing-note{
    min-height:38px;
    margin-top:6px;
    padding:6px 8px;
    font-size:var(--vrch-type-size);
  }
  .live-console-vibectrl-actions__footer{
    min-height:54px;
    padding:5px 8px;
  }
  .live-console-vibectrl-actions__footer-actions{
    gap:6px;
  }
  .live-console-vibectrl-actions__footer-actions > .ui-btn--md{
    min-height:44px;
    padding:0 10px;
  }
  .live-console-vibectrl-actions__menu{
    inset:auto 6px 6px !important;
    max-height:min(46dvh, 224px);
    padding:6px;
  }
  .live-console-vibectrl-actions__menu-option{
    min-height:46px;
  }
}
body.viewer-page{
  height:100vh;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  align-items:center;
  overflow:hidden;
}
body.live-console-page{
  --live-console-dock-control-inline-size:39px;
  --live-console-dock-control-block-size:32px;
  --live-console-statusbar-inline-inset:8px;
  min-height:calc(var(--vrch-safe-vh, 1vh) * 100);
  overflow:hidden;
}
body.live-console-page.no-select,
body.live-console-page.no-select *{
  user-select:none;
  -webkit-user-select:none;
}
body.live-console-page.no-select input,
body.live-console-page.no-select textarea,
body.live-console-page.no-select select,
body.live-console-page.no-select button,
body.live-console-page.no-select [contenteditable="true"]{
  user-select:text;
  -webkit-user-select:text;
}

html,
body,
textarea,
pre,
.shader-code-editor,
.logWindow{
  scrollbar-width: none;
  scrollbar-color: var(--vrch-line-strong) var(--vrch-surface-1);
}

html::-webkit-scrollbar,
body::-webkit-scrollbar,
textarea::-webkit-scrollbar,
pre::-webkit-scrollbar,
.shader-code-editor::-webkit-scrollbar,
.logWindow::-webkit-scrollbar{
  width: 0;
  height: 10px;
}

html::-webkit-scrollbar:vertical,
body::-webkit-scrollbar:vertical,
textarea::-webkit-scrollbar:vertical,
pre::-webkit-scrollbar:vertical,
.shader-code-editor::-webkit-scrollbar:vertical,
.logWindow::-webkit-scrollbar:vertical{
  width: 0;
  height: 0;
}

html::-webkit-scrollbar-track,
body::-webkit-scrollbar-track,
textarea::-webkit-scrollbar-track,
pre::-webkit-scrollbar-track,
.shader-code-editor::-webkit-scrollbar-track,
.logWindow::-webkit-scrollbar-track{
  background: var(--vrch-surface-1);
}

html::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-thumb,
textarea::-webkit-scrollbar-thumb,
pre::-webkit-scrollbar-thumb,
.shader-code-editor::-webkit-scrollbar-thumb,
.logWindow::-webkit-scrollbar-thumb{
  background: var(--vrch-line);
  border: 2px solid var(--vrch-surface-1);
  border-radius: 999px;
}

html::-webkit-scrollbar-thumb:hover,
body::-webkit-scrollbar-thumb:hover,
textarea::-webkit-scrollbar-thumb:hover,
pre::-webkit-scrollbar-thumb:hover,
.shader-code-editor::-webkit-scrollbar-thumb:hover,
.logWindow::-webkit-scrollbar-thumb:hover{
  background: var(--vrch-line-strong);
}

html::-webkit-scrollbar-corner,
body::-webkit-scrollbar-corner,
textarea::-webkit-scrollbar-corner,
pre::-webkit-scrollbar-corner,
.shader-code-editor::-webkit-scrollbar-corner,
.logWindow::-webkit-scrollbar-corner{
  background: var(--vrch-surface-1);
}





.barIdentity{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
  flex:1 1 100%;
}
.title{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.shader-page-head-row{
  display:flex;
  gap:10px;
  row-gap:6px;
  flex-wrap:wrap;
  min-width:0;
}
.titleStatusIndicator{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:var(--sz-tag);
  min-width:10px;
  flex:0 0 auto;
  margin-right:-4px;
}
.shader-page-head-row{ --vrch-app-title-size:15px; }

.subtitle{
  margin:0;
  font-size:var(--vrch-type-size);
  color:var(--muted);
  font-family:var(--vrch-font-readable);
  letter-spacing:var(--vrch-type-tracking);
  text-transform:none;
  line-height:var(--vrch-type-copy-line);
  font-weight:var(--vrch-type-weight);
}

.titleStatusTag{
  height:var(--sz-tag);
  gap:4px;
}
.timingIcon{
  font-size:10px;
  opacity:.76;
}
.lampSlot{
  width: 6px;
  height: 16px;
  border: 1px solid var(--vrch-line-strong);
  background: var(--vrch-panel);
  padding: 1px;
  display:inline-flex;
  align-items:flex-end;
  justify-content:center;
  border-radius: 1px;
}
.lamp{
  width: 100%;
  height: 100%;
  border-radius: 0;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap: 1px;
}
.lamp .seg{
  flex:1;
  min-height:0;
  border: 1px solid var(--vrch-line-strong);
  background: var(--vrch-line);
}
.lamp.idle .seg{
  background: var(--vrch-text-dim);
  border-color: var(--vrch-line-strong);
}
.lamp.ok .seg{
  background: var(--vrch-theme-action);
  border-color: var(--vrch-theme-border);
}
.lamp.err .seg{
  background: var(--danger);
  border-color: var(--vrch-danger-border);
}
.lamp.busy .seg{
  background: var(--vrch-theme-selection);
  border-color: var(--vrch-theme-border);
}
.lamp.busy .seg.on{
  background: var(--vrch-theme-action);
  border-color: var(--vrch-theme-border);
}
@keyframes lampIdlePulse{
  0%,100%{ opacity: .52; }
  50%{ opacity: .86; }
}
.lamp.idle{ animation: lampIdlePulse 2.2s ease-in-out infinite; }





.shader-editor__grid{
  margin-top: 0;
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--gap);
  align-items: stretch;
}
.shader-editor__grid > .ui-panel{
  width:100%;
  min-width:0;
  box-sizing:border-box;
}
.shader-editor__layout{
  max-width:720px;
}
.shader-editor__topbar{
  align-self:flex-start;
  width:auto;
  max-width:100%;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  gap:0;
}
.shader-editor__topbar .barIdentity{
  flex:0 1 auto;
}
.shader-editor__topbar .title{
  gap:0;
}
.shader-editor__topbar .shader-page-head-row{
  gap:8px;
  row-gap:8px;
}
.shader-editor__topbar .titleStatusIndicator{
  margin-right:0;
}
@media (max-width: 768px){
  .shader-editor__grid{ grid-template-columns: 1fr; }
  .barIdentity{ min-width:0; }
  .shader-page-head-row .shader-header-title,
  .shader-page-head-row .shader-header-version{
    display:none;
  }
  .shader-page-head-row{
    justify-content:flex-start;
  }
}








































.web-viewer-page{
  min-height:100vh;
  display:block;
}
.web-viewer-page{
  background:var(--bg);
}
.web-viewer-page .wrapper{
  width:100%;
  min-height:100vh;
  display:flex;
  justify-content:center;
}
.web-viewer-page .wv-tabs{
  width:min(1280px, 100%);
  margin:0 auto;
  padding:16px 16px 40px;
  box-sizing:border-box;
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
.web-viewer-page .wv-tablist.ui-tabs{
  position:fixed;
  top:18px;
  left:50%;
  z-index:120;
  margin:0;
  transform:translateX(-50%);
  max-width:calc(100vw - 24px);
}
.web-viewer-page .wv-tabpanes{
  padding-top:84px;
  flex:1 1 auto;
  display:flex;
  min-height:0;
}
.web-viewer-page .wv-tabpanel{
  animation:fadeTab .22s ease;
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.web-viewer-page .wv-tabpanel[hidden]{
  display:none;
}
.web-viewer-page .wv-tabpanel.is-overflow{
  justify-content:flex-start;
}
.web-viewer-page .showcase-container{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 460px));
  gap:12px;
  width:100%;
  justify-content:center;
}
.web-viewer-page .showcase-container.is-single-card{
  grid-template-columns:minmax(320px, 460px);
  justify-content:center;
}
.web-viewer-page .web-viewer-card{
  min-height:152px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  padding:14px 14px;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:var(--surface-3);
  color:var(--text);
  text-align:center;
  box-shadow:none;
  transition:background-color .2s ease, border-color .2s ease, transform .04s ease;
}
.web-viewer-page .web-viewer-card:hover{
  background:var(--surface-2);
  border-color:var(--border2);
}
.web-viewer-page .web-viewer-card:active{
  transform:translateY(1px);
}
.web-viewer-page .web-viewer-card__title{
  width:100%;
  margin:0;
  color:var(--text);
  font-size:var(--vrch-type-title-size);
  font-weight:var(--vrch-type-strong);
  line-height:var(--vrch-type-line);
}
.web-viewer-page .web-viewer-card__subtitle{
  width:100%;
  margin:0;
  color:var(--muted);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-copy-line);
  font-family:var(--vrch-font-readable);
  font-weight:var(--vrch-type-weight);
  letter-spacing:var(--vrch-type-tracking);
}
.web-viewer-page .web-viewer-card__subtitle a{
  color:var(--vrch-accent-text);
  text-decoration:none;
  font-family:var(--vrch-font-readable);
  font-weight:var(--vrch-type-weight);
  line-height:var(--vrch-type-copy-line);
  letter-spacing:var(--vrch-type-tracking);
}
.web-viewer-page .web-viewer-card__subtitle a:hover{
  color:var(--vrch-deep-pink);
  font-family:var(--vrch-font-readable);
  font-weight:var(--vrch-type-weight);
  line-height:var(--vrch-type-copy-line);
  letter-spacing:var(--vrch-type-tracking);
}
.web-viewer-page .web-viewer-card > .ui-btn--md{
  align-self:stretch;
  margin-top:auto;
}
@keyframes fadeTab{
  from{
    opacity:0;
    transform:translateY(4px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}
@media (max-width: 720px){
  .web-viewer-page .wv-tablist.ui-tabs{
    top:10px;
  }
  .web-viewer-page .wv-tabpanes{
    padding-top:70px;
  }
  .web-viewer-page .showcase-container{
    grid-template-columns:1fr;
  }
  .web-viewer-page .web-viewer-card{
    min-height:144px;
    padding:13px 13px;
  }
  .web-viewer-page .web-viewer-card__title{
    font-size:var(--vrch-type-title-size);
  }
}
@media (min-width: 341px) and (max-width: 480px){
  .web-viewer-page .wv-tabs{
    padding:12px 12px 28px;
  }
  .web-viewer-page .web-viewer-card{
    min-height:136px;
    gap:8px;
    padding:12px 12px;
  }
  .web-viewer-page .web-viewer-card__title{
    font-size:var(--vrch-type-title-size);
  }
}
.live-console-device-access-list{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:12px;
}
.live-console-device-access-card__badge{
  display:inline-flex;
  align-items:center;
  min-height:18px;
}
.live-console-device-access-card__action{
  min-width:108px;
}
.live-console-device-access-card__action:disabled{
  cursor:default;
}
.live-console-device-access-card__action.is-busy{
  cursor:progress;
}























/* Live Console workflow list */
.live-console-workflows-list{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-top:5px;
  max-height:min(320px, 50vh);
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-width:none;
}
.live-console-workflows-list::-webkit-scrollbar{
  width:0;
  height:0;
  display:none;
}
.live-console-workflow-item{
  display:flex;
  align-items:stretch;
  gap:10px;
  margin-left:var(--workflow-indent, 0px);
  width:calc(100% - var(--workflow-indent, 0px));
  box-sizing:border-box;
  min-width:0;
  min-height:var(--workflow-row-height, 40px);
}
.live-console-workflow-row{
  position:relative;
  min-height:var(--workflow-row-height, 40px);
  height:var(--workflow-row-height, 40px);
  box-sizing:border-box;
  flex:1 1 0;
  min-width:0;
  padding:4px 12px;
  align-items:center;
}
.live-console-workflow-row.is-default{
  padding-left:26px;
}
.live-console-workflow-default{
  position:absolute;
  z-index:1;
  top:-1px;
  left:-1px;
  width:18px;
  min-width:18px;
  height:18px;
  min-height:18px;
  padding:0;
  pointer-events:none;
}
.live-console-workflow-name{
  flex:1 1 auto;
  min-width:0;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  white-space:normal;
  overflow:hidden;
  text-overflow:ellipsis;
  overflow-wrap:anywhere;
  word-break:break-word;
  max-height:calc(1.1em * 2);
  line-height:var(--vrch-type-line);
  font-size:var(--vrch-type-size);
  color:var(--vrch-text-secondary);
}
.live-console-workflow-name.clickable{
  color:var(--vrch-text-secondary);
  cursor:pointer;
}
.live-console-workflow-actions{
  flex:0 0 auto;
  display:flex;
  align-items:stretch;
  gap:6px;
}
.live-console-workflow-empty{
  padding:10px 0;
  text-align:left;
}
.live-console-workflow-folder{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.live-console-workflow-folder-header{
  color:var(--vrch-text-secondary);
  width:calc(100% - var(--workflow-indent, 0px));
  text-align:left;
  min-height:var(--workflow-row-height, 40px);
  height:var(--workflow-row-height, 40px);
  box-sizing:border-box;
  margin-left:var(--workflow-indent, 0px);
  padding:8px 12px;
  align-items:center;
  gap:10px;
}
.live-console-workflow-folder-header i{
  flex:0 0 12px;
  width:12px;
  text-align:center;
  transition:transform .2s ease;
}
.live-console-workflow-folder-header[aria-expanded="true"] i{
  transform:rotate(90deg);
}
.live-console-workflow-folder-name{
  flex:1 1 auto;
  min-width:0;
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  color:var(--vrch-text-secondary);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.live-console-workflow-folder-count{
  flex:0 0 auto;
  margin-left:auto;
  font-size:var(--vrch-type-size);
  color:var(--vrch-text-dim);
}
.live-console-workflow-folder-children{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding-top:0;
}
.live-console-workflow-folder-children.is-collapsed{
  display:none;
}
.live-console-workflow-filter{
  display:flex;
  align-items:center;
  gap:10px;
}
.live-console-workflow-filter .live-console-settings__input{
  height:var(--workflow-row-height, 40px);
  flex:1 1 auto;
}
.live-console-workflow-default-actions{
  flex:0 0 auto;
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
  gap:8px;
  padding-top:2px;
}
.live-console-workflow-default-actions > .ui-btn--sm{
  width:100%;
  min-width:0;
}
@media (max-width:520px){
  .live-console-workflow-default-actions{
    grid-template-columns:minmax(0, 1fr);
  }
}

/* Live Console settings shell */
.live-console-settings{
  display:flex;
  flex-direction:column;
}
.live-console-settings-modal.ui-modal{
  --live-console-settings-bottom-inset:0px;
  --live-console-settings-available-height:
    calc(var(--vrch-safe-vh, 1vh) * 100 - var(--live-console-settings-bottom-inset));
  bottom:var(--live-console-settings-bottom-inset);
}
.ui-modal__dialog.live-console-settings{
  width:min(640px, calc(100% - 32px));
  max-width:640px;
  height:min(720px, calc(var(--live-console-settings-available-height) - 32px));
  max-height:calc(var(--live-console-settings-available-height) - 32px);
  padding:0;
  overflow:hidden;
}
.ui-modal__dialog.live-console-settings{
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.ui-modal__dialog.live-console-settings::-webkit-scrollbar{
  width:0;
  height:0;
  display:none;
}
.live-console-settings__header{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:center;
  column-gap:12px;
  row-gap:4px;
  padding:12px 12px;
  text-align:left;
}
.live-console-settings__header .ui-dialog__header-copy{
  grid-column:1;
  grid-row:1;
}
.live-console-settings__header .ui-modal__close{
  position:static;
  grid-column:2;
  grid-row:1;
  align-self:center;
  justify-self:end;
}
.live-console-settings__form{
  --ui-dialog-footer-margin:0 -12px;
  --ui-dialog-footer-padding:12px 12px 0;
  display:flex;
  flex-direction:column;
  gap:12px;
  flex:1 1 auto;
  min-height:0;
  padding:12px 12px;
  overflow:hidden;
}
.live-console-settings__layout{
  --settings-nav-column:152px;
  --ui-settings-nav-width:var(--settings-nav-column);
  position:relative;
  display:flex;
  align-items:stretch;
  flex:1 1 auto;
  gap:0;
  min-height:0;
  min-width:0;
  border-top:0;
  padding-top:0;
  overflow:hidden;
  max-height:none;
}
.live-console-settings__layout::before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:calc(var(--settings-nav-column) - 1px);
  width:1px;
  background:var(--border);
  pointer-events:none;
  z-index:1;
}
.live-console-settings__nav-btn{
  z-index:1;
  gap:8px;
}
.live-console-settings__nav-btn > i{
  flex:0 0 20px;
  width:20px;
  min-width:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  text-align:center;
}
.live-console-settings__nav-btn .nav-label{
  min-width:0;
  line-height:1.1;
  white-space:nowrap;
}
.live-console-settings__content{
  position:relative;
  z-index:0;
  flex:1 1 auto;
  min-height:0;
  min-width:0;
  height:100%;
  max-height:none;
  overflow-y:auto;
  padding-left:18px;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.live-console-settings__content::-webkit-scrollbar{
  width:0;
  height:0;
  display:none;
}
.live-console-settings__section{
  display:none;
  flex-direction:column;
  gap:18px;
  min-width:0;
  min-height:0;
}
.live-console-settings__section.is-active{
  display:flex;
  flex:1 1 auto;
}
.live-console-settings__section[data-section="maintenance"]{
  gap:10px;
}
.live-console-settings__section[data-section="workflows"]{
  flex:1 1 auto;
  height:100%;
  overflow:hidden;
}
.live-console-settings__section[data-section="workflows"] .live-console-workflows{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  min-height:0;
}
.live-console-settings__section[data-section="workflows"] .live-console-workflows__group{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  min-height:0;
}
.live-console-settings__section[data-section="workflows"] .live-console-workflows-list{
  flex:1 1 auto;
  max-height:none;
}
.live-console-settings__section[data-section="workflows"] .live-console-workflows__hint{
  margin-top:2px;
  margin-bottom:8px;
  font-family:var(--vrch-font-readable);
  font-weight:var(--vrch-type-weight);
  line-height:var(--vrch-type-copy-line);
  letter-spacing:var(--vrch-type-tracking);
}
.live-console-settings__groups{
  display:none;
}
.live-console-settings__group{
  min-width:0;
}
.live-console-settings__group:not(.ui-section-shell){
  display:flex;
  flex-direction:column;
  gap:6px;
}
.live-console-settings__group--toggle{
  gap:0;
}
.live-console-settings__group-header--device-access{
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
.live-console-settings__btn--icon{
  width:56px;
  height:36px;
  padding:0;
  display:flex;
  align-items:center;
  justify-content:center;
}
.live-console-settings__btn--icon i{
  pointer-events:none;
}
.live-console-settings__btn--icon:disabled{
  opacity:0.4;
  cursor:default;
}
.live-console-settings__preset-list{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:10px;
}
.live-console-settings__preset-title-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.live-console-settings__preset-group{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.live-console-settings__preset-group-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.live-console-settings__preset-group-toggle{
  flex:1 1 auto;
  min-width:0;
  min-height:24px;
  padding:0;
  border:0;
  background:transparent;
  color:inherit;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  cursor:pointer;
  text-align:left;
}
.live-console-settings__preset-group-toggle i{
  flex:0 0 12px;
  width:12px;
  font-size:11px;
  color:var(--muted);
  text-align:center;
}
.live-console-settings__preset-group-toggle:focus-visible{
  outline:none;
  color:var(--text);
}
.live-console-settings__preset-grid[hidden]{
  display:none;
}
.live-console-check-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  inline-size:98px;
  min-width:92px;
  max-width:98px;
  white-space:nowrap;
  cursor:pointer;
}
.live-console-check-action *{ cursor:pointer; }
.live-console-check-action:focus-visible{
  outline:none;
  border-color:var(--vrch-deep-pink);
}
.live-console-check-action:disabled{
  opacity:0.7;
  cursor:not-allowed;
}
.live-console-check-action:disabled *{ cursor:not-allowed; }
.live-console-check-action.is-checking{
  border-color:var(--vrch-warning-border);
  color:var(--vrch-warning);
  cursor:progress;
}
.live-console-check-action.is-checking *{ cursor:progress; }
.live-console-check-action i{
  font-size:12px;
}
.live-console-settings__preset-check-btn{
  flex:0 0 auto;
}
.live-console-settings__device-access-refresh-btn{
  flex:0 0 auto;
}

.live-console-settings__preset-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
}
.live-console-settings__preset-item{
  width:100%;
  min-width:0;
  min-height:52px;
  box-sizing:border-box;
  position:relative;
}
.live-console-settings__preset-item-card{
  position:relative;
  padding:8px 6px 8px 10px;
}
.live-console-settings__preset-item-comfy-btn{
  flex:0 0 44px;
  width:44px;
  border:0;
  border-left:1px solid var(--vrch-surface-3);
  margin:0;
  padding:0;
  line-height:0;
  background:transparent;
  color:inherit;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  touch-action:manipulation;
  transition:background .15s ease, opacity .15s ease, transform .08s ease;
  appearance:none;
  -webkit-appearance:none;
}
.live-console-settings__preset-item-comfy-btn:hover:not(.is-disabled){
  background:var(--vrch-surface-3);
}
.live-console-settings__preset-item-comfy-btn:active:not(.is-disabled){
  transform:translateY(1px);
}
.live-console-settings__preset-item-comfy-btn:focus-visible{
  outline:none;
  box-shadow:none;
  border-left-color:var(--vrch-deep-pink);
}
.live-console-settings__preset-item-comfy-btn.is-disabled{
  opacity:0.55;
  cursor:not-allowed;
}
.live-console-settings__preset-item-comfy-logo{
  width:30px;
  height:30px;
  display:block;
  margin:0;
  padding:0;
  object-fit:contain;
  filter:grayscale(1) saturate(0) brightness(1.2) contrast(1.15);
}
.live-console-settings__preset-item-comfy-btn.is-active .live-console-settings__preset-item-comfy-logo{
  opacity:0.86;
  filter:grayscale(1) saturate(0) brightness(1.12) contrast(1.08);
}
.live-console-settings__preset-item-comfy-btn.is-disabled .live-console-settings__preset-item-comfy-logo{
  opacity:0.5;
  filter:grayscale(1) saturate(0) brightness(0.95) contrast(1.05);
}
.live-console-settings__preset-item-body{
  width:100%;
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:4px;
}
.live-console-settings__preset-item-title-row{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:center;
  column-gap:4px;
  min-width:0;
}
.live-console-settings__preset-item-title-group{
  display:flex;
  align-items:center;
  gap:6px;
  flex:1 1 auto;
  min-width:0;
  justify-content:flex-start;
}
.live-console-settings__preset-item-title{
  flex:0 1 auto;
  max-width:100%;
}
.live-console-settings__preset-item-status-stack{
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:flex-end;
  gap:5px;
  flex:0 0 auto;
  min-width:12px;
  margin-left:auto;
  text-align:right;
}
.live-console-settings__preset-item-status-dot{
  width:10px;
  height:10px;
  display:none;
  position:static;
  flex:0 0 auto;
  margin-top:0;
  order:2;
}
.live-console-settings__preset-item-meta{
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  gap:8px;
  min-width:0;
}
.live-console-settings__preset-item-subtext{
  flex:1 1 auto;
}
.live-console-settings__preset-item-latency{
  display:block;
  flex:0 0 auto;
  width:auto;
  min-width:28px;
  max-width:none;
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
  color:var(--vrch-text-dim);
  letter-spacing:var(--vrch-type-tracking);
  white-space:nowrap;
  text-align:right;
  font-variant-numeric:tabular-nums;
  opacity:0;
  order:1;
}
.live-console-settings__preset-item-latency.is-visible{
  opacity:1;
}
.live-console-settings__preset-item.is-active{
  color:var(--vrch-text);
}
.live-console-settings__preset-item.is-active .live-console-settings__preset-item-comfy-btn{
  border-left-color:var(--vrch-theme-border);
}
.live-console-settings__preset-item.is-status-hidden .live-console-settings__preset-item-status-stack{
  display:none;
}
.live-console-settings__preset-item.is-status-hidden .live-console-settings__preset-item-status-dot,
.live-console-settings__preset-item.is-status-hidden .live-console-settings__preset-item-latency{
  display:none;
}
.live-console-settings__preset-item.is-status-checking .live-console-settings__preset-item-status-dot{
  display:block;
  animation:live-console-preset-probe-pulse 0.9s ease-in-out infinite;
}
.live-console-settings__preset-item.is-status-checking .live-console-settings__preset-item-latency.is-visible{
  animation:none;
}
.live-console-settings__preset-item.is-status-online .live-console-settings__preset-item-status-dot{
  display:block;
}
.live-console-settings__preset-item.is-status-offline .live-console-settings__preset-item-status-dot,
.live-console-settings__preset-item.is-status-offline .live-console-settings__preset-item-latency{
  display:none;
}
@keyframes live-console-preset-probe-pulse{
  0%{ opacity:0.55; transform:scale(0.92); }
  50%{ opacity:1; transform:scale(1); }
  100%{ opacity:0.55; transform:scale(0.92); }
}
.live-console-workflows{
  --workflow-row-height: 40px;
  --ui-row-control-size:var(--workflow-row-height, 40px);
}
.live-console-settings__channels-list{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-top:8px;
  border-top:1px solid var(--vrch-surface-hover);
  border-bottom:1px solid var(--vrch-surface-hover);
  padding-top:6px;
  padding-bottom:6px;
}
.live-console-settings__channels-row{
  display:grid;
  grid-template-columns:28px minmax(0, 1fr) 56px;
  align-items:center;
  column-gap:8px;
  min-height:34px;
}
.live-console-settings__channels-row + .live-console-settings__channels-row{
  border-top:1px solid var(--vrch-surface-hover);
  padding-top:6px;
}
.live-console-settings__channels-label{
  min-width:0;
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  color:var(--vrch-text-secondary);
}
.live-console-settings__channels-visibility-btn{
  width:32px;
  height:32px;
  border:0;
  background:transparent;
  color:var(--vrch-text-muted);
  font-size:var(--vrch-type-size);
  border-radius:2px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:color .15s ease, background-color .15s ease;
}
.live-console-settings__channels-visibility-btn:hover{
  color:var(--vrch-text-secondary);
  background:color-mix(in srgb, var(--vrch-content-white) 3%, transparent);
}
.live-console-settings__channels-visibility-btn.is-hidden{
  color:var(--vrch-text-dim);
}
.live-console-settings__channels-visibility-btn.is-empty{
  cursor:default;
  pointer-events:none;
  color:var(--vrch-line-strong);
  background:transparent;
}
.live-console-maintenance__cards{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-width:0;
}
.live-console-maintenance__panel-header{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:start;
  gap:10px;
}
.live-console-maintenance__panel-header .ui-section-shell__copy{
  min-width:0;
}
.live-console-maintenance__header-actions{
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  min-width:0;
}
.live-console-maintenance__panel-header .live-console-maintenance__header-actions{
  align-self:start;
  justify-self:end;
  flex:0 0 auto;
}
.live-console-maintenance__card{
  min-width:0;
  border:1px solid var(--vrch-surface-hover);
  border-radius:3px;
  background:var(--vrch-surface-pressed);
}
.live-console-maintenance__card-header{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:center;
  gap:10px;
  width:100%;
  min-height:34px;
  padding:0 8px;
  border:0;
  border-bottom:1px solid var(--vrch-surface-hover);
  background:transparent;
  color:var(--vrch-text-secondary);
  cursor:pointer;
  font:inherit;
  text-align:left;
}
.live-console-maintenance__card-header--server{
  grid-template-columns:auto minmax(0, 1fr) auto;
}
.live-console-maintenance__card-toggle{
  display:inline-flex;
  min-width:0;
  align-items:center;
  padding:0;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.live-console-maintenance__card-toggle:focus-visible{
  outline:none;
  background-color:var(--vrch-surface-hover);
  color:var(--vrch-text);
}
.live-console-maintenance__card.is-collapsed .live-console-maintenance__card-header{
  border-bottom:0;
}
.live-console-maintenance__card-title{
  display:inline-flex;
  min-width:0;
  align-items:center;
  gap:7px;
  overflow:hidden;
  color:var(--vrch-text-secondary);
  text-transform:uppercase;
}
.live-console-maintenance__card-title i{
  font-size:10px;
  width:12px;
  color:var(--vrch-text-muted);
}
.live-console-maintenance__card-summary{
  display:inline-flex;
  min-width:0;
  align-items:center;
  justify-content:flex-end;
  gap:2px;
}
.live-console-maintenance__card:not(.is-collapsed) .live-console-maintenance__card-summary{
  display:none;
}
.live-console-maintenance__card-summary .live-console-maintenance__badge{
  min-height:20px;
  font-size:var(--vrch-type-size);
}
.live-console-maintenance__card-body{
  min-width:0;
  padding:4px 8px;
}
.live-console-maintenance__card-body[hidden]{
  display:none;
}
.live-console-maintenance__target-row{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:center;
  gap:10px;
}
.live-console-maintenance__target-row--header{
  width:100%;
  min-width:0;
  display:contents;
  gap:0;
}
.live-console-maintenance__target-value-wrap{
  display:contents;
  min-width:0;
}
.live-console-maintenance__target-value{
  display:inline-flex;
  min-width:0;
  max-width:100%;
  align-items:center;
  gap:1px;
  justify-self:start;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--vrch-text-muted);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
}
.live-console-maintenance__target-value::before,
.live-console-maintenance__target-value::after{
  color:var(--vrch-line-strong);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  line-height:var(--vrch-type-line);
}
.live-console-maintenance__target-value::before{
  content:"[";
}
.live-console-maintenance__target-value::after{
  content:"]";
}
.live-console-maintenance__connection-state{
  display:inline-flex;
  min-height:18px;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  gap:1px;
  justify-self:end;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--vrch-text-dim);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  line-height:var(--vrch-type-line);
  white-space:nowrap;
}
.live-console-maintenance__connection-state::before,
.live-console-maintenance__connection-state::after{
  color:var(--vrch-line-strong);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  line-height:var(--vrch-type-line);
}
.live-console-maintenance__connection-state::before{
  content:"[";
}
.live-console-maintenance__connection-state::after{
  content:"]";
}
.live-console-maintenance__connection-state.is-ok{
  color:var(--vrch-status-accent-text);
}
.live-console-maintenance__connection-state.is-checking{
  color:var(--vrch-text-muted);
}
.live-console-maintenance__connection-state.is-error{
  color:var(--vrch-danger);
}
.live-console-maintenance__reload-page{
  inline-size:98px;
  min-width:92px;
  max-width:98px;
}
.live-console-maintenance__reload-page i + span{
  margin-left:6px;
}
.live-console-maintenance__metrics{
  display:flex;
  flex-wrap:wrap;
  gap:2px;
  margin-top:4px;
}
.live-console-maintenance__metric{
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
  background:transparent;
}
.live-console-maintenance__metric-break{
  flex-basis:100%;
  width:100%;
  height:0;
}
.live-console-maintenance__metric:hover{
  color:var(--vrch-text-secondary);
}
.live-console-maintenance__wifi-modal{
  z-index:101;
}
.live-console-maintenance__wifi-dialog{
  width:min(560px, calc(100% - 16px));
  max-width:560px;
  max-height:min(86vh, calc(var(--vrch-safe-vh, 1vh) * 100 - 24px));
  padding:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.live-console-maintenance__wifi-dialog .ui-dialog__header{
  padding:10px 12px;
}
.ui-modal__dialog.live-console-maintenance__tool-dialog{
  --maintenance-action-column:128px;
  width:min(600px, calc(100% - 16px));
  max-width:600px;
}
.live-console-maintenance__tool-dialog .live-console-maintenance__repo-row{
  --maintenance-action-column:128px;
}
.live-console-maintenance__wifi-panel{
  display:grid;
  grid-template-columns:1fr;
  flex:0 1 auto;
  gap:8px;
  min-height:0;
  max-height:min(70vh, 560px);
  padding:10px;
  overflow:auto;
  background:var(--vrch-secondary-surface);
}
.live-console-maintenance__tool-dialog > .ui-dialog__body{
  flex:1 1 auto;
  max-height:none;
}
.live-console-maintenance__tool-dialog > .ui-dialog__actions{
  flex:0 0 auto;
  margin-top:0;
  padding-top:10px;
  border-top:1px solid var(--border);
  background:var(--vrch-secondary-surface);
}
@media (min-width:641px) and (max-height:680px){
  .ui-modal__dialog.live-console-maintenance__tool-dialog{
    width:min(720px, calc(100% - 12px));
    max-width:720px;
    height:calc(var(--vrch-safe-vh, 1vh) * 100 - 12px);
    max-height:calc(var(--vrch-safe-vh, 1vh) * 100 - 12px);
  }
  .live-console-maintenance__tool-dialog .ui-dialog__header{
    padding:8px 10px;
  }
  .live-console-maintenance__tool-dialog > .ui-dialog__body{
    gap:4px;
    padding:6px 8px;
    scrollbar-width:auto;
  }
  .live-console-maintenance__tool-dialog > .ui-dialog__actions{
    padding:6px 10px 8px;
  }
  .live-console-maintenance__tool-dialog .ui-settings-group--advanced-items{
    gap:2px;
    padding-top:2px;
  }
  .live-console-maintenance__tool-dialog .ui-settings-disclosure > summary{
    padding-top:6px;
  }
  .live-console-maintenance__tool-dialog .ui-settings-disclosure[open] > summary{
    margin-bottom:4px;
  }
  .live-console-maintenance__tool-dialog .live-console-maintenance__service-detail{
    gap:4px;
    padding:6px;
  }
}
@media (min-width:481px){
  .live-console-page.is-compact-touch .live-console-maintenance__tool-dialog .live-console-maintenance__repo-action-wrap{
    width:var(--maintenance-action-column);
  }
  .live-console-page.is-compact-touch .live-console-maintenance__tool-dialog > .ui-dialog__actions--equal .ui-btn--sm{
    width:128px;
    min-width:128px;
    max-width:128px;
  }
}
.live-console-maintenance__wifi-panel[hidden]{
  display:none;
}
.live-console-maintenance__wifi-current{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 104px;
  align-items:center;
  gap:8px;
  padding:7px 8px;
  border:1px solid var(--vrch-surface-hover);
  border-radius:2px;
  background:var(--vrch-surface-pressed);
}
.live-console-maintenance__wifi-current-copy{
  display:grid;
  min-width:0;
  gap:3px;
}
.live-console-maintenance__wifi-current-copy strong{
  overflow:hidden;
  color:var(--vrch-text-secondary);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
  text-overflow:ellipsis;
  white-space:nowrap;
}
.live-console-maintenance__wifi-current-meta{
  overflow:hidden;
  color:var(--vrch-text-muted);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
  text-overflow:ellipsis;
  white-space:nowrap;
}
.live-console-maintenance__wifi-kicker{
  color:var(--vrch-text-dim);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  line-height:var(--vrch-type-line);
  text-transform:uppercase;
}
.live-console-maintenance__wifi-scan{
  width:104px;
  min-width:104px;
  justify-content:center;
}
.live-console-maintenance__wifi-list{
  display:grid;
  grid-template-columns:1fr;
  gap:5px;
  max-height:180px;
  overflow:auto;
}
.live-console-maintenance__wifi-network{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:center;
  gap:8px;
  min-height:32px;
  padding:6px 8px;
  border:1px solid var(--vrch-line);
  border-radius:2px;
  background:var(--vrch-surface-2);
  color:var(--vrch-text-secondary);
  cursor:pointer;
  text-align:left;
}
.live-console-maintenance__wifi-network:hover,
.live-console-maintenance__wifi-network.is-selected{
  border-color:var(--vrch-line-strong);
  background:var(--vrch-surface-3);
}
.live-console-maintenance__wifi-network.is-connected{
  border-color:var(--vrch-theme-border);
}
.live-console-maintenance__wifi-name{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-width:0;
  overflow:hidden;
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  line-height:var(--vrch-type-line);
  text-overflow:ellipsis;
  white-space:nowrap;
}
.live-console-maintenance__wifi-name > i{
  flex:0 0 auto;
  width:12px;
  text-align:center;
  font-size:10px;
  line-height:1;
}
.live-console-maintenance__wifi-meta{
  overflow:hidden;
  color:var(--vrch-text-muted);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  line-height:var(--vrch-type-line);
  text-overflow:ellipsis;
  text-transform:uppercase;
  white-space:nowrap;
}
.live-console-maintenance__wifi-empty{
  padding:8px;
  border:1px dashed var(--vrch-line);
  border-radius:2px;
  color:var(--vrch-text-dim);
  font-size:var(--vrch-type-size);
}
.live-console-maintenance__wifi-password{
  display:grid;
  grid-template-columns:74px minmax(0, 1fr);
  align-items:center;
  gap:8px;
}
.live-console-maintenance__wifi-password[hidden]{
  display:none;
}
.live-console-maintenance__wifi-password input{
  min-width:0;
  height:30px;
  padding:0 8px;
  border:1px solid var(--vrch-line);
  border-radius:6px;
  background:var(--vrch-bg);
  color:var(--vrch-text-secondary);
  font-size:var(--vrch-type-size);
}
.live-console-maintenance__wifi-primary-actions{
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:6px;
}
.live-console-maintenance__wifi-primary-actions[hidden]{
  display:none;
}
.live-console-maintenance__wifi-primary-actions .live-console-maintenance__item-action{
  width:100%;
  min-width:0;
  justify-content:stretch;
}
.live-console-maintenance__wifi-secondary-actions{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(88px, 1fr));
  justify-content:stretch;
  gap:6px;
}
.live-console-maintenance__wifi-secondary-actions .live-console-maintenance__item-action{
  width:100%;
  min-width:0;
  justify-content:stretch;
}
.live-console-maintenance__app-dialog-actions{
  padding:0 12px 12px;
  margin-top:0;
}
.live-console-maintenance__app-panel .live-console-maintenance__repo-row{
  --maintenance-action-column:128px;
}
.live-console-maintenance__status{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  min-height:16px;
  margin-top:4px;
  color:var(--vrch-text-dim);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
}
.live-console-maintenance__status:empty{
  display:none;
}
.live-console-maintenance__component-header{
  display:flex;
  align-items:center;
  min-height:18px;
}
.live-console-maintenance__tool-header,
.live-console-maintenance__service-header{
  margin-top:8px;
}
.live-console-maintenance__repo-list{
  display:flex;
  flex-direction:column;
  gap:0;
}
.live-console-maintenance__card .live-console-maintenance__repo-list{
  container-name:maintenance-card-list;
  container-type:inline-size;
}
.live-console-maintenance__repo-row{
  --maintenance-name-column:clamp(140px, 34%, 210px);
  --maintenance-action-min-column:112px;
  --maintenance-action-column:144px;
  display:grid;
  grid-template-columns:minmax(0, var(--maintenance-name-column)) minmax(0, 1fr) minmax(var(--maintenance-action-min-column), max-content);
  align-items:center;
  gap:8px;
  min-height:38px;
  padding:4px 0;
}
.live-console-maintenance__repo-row--wide-name{
  --maintenance-name-column:clamp(190px, 42%, 240px);
}
.live-console-maintenance__repo-row.live-console-maintenance__repo-row--wide-action{
  --maintenance-action-min-column:144px;
  --maintenance-action-column:144px;
}
.live-console-maintenance__repo-row:has(> .live-console-maintenance__repo-action-wrap[hidden]){
  grid-template-columns:minmax(0, 1fr) auto;
}
.live-console-maintenance__repo-row[hidden]{
  display:none;
}
.live-console-maintenance__repo-row + .live-console-maintenance__repo-row{
  border-top:1px solid var(--vrch-surface-hover);
}
.live-console-maintenance__repo-label,
.live-console-maintenance__repo-version{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.live-console-maintenance__repo-label{
  color:var(--vrch-text-secondary);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
}
.live-console-maintenance__repo-label--two-lines{
  display:-webkit-box;
  max-height:2.4em;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-height:1.2;
  overflow-wrap:anywhere;
  text-overflow:ellipsis;
  white-space:normal;
  word-break:break-all;
}
.live-console-maintenance__repo-version{
  display:inline-flex;
  align-items:center;
  justify-self:stretch;
  width:100%;
  gap:2px 3px;
  flex-wrap:wrap;
}
.live-console-maintenance__badge{
  display:inline-flex;
  max-width:100%;
  min-height:18px;
  align-items:center;
  gap:1px;
  padding:0 2px;
  overflow:hidden;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--vrch-text-muted);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  line-height:var(--vrch-type-line);
  text-overflow:ellipsis;
  white-space:nowrap;
}
.live-console-maintenance__badge::before,
.live-console-maintenance__badge::after{
  color:var(--vrch-line-strong);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  line-height:var(--vrch-type-line);
}
.live-console-maintenance__badge::before{
  content:"[";
}
.live-console-maintenance__badge::after{
  content:"]";
}
.live-console-maintenance__badge.is-version{
  color:var(--vrch-text-secondary);
}
.live-console-maintenance__badge.is-new{
  color:var(--vrch-status-accent-text);
}
.live-console-maintenance__badge.is-branch{
  color:var(--vrch-accent-text);
}
.live-console-maintenance__badge.is-muted{
  color:var(--vrch-text-muted);
}
.live-console-maintenance__badge.is-ok{
  color:var(--vrch-status-accent-text);
}
.live-console-maintenance__badge.is-theme-value{
  color:var(--vrch-accent-text);
}
.live-console-maintenance__badge.is-warn{
  color:var(--vrch-warning);
}
.live-console-maintenance__badge.is-error{
  color:var(--vrch-danger);
}
.live-console-maintenance__badge-separator{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:0 3px;
  line-height:1;
}
.live-console-maintenance__badge-icon-value{
  display:inline-flex;
  align-items:center;
  gap:4px;
  line-height:1;
}
.live-console-maintenance__badge-icon-value > i{
  font-size:10px;
  line-height:1;
}
.live-console-page .ui-action-popover{
  z-index:10080;
}
.live-console-maintenance__repo-action-wrap{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  justify-self:end;
  width:fit-content;
  min-width:var(--maintenance-action-min-column);
  max-width:var(--maintenance-action-column);
  text-align:right;
}
.live-console-page .live-console-maintenance__repo-action-wrap--end{
  justify-content:flex-end;
}
.live-console-maintenance__repo-action-wrap[hidden]{
  display:none;
}
.live-console-maintenance__item-action{
  --maintenance-action-icon-column:16px;
  --maintenance-action-chevron-column:12px;
  display:inline-grid;
  grid-template-columns:var(--maintenance-action-icon-column) minmax(0, 1fr);
  column-gap:6px;
  justify-content:stretch;
  justify-items:start;
  width:100%;
  min-width:0;
  padding:0 8px;
}
.live-console-maintenance__item-action.is-confirming{
  border-color:var(--vrch-warning-border);
  color:var(--vrch-warning);
}
.live-console-maintenance__item-action.is-ok{
  border-color:var(--vrch-theme-border);
  color:var(--vrch-status-accent-text);
}
.live-console-maintenance__item-action.is-warn{
  border-color:var(--vrch-warning-border);
  color:var(--vrch-warning);
}
.live-console-maintenance__item-action.is-error{
  border-color:var(--vrch-danger-border);
  color:var(--vrch-danger);
}
.live-console-maintenance__item-action.is-danger{
  border-color:var(--vrch-danger-border);
  color:var(--vrch-danger);
}
.live-console-maintenance__item-action > i:not(.live-console-maintenance__tool-option-chevron){
  grid-column:1;
  justify-self:center;
  font-size:11px;
}
.live-console-maintenance__screen-card-icon > i,
.live-console-maintenance__badge-icon-value > i,
.live-console-maintenance__item-action > i:not(.live-console-maintenance__tool-option-chevron){
  translate:0 -0.225em;
}
.live-console-maintenance__item-action > span{
  grid-column:2;
  justify-self:stretch;
  width:100%;
  max-width:100%;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.live-console-maintenance__reload-action{
  flex:0 0 auto;
}
.live-console-maintenance__service-action-wrap{
  width:var(--maintenance-action-column);
  min-width:0;
  gap:5px;
}
.live-console-maintenance__service-action{
  width:28px;
  min-width:28px;
  height:26px;
  padding:0;
  justify-content:center;
}
.live-console-maintenance__service-action--restart{
  border-color:var(--vrch-theme-border);
  color:var(--vrch-text-secondary);
}
.live-console-maintenance__service-action--start{
  color:var(--vrch-text-secondary);
}
.live-console-maintenance__service-action--stop{
  color:var(--vrch-danger);
}
.live-console-maintenance__service-action.is-confirming{
  border-color:var(--vrch-warning-border);
  color:var(--vrch-warning);
}
.live-console-maintenance__service-action i{
  font-size:11px;
}
.live-console-maintenance__service-action > span{
  display:none;
}
.live-console-maintenance__tool-status{
  max-width:100%;
}
.live-console-maintenance__tool-status .live-console-maintenance__badge{
  min-width:0;
  max-width:100%;
}
.live-console-maintenance__tool-action-wrap{
  width:fit-content;
  min-width:var(--maintenance-action-min-column);
  max-width:var(--maintenance-action-column);
}
.live-console-maintenance__tool-row.has-options .live-console-maintenance__item-action{
  width:100%;
  min-width:0;
  max-width:100%;
}
.live-console-maintenance__tool-option-button{
  grid-template-columns:var(--maintenance-action-icon-column) minmax(0, 1fr) var(--maintenance-action-chevron-column);
  justify-content:stretch;
}
.live-console-maintenance__tool-option-button.is-iconless{
  grid-template-columns:minmax(0, 1fr) var(--maintenance-action-chevron-column);
}
.live-console-maintenance__tool-option-button.is-iconless > span{
  grid-column:1;
  justify-self:center;
}
.live-console-maintenance__tool-option-button.is-iconless .live-console-maintenance__tool-option-chevron{
  grid-column:2;
}
.live-console-maintenance__tool-option-button .live-console-maintenance__tool-option-chevron{
  grid-column:3;
  justify-self:end;
  margin-left:0;
  font-size:9px;
  opacity:.72;
}
.live-console-maintenance__repo-state{
  display:inline-flex;
  min-height:26px;
  align-items:center;
  justify-content:flex-end;
  gap:2px;
  color:var(--vrch-text-muted);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  text-transform:uppercase;
  white-space:nowrap;
}
.live-console-maintenance__repo-action-wrap > .live-console-maintenance__repo-state::before,
.live-console-maintenance__repo-action-wrap > .live-console-maintenance__repo-state::after{
  color:var(--vrch-line-strong);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  line-height:var(--vrch-type-line);
}
.live-console-maintenance__repo-action-wrap > .live-console-maintenance__repo-state::before{
  content:"[";
}
.live-console-maintenance__repo-action-wrap > .live-console-maintenance__repo-state::after{
  content:"]";
}
.live-console-maintenance__repo-state.is-ok{
  color:var(--vrch-status-accent-text);
}
.live-console-maintenance__repo-state.is-warn{
  color:var(--vrch-warning);
}
.live-console-maintenance__repo-state.is-error{
  color:var(--vrch-danger);
}
.live-console-maintenance__repo-info-popover{
  display:none;
  position:absolute;
  top:calc(100% + 5px);
  right:0;
  z-index:30;
  width:max-content;
  max-width:min(260px, calc(100vw - 40px));
  padding:8px 9px;
  border:1px solid var(--vrch-line);
  border-radius:3px;
  background:var(--vrch-surface-0);
  color:var(--vrch-text-secondary);
  box-shadow:0 10px 24px color-mix(in srgb, var(--vrch-content-black) 36%, transparent);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
  text-align:left;
  white-space:normal;
}
.live-console-maintenance__repo-info-popover.is-open{
  display:block;
}
.live-console-maintenance__empty{
  padding:10px 0;
  color:var(--vrch-text-dim);
  font-size:var(--vrch-type-size);
}
.live-console-maintenance__service-detail{
  display:flex;
  flex-direction:column;
  margin-top:7px;
  max-height:min(40vh, 380px);
  padding:7px 8px;
  border:1px solid var(--vrch-surface-hover);
  border-radius:3px;
  background:var(--vrch-surface-0);
  overflow:hidden;
}
.live-console-maintenance__service-detail[hidden]{
  display:none;
}
.live-console-maintenance__service-detail-header{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:center;
  gap:8px;
  margin-bottom:5px;
}
.live-console-maintenance__service-detail-header--actions-only{
  grid-template-columns:minmax(0, 1fr);
}
.live-console-maintenance__service-detail-actions{
  --ui-row-control-size:34px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
}
.live-console-maintenance__service-detail-header--actions-only .live-console-maintenance__service-detail-actions{
  grid-column:1;
  justify-self:end;
}
.live-console-maintenance__service-detail-title{
  color:var(--vrch-text-secondary);
  min-width:0;
}
.live-console-maintenance__service-detail-body{
  flex:1 1 auto;
  margin:0;
  min-height:0;
  overflow:auto;
  color:var(--vrch-text-muted);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
  white-space:pre-wrap;
}
.live-console-maintenance__service-detail-body:empty{
  min-height:34px;
}
.live-console-maintenance__service-detail-disclosure{
  display:flex;
  flex:0 0 auto;
  flex-direction:column;
  min-height:0;
  overflow:hidden;
}
.live-console-maintenance__service-detail-disclosure[open]{
  flex:1 1 auto;
}
.live-console-maintenance__service-detail-disclosure > summary{
  flex:0 0 auto;
}
.live-console-maintenance__service-detail-disclosure .live-console-maintenance__service-detail-body{
  flex:1 1 auto;
  max-height:min(24vh, 190px);
  padding-top:8px;
  overflow:auto;
}
@media (max-width:640px){
  .live-console-maintenance__tool-dialog .live-console-maintenance__repo-row{
    grid-template-columns:minmax(0, 1fr) auto;
    grid-template-areas:
      "name status"
      "action action";
    gap:4px 8px;
    padding:6px 0;
  }
  .live-console-maintenance__tool-dialog .live-console-maintenance__repo-label{
    grid-area:name;
    white-space:normal;
  }
  .live-console-maintenance__tool-dialog .live-console-maintenance__repo-version{
    grid-area:status;
    justify-self:end;
  }
  .live-console-maintenance__tool-dialog .live-console-maintenance__repo-action-wrap{
    grid-area:action;
    justify-self:end;
    width:min(100%, var(--maintenance-action-column));
  }
  .live-console-maintenance__tool-dialog .ui-settings-disclosure__title,
  .live-console-maintenance__tool-dialog .ui-settings-disclosure__meta{
    overflow:visible;
    text-overflow:clip;
    white-space:normal;
  }
}
.ui-modal__dialog.live-console-maintenance__details-dialog{
  width:min(920px, calc(100% - 16px));
  max-width:920px;
}
.live-console-maintenance__details-dialog-body{
  flex:1 1 auto;
  min-height:0;
  overflow:hidden;
  padding:10px;
}
.live-console-maintenance__service-detail--expanded{
  flex:1 1 auto;
  height:min(62vh, 680px);
  min-height:280px;
  max-height:none;
  margin-top:0;
}
.live-console-maintenance__service-detail--expanded .live-console-maintenance__service-detail-body{
  height:100%;
  max-height:none;
  overflow:auto;
}
.live-console-vibectrl-settings__field{
  display:flex;
  flex-direction:column;
  gap:7px;
  margin-top:12px;
}
.live-console-vibectrl-settings__field[hidden]{
  display:none;
}
.live-console-vibectrl-settings__control-row{
  grid-template-columns:28px minmax(44px, .7fr) auto minmax(42%, 1fr);
}
.live-console-vibectrl-settings__group-title{
  padding:2px 0;
}
.live-console-vibectrl-settings__control-row + .live-console-vibectrl-settings__group-title{
  padding-top:8px;
}
.live-console-vibectrl-settings__control-index{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.live-console-vibectrl-settings__control-index-main{
  flex:0 0 auto;
  color:var(--vrch-text);
  font-weight:var(--vrch-type-weight);
}
.live-console-vibectrl-settings__cc-group{
  display:inline-grid;
  grid-template-columns:auto 64px;
  align-items:center;
  gap:2px;
}
.live-console-vibectrl-settings__cc-label{
  justify-self:end;
  color:var(--vrch-text-muted);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  line-height:var(--vrch-type-line);
  text-align:right;
  white-space:nowrap;
}
.live-console-vibectrl-settings__cc-input{
  width:64px;
  min-width:64px;
  max-width:64px;
  height:30px;
  padding:0 6px;
  appearance:textfield;
  -moz-appearance:textfield;
  text-align:center;
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
}
.live-console-vibectrl-settings__cc-input::-webkit-inner-spin-button,
.live-console-vibectrl-settings__cc-input::-webkit-outer-spin-button{
  margin:0;
  -webkit-appearance:none;
}
.live-console-vibectrl-settings__label-input{
  width:100%;
}
.live-console-settings__option-popover .ui-action-popover__item{
  text-transform:none;
}
.live-console-settings__option-popover .ui-action-popover__item-current-icon{
  color:inherit;
}
:is(.live-console-settings__group--recording, .live-console-settings__group--layout-rows) .ui-settings-row--split:focus-within{
  border-color:var(--border);
  background:var(--surface-2);
  box-shadow:none;
}

.live-console-settings__hint{
  margin:0;
}
.live-console-settings__token-row{
  display:flex;
  align-items:center;
  gap:8px;
}
.live-console-settings__token-row .live-console-settings__input{
  flex:1 1 auto;
  min-width:0;
}
.live-console-settings__token-toggle{
  flex:0 0 38px;
  width:36px;
  height:36px;
  padding:0;
}
.live-console-settings__token-toggle:active{
  transform:translateY(1px);
}
.live-console-auth__panel-header{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:start;
  gap:10px;
}
.live-console-auth__panel-header .ui-section-shell__copy{
  min-width:0;
}
.live-console-auth__panel-header .live-console-auth-status__check{
  align-self:start;
  justify-self:end;
  flex:0 0 auto;
}
.live-console-auth-token{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.live-console-auth-token .live-console-auth-status{
  margin-top:0;
}
.live-console-auth-status{
  margin-top:12px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.live-console-auth-status__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.live-console-auth-status__tags{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:4px;
  min-height:24px;
}
.live-console-auth-status__tag{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  color:var(--vrch-text-secondary);
  line-height:var(--vrch-type-line);
  white-space:nowrap;
}
.live-console-auth-status__tag::before{
  content:"[";
  color:var(--vrch-text-dim);
  margin-right:3px;
}
.live-console-auth-status__tag::after{
  content:"]";
  color:var(--vrch-text-dim);
  margin-left:3px;
}
.live-console-auth-status__tag.is-ok{
  color:var(--vrch-status-accent-text);
}
.live-console-auth-status__tag.is-warn{
  color:var(--vrch-warning);
}
.live-console-auth-status__tag.is-error{
  color:var(--vrch-danger);
}
.live-console-auth-status__tag.is-muted{
  color:var(--vrch-text-secondary);
}
.live-console-auth-status__detail{
  margin:0;
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
  color:var(--vrch-text-dim);
}
.live-console-auth-qr-section{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding-top:10px;
  border-top:1px solid var(--vrch-surface-3);
}
.live-console-auth-qr-section[hidden]{
  display:none;
}
.live-console-auth-sync-section{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding-top:10px;
  border-top:1px solid var(--vrch-surface-3);
}
.live-console-auth-sync-section[hidden]{
  display:none;
}
.live-console-auth-qr-section__header{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:start;
  gap:12px;
}
.live-console-auth-sync-section__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.live-console-auth-qr-section__copy{
  min-width:0;
}
.live-console-auth-sync-section__copy{
  min-width:0;
}
.live-console-auth-qr-section__hint{
  margin-top:4px;
}
.live-console-auth-sync-section__hint{
  margin-top:4px;
}
.live-console-auth-sync-section__actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
}
.live-console-auth-sync__action{
  flex:0 0 132px;
  width:132px;
  min-width:132px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  white-space:nowrap;
}
.live-console-auth-sync__action.is-active{
  color:var(--vrch-warning);
  border-color:var(--vrch-warning-border);
  background:var(--vrch-warning-surface);
}
.live-console-auth-sync-section__status{
  margin:0;
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
  color:var(--vrch-text-dim);
}
.live-console-auth-sync-section__status.is-ok{
  color:var(--vrch-status-accent-text);
}
.live-console-auth-sync-section__status.is-warn{
  color:var(--vrch-warning);
}
.live-console-auth-sync-section__status.is-error{
  color:var(--vrch-danger);
}
.live-console-auth-sync-section__status.is-muted{
  color:var(--vrch-text-dim);
}
.live-console-auth-qr-targets{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:4px;
  width:100%;
}
.live-console-auth-qr-target{
  min-height:32px;
  padding:0 2px;
  border:0;
  background:transparent;
  color:var(--vrch-text-secondary);
  font:inherit;
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  letter-spacing:var(--vrch-type-tracking);
  text-transform:none;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
}
.live-console-auth-qr-target::before{
  content:"[";
  color:var(--vrch-text-dim);
  margin-right:3px;
}
.live-console-auth-qr-target::after{
  content:"]";
  color:var(--vrch-text-dim);
  margin-left:3px;
}
.live-console-auth-qr-target.is-active,
.live-console-auth-qr-target:hover,
.live-console-auth-qr-target:focus-visible{
  color:var(--vrch-accent-text);
}
.live-console-auth-qr-target:focus-visible{
  outline:none;
  background-color:var(--vrch-surface-hover);
  color:var(--vrch-text);
}
.live-console-auth-qr{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  padding-top:4px;
}
.live-console-auth-qr[hidden]{
  display:none;
}
.live-console-auth-qr__canvas{
  width:156px;
  height:156px;
  flex:0 0 auto;
  background:var(--vrch-content-white);
  border:1px solid var(--vrch-line);
  image-rendering:pixelated;
}
.live-console-auth-qr__meta{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  width:100%;
  min-width:0;
}
.live-console-auth-qr__hint{
  margin:0;
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-copy-line);
  color:var(--vrch-text-dim);
  font-family:var(--vrch-font-readable);
  font-weight:var(--vrch-type-weight);
  letter-spacing:var(--vrch-type-tracking);
}
.live-console-auth-qr__actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  justify-content:center;
  width:auto;
}
.live-console-auth-prompt__dialog{
  width:min(420px, calc(100% - 16px));
  max-width:420px;
  padding:0;
  overflow:hidden;
}
.live-console-auth-sync-modal__body{
  padding:12px 12px 0;
}
.live-console-auth-sync-modal__detail{
  margin:0;
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
  color:var(--vrch-text-secondary);
}
.live-console-auth-prompt__actions{
  padding:12px;
  margin-top:0;
}
.live-console-auth-prompt__actions .ui-btn--sm{
  min-width:122px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  white-space:nowrap;
}
@media (max-width: 480px){
  .live-console-auth-qr-section__header{
    grid-template-columns:minmax(0, 1fr) auto;
    gap:8px;
  }
  .live-console-auth-qr__canvas{
    width:140px;
    height:140px;
  }
  .live-console-auth-qr-targets{
    gap:2px 4px;
  }
  .live-console-auth-qr-target{
    min-height:34px;
  }
  .live-console-auth-sync-section__actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .live-console-auth-sync__action{
    flex:1 1 auto;
    width:100%;
  }
}
.live-console-settings__token-preview-row{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  flex-wrap:wrap;
  gap:8px;
  margin:0;
}
.live-console-settings__select.live-console-settings__channel-input{
  width:56px;
  min-width:56px;
  max-width:56px;
  height:36px;
  padding:0;
  border-radius:2px;
  font-size:var(--vrch-type-size);
  text-align:center;
  text-align-last:center;
  line-height:var(--vrch-type-line);
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  background-image:none;
}
.live-console-settings__select-control.live-console-settings__channel-input{
  width:56px;
  min-width:56px;
  max-width:56px;
  height:36px;
  min-height:36px;
  justify-content:center;
  gap:5px;
  padding:0 6px;
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
}
.live-console-settings__select-control.live-console-settings__channel-input .live-console-settings__option-button-value{
  flex:0 1 auto;
  text-align:center;
}
.live-console-settings__select-control.live-console-settings__channel-input .live-console-settings__option-chevron{
  margin-left:0;
}
.live-console-settings__select--hidden{
  display:none;
}

/* Live Console about modal */
.live-console__about-content{
  min-width:0;
}
.live-console__about-dialog{
  padding:18px;
  box-sizing:border-box;
}
.live-console__about-close{
  position:absolute;
  top:10px;
  right:10px;
  z-index:1;
}
.live-console__about-header{
  display:flex;
  align-items:center;
  gap:18px;
  padding-right:32px;
  margin-bottom:22px;
}
.live-console__about-content--settings .live-console__about-header{
  padding-right:0;
}
.live-console__about-heading{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
  flex:1 1 auto;
}
.live-console__about-logo-wrap{
  flex:0 0 68px;
  width:68px;
  height:68px;
  border-radius:2px;
  background:var(--vrch-stage-backdrop);
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--vrch-line-strong);
  padding:0;
  overflow:hidden;
  text-decoration:none;
  box-shadow:none;
  transition:background .08s ease, border-color .08s ease, transform .04s ease;
}
.live-console__about-logo-wrap:hover{
  background:var(--vrch-stage-backdrop);
  border-color:var(--vrch-theme-border);
  box-shadow:none;
}
.live-console__about-logo-wrap:active{
  background:var(--vrch-stage-backdrop);
  border-color:var(--vrch-theme-border);
  box-shadow:none;
  transform:translateY(1px);
}
.live-console__about-logo-wrap:focus-visible{
  outline:none;
  background-color:var(--vrch-surface-hover);
  color:var(--vrch-text);
}
.live-console__about-logo{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  transform:none;
}
.live-console__about-title{
  margin:0;
  font-size:var(--vrch-type-title-size);
  font-weight:var(--vrch-type-strong);
  font-family:var(--mono);
  letter-spacing:var(--vrch-type-title-tracking);
  text-transform:uppercase;
  color:var(--vrch-text);
}
.live-console__about-subtitle{
  margin:4px 0 0;
  font-size:var(--vrch-type-size);
  font-family:var(--vrch-font-readable);
  color:var(--vrch-text-muted);
  font-weight:var(--vrch-type-weight);
  line-height:var(--vrch-type-copy-line);
  letter-spacing:var(--vrch-type-tracking);
}
.live-console__about-cards{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.live-console__about-card{
  padding:18px;
  border-radius:var(--r);
  border:1px solid var(--vrch-surface-hover);
  background:var(--vrch-surface-2);
}
.live-console__about-card--vrch,
.live-console__about-card--web-viewer,
.live-console__about-card--contact{
  background:var(--vrch-surface-2);
  border-color:var(--vrch-surface-hover);
}
.live-console__about-card-title{
  margin:0 0 10px;
  text-transform:uppercase;
  color:var(--vrch-text);
}
.live-console__about-card-description{
  margin:0 0 14px;
  color:var(--vrch-text-secondary);
  font-family:var(--vrch-font-readable);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-copy-line);
  font-weight:var(--vrch-type-weight);
  letter-spacing:var(--vrch-type-tracking);
}
.live-console__about-card-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.live-console__about-card-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:36px;
  padding:0 14px;
  border:1px solid var(--vrch-surface-3);
  border-radius:var(--vrch-radius-button);
  background:var(--vrch-surface-3);
  color:var(--vrch-content-white);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  text-decoration:none;
  letter-spacing:var(--vrch-type-tracking);
  text-transform:uppercase;
  transition:background .08s ease, border-color .08s ease, color .08s ease, transform .04s ease;
}
.live-console__about-card-link:hover{
  background:var(--vrch-surface-hover);
  border-color:var(--vrch-line-strong);
  transform:none;
}
.live-console__about-card-link:active{
  transform:translateY(1px);
}
.live-console-settings__group.live-console__about-settings{
  gap:14px;
}
.live-console__about-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-width:0;
  padding:0 2px 12px;
  border-bottom:1px solid var(--vrch-line);
}





.ui-splitter.vertical::after{
  width:4px;
  height:4px;
  border-radius:999px;
  background:var(--vrch-text-muted);
  box-shadow:0 -6px 0 var(--vrch-text-muted), 0 6px 0 var(--vrch-text-muted);
}
.ui-splitter.horizontal::after{
  width:4px;
  height:4px;
  border-radius:999px;
  background:var(--vrch-text-muted);
  box-shadow:-6px 0 0 var(--vrch-text-muted), 6px 0 0 var(--vrch-text-muted);
}


.ui-modal__dialog.live-console-recording-preview__dialog{
  width:min(760px, calc(100% - 16px));
  max-width:760px;
}
.live-console-recording-preview__frame{
  width:100%;
  aspect-ratio:16 / 9;
  background:var(--vrch-media-black);
  border:1px solid var(--border);
  border-radius:var(--r);
  overflow:hidden;
}
@media (max-width: 520px), (orientation: portrait){
  .ui-modal__dialog.live-console-recording-preview__dialog{
    width:min(760px, calc(100% - 12px));
  }
}
.live-console-recording-preview__video{
  width:100%;
  height:100%;
  display:block;
  background:var(--vrch-media-black);
  object-fit:contain;
}
.live-console-recording-preview__status{
  margin:0;
  font-family:var(--sans);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-copy-line);
  color:var(--muted);
}
.live-console-recording-preview__status{
  min-height:15px;
}
.live-console-recording-preview__status.is-ok{
  color:var(--status-connected);
}
.live-console-recording-preview__status.is-error{
  color:var(--vrch-danger);
}

.shader-editor__panel--prompt,
.shader-editor__panel--shader{ position: relative; }





.overlayOne{
  font-weight:var(--vrch-type-weight);
  letter-spacing:var(--vrch-type-tracking);
  font-size:var(--vrch-type-size);
  color: var(--text);
  text-transform: uppercase;
}
.overlayTwo{
  min-height: 14px;
  font-size:var(--vrch-type-size);
  letter-spacing:var(--vrch-type-tracking);
  color: var(--vrch-status-accent-text);
  text-transform: uppercase;
  display: inline-block;
  width: 14ch;
  text-align: left;
  white-space: pre;
}




@keyframes overlay-progress-sweep{
  from{ transform: translateX(0); }
  to{ transform: translateX(420%); }
}

.statusStrip{
  display:none;
  padding: 8px 10px;
  border-top: 1px solid var(--vrch-danger-border);
  border-bottom: 1px solid var(--border);
  background: var(--vrch-danger-surface);
  font-family: var(--mono);
  font-size:var(--vrch-type-size);
  color: var(--vrch-danger-text);
}
.statusStrip.show{ display:block; }



.hVersion{
  display:inline-block;
  margin-left:8px;
  color: var(--vrch-text-secondary);
  letter-spacing: .7px;
  font-variant-numeric: tabular-nums;
  text-transform: none;
}

.shader-editor__focus-tabs .ui-tab{
  min-width: 0;
  padding: 0 8px;
}

.chgSlot{
  width: 6px;
  height: 14px;
  border: 1px solid var(--vrch-line-strong);
  background: var(--vrch-surface-0);
  padding: 1px;
  display:inline-flex;
  align-items:flex-end;
  justify-content:center;
  border-radius: 1px;
}
.chg{
  width: 2px;
  height: 100%;
  border-radius: 0;
  background: var(--vrch-text-dim);
  border: none;
  display:inline-block;
}
.chg.on{ background: var(--vrch-theme-action); }



.ui-text-voice-combo.shader-editor__voice-combo{
  flex:1;
  min-height:0;
  border:0;
  border-radius:0;
  background:transparent;
}
.ui-text-voice-combo.shader-editor__voice-combo:focus-within{
  border:0;
  box-shadow:none;
}
.ui-text-voice-combo.shader-editor__voice-combo .ui-text-voice-combo__body{
  flex:1;
  min-height:0;
}
.shader-editor__panel--prompt .ui-panel__footer{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
  align-items:stretch;
}
.shader-editor__panel--prompt .ui-panel__footer > button{
  min-width:0;
}
.shader-editor__panel--prompt .ui-panel__footer .ui-action.quickOnly{
  display:none;
}
body:not([data-ui-mode="quick"]) .shader-editor__panel--prompt .ui-panel__footer .ui-action.quickOnly{
  display:none;
}
body[data-ui-mode="quick"] .shader-editor__panel--prompt .ui-panel__footer .ui-action.quickOnly{
  display:flex;
}
body[data-ui-mode="quick"] .shader-editor__panel--prompt .ui-panel__footer .ui-action.advancedOnly{
  display:none;
}
.shader-editor__panel--prompt .ui-panel__footer .ui-action,
.shader-editor__panel--prompt .ui-panel__footer .ui-text-voice-combo__action.shader-editor__ptt{
  width:100%;
  height:100%;
  min-height:0;
  border:0;
  border-radius:0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:0 14px;
  text-transform:uppercase;
  white-space:nowrap;
}
.shader-editor__panel--prompt .ui-panel__footer .ui-action{
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  letter-spacing:var(--vrch-type-tracking);
  line-height:var(--vrch-type-line);
}
.shader-editor__panel--prompt .ui-panel__footer .ui-text-voice-combo__action.shader-editor__ptt{
  border-right:1px solid var(--border);
}
.shader-editor__panel--prompt .ui-panel__footer .ui-text-voice-combo__action.shader-editor__ptt:hover,
.shader-editor__panel--prompt .ui-panel__footer .ui-text-voice-combo__action.shader-editor__ptt:focus-visible{
  border-right-color:var(--vrch-line-strong);
}
.shader-editor__panel--prompt .ui-panel__footer .ui-text-voice-combo__action.shader-editor__ptt:active,
.shader-editor__panel--prompt .ui-panel__footer .ui-text-voice-combo__action.shader-editor__ptt.is-recording{
  border-right-color:var(--border);
}
.shader-editor__panel--prompt .ui-panel__footer .ui-text-voice-combo__action.shader-editor__ptt.is-busy{
  cursor:wait;
}
.shader-editor__panel--prompt .ui-panel__footer .ui-text-voice-combo__action.shader-editor__ptt[data-state="error"]{
  border-right-color:var(--border);
}



.ui-toolbar .meta{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.ui-toolbar .meta .t{ color: var(--text); font-weight:var(--vrch-type-weight); letter-spacing:var(--vrch-type-tracking); }
.ui-toolbar .meta .d{ color: var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width: 720px; }
/* Shared passive Monitor cells; split rows are selected by presentation data. */
.live-console-vibectrl-monitor{
  text-transform:uppercase;
  --control-key-width:44px;
  --control-joy-width:52px;
  display:flex;
  flex:0 0 auto;
  height:44px;
  min-height:44px;
  padding:1px 4px;
  border-top:1px solid var(--vrch-line);
  background:var(--vrch-bg);
  color:var(--vrch-text-secondary);
  font:var(--vrch-type-weight) var(--vrch-type-size)/var(--vrch-type-line) var(--mono);
  overflow:hidden;
}
.live-console-vibectrl-monitor__body{
  display:flex;
  flex:1;
  min-width:0;
  gap:4px;
  overflow-x:auto;
  overflow-y:hidden;
}
.live-console-vibectrl-monitor__group{
  display:flex;
  flex:1;
  min-width:min-content;
  gap:2px;
}
.live-console-vibectrl-monitor__group[data-group-id="buttons"]{
  flex:0 0 auto;
  border-left:1px solid var(--vrch-line-strong);
  padding-left:4px;
}
.live-console-vibectrl-monitor__cell{
  position:relative;
  flex:1 1 0;
  min-width:0;
  height:38px;
  display:flex;
  flex-direction:column;
  gap:0;
  padding:0;
  background:var(--vrch-surface-pressed);
  border:0;
  border-left:1px solid var(--vrch-line);
  border-radius:0;
  color:var(--vrch-text);
  font-family:var(--mono);
  text-align:center;
  appearance:none;
  overflow:hidden;
  user-select:none;
  touch-action:pan-x;
  box-sizing:border-box;
}
.live-console-vibectrl-monitor__body::-webkit-scrollbar{
  height:3px;
}
.live-console-vibectrl-monitor__body::-webkit-scrollbar-thumb{
  background:var(--vrch-line-strong);
}
.live-console-vibectrl-monitor__cell--knob{
  min-width:68px;
}
.live-console-vibectrl-monitor__cell:first-child{
  border-left:0;
}
.live-console-vibectrl-monitor__cell--button{
  flex:0 0 var(--control-key-width);
  width:var(--control-key-width);
}
.live-console-vibectrl-monitor__cell--joystick{
  flex:0 0 var(--control-joy-width);
  width:var(--control-joy-width);
}
.live-console-vibectrl-monitor__cell.is-active{
  box-shadow:inset 0 0 0 1px var(--vrch-theme-border);
  background:var(--vrch-theme-selection);
}
.live-console-vibectrl-monitor__cell:focus-visible,.live-console-vibectrl-monitor__joystick-map:focus-visible{
  outline:none;
  background-color:var(--vrch-surface-hover);
  color:var(--vrch-text);
}
.live-console-vibectrl-monitor__cell-header{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  height:11px;
  flex:0 0 11px;
  padding:1px 3px 0;
  gap:5px;
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
}
.live-console-vibectrl-monitor__index{
  flex:0 0 auto;
  color:var(--vrch-text);
  font-weight:var(--vrch-type-weight);
}
.live-console-vibectrl-monitor__label{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  color:var(--vrch-text);
}
.live-console-vibectrl-monitor__cell-header:has(.live-console-vibectrl-monitor__label) .live-console-vibectrl-monitor__index{
  display:none;
}
.live-console-vibectrl-monitor__cell-value-row{
  position:relative;
  display:flex;
  flex:1;
  align-items:center;
  justify-content:center;
  min-width:0;
  padding:0 4px 2px;
  gap:4px;
}
.live-console-vibectrl-monitor__value{
  display:block;
  min-width:0;
  color:var(--vrch-text);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  line-height:var(--vrch-type-line);
  font-variant-numeric:tabular-nums;
}
.live-console-vibectrl-monitor__meter{
  position:absolute;
  left:calc(50% + 21px);
  top:5px;
  width:4px;
  height:15px;
  display:flex;
  flex-direction:column-reverse;
  gap:1px;
}
.live-console-vibectrl-monitor__meter-segment{
  flex:1;
  min-width:0;
  min-height:0;
  background:var(--vrch-line-strong);
}
.live-console-vibectrl-monitor__meter-segment.is-active{
  background:var(--vrch-text-secondary);
}
.live-console-vibectrl-monitor__cell.is-active .live-console-vibectrl-monitor__meter-segment.is-active{
  background:var(--vrch-theme-action);
}
.live-console-vibectrl-monitor__button-indicator{
  display:block;
  width:14px;
  height:14px;
  flex:0 0 14px;
  border:1px solid var(--vrch-line-strong);
  background:var(--vrch-confirm-surface);
}
.live-console-vibectrl-monitor__cell--knob .live-console-vibectrl-monitor__button-indicator{
  position:absolute;
  left:50%;
  bottom:3px;
  transform:translateX(-50%);
  width:22px;
  height:2px;
  border:0;
  background:var(--vrch-line-strong);
}
.live-console-vibectrl-monitor__cell.is-pressed .live-console-vibectrl-monitor__button-indicator{
  background:var(--vrch-theme-action);
  border-color:var(--vrch-deep-pink);
}
.live-console-vibectrl-monitor__cell--button .live-console-vibectrl-monitor__cell-value-row{
  padding-bottom:2px;
}
.live-console-vibectrl-monitor__button-label{
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
  font-weight:var(--vrch-type-weight);
  white-space:nowrap;
}
.live-console-vibectrl-monitor__cell--button.is-pressed .live-console-vibectrl-monitor__button-label{
  color:var(--vrch-accent-text);
}
.live-console-vibectrl-monitor__joystick-state{
  display:flex;
  flex:1;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding-bottom:2px;
}
.live-console-vibectrl-monitor__joystick-value{
  display:contents;
}
.live-console-vibectrl-monitor__joystick-map{
  position:relative;
  width:22px;
  height:22px;
  flex:0 0 22px;
  border:1px solid var(--vrch-line-strong);
  touch-action:pan-x;
  box-sizing:border-box;
}
.live-console-vibectrl-monitor__joystick-map:before,.live-console-vibectrl-monitor__joystick-map:after{
  content:'';
  position:absolute;
  background:var(--vrch-line);
}
.live-console-vibectrl-monitor__joystick-map:before{
  left:50%;
  top:0;
  bottom:0;
  width:1px;
}
.live-console-vibectrl-monitor__joystick-map:after{
  top:50%;
  left:0;
  right:0;
  height:1px;
}
.live-console-vibectrl-monitor__joystick-dot{
  position:absolute;
  z-index:1;
  width:6px;
  height:6px;
  border-radius:50%;
  border:1px solid var(--vrch-text-secondary);
  background:var(--vrch-text-dim);
  transform:translate(-50%,-50%);
}
.live-console-vibectrl-monitor__cell.is-pressed .live-console-vibectrl-monitor__joystick-dot{
  border-color:var(--vrch-deep-pink);
  background:var(--vrch-theme-action);
}
.live-console-vibectrl-monitor__joystick-axes{
  display:none;
  font-size:var(--vrch-type-size);
  text-align:left;
  line-height:var(--vrch-type-line);
  white-space:pre;
}
.live-console-vibectrl-monitor[data-density="wide"]{
  --control-key-width:160px;
  --control-joy-width:192px;
  height:48px;
  min-height:48px;
  padding:0;
}
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__body,
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__group{
  gap:0;
}
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__group[data-group-id="buttons"]{
  padding-left:0;
  border-left:0;
}
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__cell{
  height:47px;
  border-right:1px solid var(--vrch-line);
}
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__index{
  display:none;
}
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__cell--knob,
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__cell--joystick{
  min-width:140px;
  display:grid;
  grid-template-columns:60px minmax(0,1fr);
  grid-template-rows:29px 18px;
}
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__cell-header{
  grid-column:2;
  grid-row:1;
  height:18px;
  align-self:end;
  justify-content:flex-start;
  margin-bottom:2px;
  padding:0 3px;
}
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__label{
  font-size:12px;
  line-height:18px;
  font-weight:400;
  color:var(--vrch-text-secondary);
}
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__cell--knob .live-console-vibectrl-monitor__cell-value-row,
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__joystick-state{
  display:contents;
}
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__value{
  grid-column:1;
  grid-row:1 / 3;
  position:relative;
  display:flex;
  justify-content:center;
  align-items:center;
  font-size:24px;
  line-height:1;
  border-right:1px solid var(--vrch-line);
}

.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__meter{
  position:static;
  grid-column:2;
  grid-row:2;
  align-self:start;
  flex-direction:row;
  width:auto;
  height:5px;
  margin:4px 3px 0;
  gap:2px;
}
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__joystick-value{
  grid-column:1;
  grid-row:1 / 3;
  display:flex;
  align-items:center;
  justify-content:center;
  width:60px;
  height:47px;
  border-right:1px solid var(--vrch-line);
}
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__joystick-map{
  flex:0 0 36px;
  width:36px;
  height:36px;
}
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__joystick-map::before{
  left:calc(50% - .5px);
}
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__joystick-map::after{
  top:calc(50% - .5px);
}
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__joystick-dot{
  width:4px;
  height:4px;
  border:0;
  border-radius:0;
  background:var(--vrch-text-secondary);
}
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__joystick-state .live-console-vibectrl-monitor__value{
  display:none;
}
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__joystick-state .live-console-vibectrl-monitor__button-indicator{
  position:static;
  grid-column:2;
  grid-row:2;
  align-self:start;
  width:auto;
  height:5px;
  margin:4px 3px 0;
  border:0;
  background:var(--vrch-line);
}
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__cell--joystick.is-active{
  background:var(--vrch-bg);
  box-shadow:none;
}
.live-console-vibectrl-monitor[data-density="wide"] .is-pressed .live-console-vibectrl-monitor__button-indicator,
.live-console-vibectrl-monitor .is-moved .live-console-vibectrl-monitor__joystick-dot,
.live-console-vibectrl-monitor .is-pressed .live-console-vibectrl-monitor__joystick-dot{
  background:var(--vrch-theme-action);
}
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__cell--layer-trigger{
  display:grid;
  grid-template-columns:60px minmax(0,1fr);
  grid-template-rows:29px 18px;
}
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__cell--layer-trigger .live-console-vibectrl-monitor__cell-header{
  padding:0 3px;
}
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__cell--layer-trigger .live-console-vibectrl-monitor__button-state{
  grid-column:1;
  grid-row:1 / 3;
  border-right:1px solid var(--vrch-line);
  padding:0;
}
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__cell--layer-trigger .live-console-vibectrl-monitor__meter{
  gap:6px;
}
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__cell--layer-trigger .live-console-vibectrl-monitor__meter-segment.is-active{
  background:var(--vrch-deep-pink);
}
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__button-label{
  font-size:24px;
}
.live-console-vibectrl-monitor__cell[data-mode="pane"] .live-console-vibectrl-monitor__meter{
  visibility:hidden;
}
.live-console-vibectrl-monitor.is-hidden{
  display:none;
}
.live-console-vibectrl-monitor:not([data-density="wide"]) .live-console-vibectrl-monitor__meter-segment:nth-child(n+6){
  display:none;
}
.live-console-vibectrl-monitor__value.is-empty{
  color:var(--vrch-text-dim);
  font-size:var(--vrch-type-size);
}

/* Hardware Monitor reference: two 24px readout rows around the Console content. */
.live-console-vibectrl-monitor[data-layout="split"]{
  position:relative;
  height:24px;
  min-height:24px;
  padding:0;
  border:0;
}
.live-console-vibectrl-monitor[data-layout="split"]::after{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:1px;
  background:var(--vrch-line);
  pointer-events:none;
}
.live-console-vibectrl-monitor[data-layout="split"][data-position="top"]::after{
  top:auto;
  bottom:0;
}
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__body,
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__group{
  flex:1 1 0;
  min-width:0;
  gap:0;
  padding:0;
  border:0;
  overflow:hidden;
}
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__cell{
  flex:1 1 0;
  width:auto;
  min-width:0;
  height:24px;
  padding:0 6px;
  border:0;
  background:transparent;
  box-shadow:none;
  color:var(--vrch-text-secondary);
}
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__cell:not(:last-child)::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  right:0;
  width:1px;
  background:var(--vrch-line);
  pointer-events:none;
}
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__cell-header,
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__cell-value-row{
  display:contents;
}
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__index{
  display:none;
}
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__label,
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__value{
  font-size:12px;
  font-weight:400;
  line-height:14px;
  color:var(--vrch-text-secondary);
  white-space:nowrap;
}
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__cell--knob{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-rows:3px 21px;
  column-gap:6px;
  text-align:left;
}
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__cell--knob .live-console-vibectrl-monitor__label,
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__value{
  grid-row:2;
  align-self:start;
  margin-top:3px;
}
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__value{
  grid-column:2;
}
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__meter{
  position:static;
  grid-column:1 / -1;
  grid-row:1;
  flex-direction:row;
  width:100%;
  height:3px;
  margin:0;
  gap:2px;
  visibility:visible;
}
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__meter-segment:nth-child(n+6){
  display:block;
}
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__meter-segment{
  background:var(--vrch-line);
}
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__meter-segment.is-active{
  background:var(--vrch-text-muted);
}
.live-console-vibectrl-monitor[data-layout="split"] .is-pressed .live-console-vibectrl-monitor__meter-segment{
  background:var(--vrch-text-secondary);
}
.live-console-vibectrl-monitor[data-layout="split"] .is-pressed .live-console-vibectrl-monitor__meter-segment.is-active,
.live-console-vibectrl-monitor[data-layout="split"] .is-active .live-console-vibectrl-monitor__meter-segment.is-active{
  background:var(--vrch-deep-pink);
}
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__cell--button{
  flex-direction:row;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:4px 6px 3px;
}
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__button-label{
  flex:0 0 auto;
  font-size:10px;
  font-weight:400;
  line-height:14px;
  color:var(--vrch-text-muted);
}
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__button-label:empty{
  display:none;
}
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__button-indicator{
  position:absolute;
  left:6px;
  right:6px;
  bottom:0;
  width:auto;
  height:3px;
  border:0;
  background:var(--vrch-line);
}
.live-console-vibectrl-monitor[data-layout="split"] .is-pressed .live-console-vibectrl-monitor__button-indicator{
  background:var(--vrch-deep-pink);
}
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__cell--joystick{
  display:grid;
  grid-template-columns:16px minmax(0,1fr) auto;
  grid-template-rows:3px 21px;
  column-gap:4px;
  text-align:left;
}
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__cell--joystick .live-console-vibectrl-monitor__label{
  grid-column:2;
  grid-row:2;
  align-self:start;
  margin-top:3px;
}
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__cell--joystick .live-console-vibectrl-monitor__value{
  grid-column:3;
}
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__joystick-map{
  grid-column:1;
  grid-row:2;
  align-self:center;
  width:16px;
  height:16px;
}
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__joystick-dot{
  width:3px;
  height:3px;
  border:0;
  border-radius:0;
  background:var(--vrch-text-secondary);
}
.live-console-vibectrl-monitor[data-layout="split"] .is-moved .live-console-vibectrl-monitor__joystick-dot,
.live-console-vibectrl-monitor[data-layout="split"] .is-pressed .live-console-vibectrl-monitor__joystick-dot{
  background:var(--vrch-deep-pink);
}
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__cell--joystick .live-console-vibectrl-monitor__button-indicator{
  top:0;
  bottom:auto;
}


.live-console-vibectrl-monitor__joystick-map--preview{
  width:72px;
  height:72px;
  flex:0 0 72px;
}

.live-console-vibectrl-monitor__joystick-map--preview .live-console-vibectrl-monitor__joystick-dot{
  width:10px;
  height:10px;
}

.live-console-vibectrl-monitor__empty{
  display:flex;
  align-items:center;
  min-height:34px;
  padding:0 10px;
  border:1px solid var(--vrch-line);
  background:var(--vrch-surface-pressed);
  color:var(--vrch-text-muted);
  white-space:nowrap;
}

.live-console-vibectrl-monitor__repair{
  flex:1 1 auto;
  min-width:0;
  min-height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:2px 8px;
  border:1px solid var(--vrch-warning-border);
  background:var(--vrch-warning-surface);
  box-sizing:border-box;
}

.live-console-vibectrl-monitor__repair-label{
  min-width:0;
  color:var(--vrch-warning-text);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  letter-spacing:var(--vrch-type-tracking);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.live-console-vibectrl-monitor__repair[data-state="repairing"]{
  border-color:var(--vrch-theme-border);
  background:var(--vrch-theme-selection);
}

.live-console-vibectrl-monitor__repair-action{
  flex:0 0 auto;
  min-width:72px;
}
.live-console__statusbar{
  --status-bar-inline-size:100vw;
  --status-bar-inline-start:0px;
  flex:0 0 auto;
  position:relative;
  z-index:calc(var(--vrch-layer-modal) - 1);
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  min-height:calc(var(--live-console-dock-control-block-size) + 13px);
  padding:6px var(--live-console-statusbar-inline-inset);
  border-top:1px solid var(--vrch-surface-3);
  border-bottom:0;
  background:var(--vrch-surface-0);
  color:var(--vrch-text-secondary);
  font-size:var(--vrch-type-size);
  letter-spacing:var(--vrch-type-tracking);
  overflow:visible;
  box-sizing:border-box;
}
.live-console__statusbar.is-hidden{
  display:none;
}
.live-console__status-block{
  display:flex;
  align-items:center;
  min-width:0;
}
.live-console__status-actions{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:8px;
}
.live-console__status-actions button{
  flex:0 0 var(--live-console-dock-control-inline-size);
  width:var(--live-console-dock-control-inline-size);
  min-width:var(--live-console-dock-control-inline-size);
  max-width:var(--live-console-dock-control-inline-size);
  height:var(--live-console-dock-control-block-size);
  min-height:var(--live-console-dock-control-block-size);
  max-height:var(--live-console-dock-control-block-size);
}
.live-console__status-workflow-toggle,
.live-console__status-server-toggle{
  flex:0 0 auto;
  width:var(--live-console-dock-control-inline-size);
  min-width:var(--live-console-dock-control-inline-size);
  max-width:var(--live-console-dock-control-inline-size);
  height:var(--live-console-dock-control-block-size);
  min-height:var(--live-console-dock-control-block-size);
  max-height:var(--live-console-dock-control-block-size);
}
.live-console__status-actions button.is-running{
  color:var(--vrch-selection-foreground);
  border-color:var(--vrch-theme-border);
  background:var(--vrch-theme-selection);
}
.live-console__status-actions button.is-paused{
  color:var(--vrch-warning-text);
  border-color:var(--vrch-warning-border);
  background:var(--vrch-warning-surface);
}
.live-console__status-actions button:disabled{
  opacity:0.5;
  cursor:default;
}
.live-console__status-marquee{
  flex:1 1 auto;
  min-width:140px;
  overflow:hidden;
  white-space:nowrap;
  cursor:grab;
  scrollbar-width:none;
  touch-action:pan-x;
  padding-right:6px;
  text-overflow:ellipsis;
}
.live-console__status-marquee::-webkit-scrollbar{
  display:none;
}
.live-console__status-marquee.is-dragging{
  cursor:grabbing;
}
.live-console__status-text-inner{
  display:inline-block;
}
.live-console__runner-state{
  flex:0 0 auto;
  min-width:86px;
  height:var(--live-console-dock-control-block-size);
  min-height:var(--live-console-dock-control-block-size);
  justify-content:center;
}
.live-console__status-workflow{
  flex:0 1 330px;
  font-size:var(--vrch-type-size);
  color:var(--vrch-text-secondary);
  cursor:pointer;
  position:relative;
  gap:6px;
  overflow:visible;
}
.live-console__status-workflow .live-console__status-workflow-value{
  flex:1 1 auto;
  min-width:0;
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.live-console__status-workflow:focus-visible{
  outline:none;
  border-radius:2px;
  background-color:var(--vrch-surface-hover);
  color:var(--vrch-text);
}
.live-console__status-server-trigger{
  flex:0 0 auto;
  font-size:var(--vrch-type-size);
  color:var(--vrch-text-secondary);
  cursor:pointer;
  position:relative;
  gap:6px;
  overflow:visible;
}
.live-console__status-server-label{
  display:block;
  max-width:180px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  color:var(--vrch-text-secondary);
}
.live-console__status-server-trigger:focus-visible{
  outline:none;
  border-radius:2px;
  background-color:var(--vrch-surface-hover);
  color:var(--vrch-text);
}
.live-console__status-actions button:hover:not(:disabled){
  border-color:var(--vrch-line-strong);
  color:var(--vrch-text);
  background:var(--surface-3);
}
.live-console__status-actions button:active:not(:disabled){
  transform:translateY(1px);
}
.live-console__status-actions button:focus-visible{
  border-color:var(--vrch-theme-border);
  box-shadow:none;
}
.live-console-server-popover__section{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.live-console-server-popover__item{
  min-height:50px;
}
.live-console-server-popover__item-card{
  width:100%;
}
.live-console-server-popover__item-card:disabled{
  cursor:default;
}
.live-console-server-popover__item.is-current .live-console-settings__preset-item-body{
  gap:3px;
}
.live-console-server-popover__metrics{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:2px 3px;
  min-width:0;
  margin-top:1px;
}
.live-console-server-popover__metric{
  flex:0 1 auto;
  min-height:15px;
  font-size:var(--vrch-type-size);
  color:var(--vrch-text-muted);
}
.live-console-server-popover__metric.is-muted{
  color:var(--vrch-text-dim);
}
.live-console-server-current-badge{
  flex:0 0 auto;
}
.live-console-settings__badge[hidden]{
  display:none;
}
.live-console-server-popover__empty{
  padding:8px 0 2px;
}

/* Live Console page layout */
.live-console-shell{
  height:calc(var(--vrch-safe-vh, 1vh) * 100);
  min-height:calc(var(--vrch-safe-vh, 1vh) * 100);
  display:flex;
  flex-direction:column;
  position:relative;
  box-sizing:border-box;
  overflow:hidden;
}
.live-console-pane-switcher{
  position:absolute;
  inset:0;
  z-index:130;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:8px;
  box-sizing:border-box;
}
.live-console-pane-switcher[hidden]{
  display:none;
}
.live-console-pane-switcher__backdrop{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:color-mix(in srgb, var(--vrch-content-black) 78%, transparent);
  cursor:default;
}
.live-console-pane-switcher__surface{
  --pane-switcher-inset:8px;
  --pane-switcher-surface-limit:720px;
  --pane-switcher-row-max:180px;
  position:relative;
  width:min(960px, 100%);
  height:min(720px, 100%);
  min-width:0;
  min-height:0;
  display:grid;
  grid-template-rows:44px minmax(0, 1fr) auto;
  gap:8px;
  padding:0 0 var(--pane-switcher-inset);
  overflow:hidden;
  border:1px solid var(--border2);
  border-radius:var(--r);
  background:var(--surface-1);
  color:var(--text);
  box-sizing:border-box;
}
.live-console-pane-switcher__track{
  --pane-switcher-row-min:104px;
  --pane-switcher-row-height:var(--pane-switcher-row-min);
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  grid-template-rows:repeat(1, var(--pane-switcher-row-height));
  grid-auto-flow:row;
  grid-auto-rows:var(--pane-switcher-row-height);
  align-self:center;
  gap:8px;
  width:auto;
  margin-inline:var(--pane-switcher-inset);
  height:100%;
  min-width:0;
  min-height:0;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-width:none;
  touch-action:pan-y;
}
.live-console-pane-switcher__track[data-grid-rows="2"]{
  grid-template-rows:repeat(2, var(--pane-switcher-row-height));
}
.live-console-pane-switcher__track[data-grid-rows="3"]{
  grid-template-rows:repeat(3, var(--pane-switcher-row-height));
}
.live-console-pane-switcher__track[data-grid-rows="4"]{
  grid-template-rows:repeat(4, var(--pane-switcher-row-height));
}
.live-console-pane-switcher__track::-webkit-scrollbar{
  display:none;
}
.live-console-pane-switcher__track.is-empty{
  width:100%;
  overflow:hidden;
}
.live-console-pane-switcher__empty{
  grid-column:1 / -1;
  grid-row:1 / -1;
  min-width:0;
  min-height:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:var(--surface-2);
  color:var(--muted);
  box-sizing:border-box;
  font-family:var(--mono);
  text-align:center;
  text-transform:uppercase;
}
.live-console-pane-switcher__empty > i{
  font-size:22px;
  line-height:1;
}
.live-console-pane-switcher__empty-label{
  color:var(--text);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
}
.live-console-pane-switcher__empty-meta{
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
}
.live-console-pane-switcher__item{
  position:relative;
  width:auto;
  height:auto;
  min-width:0;
  min-height:0;
  display:grid;
  grid-template-rows:minmax(30px, 0.8fr) minmax(0, 1fr) 18px;
  gap:6px;
  align-items:center;
  padding:8px;
  border:1px solid var(--border2);
  border-radius:var(--r2);
  background:var(--surface-2);
  color:var(--muted);
  font-family:var(--mono);
  cursor:pointer;
  box-sizing:border-box;
}
.live-console-pane-switcher__item:hover{
  border-color:var(--vrch-line-strong);
  background:var(--surface-3);
  color:var(--text);
}
.live-console-pane-switcher__item.is-selected{
  border-color:var(--vrch-theme-border);
  background:var(--vrch-theme-selection);
  color:var(--vrch-selection-foreground);
}
.live-console-pane-switcher__item.is-hidden-pane:not(.is-selected){
  opacity:0.58;
}
.live-console-pane-switcher__item:focus{
  outline:none;
}
.live-console-pane-switcher__item:focus-visible{
  border-color:var(--vrch-deep-pink);
}
.live-console-pane-switcher__icon{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  justify-self:center;
  width:36px;
  height:36px;
  font-size:26px;
  line-height:1;
}
.live-console-pane-switcher__active-dot{
  position:absolute;
  top:8px;
  right:8px;
  width:7px;
  height:7px;
  border-radius:50%;
  background:transparent;
}
.live-console-pane-switcher__item.is-active .live-console-pane-switcher__active-dot{
  background:var(--vrch-theme-action);
}
.live-console-pane-switcher__label{
  align-self:start;
  display:-webkit-box;
  min-width:0;
  max-width:100%;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  line-height:var(--vrch-type-line);
  text-align:center;
  text-transform:uppercase;
  letter-spacing:var(--vrch-type-tracking);
  overflow-wrap:anywhere;
}
.live-console-pane-switcher__item-meta{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-width:0;
  color:var(--vrch-text-muted);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  line-height:var(--vrch-type-line);
  white-space:nowrap;
}
.live-console-pane-switcher__item-meta > span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}
.live-console-pane-switcher__item.is-active .live-console-pane-switcher__item-meta > span:last-child,
.live-console-pane-switcher__item.is-fullscreen .live-console-pane-switcher__item-meta > span:last-child{
  color:var(--vrch-status-accent-text);
}
@media (max-width:520px), (max-height:520px){
  .live-console-pane-switcher__track{--pane-switcher-row-min:88px}
  .live-console-pane-switcher__surface{--pane-switcher-inset:6px;--pane-switcher-surface-limit:none;--pane-switcher-row-max:116px;width:100%;height:100%}
  .live-console-pane-switcher__item{grid-template-rows:minmax(22px,.75fr) minmax(0,1fr) 13px;gap:2px;padding:5px 4px}
  .live-console-pane-switcher__icon{width:24px;height:24px;font-size:19px}
  .live-console-pane-switcher__label{align-self:center}
}
/* Composition follows the approved Console Menu shortcut strip. */
.live-console-pane-switcher__footer{display:flex;flex-direction:column;gap:8px;padding-top:8px;margin-inline:var(--pane-switcher-inset);border-top:1px solid var(--border);max-height:var(--pane-switcher-footer-limit,none);min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}
.live-console-pane-switcher__footer::-webkit-scrollbar{display:none}
.live-console-pane-switcher__footer > *{flex-shrink:0}
.live-console-pane-switcher__tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:4px;width:100%;align-self:center;min-width:0}
.live-console-pane-switcher__bar-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;max-width:480px;align-self:center;min-width:0}
.live-console-pane-switcher__bar-controls button{min-width:0;gap:8px;padding-inline:8px}
.live-console-pane-switcher__bar-state{width:3ch;text-align:left;flex:0 0 3ch}

.live-console-pane-switcher__item{position:relative}
.live-console-pane-switcher__item>.live-console-pane-switcher__active-dot{top:8px;right:8px}

@media(min-width:521px){
  .live-console-pane-switcher__surface{width:min(864px,100%)}
  .live-console-pane-switcher__item{grid-template-rows:36px minmax(28px,auto) 14px;align-content:center;gap:8px}
  .live-console-pane-switcher__item>.live-console-pane-switcher__label{align-self:center}
}

@media(max-width:520px){
  .live-console-pane-switcher__item{grid-template-rows:24px auto 13px;align-content:center;gap:4px}
  .live-console-pane-switcher__item>.live-console-pane-switcher__label{display:block;height:2lh;align-self:start}
  .live-console-pane-switcher__item>.live-console-pane-switcher__label>span{display:block;white-space:nowrap}
}

.live-console-pane-switcher__tile{position:relative;display:grid;min-width:0;min-height:0}
.live-console-pane-switcher__surface{max-height:min(720px,100%)}
@media(max-width:520px),(max-height:520px){
  .live-console-pane-switcher__surface{max-height:100%}
}

.live-console-pane-switcher__message{padding:4px 8px;color:var(--text);font-size:var(--vrch-type-size)}
.live-console-pane-switcher__message[hidden],.live-console-pane-switcher__tools[hidden],.live-console-pane-switcher__bar-controls[hidden]{display:none}
.live-console__main{
  flex:1 1 auto;
  min-height:0;
  display:flex;
  position:relative;
  box-sizing:border-box;
  overflow:hidden;
}
.live-console__row--top{
  display:flex;
  min-height:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-x:contain;
}
.live-console__row--top::-webkit-scrollbar{
  height:8px;
}
.live-console__row--top::-webkit-scrollbar-thumb{
  background:var(--vrch-line-strong);
  border-radius:4px;
}
.live-console__row--top::-webkit-scrollbar-track{
  background:var(--vrch-surface-2);
}
.live-console__row--top{
  scrollbar-color:var(--vrch-line-strong) var(--vrch-surface-2);
}
.live-console__rows{
  flex:1 1 auto;
  min-width:0;
  min-height:0;
  display:flex;
  flex-direction:column;
  position:relative;
  box-sizing:border-box;
  overflow:hidden;
}
.pane{
  position:relative;
  overflow:hidden;
  background:var(--vrch-panel);
  border:0;
  box-sizing:border-box;
}
.pane::after{
  content:'';
  position:absolute;
  inset:0;
  border:1px solid var(--vrch-line-strong);
  pointer-events:none;
  z-index:2;
}
.pane.active{
  box-shadow:none;
}
.pane.active::after{
  content:'';
  position:absolute;
  inset:0;
  border:1px solid var(--vrch-text-dim);
  pointer-events:none;
  z-index:2;
}
.pane > iframe{
  width:100%;
  height:100%;
  border:0;
  display:block;
  background:var(--vrch-content-black);
  position:relative;
  z-index:1;
}
.live-console__pane-identity{
  position:absolute;
  top:0;
  left:0;
  z-index:3;
  pointer-events:none;
  max-width:calc(100% - 8px);
  border-color:var(--vrch-line-strong);
}
.pane.active .live-console__pane-identity{
  background:var(--vrch-surface-3);
  border-color:var(--vrch-text-dim);
  color:var(--vrch-text-secondary);
}
.live-console__pane-footer{
  --live-console-pane-footer-surface:var(--vrch-surface-0);
  position:absolute;
  right:0;
  bottom:0;
  z-index:3;
  pointer-events:auto;
  background:var(--live-console-pane-footer-surface);
  color:var(--vrch-text-secondary);
}
.pane:not(.active) .live-console__pane-footer{
  border-color:var(--vrch-line-strong);
  border-right-color:var(--vrch-surface-0);
  border-bottom-color:var(--vrch-surface-0);
}
.pane.active .live-console__pane-footer{
  border-color:var(--vrch-text-dim);
  border-right-color:var(--vrch-surface-0);
  border-bottom-color:var(--vrch-surface-0);
}
.live-console__pane-condensed-ghost{
  border:0;
  pointer-events:none;
  background:transparent;
  min-width:0;
}
/* Compact appearance is owned by the shared segmented toolbar. */
.live-console__statusbar.is-tight .ui-toolbar__segment.live-console__status-workflow,
.live-console__statusbar.is-tight .ui-toolbar__segment.live-console__status-server-trigger{
  position:static;
}
.live-console-condensed .live-console__rows{
  flex:1 1 auto;
  display:flex;
  flex-direction:row;
  overflow-x:auto;
  overflow-y:hidden;
  padding:0;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-x:contain;
}
.live-console-condensed .live-console__row--top,
.live-console-condensed .live-console__row--bottom{
  flex:0 0 auto;
  width:max-content;
  min-width:max-content;
  display:flex;
  overflow:visible;
  padding:0;
}
.live-console-condensed .live-console__row--top .pane,
.live-console-condensed .live-console__row--bottom .pane{
  flex:0 0 clamp(280px, 42vw, 520px);
  min-width:260px;
}
@media (max-width:520px){
  body.live-console-page{
    /* Layout JS reads only this sentinel; CSS remains the breakpoint owner. */
    --live-console-pane-fit-row:1;
    --live-console-pane-width-cap:calc(100vw - var(--dock-width, 56px));
  }
  .live-console-shell .pane:not(.maximized):not(.is-background-maximized){
    max-width:var(--live-console-pane-width-cap);
  }
  .live-console-condensed .live-console__row--top .pane:not(.maximized):not(.is-background-maximized),
  .live-console-condensed .live-console__row--bottom .pane:not(.maximized):not(.is-background-maximized){
    flex:0 0 var(--live-console-pane-width-cap);
    width:var(--live-console-pane-width-cap);
    min-width:var(--live-console-pane-width-cap);
    max-width:var(--live-console-pane-width-cap);
  }
}
.live-console-condensed .live-console__splitter.vertical{
  flex:0 0 12px;
  width:12px;
  min-width:12px;
  max-width:12px;
}
.live-console-condensed .live-console__splitter{
  display:none;
}
.live-console-condensed .live-console__rows::-webkit-scrollbar{
  height:8px;
}
.live-console-condensed .live-console__rows::-webkit-scrollbar-thumb{
  background:var(--vrch-line-strong);
  border-radius:4px;
}
.live-console-condensed .live-console__rows::-webkit-scrollbar-track{
  background:var(--vrch-surface-2);
}
.live-console-condensed .live-console__rows{
  scrollbar-color:var(--vrch-line-strong) var(--vrch-surface-2);
}
.live-console__row--top.is-pane-pinned,
.live-console__row--bottom.is-pane-pinned{
  gap:0;
}
.live-console__row--top.is-pane-pinned .pane.is-pinned-pane,
.live-console__row--bottom.is-pane-pinned .pane.is-pinned-pane{
  position:fixed;
  left:var(--live-console-pinned-pane-left, 0px);
  top:var(--live-console-pinned-pane-top, 0px);
  width:var(--live-console-pinned-pane-width, auto);
  height:var(--live-console-pinned-pane-height, auto);
  z-index:7;
}
.live-console__row--top.is-pane-pinned .live-console__splitter.is-pinned-pane-splitter,
.live-console__row--bottom.is-pane-pinned .live-console__splitter.is-pinned-pane-splitter{
  position:fixed;
  left:calc(var(--live-console-pinned-pane-left, 0px) + var(--live-console-pinned-pane-width, 0px));
  top:var(--live-console-pinned-pane-top, 0px);
  width:var(--live-console-pinned-pane-splitter-width, 6px);
  height:var(--live-console-pinned-pane-height, auto);
  z-index:8;
}
.live-console__row--top.is-pane-pinned .live-console__pinned-pane-spacer,
.live-console__row--bottom.is-pane-pinned .live-console__pinned-pane-spacer{
  flex:0 0 var(--live-console-pinned-pane-spacer-width, 0px);
  width:var(--live-console-pinned-pane-spacer-width, 0px);
  min-width:var(--live-console-pinned-pane-spacer-width, 0px);
  height:1px;
  pointer-events:none;
}
.live-console-condensed .live-console__rows.is-pane-pinned{
  margin-left:0;
}
.live-console-maximized .live-console__dock{
  visibility:hidden;
  pointer-events:none;
}
.live-console-maximized .live-console__rows{
  overflow:hidden;
}
.live-console-maximized .live-console__row--top,
.live-console-maximized .live-console__row--bottom{
  overflow:hidden;
}
.live-console-shell.live-console-maximized.live-console-maximize-cover-bars .live-console__rows{
  flex:0 0 100%;
  height:100%;
  min-height:0;
  max-height:100%;
  overflow:hidden;
  z-index:1;
}
.live-console-shell.live-console-maximized.live-console-maximize-cover-bars .live-console__main{
  flex:0 0 100%;
  height:100%;
  min-height:0;
  max-height:100%;
  overflow:hidden;
}
.live-console-shell.live-console-maximized.live-console-maximize-cover-bars .live-console__dock{
  display:none;
}
.live-console-shell.live-console-maximized.live-console-maximize-cover-bars .live-console__statusbar,
.live-console-shell.live-console-maximized.live-console-maximize-cover-bars .live-console-vibectrl-monitor{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:0;
  visibility:hidden;
  pointer-events:none;
  opacity:0;
}
.live-console-shell.live-console-maximized.live-console-maximize-cover-bars .pane.maximized{
  z-index:120;
}
.live-console-maximized .pane.maximized .live-console__pane-menubar .live-console__pane-pin-btn{
  display:none;
}
.live-console__row--top.is-pane-pinned .pane.is-pinned-pane .live-console__pane-menubar,
.live-console__row--bottom.is-pane-pinned .pane.is-pinned-pane .live-console__pane-menubar,
.live-console__row--top.is-pane-pinned .pane.is-pinned-pane .live-console__pane-footer,
.live-console__row--bottom.is-pane-pinned .pane.is-pinned-pane .live-console__pane-footer{
  display:none;
}
.live-console__pinned-overlay-chrome{
  position:fixed;
  display:none;
  align-items:center;
  gap:6px;
  height:var(--sz-field);
  width:max-content;
  max-width:100vw;
  flex:0 0 auto;
  padding:0 2px;
  box-sizing:border-box;
  background:transparent;
  border:none;
  z-index:12;
}
.live-console__pinned-overlay-chrome.is-visible{
  display:flex;
}
.live-console__pinned-overlay-chrome .live-console__pinned-overlay-btn{
  width:var(--sz-field);
  height:var(--sz-field);
  min-width:var(--sz-field);
  min-height:var(--sz-field);
  padding:0;
}
.live-console__pinned-overlay-chrome .live-console__pinned-overlay-btn:active{
  transform:translateY(1px);
}
.live-console__pinned-overlay-chrome .live-console__pinned-overlay-unpin{
  color:var(--vrch-accent-text);
}
.live-console__dock{
  --dock-inline-inset:8px;
  position:relative;
  flex:0 0 var(--dock-width, 184px);
  min-width:var(--dock-width, 184px);
  max-width:var(--dock-width, 184px);
  width:var(--dock-width, 184px);
  background:var(--vrch-surface-0);
  border-right:1px solid var(--vrch-surface-3);
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:10px var(--dock-inline-inset);
  box-sizing:border-box;
  z-index:9;
}
.live-console__dock-title{
  font-size:var(--vrch-type-size);
  color:var(--vrch-text-secondary);
  padding:0;
}
.live-console__dock-handle{
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  color:var(--vrch-text-secondary);
  padding:6px 0 4px;
}
.live-console__dock-handle i{
  pointer-events:none;
}
.live-console__dock-items{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-height:0;
  flex:1 1 auto;
  margin-inline:calc(-1 * var(--dock-inline-inset));
  padding-inline:var(--dock-inline-inset);
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.live-console__dock-items::-webkit-scrollbar{
  width:0;
  height:0;
  display:none;
}
.live-console__dock .live-console__dock-footer{
  margin-top:auto;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.live-console__dock.live-console__dock--thin .live-console__dock-brand{
  padding:0;
  border-radius:0;
  background:transparent;
  border:0;
}
.live-console__dock.live-console__dock--thin .live-console__dock-brand:hover{
  background:transparent;
  box-shadow:none;
  transform:none;
}
.live-console__dock.live-console__dock--thin .live-console__dock-brand img{
  width:100%;
  height:100%;
}
.live-console__dock-fullscreen{
  margin-top:8px;
}
.live-console__dock-settings{
  margin-top:8px;
}
.live-console__pane-menubar{
  position:absolute;
  top:0;
  right:0;
  z-index:6;
}
.live-console-shell .live-console__pane-menubar .popup-btn,
.live-console-shell .live-console__pinned-overlay-open{
  display:none;
}
.live-console-shell.live-console-show-pane-open-in-new-tab .live-console__pane-menubar .popup-btn,
.live-console-shell.live-console-show-pane-open-in-new-tab .live-console__pinned-overlay-open{
  display:inline-flex;
}
.live-console__pane-menubar .live-console__pane-menubar-btn,
.live-console__pane-footer-close{
  border:none;
  border-color:transparent;
  background:var(--live-console-pane-footer-surface, transparent);
  box-shadow:none;
  color:var(--vrch-text);
}
.live-console__pane-menubar .live-console__pane-menubar-btn,
.live-console__pane-menubar .live-console__pane-menubar-btn i{
  transition:color .08s ease;
}
.live-console__pane-footer-close i{
  font-size:15px;
}
.live-console__pane-footer-close{
  touch-action:manipulation;
}
.live-console__pane-menubar .live-console__recording-btn{
  min-width:54px;
}
.live-console__pinned-overlay-chrome .live-console__recording-btn{
  width:auto;
  min-width:54px;
}
.live-console__pane-menubar .live-console__pane-menubar-btn:hover,
.live-console__pane-menubar .live-console__pane-menubar-btn.ui-btn--md:hover:not(:disabled){
  border:none;
  border-color:transparent;
  background:transparent;
  box-shadow:none;
  color:var(--vrch-accent-text);
}
.live-console__pane-menubar .live-console__pane-menubar-btn:hover:not(:disabled) i{
  color:var(--vrch-accent-text);
}
.live-console__pane-footer-close:hover,
.live-console__pane-footer-close.ui-btn--sm:hover:not(:disabled){
  border:none;
  border-color:transparent;
  background:var(--live-console-pane-footer-surface, transparent);
  box-shadow:none;
  color:var(--vrch-accent-text);
}
.live-console__pane-menubar .live-console__pane-menubar-btn:active,
.live-console__pane-footer-close:active{
  transform:translateY(1px);
}
.live-console-maximized .pane.maximized .live-console__pane-footer{
  display:none;
}
:where(.live-console-maximized .pane.maximized .live-console__pane-menubar) .live-console__pane-menubar-btn{
  opacity:.16;
}
:where(.live-console-maximized .pane.maximized .live-console__pane-menubar) .live-console__pane-menubar-btn:hover,
:where(.live-console-maximized .pane.maximized .live-console__pane-menubar) .live-console__pane-menubar-btn:focus-visible{
  opacity:.55;
}
@media (pointer: coarse){
  .live-console__pane-footer{
    padding:0;
  }
  .live-console__pane-footer-close{
    width:42px;
    min-width:42px;
    height:42px;
  }
}
.live-console__dock.live-console__dock--thin{
  width:14px;
  padding:0;
  cursor:pointer;
}
.live-console__dock.live-console__dock--icons{
  width:56px;
  padding:8px;
  gap:8px;
}
.live-console__dock.live-console__dock--icons .live-console__dock-brand{
  width:calc(100% + 16px);
  min-width:calc(100% + 16px);
  max-width:calc(100% + 16px);
  height:32px;
  min-height:32px;
  max-height:32px;
  aspect-ratio:auto;
  margin:-8px -8px 0;
  padding:6px;
  border:0;
  border-bottom:1px solid var(--vrch-line-strong);
  border-radius:0;
  background:var(--vrch-stage-backdrop);
  overflow:hidden;
  flex:0 0 auto;
  align-self:stretch;
  box-shadow:none;
  transition:background .08s ease, border-color .08s ease;
}
.live-console__dock.live-console__dock--icons .live-console__dock-brand:hover{
  background:var(--vrch-stage-backdrop);
  border-color:var(--vrch-theme-border);
  box-shadow:none;
}
.live-console__dock.live-console__dock--icons .live-console__dock-brand:active{
  background:var(--vrch-surface-1);
  border-color:var(--vrch-theme-border);
  box-shadow:none;
  transform:none;
}
.live-console__dock.live-console__dock--icons .live-console__dock-brand:focus-visible{
  outline:none;
  background-color:var(--vrch-surface-hover);
  color:var(--vrch-text);
}
.live-console__dock.live-console__dock--icons .live-console__dock-brand img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  transform:none;
}
.live-console__dock.live-console__dock--icons .live-console__dock-items{
  padding:0 var(--dock-inline-inset);
  gap:8px;
}
.live-console__dock.live-console__dock--icons .live-console__dock-footer{
  padding:0;
  gap:8px;
}
.live-console__dock.live-console__dock--icons .live-console__dock-item{
  justify-content:center;
  width:var(--live-console-dock-control-inline-size);
  min-width:var(--live-console-dock-control-inline-size);
  max-width:var(--live-console-dock-control-inline-size);
  height:var(--live-console-dock-control-block-size);
  min-height:var(--live-console-dock-control-block-size);
  max-height:var(--live-console-dock-control-block-size);
  padding:8px 0;
  gap:0;
}
.live-console__dock.live-console__dock--icons .live-console__dock-icon-wrap{
  min-width:auto;
}
.live-console__dock.live-console__dock--icons .live-console__dock-fullscreen,
.live-console__dock.live-console__dock--icons .live-console__dock-settings,
.live-console__dock.live-console__dock--icons .live-console__dock-close{
  width:var(--live-console-dock-control-inline-size);
  min-width:var(--live-console-dock-control-inline-size);
  max-width:var(--live-console-dock-control-inline-size);
  height:var(--live-console-dock-control-block-size);
  min-height:var(--live-console-dock-control-block-size);
  max-height:var(--live-console-dock-control-block-size);
}
.live-console__dock-brand.ui-brand-tile{
  margin:0;
  margin-bottom:0;
  border:1px solid var(--vrch-text-secondary);
  background:var(--vrch-brand-paper);
}
.live-console__dock-brand.ui-brand-tile:hover{
  background:var(--vrch-brand-paper);
  border-color:var(--vrch-text-secondary);
}
.live-console__dock-brand.ui-brand-tile:active{
  background:var(--vrch-text);
  border-color:var(--vrch-text-secondary);
}
.live-console__dock.live-console__dock--thin .live-console__dock-item,
.live-console__dock.live-console__dock--thin .live-console__dock-title,
.live-console__dock.live-console__dock--thin .live-console__dock-items,
.live-console__dock.live-console__dock--thin .live-console__dock-close,
.live-console__dock.live-console__dock--thin .live-console__dock-footer{
  display:none;
}
.live-console__dock.live-console__dock--icons .live-console__dock-label{
  display:none;
}
.live-console__dock-close{
  margin-top:auto;
}
.live-console__dock .live-console__dock-footer .live-console__dock-close{
  margin-top:0;
}
.live-console__splitter{
  flex:0 0 12px;
}
.live-console__splitter.horizontal{
  cursor:row-resize;
}
.live-console__splitter.vertical{
  cursor:col-resize;
}
.live-console-splitters-locked .ui-splitter{
  pointer-events:none;
  cursor:default;
}
.live-console-splitters-locked .ui-splitter::after{
  opacity:0;
}
.live-console__row--bottom{
  display:flex;
  min-height:0;
  flex:1 1 auto;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-x:contain;
}
.live-console__row--bottom::-webkit-scrollbar{
  height:8px;
}
.live-console__row--bottom::-webkit-scrollbar-thumb{
  background:var(--vrch-line-strong);
  border-radius:4px;
}
.live-console__row--bottom::-webkit-scrollbar-track{
  background:var(--vrch-surface-2);
}
.live-console__row--bottom{
  scrollbar-color:var(--vrch-line-strong) var(--vrch-surface-2);
}
.pane:focus{
  outline:none;
}
.live-console__pane-label{
  display:none;
  position:absolute;
  top:8px;
  left:10px;
  padding:2px 6px;
  font-size:var(--vrch-type-size);
  color:var(--vrch-text-secondary);
  background:var(--vrch-surface-2);
  border-radius:2px;
  pointer-events:none;
}
.pane.maximized,
.live-console-maximized .pane.is-background-maximized{
  position:fixed;
  left:var(--live-console-maximized-left, 0px);
  top:var(--live-console-maximized-top, 0px);
  right:auto;
  bottom:auto;
  width:var(--live-console-maximized-width, 100vw);
  height:var(--live-console-maximized-height, 100vh);
  z-index:50;
  border-color:var(--vrch-theme-border);
}
.live-console-maximized .pane.maximized::after{
  display:none;
}
.live-console-maximized .live-console__splitter{
  display:none;
}
.live-console-maximized .pane:not(.maximized){
  visibility:hidden;
  pointer-events:none;
}

.ioRight{ width: 160px; display:flex; justify-content:flex-end; gap: 6px; }

textarea{
  flex: 1;
  min-height: 0;
  width: 100%;
  border: none;
  outline: none;
  background: transparent;
  color: var(--text);
  padding: 10px;
  font-size:var(--vrch-type-size);
  font-family: var(--sans);
  line-height:var(--vrch-type-copy-line);
  resize: none;
  overflow: auto;
}

pre{
  margin:0;
  flex:1;
  min-height:0;
  padding: 10px;
  font-family: var(--vrch-font-code);
  font-size: 12px;
  line-height: 1.35;
  overflow: auto;
  color: var(--text);
  white-space: pre;
}

.shader-code-editor{
  margin:0;
  flex:1;
  min-height:0;
  display:none;
  padding: 10px;
  border: none;
  outline: none;
  background: transparent;
  color: var(--text);
  font-family: var(--vrch-font-code);
  font-size: 12px;
  line-height: 1.35;
  resize: none;
  overflow: auto;
  white-space: pre;
}







.quickOnly{ display:none; }
body[data-ui-mode="quick"] .advancedOnly{ display:none; }
body[data-ui-mode="quick"] .quickOnly{ display:block; }
body[data-ui-mode="quick"] .shader-editor__grid{ grid-template-columns: 1fr; }
body[data-ui-mode="quick"] .shader-editor__panel--prompt{
  grid-column: 1 / -1;
}
body[data-ui-mode="quick"] .shader-editor__prompt-title{ color: var(--text); }
body[data-ui-mode="quick"] .shader-editor__panel--shader{ display:none; }
body[data-ui-mode="quick"] .shader-editor__panel--feedback{
  display:block;
  grid-column: 1 / -1;
}
body[data-ui-mode="quick"] .shader-editor__quick-send{
  display:block;
}
body[data-ui-mode="quick"] .shader-editor__feedback .ui-panel__header{
  align-items:center;
}
body[data-ui-mode="quick"] .shader-editor__status-tag,
body[data-ui-mode="quick"] .shader-editor__timing-tag{
  display:none;
}
body[data-ui-mode="quick"] .shader-editor__log-details{
  display:none;
}
body[data-ui-mode="quick"] .shader-editor__feedback .fbMeta{
  gap:4px;
}

.shader-editor__feedback{ margin-top: 0; height: auto; min-height: unset; }
.feedbackBody{ padding: 10px 12px; }


.resetDialogText{
  font-family:var(--vrch-font-readable);
  font-size:var(--vrch-type-size);
  color:var(--text);
  line-height:var(--vrch-type-copy-line);
  font-weight:var(--vrch-type-weight);
  letter-spacing:var(--vrch-type-tracking);
}
.resetDialogHint{
  margin-top:8px;
  font-family:var(--vrch-font-readable);
  font-size:var(--vrch-type-size);
  color:var(--muted);
  line-height:var(--vrch-type-copy-line);
  font-weight:var(--vrch-type-weight);
  letter-spacing:var(--vrch-type-tracking);
}
.fbMeta{
  margin: 0 0 10px 0;
  display:flex;
  flex-direction:column;
  gap: 4px;
}
.fbMetaName,
.fbMetaDesc{
  font-family: var(--mono);
  font-size:var(--vrch-type-size);
  color: var(--vrch-text-secondary);
  word-break: break-word;
  white-space: pre-wrap;
}

.muted{ color: var(--muted); font-family: var(--mono); font-size:var(--vrch-type-size); }
.list{ margin:0; padding-left: 18px; color: var(--vrch-text-secondary); }
.list li{ margin: 6px 0; }
.okbox{ margin-top:10px; padding:10px 10px; border-radius: var(--r2); border:1px solid var(--vrch-theme-border); background:var(--vrch-theme-selection); color:var(--vrch-selection-foreground); font-family: var(--mono); font-size:var(--vrch-type-size); }
.errbox{ margin-top:10px; padding:10px 10px; border-radius: var(--r2); border:1px solid var(--vrch-danger-border); background: var(--vrch-danger-surface); color: var(--vrch-danger-text); font-family: var(--mono); font-size:var(--vrch-type-size); white-space: pre-wrap; }

details{ border-top:1px solid var(--border); }
summary{ cursor:pointer; padding: 10px 12px; font-family:var(--mono); font-size:var(--vrch-type-size); color:var(--muted); list-style:none; user-select:none; }
summary::-webkit-details-marker{ display:none; }

.logtabs{ display:flex; gap:6px; padding: 0 12px 10px; flex-wrap:wrap; }


.logpane{ display:none; }
.logpane.active{ display:block; }

.logWindow{
  height: 220px;
  overflow: auto;
  border: 1px solid var(--border);
  background: var(--surface-0);
  border-radius: var(--r2);
  margin: 0 var(--gap) var(--gap);
  padding: 10px;
}

.shader-editor__log-details .logWindow pre{
  margin: 0;
  padding: 0;
  overflow: visible;
  max-height: none;
  border: none;
  background: transparent;
}

.timeline{
  font-family: var(--mono);
  font-size:var(--vrch-type-size);
  color: var(--vrch-text-secondary);
  white-space: pre-wrap;
}

.live-console-maintenance__tool-dialog > .ui-dialog__actions--equal .ui-btn--sm.ui-btn--wide-label{
  flex-basis:auto;
  width:176px;
  min-width:176px;
  max-width:176px;
}
@media (max-width:520px){
  .live-console-maintenance__tool-dialog > .ui-dialog__actions--equal .ui-btn--sm.ui-btn--wide-label{
    min-width:0;
    flex-shrink:1;
  }
}



.live-console__recording-btn.is-recording,
.live-console__recording-btn.is-countdown,
.live-console__recording-btn.is-saving{
  transition:background .08s ease, border-color .08s ease, transform .04s ease;
}










.no-select,
.no-select *{
  user-select:none;
  -webkit-user-select:none;
}
.no-select input,
.no-select textarea,
.no-select select,
.no-select button,
.no-select [contenteditable="true"]{
  user-select:text;
  -webkit-user-select:text;
}

.ui-settings-screen.shader-editor__settings{
  height:calc(var(--vrch-safe-vh, 1vh) * 100);
  min-height:0;
  max-height:calc(var(--vrch-safe-vh, 1vh) * 100);
}










.player-progress > input[type="range"]{
  flex:1 1 auto;
  min-width:140px;
  height:18px;
  margin:0;
  -webkit-appearance:none;
  appearance:none;
  background:transparent;
  cursor:pointer;
}
.player-progress > input[type="range"]::-webkit-slider-runnable-track{
  height:8px;
  border:1px solid var(--vrch-range-track-border);
  border-radius:var(--r2);
  background:linear-gradient(to right, var(--vrch-theme-action) 0 var(--vrch-range-progress, 0%), var(--vrch-range-track) var(--vrch-range-progress, 0%) 100%);
  box-shadow:inset 0 1px 0 color-mix(in srgb, var(--vrch-content-white) 4%, transparent), inset 0 1px 3px color-mix(in srgb, var(--vrch-content-black) 45%, transparent);
}
.player-progress > input[type="range"]::-moz-range-track{
  height:8px;
  border:1px solid var(--vrch-range-track-border);
  border-radius:var(--r2);
  background:linear-gradient(to right, var(--vrch-theme-action) 0 var(--vrch-range-progress, 0%), var(--vrch-range-track) var(--vrch-range-progress, 0%) 100%);
  box-shadow:inset 0 1px 0 color-mix(in srgb, var(--vrch-content-white) 4%, transparent), inset 0 1px 3px color-mix(in srgb, var(--vrch-content-black) 45%, transparent);
}
.player-progress > input[type="range"]::-moz-range-progress{
  height:8px;
  border-radius:var(--r2);
  background:var(--vrch-theme-action);
}
.player-progress > input[type="range"]:focus-visible{
  outline:none;
  filter:brightness(1.3);
}
.player-progress > input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none;
  width:22px;
  height:34px;
  margin-top:-13px;
  border:1px solid var(--vrch-surface-pressed);
  border-radius:var(--r2);
  background:var(--vrch-text);
  box-shadow:0 0 0 1px color-mix(in srgb, var(--vrch-content-white) 8%, transparent), 0 3px 8px color-mix(in srgb, var(--vrch-content-black) 50%, transparent);
  cursor:pointer;
  transition:transform .12s ease, background .12s ease, box-shadow .12s ease;
}
.player-progress > input[type="range"]:hover::-webkit-slider-thumb{
  background:var(--vrch-content-white);
  box-shadow:0 0 0 1px color-mix(in srgb, var(--vrch-content-white) 14%, transparent), 0 4px 10px color-mix(in srgb, var(--vrch-content-black) 56%, transparent);
  transform:scale(1.04);
}
.player-progress > input[type="range"]:active::-webkit-slider-thumb{
  background:var(--vrch-content-white);
  transform:scale(.98);
}
.player-progress > input[type="range"]::-moz-range-thumb{
  width:22px;
  height:34px;
  border:1px solid var(--vrch-surface-pressed);
  border-radius:var(--r2);
  background:var(--vrch-text);
  box-shadow:0 0 0 1px color-mix(in srgb, var(--vrch-content-white) 8%, transparent), 0 3px 8px color-mix(in srgb, var(--vrch-content-black) 50%, transparent);
  cursor:pointer;
  transition:transform .12s ease, background .12s ease, box-shadow .12s ease;
}
.player-progress > input[type="range"]:hover::-moz-range-thumb{
  background:var(--vrch-content-white);
  box-shadow:0 0 0 1px color-mix(in srgb, var(--vrch-content-white) 14%, transparent), 0 4px 10px color-mix(in srgb, var(--vrch-content-black) 56%, transparent);
  transform:scale(1.04);
}
.player-progress > input[type="range"]:active::-moz-range-thumb{
  background:var(--vrch-content-white);
  transform:scale(.98);
}




























body.sender-page,
body.prompt-mode{
  /* Sender panes must scroll vertically at the document level.
     Keep horizontal swipe free for outer live-console rows instead of trapping it
     inside a full-screen inner scroll container. */
  width:100%;
  max-width:100%;
  min-height:100vh;
  min-height:calc(var(--vrch-safe-vh, 1vh) * 100);
  display:flex;
  flex-direction:column;
  align-items:center;
  overflow-x:hidden;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-x:auto;
  overscroll-behavior-y:contain;
}























.overlay-tool-btn{
  position:absolute;
  top:8px;
  right:8px;
  z-index:4;
  width:36px;
  height:36px;
  padding:0;
  border:1px solid var(--vrch-line);
  border-radius:var(--r2);
  background:var(--vrch-surface-pressed);
  color:var(--text);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  font-family:var(--vrch-font-control);
  transform:translateY(0);
  transition:transform .04s ease, background .08s ease, border-color .08s ease, color .08s ease;
}
.overlay-tool-btn:hover{
  border-color:var(--vrch-line-strong);
  background:var(--vrch-surface-3);
}
.overlay-tool-btn:active{
  transform:translateY(1px);
}
.overlay-tool-btn i{
  font-size:16px;
  pointer-events:none;
}
.overlay-tool-btn.left{
  left:8px;
  right:auto;
}
.overlay-tool-btn.bottom{
  top:auto;
  bottom:8px;
}
.gamepad-index-toolbar .gamepad-index-chips{
  display:flex;
  gap:8px;
  justify-content:flex-start;
  flex-wrap:wrap;
}
.gamepad-index-toolbar .ui-runtime-chip{
  min-width:44px;
  flex:0 0 auto;
}
.controller-wrapper{
  display:flex;
  flex-direction:column;
  gap:16px;
  width:100%;
}
.controller-stage{
  background:var(--vrch-bg);
  border:1px solid var(--border);
  border-radius:var(--r);
  padding:16px;
  display:flex;
  flex-direction:column;
  gap:16px;
  box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--vrch-content-white) 2%, transparent);
  touch-action:none;
}
.controller-stage svg{
  width:100%;
  height:auto;
  max-width:520px;
  margin:0 auto;
  display:block;
}
.controller-mode{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  flex-wrap:wrap;
}
.controller-status-group{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  margin:0 auto;
}





.gamepad-index-toolbar,
.midi-device-toolbar{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:nowrap;
}
.gamepad-sender-page .gamepad-index-chips,
.midi-sender-page .midi-device-chips{
  gap:6px;
}
.gamepad-sender-page .ui-runtime-icon-btn,
.midi-sender-page .ui-runtime-icon-btn,
.midi-sender-page .midi-toolbar-permission-btn,
.gamepad-sender-page .gamepad-index-chip,
.midi-sender-page .midi-device-chip,
.gamepad-sender-page .ui-runtime-chip--mode,
.midi-sender-page .ui-runtime-chip--mode{
  min-height:32px;
}
.gamepad-sender-page .gamepad-index-chips > .ui-runtime-chip,
.midi-sender-page .midi-device-chips > .ui-runtime-chip{
  min-width:40px;
  padding:0 10px;
}
.midi-sender-page .midi-toolbar-permission-btn{
  width:auto;
  min-width:0;
  padding:0 12px;
  white-space:nowrap;
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.gamepad-sender-page .ui-runtime-toolbar .ui-send-action,
.midi-sender-page .ui-runtime-toolbar .ui-send-action{
  min-width:112px;
}
.controller-overlay path:not(.controller-body),
.controller-overlay rect,
.controller-overlay circle{
  stroke:var(--vrch-line-strong);
  stroke-width:2;
  fill:none;
  pointer-events:all;
}
.controller-overlay .controller-body{
  fill:var(--vrch-media-surface);
  stroke:none;
}
.controller-overlay circle.stick-thumb{
  stroke:var(--vrch-accent-text);
  stroke-width:2;
}
.controller-overlay circle.stick-thumb.active{
  fill:var(--vrch-theme-wine);
}

.gyro-controls{
  width:min(1200px, 100%);
  margin:8px 0;
}
.gyro-controls .ui-runtime-toolbar__left,
.gyro-controls .ui-runtime-toolbar__center,
.gyro-controls .ui-runtime-toolbar__right{
  flex-wrap:wrap;
}
.gyro-controls .gyro-send-toggle{
  min-width:128px;
}
.gyro-controls .gyro-permission-status{
  color:var(--muted);
  font-family:var(--sans);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-copy-line);
}
.gyro-sender__canvas-host{
  width:min(1200px, 100%);
  min-height:360px;
  height:calc(100vh - 220px);
  border:1px solid var(--border);
  border-radius:var(--r);
  background:var(--vrch-panel);
  overflow:hidden;
}
.ui-media-dropzone .preview-info{
  position:absolute;
  left:50%;
  bottom:8px;
  transform:translateX(-50%);
  padding:6px 10px;
  border:1px solid var(--vrch-line);
  border-radius:var(--r2);
  background:var(--vrch-surface-0);
  color:var(--text);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
  pointer-events:none;
  white-space:nowrap;
}
.ui-media-dropzone .preview-info.hidden{
  display:none;
}
.hidden-input{
  display:none;
}
.image-websocket-sender-page .image-source-pane{
  display:block;
}
.image-websocket-sender-page .video-source-pane,
.image-websocket-sender-page .screen-source-pane,
.image-websocket-sender-page .camera-source-pane{
  display:none;
}
.image-websocket-sender-page .tabs.ui-tabs{
  width:100%;
}
.image-websocket-sender-page .tab-icon{
  font-size:var(--vrch-type-size);
}
.image-websocket-sender-page .tab-label{
  line-height:1;
}
.image-websocket-sender-page .ui-media-dropzone .image-preview{
  width:100%;
  height:100%;
  object-fit:contain;
  display:none;
}
.image-websocket-sender-page .ui-media-dropzone .image-clear-btn{
  display:none;
}
.image-websocket-sender-page .playpause-overlay{
  position:absolute;
  left:50%;
  top:50%;
  width:84px;
  height:84px;
  border:1px solid color-mix(in srgb, var(--vrch-content-white) 18%, transparent);
  border-radius:999px;
  background:color-mix(in srgb, var(--vrch-content-black) 55%, transparent);
  color:var(--vrch-content-white);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:0 6px 16px color-mix(in srgb, var(--vrch-content-black) 45%, transparent);
  transform:translate(-50%, -50%);
  transition:background .12s ease, transform .04s ease;
  z-index:3;
}
.image-websocket-sender-page .playpause-overlay:hover{
  background:color-mix(in srgb, var(--vrch-content-black) 72%, transparent);
}
.image-websocket-sender-page .playpause-overlay:active{
  transform:translate(-50%, calc(-50% + 1px));
}
.image-websocket-sender-page .playpause-overlay i{
  font-size:34px;
  pointer-events:none;
}
.image-websocket-sender-page .playpause-overlay.hidden{
  display:none;
}
.image-websocket-sender-page .video-controls,
.image-websocket-sender-page .screen-controls,
.image-websocket-sender-page .camera-controls,
.image-websocket-sender-page .image-crop-controls,
.image-websocket-sender-page .video-crop-controls{
  margin-top:10px;
  padding:8px 10px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  position:relative;
  border:1px solid var(--border);
  border-radius:var(--r);
  background:var(--surface-1);
}
.image-websocket-sender-page .video-controls.video-controls--stack{
  flex-direction:column;
  gap:0;
  align-items:center;
}
.image-websocket-sender-page .video-controls-row{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  flex-wrap:nowrap;
}
.image-websocket-sender-page .video-controls-row--playback,
.image-websocket-sender-page .video-controls-row--timeline{
  padding-bottom:8px;
}
.image-websocket-sender-page .video-controls-row--playback .player-progress,
.image-websocket-sender-page .video-controls-row--timeline .player-progress{
  flex:1 1 auto;
  min-width:160px;
  box-sizing:border-box;
}
.image-websocket-sender-page .video-controls-row--playback .player-progress > input[type="range"],
.image-websocket-sender-page .video-controls-row--timeline .player-progress > input[type="range"]{
  width:0;
  min-width:0;
  flex:1 1 0;
}
.image-websocket-sender-page .video-controls-row--primary{
  padding-top:8px;
  border-top:1px solid var(--border);
}
.image-websocket-sender-page .video-controls-row--transport{
  padding-top:0;
  padding-bottom:8px;
  border-top:0;
}
.image-websocket-sender-page .video-controls.video-controls--stack > .video-controls-row--transport:first-child,
.image-websocket-sender-page .video-controls.video-controls--stack > .video-controls-row--primary:first-child{
  padding-top:0;
  border-top:0;
}
.image-websocket-sender-page .ui-runtime-control-btn{
  height:44px;
  min-width:72px;
  padding:0 12px;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:var(--surface-2);
  color:var(--muted);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  letter-spacing:var(--vrch-type-tracking);
  line-height:var(--vrch-type-line);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  cursor:pointer;
  text-transform:uppercase;
  transform:translateY(0);
  transition:transform .04s ease, background .08s ease, border-color .08s ease, color .08s ease;
}
.image-websocket-sender-page .ui-runtime-control-btn > *{
  pointer-events:none;
}
.image-websocket-sender-page .ui-runtime-control-btn:hover{
  border-color:var(--vrch-line-strong);
  background:var(--vrch-surface-hover);
  color:var(--text);
}
.image-websocket-sender-page .ui-runtime-control-btn:active{
  transform:translateY(1px);
}
.image-websocket-sender-page .ui-runtime-control-btn.active{
  border-color:var(--vrch-theme-border);
  background:var(--vrch-theme-selection);
  color:var(--vrch-selection-foreground);
}
.image-websocket-sender-page .ui-runtime-control-btn:disabled{
  opacity:0.45;
  cursor:not-allowed;
}
.image-websocket-sender-page .ui-runtime-control-btn .btn-label{
  font-weight:var(--vrch-type-weight);
}
.image-websocket-sender-page .ui-runtime-control-btn .btn-sub{
  font-size:var(--vrch-type-size);
  opacity:.78;
}
.image-websocket-sender-page .video-pingpong-symbol{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:22px;
  font-family:var(--mono);
  font-size:14px;
  font-weight:700;
  line-height:1;
  letter-spacing:-1px;
}
.image-websocket-sender-page .ui-runtime-control-btn[id$="CropRatioToggle"]{
  width:112px;
  min-width:112px;
  max-width:112px;
}
.image-websocket-sender-page .ui-runtime-control-btn[id$="CropRatioToggle"] .btn-label{
  flex:0 0 auto;
}
.image-websocket-sender-page .ui-runtime-control-btn[id$="CropRatioToggle"] .btn-sub{
  min-width:38px;
  max-width:38px;
  overflow:hidden;
  text-align:left;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.image-websocket-sender-page .player-progress{
  width:100%;
  min-height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin:0 8px;
  touch-action:pan-y;
}
.image-websocket-sender-page .player-progress span{
  min-width:40px;
  text-align:center;
  color:var(--vrch-text-secondary);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  letter-spacing:var(--vrch-type-tracking);
  font-variant-numeric:tabular-nums;
}
.image-websocket-sender-page .screen-crop-overlay{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
}
.image-websocket-sender-page .screen-crop-overlay.hidden{
  display:none;
}
.image-websocket-sender-page .screen-crop-overlay.active{
  pointer-events:auto;
}
.image-websocket-sender-page .screen-crop-box{
  position:absolute;
  border:1px solid var(--vrch-theme-action);
  background:transparent;
  box-shadow:0 0 0 9999px color-mix(in srgb, var(--vrch-content-black) 45%, transparent);
  pointer-events:auto;
  touch-action:none;
  cursor:move;
}
.image-websocket-sender-page .screen-crop-float{
  position:absolute;
  left:0;
  top:0;
  z-index:6;
  display:flex;
  flex-direction:column;
  gap:0;
  width:max-content;
  max-width:calc(100vw - 24px);
  padding:8px;
  border:1px solid var(--border);
  border-radius:var(--r);
  background:var(--vrch-surface-pressed);
  color:var(--text);
  font-size:var(--vrch-type-size);
  pointer-events:auto;
}
.image-websocket-sender-page .screen-crop-float-options{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:6px;
  max-width:100%;
}
.image-websocket-sender-page .screen-crop-chip{
  width:56px;
  height:36px;
  padding:0;
  border:1px solid var(--border);
  border-radius:999px;
  background:var(--surface-2);
  color:var(--muted);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  letter-spacing:var(--vrch-type-tracking);
  cursor:pointer;
  text-transform:uppercase;
}
.image-websocket-sender-page .screen-crop-chip.active{
  border-color:var(--vrch-theme-border);
  background:var(--vrch-theme-selection);
  color:var(--vrch-selection-foreground);
}
.image-websocket-sender-page .screen-crop-custom-row{
  display:grid;
  grid-template-columns:auto 54px auto 54px 72px;
  align-items:center;
  justify-content:center;
  gap:6px;
  width:100%;
  margin-top:8px;
  padding-top:8px;
  border-top:1px solid var(--border);
}
.image-websocket-sender-page .screen-crop-custom-label{
  width:auto;
  color:var(--muted);
  text-transform:uppercase;
}
.image-websocket-sender-page .screen-crop-custom-input{
  width:54px;
  height:36px;
  padding:0 8px;
  border:1px solid var(--border);
  border-radius:var(--r);
  background:var(--surface-2);
  color:var(--text);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  text-align:center;
  appearance:textfield;
  -moz-appearance:textfield;
}
.image-websocket-sender-page .screen-crop-custom-input::-webkit-outer-spin-button,
.image-websocket-sender-page .screen-crop-custom-input::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}
.image-websocket-sender-page .screen-crop-custom-input:focus{
  outline:none;
  border-color:var(--vrch-deep-pink);
}
.image-websocket-sender-page .screen-crop-custom-separator{
  color:var(--muted);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
}
.image-websocket-sender-page .screen-crop-custom-apply{
  width:72px;
  height:36px;
  padding:0;
  border:1px solid var(--border);
  border-radius:var(--r);
  background:var(--surface-2);
  color:var(--muted);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  letter-spacing:var(--vrch-type-tracking);
  text-transform:uppercase;
  cursor:pointer;
}
.image-websocket-sender-page .screen-crop-custom-apply:hover,
.image-websocket-sender-page .screen-crop-custom-apply:focus{
  border-color:var(--vrch-deep-pink);
  color:var(--text);
  outline:none;
}
.image-websocket-sender-page .screen-crop-custom-row.is-error .screen-crop-custom-input{
  border-color:var(--vrch-warning);
}
.image-websocket-sender-page .screen-crop-custom-row.is-error .screen-crop-custom-label{
  color:var(--vrch-warning);
}
@media (max-width: 520px){
  .image-websocket-sender-page .screen-crop-float{
    padding:6px;
  }
  .image-websocket-sender-page .screen-crop-float-options{
    gap:5px;
  }
  .image-websocket-sender-page .screen-crop-chip{
    width:52px;
    height:34px;
  }
  .image-websocket-sender-page .screen-crop-custom-row{
    grid-template-columns:auto 52px auto 52px 68px;
    gap:5px;
    margin-top:6px;
    padding-top:6px;
  }
  .image-websocket-sender-page .screen-crop-custom-input,
  .image-websocket-sender-page .screen-crop-custom-apply{
    height:34px;
  }
  .image-websocket-sender-page .screen-crop-custom-input{
    width:52px;
  }
  .image-websocket-sender-page .screen-crop-custom-apply{
    width:68px;
  }
}
.image-websocket-sender-page .screen-crop-handle{
  position:absolute;
  width:16px;
  height:16px;
  border-radius:2px;
  background:var(--vrch-theme-action);
}
.image-websocket-sender-page .screen-crop-handle.active{
  background:var(--vrch-deep-pink);
  box-shadow:0 0 0 2px var(--vrch-focus-shadow);
}
.image-websocket-sender-page .screen-crop-handle::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:36px;
  height:36px;
  transform:translate(-50%, -50%);
  background:transparent;
}
.image-websocket-sender-page .screen-crop-handle.tl{
  left:0;
  top:0;
  transform:translate(-50%, -50%);
  cursor:nwse-resize;
}
.image-websocket-sender-page .screen-crop-handle.tr{
  right:0;
  top:0;
  transform:translate(50%, -50%);
  cursor:nesw-resize;
}
.image-websocket-sender-page .screen-crop-handle.bl{
  left:0;
  bottom:0;
  transform:translate(-50%, 50%);
  cursor:nesw-resize;
}
.image-websocket-sender-page .screen-crop-handle.br{
  right:0;
  bottom:0;
  transform:translate(50%, 50%);
  cursor:nwse-resize;
}
.image-websocket-sender-page .screen-crop-handle.edge{
  border-radius:3px;
}
.image-websocket-sender-page .screen-crop-handle.edge.top{
  width:22px;
  height:8px;
  left:50%;
  top:0;
  transform:translate(-50%, -50%);
  cursor:ns-resize;
}
.image-websocket-sender-page .screen-crop-handle.edge.bottom{
  width:22px;
  height:8px;
  left:50%;
  bottom:0;
  transform:translate(-50%, 50%);
  cursor:ns-resize;
}
.image-websocket-sender-page .screen-crop-handle.edge.left{
  width:8px;
  height:22px;
  left:0;
  top:50%;
  transform:translate(-50%, -50%);
  cursor:ew-resize;
}
.image-websocket-sender-page .screen-crop-handle.edge.right{
  width:8px;
  height:22px;
  right:0;
  top:50%;
  transform:translate(50%, -50%);
  cursor:ew-resize;
}
.image-websocket-sender-page .camera-source-float{
  position:absolute;
  z-index:7;
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:180px;
  padding:6px;
  border:1px solid var(--border);
  border-radius:var(--r);
  background:var(--vrch-surface-pressed);
}
.image-websocket-sender-page .camera-source-options{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.image-websocket-sender-page .camera-source-option{
  width:100%;
  padding:6px 10px;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:var(--surface-2);
  color:var(--muted);
  text-align:left;
  cursor:pointer;
}
.image-websocket-sender-page .camera-source-option:hover{
  border-color:var(--vrch-line-strong);
  background:var(--vrch-surface-hover);
  color:var(--text);
}
.image-websocket-sender-page .camera-source-option.active{
  border-color:var(--vrch-theme-border);
  background:var(--vrch-theme-selection);
  color:var(--vrch-selection-foreground);
}
.image-websocket-sender-page .recents-section{
  width:min(1200px, 100%);
  margin:0;
  padding:0 4px;
  box-sizing:border-box;
}
.image-websocket-sender-page .recents-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 8px;
}
.image-websocket-sender-page .recents-title{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  color:var(--text);
}
.image-websocket-sender-page .recents-title-icon{
  flex:0 0 auto;
  color:var(--vrch-text-secondary);
  font-size:var(--vrch-type-size);
}
.image-websocket-sender-page .favorites-hint{
  color:var(--muted);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  opacity:.75;
}
.image-websocket-sender-page .recents-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:10px;
  width:100%;
}
@media (max-width: 480px){
  .image-websocket-sender-page .recents-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 480px){
  .image-websocket-sender-page .video-controls-row--playback .player-progress,
  .image-websocket-sender-page .video-controls-row--timeline .player-progress{
    min-width:0;
  }
}
.image-websocket-sender-page .recent-slot{
  position:relative;
  aspect-ratio:3 / 2;
  overflow:hidden;
  border:1px solid var(--border);
  border-radius:var(--vrch-radius-key);
  background:var(--surface-1);
  box-shadow:0 2px 6px color-mix(in srgb, var(--vrch-content-black) 35%, transparent);
  cursor:pointer;
}
.image-websocket-sender-page .recent-slot:hover{
  border-color:var(--vrch-theme-border);
}
.image-websocket-sender-page .recent-slot.empty{
  border-style:dashed;
  border-color:var(--vrch-line);
}
.image-websocket-sender-page .recent-slot.empty:hover{
  border-color:var(--vrch-line-strong);
}
.image-websocket-sender-page .recent-slot.is-drop-target{
  border-color:var(--vrch-theme-action);
  box-shadow:inset 0 0 0 2px var(--vrch-focus-shadow);
}
.image-websocket-sender-page .recent-slot.is-drop-blocked{
  border-color:var(--vrch-danger-border);
  cursor:not-allowed;
  box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--vrch-danger) 35%, transparent);
}
.image-websocket-sender-page .recent-slot.is-playback-current{
  border-color:var(--vrch-theme-border);
  box-shadow:inset 0 0 0 2px var(--vrch-focus-shadow);
}
.image-websocket-sender-page .recent-thumb{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  background:var(--vrch-content-black);
}
.image-websocket-sender-page .recent-thumb.portrait{
  object-position:center center;
}
.image-websocket-sender-page .recent-slot.is-video .recent-thumb{
  object-fit:contain;
}
.image-websocket-sender-page .recent-index{
  position:absolute;
  top:6px;
  left:6px;
  display:flex;
  align-items:center;
  gap:6px;
  padding:2px 6px;
  border-radius:6px;
  background:color-mix(in srgb, var(--vrch-content-black) 60%, transparent);
  color:var(--vrch-content-white);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
}
.image-websocket-sender-page .recent-index .lock-mini{
  font-size:var(--vrch-type-size);
  opacity:.9;
}
.image-websocket-sender-page .recent-hover-overlay{
  position:absolute;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  text-align:center;
  background:color-mix(in srgb, var(--vrch-content-black) 55%, transparent);
  border-radius:inherit;
  pointer-events:none;
}
.image-websocket-sender-page .recent-hover-num{
  color:color-mix(in srgb, var(--vrch-content-white) 90%, transparent);
  font-size:44px;
  font-weight:700;
  letter-spacing:1px;
  text-shadow:0 2px 8px color-mix(in srgb, var(--vrch-content-black) 60%, transparent);
}
.image-websocket-sender-page .recent-video-meta{
  position:absolute;
  left:8px;
  right:8px;
  bottom:8px;
  padding:3px 6px;
  border-radius:6px;
  background:color-mix(in srgb, var(--vrch-content-black) 58%, transparent);
  color:color-mix(in srgb, var(--vrch-content-white) 84%, transparent);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.image-websocket-sender-page .recent-slot:not(.empty):hover .recent-hover-overlay{
  display:flex;
}
.image-websocket-sender-page .recent-hover-lock,
.image-websocket-sender-page .recent-hover-clear{
  position:absolute;
  top:8px;
  width:42px;
  height:42px;
  pointer-events:auto;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid color-mix(in srgb, var(--vrch-content-white) 25%, transparent);
  border-radius:10px;
  background:color-mix(in srgb, var(--vrch-content-black) 50%, transparent);
  color:var(--vrch-content-white);
  cursor:pointer;
  transition:background .12s ease, transform .04s ease;
}
.image-websocket-sender-page .recent-hover-lock{
  left:8px;
}
.image-websocket-sender-page .recent-hover-clear{
  right:8px;
}
.image-websocket-sender-page .recent-hover-lock:hover,
.image-websocket-sender-page .recent-hover-clear:hover{
  background:color-mix(in srgb, var(--vrch-content-black) 72%, transparent);
}
.image-websocket-sender-page .recent-hover-lock:active,
.image-websocket-sender-page .recent-hover-clear:active{
  transform:translateY(1px);
}
.image-websocket-sender-page .recent-hover-lock i,
.image-websocket-sender-page .recent-hover-clear i{
  font-size:18px;
  pointer-events:none;
}
.image-sender__replace-dialog{
  width:min(720px, calc(100% - 16px));
  max-width:720px;
  padding:0;
}
.recent-replace-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:8px;
  padding:12px;
}
.recent-replace-slot{
  min-width:0;
  height:172px;
  padding:0;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:var(--surface-2);
  color:var(--text);
  display:grid;
  grid-template-rows:minmax(0, 1fr) auto;
  overflow:hidden;
  cursor:pointer;
  text-align:left;
}
.recent-replace-slot:hover{
  border-color:var(--vrch-theme-border);
  background:var(--vrch-surface-hover);
}
.recent-replace-slot:disabled{
  cursor:not-allowed;
  opacity:.52;
}
.recent-replace-slot__preview{
  width:100%;
  min-height:0;
  background:var(--vrch-content-black);
  display:block;
  overflow:hidden;
}
.recent-replace-slot__preview img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.recent-replace-slot__copy{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:7px 8px;
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
}
.recent-replace-slot__label{
  font-weight:var(--vrch-type-weight);
  color:var(--text);
}
.recent-replace-slot__detail{
  color:var(--muted);
  white-space:nowrap;
}
@media (max-width: 480px){
  .recent-replace-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:6px;
    padding:8px;
  }
  .recent-replace-slot{
    height:128px;
  }
  .recent-replace-slot__copy{
    padding:6px 7px;
    gap:4px;
    font-size:var(--vrch-type-size);
  }
  .recent-replace-slot__label{
    white-space:nowrap;
  }
}
.sketch-top-center{
  position:absolute;
  top:8px;
  left:50%;
  transform:translateX(-50%);
  z-index:5;
  display:flex;
  gap:8px;
  align-items:center;
  justify-content:center;
}
.sketch-top-center .overlay-tool-btn{
  position:static;
}
.sketch-ar-wrap{
  width:auto;
  max-width:100%;
  aspect-ratio:var(--sketch-ar, 1 / 1);
  max-height:clamp(240px, 58vh, 640px);
  margin:0 auto;
  border:0;
  border-radius:0;
  background:transparent;
  overflow:visible;
}
.sketch-zone{
  flex:0 0 auto;
  width:100%;
  height:100%;
  max-width:100%;
  margin-left:auto;
  margin-right:auto;
  box-sizing:border-box;
  border:none;
  background:transparent;
  cursor:crosshair;
  touch-action:none;
  position:relative;
}
.sketch-zone canvas{
  width:100%;
  height:100%;
  display:block;
}
.sketch-width-overlay{
  position:fixed;
  z-index:4000;
  width:248px;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:var(--surface-0);
  box-shadow:0 12px 24px color-mix(in srgb, var(--vrch-content-black) 32%, transparent);
  display:none;
  flex-direction:column;
  gap:8px;
}
.sketch-width-overlay.visible{
  display:flex;
}
.sketch-width-overlay__title-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.sketch-width-overlay__value{
  flex:0 0 auto;
  min-width:52px;
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  letter-spacing:var(--vrch-type-tracking);
  line-height:var(--vrch-type-line);
  text-align:right;
  text-transform:uppercase;
  color:var(--text);
}
.sketch-width-overlay__slider-row{
  display:flex;
  align-items:stretch;
  width:100%;
}
.sketch-width-overlay__slider{
  flex:1 1 auto;
  min-width:0;
  margin:0;
}


.prompt-sender__ptt > .prompt-sender__voice-feedback{
  position:absolute;
  z-index:2;
  right:14px;
  bottom:3px;
  left:14px;
  overflow:hidden;
  color:var(--vrch-text-secondary);
  font-family:var(--sans);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  letter-spacing:var(--vrch-type-tracking);
  line-height:var(--vrch-type-copy-line);
  text-overflow:ellipsis;
  text-transform:none;
  white-space:nowrap;
}
.prompt-sender__ptt > .prompt-sender__voice-feedback[aria-hidden="true"]{
  visibility:hidden;
}
.prompt-sender__ptt > .prompt-sender__voice-feedback.is-warning{
  color:var(--vrch-warning-text);
}
.prompt-sender__ptt > .prompt-sender__voice-feedback.is-error{
  color:var(--vrch-danger);
}
[id="promptFavoritePlaybackMount"]{
  width:100%;
}



.prompt-textarea-wrapper .prompt-ai-toggle{
  position:absolute;
  right:8px;
  bottom:12px;
  min-width:92px;
}
















.icon-clear-btn,
.prompt-clear-btn{
  background:var(--vrch-secondary-surface);
  color:var(--muted);
  border:1px solid var(--vrch-line);
  width:28px;
  height:28px;
  padding:0;
  line-height:1;
  font-size:15px;
  border-radius:var(--r2);
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transform:translateY(0);
  transition:transform .04s ease, background .08s ease, color .08s ease, border-color .08s ease;
}
.icon-clear-btn:hover,
.prompt-clear-btn:hover{
  background:var(--vrch-surface-3);
  color:var(--text);
  border-color:var(--vrch-line-strong);
}
.icon-clear-btn:active,
.prompt-clear-btn:active{
  transform:translateY(1px);
}
.prompt-clear-btn{
  position:absolute;
  top:6px;
  right:6px;
}
.srt-player__favorites-section{
  width:100%;
  max-width:none;
  display:flex;
  flex-direction:column;
  gap:10px;
  margin:0 auto 28px;
}
.srt-player__favorites-header{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px 16px;
  color:var(--muted);
  font-family:var(--sans);
  font-size:var(--vrch-type-size);
}
.srt-player__favorites-header-left{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.config-section-toggle-btn{
  width:32px;
  height:32px;
  padding:0;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:var(--surface-2);
  color:var(--muted);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:transform .04s ease, background .08s ease, border-color .08s ease, color .08s ease;
}
.config-section-toggle-btn:hover{
  background:var(--vrch-surface-hover);
  border-color:var(--vrch-line-strong);
  color:var(--text);
}
.config-section-toggle-btn:active{
  transform:translateY(1px);
}
.srt-player__favorites-title{
  color:var(--text);
  text-transform:uppercase;
}
.favorites-modules-inline{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.favorites-modules-select{
  width:180px;
  background:var(--vrch-surface-1);
  border:1px solid var(--vrch-surface-hover);
  border-radius:var(--r2);
  color:var(--text);
  padding:7px 28px 7px 10px;
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
}
.srt-player__favorites-actions{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.srt-player__favorites-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:12px;
  width:100%;
}
.srt-player__favorite-slot{
  position:relative;
  height:110px;
  min-height:110px;
  box-sizing:border-box;
  overflow:hidden;
  padding:10px 12px 12px;
  border:1px solid var(--border);
  border-radius:var(--r);
  background:var(--vrch-surface-pressed);
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:8px;
  cursor:pointer;
  transition:border-color .12s ease, background .12s ease, transform .04s ease;
}
.srt-player__favorite-slot:not(.empty):hover{
  border-color:var(--vrch-line-strong);
  background:var(--vrch-surface-2);
  transform:translateY(-1px);
}
.srt-player__favorite-slot.empty{
  border-style:dashed;
  background:var(--vrch-panel);
  color:var(--vrch-line-strong);
  cursor:default;
}
.srt-player__favorite-slot.empty:hover{
  border-color:var(--vrch-line-strong);
}
.srt-player__favorite-slot-header{
  position:absolute;
  top:6px;
  left:8px;
  right:36px;
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
  color:var(--muted);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
}
.srt-player__favorite-slot-header .srt-player__favorite-slot-num-label{
  flex:1 1 auto;
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.srt-player__favorite-slot-header .srt-player__favorite-slot-title-edit-btn{
  flex:0 0 auto;
  min-width:20px;
  height:20px;
  padding:0 5px;
  border:1px solid var(--vrch-line);
  border-radius:var(--r2);
  background:var(--vrch-surface-2);
  color:var(--muted);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  cursor:pointer;
}
.srt-player__favorite-slot-header .srt-player__favorite-slot-title-edit-btn:hover{
  background:var(--vrch-surface-hover);
  color:var(--text);
}
.srt-player__favorite-slot-title-input{
  pointer-events:auto;
  flex:1 1 auto;
  min-width:40px;
  padding:2px 4px;
  border:1px solid var(--vrch-line);
  border-radius:var(--r2);
  background:var(--vrch-panel);
  color:var(--text);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
}
.srt-player__favorite-slot-title-input:focus{
  outline:none;
  border-color:var(--vrch-line-strong);
}
.srt-player__favorite-text{
  flex:1 1 auto;
  min-height:0;
  width:100%;
  padding-top:16px;
  overflow-y:auto;
  overflow-x:hidden;
  white-space:normal;
  word-break:break-word;
  color:var(--text);
  font-family:var(--sans);
  font-size:var(--vrch-type-size);
  line-height:1.38;
  scrollbar-width:thin;
}
.srt-player__favorite-text::-webkit-scrollbar{
  width:6px;
}
.srt-player__favorite-text::-webkit-scrollbar-track{
  background:transparent;
}
.srt-player__favorite-text::-webkit-scrollbar-thumb{
  background:var(--vrch-line);
  border-radius:4px;
}
.srt-player__favorite-hover{
  position:absolute;
  inset:0;
  display:none;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  padding:8px 10px;
  border-radius:inherit;
  background:var(--vrch-panel);
  color:color-mix(in srgb, var(--vrch-content-white) 88%, transparent);
  text-align:center;
  pointer-events:none;
  z-index:2;
}
.srt-player__favorite-hover .srt-player__favorite-hover-num{
  font-family:var(--mono);
  font-size:36px;
  font-weight:700;
  line-height:1;
}
.srt-player__favorite-hover .srt-player__favorite-hover-title{
  max-width:90%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-family:var(--sans);
  font-size:14px;
  opacity:.9;
}
.srt-player__favorite-slot:not(.empty):hover .srt-player__favorite-hover{
  display:flex;
}
.srt-player__favorite-slot:not(.empty):hover > .srt-player__favorite-text{
  opacity:.58;
}
.srt-player__favorite-empty-label{
  opacity:.55;
}
.prompt-sender__favorites-section{
  width:min(980px, 100%);
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.prompt-sender__favorites-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.prompt-sender__favorites-header-left{
  min-width:0;
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.prompt-sender__favorites-title{
  color:var(--text);
  text-transform:uppercase;
}
.prompt-sender__favorites-modules{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.prompt-sender__favorites-modules-select{
  width:180px;
}
.prompt-sender__favorites-actions{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.prompt-sender__favorites-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:12px;
  width:100%;
}
.prompt-sender__favorite-slot{
  position:relative;
  height:100px;
  padding:10px 10px 12px;
  border:1px solid var(--border);
  border-radius:var(--r);
  background:var(--vrch-surface-pressed);
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:8px;
  cursor:pointer;
  transition:border-color .12s ease, background .12s ease, transform .04s ease;
}
.prompt-sender__favorite-slot:not(.empty):hover{
  border-color:var(--vrch-line-strong);
  background:var(--vrch-surface-2);
  transform:translateY(-1px);
}
.prompt-sender__favorite-slot.is-playback-current{
  border-color:var(--vrch-theme-border);
  background:var(--vrch-theme-selection);
  box-shadow:inset 0 0 0 1px var(--vrch-theme-border);
}
.prompt-sender__favorite-slot.empty{
  border-style:dashed;
  background:var(--vrch-panel);
  color:var(--vrch-line-strong);
  cursor:default;
}
.prompt-sender__favorite-slot.empty:hover{
  border-color:var(--vrch-line-strong);
}
.prompt-sender__favorite-slot-header{
  position:absolute;
  top:4px;
  left:6px;
  right:28px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:6px;
  min-width:0;
  padding-right:34px;
  color:var(--muted);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
  text-align:left;
  z-index:3;
}
.prompt-sender__favorite-slot-label{
  flex:1 1 auto;
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.prompt-sender__favorite-slot-input{
  pointer-events:auto;
  flex:1 1 auto;
  min-width:40px;
  padding:2px 4px;
  border:1px solid var(--vrch-line);
  border-radius:var(--r2);
  background:var(--vrch-panel);
  color:var(--text);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
}
.prompt-sender__favorite-slot-input:focus{
  outline:none;
  border-color:var(--vrch-line-strong);
}
.prompt-sender__favorite-text{
  flex:1 1 auto;
  width:100%;
  padding-top:20px;
  overflow:hidden;
  overflow-x:hidden;
  white-space:normal;
  word-break:break-word;
  color:var(--text);
  font-family:var(--sans);
  font-size:var(--vrch-type-size);
  line-height:1.38;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
}
.prompt-sender__favorite-hover{
  position:absolute;
  inset:0;
  display:none;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  padding:8px 10px;
  border-radius:inherit;
  background:var(--vrch-panel);
  color:color-mix(in srgb, var(--vrch-content-white) 88%, transparent);
  text-align:center;
  pointer-events:none;
  z-index:2;
}
.prompt-sender__favorite-hover-num{
  font-family:var(--mono);
  font-size:36px;
  font-weight:700;
  line-height:1;
}
.prompt-sender__favorite-hover-title{
  max-width:90%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-family:var(--sans);
  font-size:14px;
  opacity:.9;
}
.prompt-sender__favorite-slot:not(.empty):hover .prompt-sender__favorite-hover{
  display:flex;
}
.prompt-sender__favorite-slot:not(.empty):hover > .prompt-sender__favorite-text{
  opacity:.58;
}
.prompt-sender__favorite-clear{
  position:absolute;
  top:8px;
  right:8px;
  opacity:0;
  pointer-events:none;
  z-index:5;
}
.prompt-sender__favorite-edit{
  position:absolute;
  top:8px;
  left:8px;
  right:auto;
  opacity:0;
  pointer-events:none;
  z-index:5;
}
.prompt-sender__favorite-slot:hover .prompt-sender__favorite-clear,
.prompt-sender__favorite-clear:focus,
.prompt-sender__favorite-slot:focus-within .prompt-sender__favorite-clear,
.prompt-sender__favorite-slot:hover .prompt-sender__favorite-edit,
.prompt-sender__favorite-edit:focus,
.prompt-sender__favorite-slot:focus-within .prompt-sender__favorite-edit{
  opacity:1;
  pointer-events:auto;
}
.prompt-sender__favorite-empty-label{
  margin:auto 0;
  padding:0 10px;
  opacity:.55;
}
.prompt-sender__shell{
  position:relative;
  width:min(var(--prompt-sender-shell-max-width), 100%);
  gap:8px;
  border:none;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.prompt-sender-screen{
  --prompt-sender-shell-max-width:980px;
  --vrch-vk-bottom-gap:16px;
  --prompt-sender-inline-pad:16px;
}
.prompt-sender__divider{
  width:100%;
  height:1px;
  flex:0 0 auto;
  background:var(--border);
}

.ui-sender-header .title{
  width:auto;
  max-width:100%;
}




.ui-sender-header__status .ws-status-content{
  gap:0;
}
.ui-sender-header__status .ws-status-icon{
  width:12px;
  height:12px;
}
.ui-sender-header__status .ws-status-icon::before{
  width:10px;
  height:10px;
}



.prompt-sender__shell .ui-runtime-toolbar__center .ui-runtime-chip-row--equal{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  width:136px;
  max-width:100%;
}
.prompt-sender__shell .ui-runtime-toolbar__center .ui-runtime-chip--mode{
  min-width:0;
  width:100%;
}
.prompt-sender__shell .prompt-footer{
  margin-bottom:0;
}
.prompt-sender__keyboard-toggle{
  flex:0 0 auto;
}
.prompt-sender__keyboard-fab-footer{
  position:fixed;
  left:0;
  right:0;
  bottom:max(8px, calc(env(safe-area-inset-bottom, 0px) + 8px));
  z-index:36;
  display:flex;
  justify-content:center;
  padding:0 var(--prompt-sender-inline-pad, 16px);
  box-sizing:border-box;
  pointer-events:none;
}
.prompt-sender__keyboard-fab-footer-inner{
  width:min(var(--prompt-sender-shell-max-width), 100%);
  display:flex;
  justify-content:flex-start;
  pointer-events:none;
}
.prompt-sender__keyboard-fab{
  position:relative;
  top:0;
  right:0;
  left:auto;
  bottom:auto;
  width:40px;
  height:40px;
  pointer-events:auto;
}
body.is-virtual-keyboard-open .prompt-sender__keyboard-fab-footer{
  display:none;
}
.prompt-sender__shell .ui-runtime-toolbar__right{
  flex-wrap:nowrap;
  align-items:stretch;
  gap:6px;
}
.prompt-sender__shell .ui-runtime-toolbar__right .ui-style-trigger{
  flex:1 1 108px;
  min-width:0;
  max-width:136px;
}
.prompt-sender__shell .ui-runtime-toolbar__right .ui-style-trigger__button{
  width:100%;
}
.prompt-sender__shell .ui-runtime-toolbar__right .ui-send-action{
  flex:0 1 auto;
  min-width:96px;
}
body.is-virtual-keyboard-open{
  --vrch-vk-sheet-space:clamp(288px, 41vh, 320px);
}
body.is-virtual-keyboard-open .prompt-sender-screen{
  justify-content:flex-start;
  gap:10px;
  padding-bottom:calc(var(--vrch-vk-sheet-space) + var(--vrch-vk-bottom-gap) + 18px);
}
body.is-virtual-keyboard-open .prompt-sender__shell{
  gap:6px;
}
body.is-virtual-keyboard-open .prompt-textarea{
  min-height:clamp(108px, 18vh, 136px);
  max-height:clamp(124px, 20vh, 152px);
}
body.is-virtual-keyboard-open .prompt-sender__favorites-section{
  gap:10px;
}
.prompt-virtual-keyboard-mount{
  position:fixed;
  inset:0;
  z-index:60;
  pointer-events:none;
}

@media (min-width: 961px){
  .prompt-sender__shell .ui-runtime-toolbar__right .ui-style-trigger{
    max-width:144px;
  }
  .prompt-sender__shell .ui-runtime-toolbar__right .ui-send-action{
    min-width:96px;
  }
}

.prompt-sender__replace-dialog{
  width:min(520px, calc(100vw - 28px));
  padding:0;
}
.prompt-sender__replace-footer{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin-top:12px;
}
.prompt-sender__replace-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
  gap:10px;
  padding:12px;
}
.srt-player-shell-wrap{
  width:min(1080px, 100%);
}
.srt-player .srt-player-shell{
  display:flex;
  flex-direction:column;
  gap:0;
}
.srt-player .srt-display-row{
  flex:1 1 auto;
  min-height:0;
  height:auto;
}
.srt-player .srt-dropzone{
  min-height:100%;
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.srt-player .srt-player-panel{
  height:100%;
  padding:0;
  border:none;
  border-radius:0;
  background:transparent;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  gap:0;
  position:relative;
}
.srt-player .srt-player-top{
  display:flex;
  flex-direction:column;
  gap:0;
  height:var(--srt-panel-height, 360px);
  overflow:hidden;
  border:1px solid var(--border);
  border-radius:var(--r);
  background:var(--surface-0);
}
.srt-player .srt-player-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:5px;
  border-bottom:1px solid var(--border);
  position:relative;
}
.srt-player .srt-player-title{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
  color:var(--vrch-text-secondary);
}
.srt-player .srt-player-title .srt-dirty-dot{
  margin-right:2px;
}
.srt-player .srt-player__favorites-header-left .config-section-toggle-btn i{
  transition:transform .2s ease;
}
.srt-player .srt-player__favorites-header-left .config-section-toggle-btn i.collapsed{
  transform:rotate(-90deg);
}
.srt-player .srt-file-name{
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-weight:var(--vrch-type-weight);
  color:var(--vrch-text);
}
.srt-player .srt-dirty-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--vrch-warning);
  box-shadow:0 0 0 1px color-mix(in srgb, var(--vrch-content-black) 45%, transparent);
}
.srt-player .srt-dirty-dot.hidden{
  display:none;
}
.srt-player .srt-dirty-dot--corner{
  position:absolute;
  top:20px;
  left:8px;
  width:10px;
  height:10px;
  z-index:5;
}
.srt-player .srt-player-actions{
  display:flex;
  align-items:center;
  gap:6px;
  opacity:1;
  pointer-events:auto;
  transition:opacity .2s ease;
}
.srt-player .srt-player-actions > .ui-runtime-icon-btn{
  width:40px;
  min-width:40px;
  height:40px;
  padding:0;
  box-shadow:none;
}
.srt-player .srt-player-actions > .ui-runtime-icon-btn i{
  font-size:17px;
}
.srt-player .srt-ai-toggle{
  width:40px;
  min-width:40px;
  height:40px;
  padding:0;
}
.srt-player .srt-ai-floating{
  position:absolute;
  top:6px;
  right:6px;
  z-index:2;
}
.srt-player .srt-player-now{
  height:96px;
  padding:4px 28px;
  border-bottom:1px solid var(--border);
  background:var(--surface-0);
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  position:relative;
  cursor:pointer;
}
.srt-player .srt-now-progress{
  position:absolute;
  inset:0;
  z-index:0;
  opacity:0;
  pointer-events:none;
  background:var(--vrch-theme-selection);
  transform:scaleX(0);
  transform-origin:left center;
  transition:opacity .15s ease;
}
.srt-player .srt-player-panel.dragover .srt-player-now{
  border-color:var(--vrch-line);
  box-shadow:0 0 0 1px color-mix(in srgb, var(--vrch-content-white) 6%, transparent) inset;
}
.srt-player .srt-current-text{
  width:100%;
  max-height:calc(1.25em * 3);
  overflow:auto;
  white-space:pre-wrap;
  color:var(--text);
  font-size:18px;
  line-height:1.25;
  cursor:pointer;
  position:relative;
  z-index:1;
}
.srt-player .srt-copy-toast,
.srt-player .srt-cue-copy-toast{
  position:absolute;
  min-height:24px;
  padding:0 8px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  letter-spacing:var(--vrch-type-tracking);
  text-transform:uppercase;
  color:var(--text);
  background:var(--surface-0);
  border:1px solid var(--border2);
  border-radius:var(--r2);
  box-shadow:none;
  opacity:0;
  pointer-events:none;
  transition:opacity .16s ease, transform .16s ease, border-color .08s ease, background .08s ease;
}
.srt-player .srt-copy-toast{
  top:6px;
  left:50%;
  transform:translateX(-50%) translateY(-2px);
}
.srt-player .srt-copy-toast.visible,
.srt-player .srt-cue-copy-toast.visible{
  opacity:1;
}
.srt-player .srt-cue-copy-toast{
  top:6px;
  right:6px;
  transform:translateY(-2px);
}
.srt-player .srt-copy-toast.visible{
  transform:translateX(-50%) translateY(0);
}
.srt-player .srt-cue-copy-toast.visible{
  transform:translateY(0);
}
.srt-player .srt-cue-list-wrap{
  flex:1;
  min-height:0;
  padding:0;
  border:none;
  background:transparent;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  gap:0;
  position:relative;
}
.srt-player .srt-cue-list{
  flex:1;
  overflow:auto;
  display:flex;
  flex-direction:column;
  gap:0;
  padding-right:2px;
}
.srt-player .srt-cue-list--dialog{
  padding-top:0;
  padding-right:0;
}
.srt-player .srt-cue-list-dialog{
  width:min(900px, 92vw);
  max-height:80vh;
  position:relative;
}
.srt-player .srt-cue-list-dialog-body{
  margin-top:0;
  max-height:70vh;
  overflow:auto;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:var(--vrch-surface-2);
}
.srt-player__dialog-body{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.srt-player .srt-cue-list-dialog-body .srt-cue-list{
  height:auto;
  max-height:70vh;
}
.srt-player .srt-raw-dialog{
  width:min(520px, calc(100vw - 28px));
  max-width:520px;
  max-height:min(80vh, calc(var(--vrch-safe-vh, 1vh) * 100 - 24px));
  height:auto;
  position:relative;
  display:flex;
  flex-direction:column;
}
.srt-player .favorites-collapsed-row,
.srt-player .srt-player__favorites-collapsed-row{
  width:100%;
  max-width:100%;
  min-height:48px;
  box-sizing:border-box;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:var(--surface-1);
  color:var(--muted);
  font-size:var(--vrch-type-size);
  display:flex;
  align-items:center;
  gap:8px;
}
.srt-player .srt-cue-item{
  position:relative;
  display:grid;
  grid-template-columns:24px 56px 1fr;
  align-items:center;
  gap:6px;
  padding:6px;
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  border-left:none;
  border-right:none;
  border-radius:0;
  background:var(--surface-1);
  cursor:pointer;
}
.srt-player .srt-cue-item:hover{
  border-color:var(--border2);
  background:var(--surface-2);
}
.srt-player .srt-cue-item.is-active{
  background:var(--vrch-theme-selection);
  box-shadow:none;
}
.srt-player .srt-cue-id{
  color:var(--text);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  text-align:center;
}
.srt-player .srt-cue-time-axis{
  display:flex;
  flex-direction:column;
  align-items:center;
  color:var(--muted);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
}
.srt-player .srt-cue-time-arrow{
  padding:2px 0;
  color:var(--muted);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
}
.srt-player .srt-cue-time-start,
.srt-player .srt-cue-time-end{
  font-variant-numeric:tabular-nums;
}
.srt-player .srt-cue-text{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  white-space:pre-wrap;
  color:var(--text);
  font-size:var(--vrch-type-size);
}
.srt-player .srt-cue-dialog-fields{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.srt-player .srt-cue-dialog-time{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.srt-player .srt-cue-time-col{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.srt-player .srt-cue-time-input{
  display:flex;
  align-items:center;
  gap:6px;
}
.srt-player .srt-cue-time-input .ui-input{
  margin-top:0;
}
.srt-player .srt-cue-time-controls{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
}
.srt-player .srt-cue-time-controls .srt-time-adjust-btn{
  position:static;
  width:32px;
  height:32px;
  padding:0;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:var(--surface-2);
  color:var(--muted);
  box-shadow:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transform:translateY(0);
  transition:transform .04s ease, background .08s ease, border-color .08s ease, color .08s ease;
}
.srt-player .srt-cue-time-controls .srt-time-adjust-btn:hover{
  background:var(--vrch-surface-3);
  border-color:var(--vrch-line-strong);
  color:var(--text);
}
.srt-player .srt-cue-time-controls .srt-time-adjust-btn:active{
  transform:translateY(1px);
}
.srt-player .srt-cue-time-controls .srt-time-adjust-btn:focus-visible{
  outline:none;
  border-color:var(--vrch-line-strong);
}
.srt-player .srt-cue-time-input input{
  width:100%;
  min-width:0;
  flex:1;
  text-align:center;
  font-family:var(--vrch-font-code);
}
.srt-player .srt-cue-textarea{
  min-height:78px;
  padding:10px 12px;
  resize:vertical;
}
.srt-player .srt-cue-time-controls .srt-time-adjust-btn i{
  font-size:12px;
}
.srt-player .srt-cue-error{
  color:var(--vrch-warning);
  font-size:var(--vrch-type-size);
}
.srt-player .srt-cue-error.hidden{
  display:none;
}
.srt-player .srt-cue-dialog-fields input,
.srt-player .srt-cue-dialog-fields textarea{
  width:100%;
  box-sizing:border-box;
}
.srt-player .cue-edit-actions > .ui-btn--md{
  width:128px;
  min-width:128px;
  min-height:36px;
  height:36px;
  flex:0 0 auto;
}
.srt-player .srt-raw-dialog-fields{
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.srt-player .srt-raw-file-row{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.srt-player .srt-raw-file-row .ui-input{
  width:100%;
  margin-top:0;
}
.srt-player .srt-raw-file-input{
  width:100%;
  box-sizing:border-box;
}
.srt-player .srt-raw-editor{
  flex:1;
  min-height:0;
  display:flex;
  align-items:stretch;
  gap:0;
  overflow:hidden;
  border:1px solid var(--vrch-surface-hover);
  border-radius:var(--r2);
  background:var(--vrch-surface-2);
}
.srt-player .srt-raw-editor{
  --ui-editor-min-height:clamp(260px, 42vh, 420px);
}
.srt-player .cue-edit-actions{
  display:flex;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:10px;
}
.srt-player .srt-raw-dialog-actions{
  display:flex;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:10px;
}
.srt-player .srt-raw-dialog-actions > .ui-btn--md{
  width:128px;
  min-width:128px;
  min-height:36px;
  height:36px;
  flex:0 0 auto;
}
@media (max-width: 640px){
  .srt-player .cue-edit-actions,
  .srt-player .srt-raw-dialog-actions{
    width:100%;
    flex-wrap:nowrap;
    gap:8px;
  }
  .srt-player .cue-edit-actions > .ui-btn--md,
  .srt-player .srt-raw-dialog-actions > .ui-btn--md{
    width:auto;
    min-width:0;
    flex:1 1 0;
  }
}
.srt-player .player-progress{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin:0;
  touch-action:pan-y;
}
.srt-player .player-progress span{
  min-width:44px;
  text-align:center;
  color:var(--vrch-text-secondary);
  font-variant-numeric:tabular-nums;
}
@media (max-width: 820px){
  .srt-player .srt-display-row{
    height:var(--srt-panel-height, 360px);
  }
}
@media (max-width: 520px){
  .srt-player .srt-cue-dialog-time{
    grid-template-columns:1fr;
  }
}
.audio-recorder-shell{
  gap:14px;
}
.audio-recorder .audio-recorder-reset-row{
  padding-top:4px;
}
.audio-recorder .audio-recorder-reset-row > .ui-btn--md{
  width:100%;
  justify-content:center;
}
.audio-recorder .audio-recorder-settings-heading{
  padding-top:8px;
  border-top:1px solid var(--border);
}

.audio-recorder .recorder-wrapper{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:18px;
  width:100%;
  min-height:360px;
  padding:14px;
  border:1px solid color-mix(in srgb, var(--vrch-content-white) 5%, transparent);
  border-radius:var(--r2);
  background:var(--vrch-surface-0);
  overflow:hidden;
}
.audio-recorder .recorder-visualizer{
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.62;
}
.audio-recorder .recorder-visualizer canvas{
  display:block;
  width:100%;
  height:100%;
}
.audio-recorder .recorder-status-line{
  position:relative;
  z-index:6;
  width:100%;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  gap:10px;
}
.audio-recorder .recorder-status-line .bpm-indicator-wrap{
  grid-column:1;
  justify-self:start;
}
.audio-recorder .recorder-status-line .recorder-status-pill--state{
  grid-column:2;
  justify-self:center;
}
.audio-recorder .recorder-status-line .recorder-status-pill--countdown{
  grid-column:3;
  justify-self:end;
}
.audio-recorder .bpm-indicator-wrap{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:6px;
  z-index:7;
}
.audio-recorder .bpm-indicator-wrap .recorder-bpm-indicator{
  cursor:pointer;
}
.audio-recorder .recorder-bpm-indicator{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:64px;
  min-height:30px;
  padding:0 10px;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:color-mix(in srgb, var(--vrch-content-white) 4%, transparent);
  color:var(--text);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  letter-spacing:var(--vrch-type-tracking);
  line-height:var(--vrch-type-line);
  transform:translateY(0);
  transition:transform .04s ease, background .08s ease, border-color .08s ease, color .08s ease;
}
.audio-recorder .recorder-bpm-indicator:hover{
  border-color:var(--vrch-line-strong);
  background:var(--vrch-surface-3);
}
.audio-recorder .recorder-bpm-indicator:active,
.audio-recorder .recorder-bpm-indicator.active{
  transform:translateY(1px);
}
.audio-recorder .recorder-bpm-indicator.active{
  border-color:var(--vrch-theme-border);
  background:var(--vrch-theme-selection);
}
.audio-recorder .recorder-bpm-indicator.hidden{
  display:none;
}
.audio-recorder .bpm-sync-btn{
  width:24px;
  height:24px;
  padding:0;
  border:1px solid var(--border);
  background:var(--vrch-surface-2);
  color:var(--muted);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.audio-recorder .bpm-sync-btn.active{
  border-color:var(--vrch-theme-border);
  background:var(--vrch-theme-selection);
  color:var(--vrch-selection-foreground);
}
:is(.audio-recorder, .audio-player) .recorder-status-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:0 10px;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:color-mix(in srgb, var(--vrch-content-white) 4%, transparent);
  color:var(--text);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
  letter-spacing:var(--vrch-type-tracking);
  white-space:nowrap;
}
:is(.audio-recorder, .audio-player) .recorder-status-pill:empty{
  display:none;
}
:is(.audio-recorder, .audio-player) .recorder-status-pill--countdown{
  color:var(--vrch-status-accent-text);
}
.audio-recorder .bpm-popover{
  position:absolute;
  left:0;
  top:calc(100% + 8px);
  width:244px;
  padding:12px;
  border:1px solid var(--border2);
  border-radius:var(--r2);
  background:var(--vrch-surface-0);
  box-shadow:0 12px 28px color-mix(in srgb, var(--vrch-content-black) 42%, transparent);
  z-index:12;
}
.audio-recorder .bpm-popover .volume-popover-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  color:var(--muted);
}
.audio-recorder .bpm-popover .volume-popover-value{
  color:var(--text);
}
.audio-recorder .bpm-popover input[type="range"]{
  width:100%;
  margin:0 0 10px;
}
.audio-recorder .bpm-popover input[type="range"]:last-of-type{
  margin-bottom:0;
}
.audio-recorder .recorder-overlay{
  position:relative;
  z-index:2;
  width:100%;
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
}
.audio-recorder .recorder-preview{
  width:100%;
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
}
.audio-recorder .recorder-preview audio{
  width:min(100%, 360px);
  height:60px;
}
.audio-recorder .recorder-preview audio::-webkit-media-controls-panel{
  background:var(--vrch-text-secondary);
  border-radius:12px;
}
.audio-recorder .audio-recorder-runtime-controls{
  width:100%;
  max-width:none;
  margin:0 auto;
  padding:8px 10px;
  border:1px solid var(--border);
  border-radius:var(--r);
  background:var(--surface-1);
}
.audio-recorder .recorder-float-controls{
  position:relative;
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding-inline:0;
  box-sizing:border-box;
}
.audio-recorder .audio-recorder-runtime-controls > .ui-runtime-icon-btn{
  position:static;
  flex:0 0 40px;
  width:40px;
  height:40px;
}
.audio-recorder .audio-recorder-runtime-controls > .ui-runtime-icon-btn:disabled{
  opacity:.38;
  cursor:not-allowed;
}
.audio-recorder .recorder-ptt-btn{
  --ui-runtime-action-padding:14px;
  flex:1 1 220px;
  min-width:0;
  max-width:260px;
}
.audio-recorder .recorder-replay-action{
  position:static;
  transform:none;
}
.audio-recorder .recorder-replay-action:active:not(:disabled){
  transform:translateY(1px);
}
.audio-recorder .audio-toolbar{
  width:100%;
}
@media (max-width: 640px){
  .audio-recorder .recorder-wrapper{
    padding:12px;
    min-height:260px;
  }
  .audio-recorder .recorder-float-controls{
    width:100%;
    gap:6px;
    padding-inline:10px;
  }
  .audio-recorder .recorder-ptt-btn{
    max-width:none;
    --ui-runtime-action-font-size:var(--vrch-type-size);
    --ui-runtime-action-padding:10px;
  }
}
@media (max-width: 520px){
  .audio-recorder .recorder-status-line{
    grid-template-columns:minmax(0, 1fr) auto;
    align-items:start;
    justify-items:stretch;
  }
  .audio-recorder .recorder-status-line .bpm-indicator-wrap{
    grid-column:1;
    justify-self:start;
  }
  .audio-recorder .recorder-status-line .recorder-status-pill--state{
    display:none;
  }
  .audio-recorder .recorder-status-line .recorder-status-pill--countdown{
    grid-column:2;
    justify-self:end;
  }
  .audio-recorder .recorder-float-controls{
    width:100%;
    padding-inline:10px;
  }
  .audio-recorder .audio-recorder-runtime-controls > .ui-runtime-icon-btn{
    flex-basis:36px;
    width:36px;
    height:36px;
  }
  .audio-recorder .recorder-ptt-btn{
    --ui-runtime-action-height:40px;
  }
}
.audio-player-shell{
  gap:14px;
}
.audio-player .audio-player-reset-row{
  padding-top:4px;
}
.audio-player .audio-player-reset-row > .ui-btn--md{
  width:100%;
  justify-content:center;
}
.audio-player .audio-player-settings-heading{
  margin-top:4px;
  padding-top:8px;
  border-top:1px solid var(--border);
}

.audio-player .audio-player-stack{
  width:100%;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.audio-player .recorder-wrapper{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
  width:100%;
  padding:14px;
  border:1px solid color-mix(in srgb, var(--vrch-content-white) 5%, transparent);
  border-radius:var(--r2);
  background:var(--vrch-surface-0);
  overflow:hidden;
}
.audio-player .audio-player-visualizer-wrapper{
  min-height:260px;
  overflow:visible;
  justify-content:flex-start;
}
.audio-player .audio-player-runtime-controls{
  align-self:center;
}
.audio-player .recorder-wrapper.audio-player-wrapper{
  width:min(100%, 1200px);
  margin:0 auto;
  min-height:0;
  gap:12px;
  padding:0;
  overflow:visible;
  border:none;
  background:transparent;
}
.audio-player .recorder-visualizer{
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.62;
  overflow:hidden;
  border-radius:inherit;
}
.audio-player .recorder-visualizer canvas{
  display:block;
  width:100%;
  height:100%;
}
.audio-player .recorder-status-line{
  position:relative;
  z-index:2;
  width:100%;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  gap:10px;
}
.audio-player .recorder-status-line .bpm-indicator-wrap{
  grid-column:1;
  justify-self:start;
}
.audio-player .recorder-status-line .recorder-status-pill--state{
  grid-column:2;
  justify-self:center;
}
.audio-player .recorder-status-line .recorder-status-pill--countdown{
  grid-column:3;
  justify-self:end;
}
.audio-player .bpm-indicator-wrap{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.audio-player .recorder-bpm-indicator{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:64px;
  min-height:30px;
  padding:0 10px;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:color-mix(in srgb, var(--vrch-content-white) 4%, transparent);
  color:var(--text);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  letter-spacing:var(--vrch-type-tracking);
  line-height:var(--vrch-type-line);
  cursor:pointer;
  transform:translateY(0);
  transition:transform .04s ease, background .08s ease, border-color .08s ease, color .08s ease;
}
.audio-player .recorder-bpm-indicator:hover{
  border-color:var(--vrch-line-strong);
  background:var(--vrch-surface-3);
}
.audio-player .recorder-bpm-indicator:active,
.audio-player .recorder-bpm-indicator.active{
  transform:translateY(1px);
}
.audio-player .recorder-bpm-indicator.active{
  border-color:var(--vrch-theme-border);
  background:var(--vrch-theme-selection);
}
.audio-player .recorder-bpm-indicator.hidden{
  display:none;
}
.audio-player .bpm-sync-btn{
  width:30px;
  height:30px;
  padding:0;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:color-mix(in srgb, var(--vrch-content-white) 4%, transparent);
  color:var(--muted);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transform:translateY(0);
  transition:transform .04s ease, background .08s ease, border-color .08s ease, color .08s ease;
}
.audio-player .bpm-sync-btn:hover{
  border-color:var(--vrch-line-strong);
  background:var(--vrch-surface-3);
  color:var(--text);
}
.audio-player .bpm-sync-btn:active{
  transform:translateY(1px);
}
.audio-player .bpm-sync-btn.active{
  border-color:var(--vrch-theme-border);
  background:var(--vrch-theme-selection);
  color:var(--vrch-selection-foreground);
}
.audio-player .bpm-popover{
  position:absolute;
  left:0;
  top:calc(100% + 8px);
  width:244px;
  padding:12px;
  border:1px solid var(--border2);
  border-radius:var(--r2);
  background:var(--vrch-surface-0);
  box-shadow:0 12px 28px color-mix(in srgb, var(--vrch-content-black) 42%, transparent);
  z-index:8;
}
.audio-player .volume-popover-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  color:var(--muted);
}
.audio-player .volume-popover-value{
  color:var(--text);
}
.audio-player .bpm-popover input[type="range"]{
  width:100%;
  margin:0 0 10px;
}
.audio-player .bpm-popover input[type="range"]:last-of-type{
  margin-bottom:0;
}
.audio-player .audio-player-panel{
  position:relative;
  z-index:2;
  width:100%;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.audio-player .player-progress{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:45px;
  margin:0;
}
.audio-player .player-progress span{
  min-width:44px;
  text-align:center;
  color:var(--vrch-text-secondary);
  font-variant-numeric:tabular-nums;
}
.audio-player .player-progress input[type="range"]{
  flex:1 1 auto;
  min-width:140px;
  margin:0;
}
.audio-player .player-progress-actions{
  position:relative;
  display:flex;
  align-items:center;
  gap:6px;
  flex:0 0 auto;
}
.audio-player .player-progress-btn{
  width:40px;
  min-width:40px;
  height:40px;
  padding:0;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:var(--surface-2);
  color:var(--muted);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:transform .04s ease, background .08s ease, border-color .08s ease, color .08s ease;
}
.audio-player .player-progress-btn:hover{
  background:var(--vrch-surface-hover);
  color:var(--vrch-content-white);
  border-color:var(--vrch-line-strong);
}
.audio-player .player-progress-btn:disabled{
  cursor:not-allowed;
  opacity:.45;
}
.audio-player .player-progress-btn:disabled:hover{
  background:var(--surface-2);
  color:var(--muted);
  border-color:var(--border);
}
.audio-player .player-progress-btn:active{
  transform:translateY(1px);
}
.audio-player .player-progress-btn.active{
  background:var(--vrch-theme-selection);
  color:var(--vrch-selection-foreground);
  border-color:var(--vrch-theme-border);
}
.audio-player .audio-player__mute-toggle.active{
  background:var(--vrch-warning-surface);
  border-color:var(--vrch-warning-border);
  color:var(--vrch-warning-text);
}
.audio-player .volume-popover{
  position:absolute;
  right:0;
  bottom:48px;
  width:244px;
  padding:12px;
  border:1px solid var(--border2);
  border-radius:var(--r2);
  background:var(--vrch-surface-0);
  box-shadow:0 12px 28px color-mix(in srgb, var(--vrch-content-black) 42%, transparent);
  z-index:8;
}
.audio-player .volume-popover-section{
  margin-top:10px;
  padding-top:8px;
  border-top:1px solid var(--vrch-surface-3);
  display:flex;
  flex-direction:column;
  gap:6px;
}
.audio-player .volume-popover-section .volume-popover-row{
  margin-bottom:4px;
  gap:8px;
}
.audio-player .audio-player__popover-switch{
  flex:0 0 auto;
}
.audio-player .audio-player-library{
  width:100%;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.audio-player .library-panel{
  width:100%;
  position:relative;
}
.audio-player .library-head{
  width:100%;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.audio-player .library-head-left{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  flex:1 1 auto;
}
.audio-player .library-title{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--text);
}
.audio-player .library-head-left .config-section-toggle-btn i{
  transition:transform .2s ease;
}
.audio-player .library-head-left .config-section-toggle-btn i.collapsed{
  transform:rotate(-90deg);
}
.audio-player .library-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
}
.audio-player .library-actions .ui-runtime-chip--action{
  min-width:auto;
  padding:0 12px;
  gap:6px;
}
.audio-player .library-collapsed-row{
  position:relative;
  width:100%;
  min-height:56px;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:var(--vrch-toggle-row-surface);
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--vrch-text-secondary);
  font-family:var(--vrch-font-control);
  font-size:var(--vrch-type-size);
  box-sizing:border-box;
}
.audio-player .library-collapsed-row[aria-hidden="true"]{
  display:none;
}
.audio-player .library-collapsed-prefix{
  opacity:.75;
  flex:0 0 auto;
}
.audio-player .library-collapsed-title{
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.audio-player .library-collapsed-time{
  opacity:.75;
  flex:0 0 auto;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.audio-player .library-collapsed-state{
  opacity:.75;
  flex:0 0 auto;
}
.audio-player .library-collapsed-hint{
  width:100%;
  text-align:center;
  opacity:.75;
}
.audio-player .library-collapsed-row.dragover{
  background:var(--vrch-surface-2);
}
.audio-player .library-collapsed-row.dragover::after,
.audio-player .library-panel.dragover::after{
  content:"";
  position:absolute;
  inset:0;
  border:2px dashed color-mix(in srgb, var(--vrch-content-white) 22%, transparent);
  border-radius:var(--r2);
  pointer-events:none;
}
.audio-player .library-collapsed-row .track-badge{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  padding:1px 8px;
  border-radius:var(--r2);
  border:1px solid var(--border);
  background:var(--vrch-surface-3);
  color:var(--vrch-text-secondary);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
}
.audio-player .playlist{
  list-style:none;
  margin:0;
  padding:0;
  min-height:100px;
  max-height:300px;
  overflow-y:auto;
  overflow-x:hidden;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:var(--vrch-toggle-row-surface);
}
.audio-player .playlist-item{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:40px;
  padding:8px 10px 6px 4px;
  border-bottom:1px solid color-mix(in srgb, var(--vrch-content-white) 6%, transparent);
  margin:0;
  font-family:var(--vrch-font-control);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
  cursor:pointer;
}
.audio-player .playlist-item:last-child{
  border-bottom:none;
}
.audio-player .playlist-item.active{
  background:var(--vrch-theme-selection);
  box-shadow:none;
}
.audio-player .playlist-item.is-disabled .track-main,
.audio-player .playlist-item.is-disabled .track-index{
  opacity:.62;
}
.audio-player .playlist-item.drop-before{
  box-shadow:inset 0 2px 0 color-mix(in srgb, var(--vrch-content-white) 30%, transparent);
}
.audio-player .playlist-item.drop-after{
  box-shadow:inset 0 -2px 0 color-mix(in srgb, var(--vrch-content-white) 30%, transparent);
}
.audio-player .playlist-item.dragging{
  opacity:.28;
}
.audio-player .playlist-item.is-disabled.active{
  background:color-mix(in srgb, var(--vrch-theme-selection) 55%, var(--vrch-surface-1));
  box-shadow:none;
}
.audio-player .playlist-item.active .track-name{
  color:var(--vrch-selection-foreground);
}
.audio-player .playlist-item.active .track-badge--duration{
  color:var(--vrch-status-accent-text);
}
.audio-player .playlist .track-index{
  flex:0 0 auto;
  width:32px;
  margin-left:-8px;
  text-align:center;
  font-family:var(--vrch-font-control);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  color:var(--vrch-text-secondary);
  font-variant-numeric:tabular-nums;
}
.audio-player .playlist .track-main{
  flex:1 1 auto;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.audio-player .playlist .track-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  margin-left:auto;
}
.audio-player .playlist .track-top{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.audio-player .playlist .track-name{
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--text);
  font-size:var(--vrch-type-size);
}
.audio-player .playlist .track-badge--duration{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  min-width:48px;
  padding:0;
  border:none;
  background:transparent;
  color:var(--vrch-text-secondary);
  font-family:var(--vrch-font-control);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  letter-spacing:var(--vrch-type-tracking);
  text-align:right;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.audio-player .playlist .track-meta{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  opacity:.9;
}
.audio-player .playlist .track-badge{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  padding:1px 8px;
  border-radius:var(--r2);
  border:1px solid var(--border);
  background:var(--vrch-surface-3);
  color:var(--vrch-text-secondary);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.audio-player .playlist-empty{
  height:100px;
  padding:0 14px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  opacity:.75;
  cursor:default;
}
.audio-player .track-drag-handle{
  width:32px;
  height:44px;
  border:none;
  background:transparent;
  color:var(--vrch-text);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:grab;
  flex:0 0 auto;
  opacity:.78;
  user-select:none;
  transition:opacity .15s ease, transform .15s ease;
}
.audio-player .track-drag-handle:hover{
  opacity:1;
}
.audio-player .track-drag-handle:active{
  cursor:grabbing;
  transform:translateY(1px);
}
.audio-player .playlist-item.is-disabled .track-drag-handle{
  opacity:.18;
  cursor:not-allowed;
  pointer-events:none;
}
.audio-player .track-enabled-btn{
  position:relative;
  width:40px;
  height:40px;
  border:1px solid var(--vrch-line);
  border-radius:var(--r2);
  background:var(--vrch-surface-hover);
  color:var(--vrch-text-secondary);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  flex:0 0 auto;
  transition:background .08s ease, color .08s ease, border-color .08s ease, transform .04s ease;
}
.audio-player .track-enabled-btn::before{
  content:"";
  position:absolute;
  top:4px;
  left:4px;
  width:5px;
  height:5px;
  border-radius:2px;
  background:var(--vrch-line-strong);
  opacity:.6;
  transition:background .08s ease, transform .08s ease, opacity .08s ease;
}
.audio-player .track-enabled-btn:hover{
  background:var(--vrch-surface-hover);
  color:var(--vrch-content-white);
  border-color:var(--vrch-line-strong);
}
.audio-player .track-enabled-btn:active{
  transform:translateY(1px);
}
.audio-player .track-enabled-btn.is-enabled::before{
  background:var(--vrch-theme-action);
  opacity:1;
  transform:scale(1.15);
}
.audio-player .playlist-item.is-disabled .track-enabled-btn{
  background:var(--vrch-surface-hover);
  border-color:var(--vrch-line);
  color:var(--vrch-text-muted);
}
.audio-player .track-remove-btn{
  width:40px;
  height:40px;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:var(--vrch-surface-2);
  color:var(--vrch-text);
  font-size:18px;
  font-weight:700;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  flex:0 0 auto;
  transition:background .08s ease, transform .04s ease;
}
.audio-player .track-remove-btn:hover{
  background:var(--vrch-surface-hover);
}
.audio-player .track-remove-btn:active{
  transform:translateY(1px);
}
.audio-player .track-remove-btn:disabled{
  opacity:.22;
  cursor:not-allowed;
}
.audio-player .audio-player__media{
  display:none;
}
@media (min-width: 641px){
  .audio-player .audio-player-visualizer-wrapper{
    min-height:360px;
  }
}
@media (max-width: 640px){
  .audio-player .player-progress{
    max-width:100%;
  }
  .audio-player .audio-player-runtime-controls{
    width:100%;
    max-width:none;
  }
  .audio-player .playlist{
    height:240px;
  }
  .audio-player .library-actions .ui-runtime-chip--action span{
    display:none;
  }
  .audio-player .library-actions .ui-runtime-chip--action{
    min-width:44px;
    width:44px;
    padding:0;
    gap:0;
  }
}
@media (max-width: 520px){
  .audio-player .recorder-status-line{
    grid-template-columns:minmax(0, 1fr) auto;
    align-items:start;
    justify-items:stretch;
  }
  .audio-player .recorder-status-line .bpm-indicator-wrap{
    grid-column:1;
    justify-self:start;
  }
  .audio-player .recorder-status-line .recorder-status-pill--state{
    display:none;
  }
  .audio-player .recorder-status-line .recorder-status-pill--countdown{
    grid-column:2;
    justify-self:end;
  }
  .audio-player .player-progress{
    flex-wrap:nowrap;
    gap:6px;
  }
  .audio-player .player-progress span{
    min-width:36px;
    font-size:var(--vrch-type-size);
  }
  .audio-player .player-progress input[type="range"]{
    min-width:0;
  }
  .audio-player .player-progress-actions{
    gap:4px;
  }
  .audio-player .player-progress-btn{
    width:36px;
    min-width:36px;
    height:36px;
  }
}
@media (max-width: 480px){
  .audio-player .audio-player-stack,
  .audio-player .audio-player-runtime-controls,
  .audio-player .ui-runtime-control-actions{
    min-width:0;
  }
  .audio-player .ui-runtime-control-actions{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:4px;
  }
  .audio-player .audio-player__transport-action--play{ grid-column:1; grid-row:1; }
  .audio-player .audio-player__transport-action--previous{ grid-column:2; grid-row:1; }
  .audio-player .audio-player__transport-action--next{ grid-column:3; grid-row:1; }
  .audio-player .ui-loop-mode-toggle{ grid-column:4; grid-row:1; }
  .audio-player .audio-player__auto-play-toggle{ grid-column:4; grid-row:2; }
  .audio-player .ui-play-mode-mount{
    display:block;
    grid-column:1 / -1;
    grid-row:2;
    min-width:0;
    width:100%;
  }
  .audio-player .ui-runtime-control-actions .ui-play-mode-group{
    display:grid;
    grid-column:1 / 4;
    grid-row:2;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    width:100%;
    min-width:0;
    max-width:none;
    flex:none;
  }
  .audio-player .ui-runtime-control-actions .ui-play-mode-option.ui-runtime-control-btn{
    width:auto;
    min-width:0;
    max-width:none;
    flex:none;
  }
}
.midi-sender-shell{
  gap:14px;
}
.midi-sender-page .ui-runtime-log-wrap{
  width:100%;
  margin-top:8px;
}
.midi-sender-page .midi-panel{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.midi-sender-page .midi-status-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.midi-sender-page .midi-status-left{
  display:flex;
  align-items:center;
  gap:12px;
  flex:1 1 auto;
  flex-wrap:wrap;
}
.midi-sender-page .midi-status-right{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
}
.midi-sender-page .midi-assign-label{
  color:var(--muted);
  text-transform:uppercase;
}
.midi-sender-page .midi-assign-toggle{
  flex:0 0 auto;
}
.midi-sender-page .midi-assign-status{
  font-size:var(--vrch-type-size);
  color:var(--vrch-warning);
}
.midi-sender-page .midi-assign-status.hidden{
  display:none;
}
.sender-page .source-guard{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:8px 10px;
  border:1px solid var(--vrch-line);
  border-radius:var(--r2);
  background:var(--vrch-surface-1);
}
.sender-page .source-guard.hidden{
  display:none;
}
.sender-page .source-guard[data-role="standby"]{
  border-color:var(--vrch-warning-border);
}
.sender-page .source-guard[data-role="secondary"]{
  border-color:var(--vrch-theme-border);
}
.sender-page .source-guard[data-role="conflict"]{
  border-color:var(--vrch-danger-border);
}
.sender-page .source-guard__row{
  display:flex;
  align-items:center;
  gap:10px;
}
.sender-page .source-guard__row > i{
  flex:0 0 auto;
  color:var(--vrch-warning);
  font-size:14px;
}
.sender-page .source-guard[data-role="conflict"] .source-guard__row > i{
  color:var(--vrch-danger);
}
.sender-page .source-guard[data-role="secondary"] .source-guard__row > i{
  color:var(--vrch-accent-text);
}
.sender-page .source-guard__copy{
  min-width:0;
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.sender-page .source-guard__message{
  color:var(--vrch-text-secondary);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
}
.sender-page .source-guard__actions{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
}
.sender-page .source-guard__actions .ui-btn--sm{
  min-width:82px;
  height:var(--vrch-source-guard-button-height, 30px);
  padding:0 10px;
}
.sender-page .source-guard__actions .hidden{
  display:none;
}
.midi-sender-page .midi-source-debug-log{
  margin:0 0 8px;
  max-height:150px;
}
.midi-sender-page .midi-toolbar-permission-btn .btn-label{
  display:inline;
}
.midi-sender-page .midi-device-chips > .ui-runtime-chip{
  width:auto;
}
.midi-sender-page .midi-controls{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.midi-sender-page .config-section{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:0;
  border:none;
  border-radius:0;
  background:transparent;
}
.midi-sender-page .config-section-header{
  display:flex;
  align-items:center;
  gap:10px;
}
.midi-sender-page .config-section-title{
  color:var(--text);
  text-transform:uppercase;
}
.midi-sender-page .config-section-body{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.midi-sender-page .config-section.collapsed .config-section-body{
  display:none;
}
.midi-sender-page .config-section-header i.collapsed{
  transform:rotate(-90deg);
}
.midi-sender-page .midi-preset-toolbar{
  gap:8px;
  margin-top:2px;
}
.midi-sender-page .midi-preset-toolbar > .ui-runtime-icon-btn{
  width:40px;
  height:40px;
}
.midi-sender-page .midi-presets-section .ui-grid-btn-group .ui-grid-btn i,
.midi-sender-page .midi-preset-toolbar > .ui-runtime-icon-btn i{
  font-size:16px;
}
.midi-sender-page .midi-control-section{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.midi-sender-page .midi-control-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(86px, 1fr));
  gap:12px;
}
.midi-sender-page .midi-control-grid--xy{
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
}
.midi-sender-page .midi-control-cell{
  position:relative;
  overflow:visible;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  padding:6px 6px 4px;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:var(--surface-3);
}
.midi-sender-page .midi-control-cell--xy{
  --xy-axis-size:24px;
  --xy-cell-padding:5px;
  align-items:stretch;
  padding:var(--xy-cell-padding) calc(var(--xy-cell-padding) + var(--xy-axis-size)) 4px var(--xy-cell-padding);
}
.midi-sender-page .midi-control-cell--flat{
  padding:0;
  border:none;
  background:transparent;
}
.midi-sender-page .midi-control-label{
  min-height:14px;
  margin-top:2px;
  color:var(--vrch-text-secondary);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  text-align:center;
  white-space:nowrap;
}
.midi-sender-page .midi-control-value{
  min-height:14px;
  color:var(--vrch-text-secondary);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
}
.midi-sender-page .ui-reset-btn{
  margin-top:2px;
}
.midi-sender-page .midi-xy-layout{
  display:grid;
  grid-template-columns:var(--xy-axis-size) 1fr;
  grid-template-rows:1fr var(--xy-axis-size);
  width:100%;
  gap:0;
  align-items:stretch;
}
.midi-sender-page .midi-xy-pad{
  position:relative;
  grid-column:2 / 3;
  grid-row:1 / 2;
  z-index:1;
  width:100%;
  aspect-ratio:1 / 1;
  border:1px solid var(--vrch-line);
  background-color:var(--vrch-bg);
  border-radius:0;
  overflow:hidden;
  cursor:crosshair;
  touch-action:none;
}
.midi-sender-page .midi-xy-pad::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:var(--xy-grid-background, none);
  background-repeat:no-repeat;
}
.midi-sender-page .midi-xy-guide{
  position:absolute;
  pointer-events:none;
  background:color-mix(in srgb, var(--vrch-theme-action) 50%, transparent);
}
.midi-sender-page .midi-xy-guide--x{
  top:0;
  bottom:0;
  width:2px;
}
.midi-sender-page .midi-xy-guide--y{
  left:0;
  right:0;
  height:2px;
}
.midi-sender-page .midi-xy-indicator{
  position:absolute;
  left:50%;
  top:50%;
  z-index:3;
  width:18px;
  height:18px;
  border-radius:2px;
  border:0;
  background:var(--vrch-theme-action);
  transform:translate(-50%, -50%);
  pointer-events:none;
}
.midi-sender-page .midi-xy-trail{
  position:absolute;
  width:14px;
  height:14px;
  border-radius:2px;
  background:var(--vrch-accent-text);
  transform:translate(-50%, -50%);
  pointer-events:none;
  animation:midiXYTrailFade .45s ease-out forwards;
}
.midi-sender-page .midi-xy-axis-label{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  box-sizing:border-box;
  padding:0 6px;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--vrch-text-secondary);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
  text-align:center;
  white-space:nowrap;
  user-select:none;
  cursor:pointer;
}
.midi-sender-page .midi-xy-axis-wrap{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
}
.midi-sender-page .midi-xy-axis-label-text{
  font-size:var(--vrch-type-size);
  color:var(--vrch-text-secondary);
  text-align:center;
}
.midi-sender-page .midi-xy-axis-badge{
  padding:1px 6px;
  border:1px solid var(--vrch-surface-3);
  border-radius:var(--r2);
  background:var(--vrch-surface-pressed);
  color:var(--vrch-text-secondary);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
  white-space:nowrap;
  text-align:center;
}
.midi-sender-page .midi-xy-axis-label--y .midi-xy-axis-badge{
  padding:6px 1px;
}
.midi-sender-page .midi-xy-axis-label--x{
  grid-column:2 / 3;
  grid-row:2 / 3;
  transform:translateY(1px);
}
.midi-sender-page .midi-xy-axis-label--y{
  grid-column:1 / 2;
  grid-row:1 / 2;
  writing-mode:vertical-rl;
  text-orientation:mixed;
  transform:rotate(180deg) translateX(1px);
  transform-origin:center;
}
.midi-sender-page .midi-assign-hint .midi-xy-axis-label--x,
.midi-sender-page .midi-assign-hint .midi-xy-axis-label--y{
  box-shadow:0 0 0 1px color-mix(in srgb, var(--vrch-midi-learn) 35%, transparent);
}
.midi-sender-page .midi-knob{
  position:relative;
  width:72px;
  height:72px;
  display:flex;
  align-items:center;
  justify-content:center;
  touch-action:none;
}
.midi-sender-page .midi-knob-dial{
  position:relative;
  z-index:1;
  width:64px;
  height:64px;
  border:1px solid var(--vrch-line-strong);
  border-radius:50%;
  background:var(--surface-3);
  box-shadow:none;
}
.midi-sender-page .midi-knob-indicator{
  position:absolute;
  top:10px;
  left:50%;
  width:4px;
  height:22px;
  border-radius:2px;
  background:var(--vrch-theme-action);
  transform:translateX(-50%) rotate(var(--knob-angle, -135deg));
  transform-origin:50% 22px;
  box-shadow:none;
}
.midi-sender-page .midi-knob-ticks{
  position:absolute;
  top:0;
  left:0;
  z-index:2;
  width:72px;
  height:72px;
  pointer-events:none;
}
.midi-sender-page .midi-knob-tick{
  position:absolute;
  top:calc(50% - 2px);
  left:calc(50% - 2px);
  width:6px;
  height:1px;
  border-radius:2px;
  background:var(--vrch-line);
  opacity:.5;
  transform:translate(-50%, -50%) rotate(var(--tick-angle)) translate(0, -33px) rotate(90deg);
  transform-origin:center;
}
.midi-sender-page .midi-knob-tick--major{
  width:12px;
  height:2px;
}
.midi-sender-page .midi-knob-tick.is-active{
  background:var(--vrch-accent-text);
  opacity:1;
  box-shadow:none;
}
.midi-sender-page .midi-pad,
.midi-sender-page .midi-toggle{
  position:relative;
  overflow:hidden;
  touch-action:none;
}
.midi-sender-page .midi-btn-label{
  pointer-events:none;
}
.midi-sender-page .midi-pad.is-active{
  background:var(--vrch-theme-selection);
  border-color:var(--vrch-theme-border);
  box-shadow:none;
}
.midi-sender-page .midi-pad.is-active:hover{
  background:var(--vrch-theme-wine);
  border-color:var(--vrch-theme-action);
  box-shadow:none;
}
.midi-sender-page .midi-bind-btn{
  position:absolute;
  top:-3px;
  right:-3px;
  z-index:2;
  opacity:0;
  pointer-events:none;
  min-height:18px;
  min-width:30px;
  height:18px;
  padding:0 6px;
  border:0;
  background:transparent;
  font-size:7px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  overflow:visible;
}
.midi-sender-page .midi-bind-btn::before{
  content:"";
  position:absolute;
  inset:4px;
  border:1px solid var(--vrch-theme-border);
  border-radius:var(--r2);
  background:var(--vrch-theme-selection);
  z-index:-1;
}
.midi-sender-page .midi-control-cell--xy .midi-bind-btn{
  right:-3px;
}
.midi-sender-page .midi-bind-btn i{
  display:none;
}
.midi-sender-page .midi-bind-btn.is-visible,
.midi-sender-page .midi-control-cell.is-bound .midi-bind-btn,
.midi-sender-page .midi-toggle.is-bound .midi-bind-btn,
.midi-sender-page .midi-pad.is-bound .midi-bind-btn{
  opacity:1;
  pointer-events:auto;
  color:var(--text);
}
.midi-sender-page .midi-toggle .midi-bind-btn,
.midi-sender-page .midi-pad .midi-bind-btn{
  min-height:16px;
  top:-3px;
  right:-3px;
  height:16px;
  min-width:24px;
  padding:0 4px;
  font-size:6px;
}
.midi-sender-page .midi-toggle .midi-bind-btn::before,
.midi-sender-page .midi-pad .midi-bind-btn::before{
  inset:3px;
}
.midi-sender-page .midi-assigning{
  box-shadow:0 0 0 2px color-mix(in srgb, var(--vrch-midi-learn) 90%, transparent), 0 0 12px color-mix(in srgb, var(--vrch-midi-learn) 45%, transparent);
  animation:midiAssignPulse 1s ease-in-out infinite;
}
.midi-sender-page .midi-dialog-row{
  margin:2px 0;
}
.midi-sender-page .midi-dialog-row.ui-settings-row--split{
  gap:10px;
}
.midi-sender-page .midi-dialog-row.ui-settings-row--split > .ui-settings-label{
  width:120px;
  min-width:120px;
}
.midi-sender-page .midi-dialog-row.ui-settings-row--split > .ui-settings-control{
  justify-content:flex-start;
  gap:8px;
}
.midi-sender-page .midi-dialog-row.ui-toggle-row{
  min-height:38px;
  padding:0 10px;
}
.midi-sender-page .midi-dialog-row.ui-toggle-row .ui-toggle-row__text{
  font-size:var(--vrch-type-size);
}
.midi-sender-page .midi-dialog-value{
  color:var(--vrch-text-secondary);
  font-size:var(--vrch-type-size);
}
.midi-sender-page .midi-dialog-edit{
  display:block;
  width:100%;
}
.midi-sender-page .midi-dialog-row .ui-input{
  min-height:36px;
}
.midi-sender-page .midi-dialog-control-inline{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  width:100%;
}
.midi-sender-page .midi-dialog-control-inline > .ui-btn--sm{
  width:auto;
  min-width:52px;
  height:25px;
  padding:2px 10px;
  margin-left:8px;
}
.midi-sender__dialog-body{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.midi-sender-page .midi-dialog-actions{
  justify-content:flex-end;
}
.midi-sender-page .midi-sender__dialog .ui-btn--md{
  min-width:128px;
}
.midi-sender-page .midi-permission-dialog .ui-btn--md{
  min-width:0;
}
.midi-sender-page .midi-sender__dialog .ui-input-row .ui-input{
  width:100%;
}
.midi-sender-page .midi-sender__dialog .ui-dialog__note{
  margin:0;
  font-family:var(--vrch-font-readable);
  font-weight:var(--vrch-type-weight);
  line-height:var(--vrch-type-copy-line);
  letter-spacing:var(--vrch-type-tracking);
}
.midi-sender-page .midi-sender__dialog .ui-dialog__title{
  text-transform:none;
}
@keyframes midiXYTrailFade{
  0%{ opacity:.55; transform:translate(-50%, -50%) scale(1); }
  60%{ opacity:.5; transform:translate(-50%, -50%) scale(.95); }
  85%{ opacity:.18; transform:translate(-50%, -50%) scale(.45); }
  100%{ opacity:0; transform:translate(-50%, -50%) scale(.2); }
}
@keyframes midiAssignPulse{
  0%{ box-shadow:0 0 0 2px color-mix(in srgb, var(--vrch-midi-learn) 90%, transparent), 0 0 8px color-mix(in srgb, var(--vrch-midi-learn) 30%, transparent); }
  50%{ box-shadow:0 0 0 2px color-mix(in srgb, var(--vrch-midi-learn) 90%, transparent), 0 0 14px color-mix(in srgb, var(--vrch-midi-learn) 60%, transparent); }
  100%{ box-shadow:0 0 0 2px color-mix(in srgb, var(--vrch-midi-learn) 90%, transparent), 0 0 8px color-mix(in srgb, var(--vrch-midi-learn) 30%, transparent); }
}
@media (max-width: 820px) and (min-width: 641px){
  .midi-sender-page .midi-control-grid{
    grid-template-columns:repeat(8, minmax(0, 1fr));
    gap:8px;
  }
  .midi-sender-page .midi-control-grid--knob{
    grid-template-columns:repeat(4, minmax(0, 1fr));
  }
  .midi-sender-page .midi-control-grid--xy{
    grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
    justify-items:start;
  }
  .midi-sender-page .midi-control-cell--xy{
    max-width:300px;
    width:100%;
  }
  .midi-sender-page .midi-xy-pad{
    max-width:250px;
    max-height:250px;
    margin:0 auto;
  }
  .midi-sender-page .midi-control-cell{
    padding:6px;
    gap:4px;
  }
  .midi-sender-page .midi-knob{
    width:60px;
    height:60px;
  }
  .midi-sender-page .midi-knob-dial{
    width:54px;
    height:54px;
  }
  .midi-sender-page .midi-knob-ticks{
    width:60px;
    height:60px;
  }
  .midi-sender-page .midi-knob-tick{
    transform:translate(-50%, -50%) rotate(var(--tick-angle)) translate(0, -28px) rotate(90deg);
  }
  .midi-sender-page .ui-range-wrap--vertical{
    --ui-range-vertical-length:140px;
    width:28px;
  }
}
@media (max-width: 640px){
  .gamepad-sender-page .ui-runtime-toolbar,
  .midi-sender-page .ui-runtime-toolbar,
  .gyro-controls.ui-sender-toolbar{
    padding:0;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:10px;
  }
  .gamepad-sender-page .ui-runtime-toolbar__left,
  .gamepad-sender-page .ui-runtime-toolbar__center,
  .gamepad-sender-page .ui-runtime-toolbar__right,
  .midi-sender-page .ui-runtime-toolbar__left,
  .midi-sender-page .ui-runtime-toolbar__center,
  .midi-sender-page .ui-runtime-toolbar__right,
  .gyro-controls.ui-sender-toolbar .ui-runtime-toolbar__left,
  .gyro-controls.ui-sender-toolbar .ui-runtime-toolbar__center,
  .gyro-controls.ui-sender-toolbar .ui-runtime-toolbar__right{
    justify-self:auto;
    width:100%;
  }
  .gyro-controls .gyro-send-toggle{
    width:100%;
    min-width:0;
  }
  .gamepad-index-toolbar,
  .midi-device-toolbar{
    flex-wrap:wrap;
  }
  .midi-sender-page .midi-control-grid{
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:10px;
  }
  .midi-sender-page .midi-control-grid--xy{
    grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
    justify-items:start;
  }
  .midi-sender-page .midi-control-cell--xy{
    max-width:300px;
    width:100%;
  }
  .midi-sender-page .midi-xy-pad{
    max-width:250px;
    max-height:250px;
    margin:0 auto;
  }
  .midi-sender-page .midi-toolbar-permission-btn .btn-label{
    display:none;
  }
  .midi-sender-page .midi-toolbar-permission-btn{
    min-width:40px;
    padding:0 10px;
    gap:0;
  }
}
@media (max-width: 480px){
  .sender-page .source-guard__row{
    align-items:center;
    flex-wrap:wrap;
  }
  .sender-page .source-guard__copy{
    flex:1 1 calc(100% - 28px);
  }
  .sender-page .source-guard__actions{
    width:100%;
    justify-content:flex-start;
  }
  .sender-page .source-guard__actions .ui-btn--sm{
    flex:1 1 0;
    min-width:0;
  }
  .image-websocket-sender-page .tab-label{
    display:none;
  }
}
.image-settings-sender-page .image-settings-sender__audio-toggle{
  margin-bottom:10px;
}
.image-settings-sender-page .image-settings-toggle-grid .ui-grid-btn{
  min-width:72px;
  height:72px;
}
.image-settings-sender-page .custom-shader-reload-btn{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.image-settings-sender-page .custom-shader-reload-btn i{
  position:relative;
  z-index:2;
}
.image-settings-sender-page .custom-shader-reload-btn::before{
  content:"";
  position:absolute;
  inset:3px;
  border-radius:7px;
  background:radial-gradient(circle at center, color-mix(in srgb, var(--vrch-theme-action) 34%, transparent), transparent);
  opacity:0;
  transition:opacity .16s ease;
  pointer-events:none;
  z-index:0;
}
.image-settings-sender-page .custom-shader-reload-btn::after{
  content:"";
  position:absolute;
  inset:2px;
  border-radius:7px;
  background:conic-gradient(
    from 0deg,
    color-mix(in srgb, var(--vrch-theme-action) 20%, transparent) calc((1 - var(--reload-cooldown-progress, 0)) * 1turn),
    color-mix(in srgb, var(--vrch-theme-action) 96%, transparent) 0turn
  );
  opacity:0;
  transition:opacity .16s ease;
  pointer-events:none;
  z-index:1;
}
.image-settings-sender-page .custom-shader-reload-btn--auto{
  box-shadow:0 0 0 1px color-mix(in srgb, var(--vrch-theme-action) 52%, transparent), 0 0 14px color-mix(in srgb, var(--vrch-theme-action) 30%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--vrch-content-white) 8%, transparent);
}
.image-settings-sender-page .custom-shader-reload-btn--auto::before,
.image-settings-sender-page .custom-shader-reload-btn--auto::after{
  opacity:1;
}
.image-settings-sender-page .custom-shader-reload-btn--idle::after{
  background:conic-gradient(
    from 0deg,
    color-mix(in srgb, var(--vrch-text-secondary) 14%, transparent) calc((1 - var(--reload-cooldown-progress, 0)) * 1turn),
    color-mix(in srgb, var(--vrch-text-secondary) 75%, transparent) 0turn
  );
}
.image-settings-sender-page .custom-shader-reload-btn--cast{
  animation:custom-shader-reload-cast .24s ease-out;
}
@keyframes custom-shader-reload-cast{
  0%{ transform:translateY(0) scale(1); filter:brightness(1); }
  45%{ transform:translateY(1px) scale(.94); filter:brightness(1.22); }
  100%{ transform:translateY(0) scale(1); filter:brightness(1); }
}
.image-settings-sender-page .filters-wrap{
  width:100%;
  max-width:980px;
  min-width:0;
  margin:8px 0 0;
  container-name:filter-adjustments;
  container-type:inline-size;
}
.image-settings-sender-page .filter-sliders-grid{
  display:grid;
  grid-template-columns:repeat(8, minmax(0, 1fr));
  gap:10px;
  width:100%;
  box-sizing:border-box;
}
.image-settings-sender-page .filter-card{
  display:grid;
  grid-template-rows:minmax(20px, auto) auto 20px 30px;
  justify-items:center;
  align-items:center;
  row-gap:6px;
  min-width:0;
  padding:10px 8px;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:var(--surface-3);
  box-sizing:border-box;
  touch-action:none;
  overscroll-behavior:contain;
  transition:border-color .08s ease, background .08s ease, transform .04s ease;
}
.image-settings-sender-page .filter-card.held{
  border-color:var(--vrch-theme-border);
  background:var(--vrch-theme-selection);
}
.image-settings-sender-page .filter-card.adjusting{
  border-color:var(--vrch-line-strong);
  background:var(--vrch-surface-3);
}
.image-settings-sender-page .filter-name{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-width:0;
  min-height:20px;
  margin:0;
  color:var(--muted);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  text-align:center;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.image-settings-sender-page .filter-name .filter-index{
  display:inline-block;
  margin-right:6px;
  color:var(--vrch-accent-text);
  font-weight:var(--vrch-type-weight);
}
.image-settings-sender-page .filter-value{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:20px;
  margin:0;
  color:var(--text);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
}










:where(.image-settings-sender-page .filter-card.adjusting) .ui-range.ui-range--vertical::-webkit-slider-thumb{
  background:var(--vrch-content-white);
}
:where(.image-settings-sender-page .filter-card.adjusting) .ui-range.ui-range--vertical::-moz-range-thumb{
  background:var(--vrch-content-white);
}


:where(.image-settings-sender-page .filter-card.adjusting) .ui-range.ui-range--vertical::-webkit-slider-runnable-track{
  background:var(--vrch-range-track-active);
  border-color:var(--vrch-line-strong);
}
:where(.image-settings-sender-page .filter-card.adjusting) .ui-range.ui-range--vertical::-moz-range-track{
  background:var(--vrch-range-track-active);
  border-color:var(--vrch-line-strong);
}

.image-settings-sender-page .image-settings-toolbar{
  margin-top:10px;
}
.image-settings-sender-page .config-section{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:5px;
}
.image-settings-sender-page .config-section:first-of-type{
  margin-top:8px;
}
.image-settings-sender-page .config-section-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:0;
  border:none;
  background:none;
  color:var(--vrch-text-secondary);
  font-size:var(--vrch-type-size);
  letter-spacing:var(--vrch-type-tracking);
  text-transform:uppercase;
  font-weight:var(--vrch-type-strong);
}
.image-settings-sender-page .config-section-title{
  flex:1 1 auto;
  text-align:left;
}
.image-settings-sender-page .config-section-header i{
  transition:transform .2s ease;
}
.image-settings-sender-page .config-section-header i.collapsed{
  transform:rotate(-90deg);
}
.image-settings-sender-page .config-section-body{
  width:100%;
  min-width:0;
  margin-left:0;
  box-sizing:border-box;
  transition:max-height .25s ease, opacity .25s ease;
}
.image-settings-sender-page .config-section.collapsed .config-section-body{
  display:none;
}
.image-settings-sender-page .image-settings-sections{
  display:contents;
}
@container filter-adjustments (max-width: 837px){
  .image-settings-sender-page .filter-sliders-grid{
    grid-template-columns:repeat(4, minmax(96px, 128px));
    justify-content:start;
  }
}
@container filter-adjustments (max-width: 413px){
  .image-settings-sender-page .filter-sliders-grid{
    grid-template-columns:repeat(2, minmax(112px, 160px));
    justify-content:start;
  }
}
.image-settings-sender-page .sub-label{
  display:block;
  margin:10px 0;
  color:var(--vrch-text-secondary);
}
.image-settings-sender-page .bg-control{
  align-self:stretch;
  width:100%;
  margin:0;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:var(--surface-2);
  box-sizing:border-box;
  display:flex;
  gap:10px;
}
.image-settings-sender-page .bg-control-left{
  display:flex;
  flex:0 0 auto;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
}
.image-settings-sender-page .bg-control-hex{
  color:var(--text);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  letter-spacing:var(--vrch-type-tracking);
}
.image-settings-sender-page .bg-control-belt-wrap{
  flex:1 1 auto;
  min-height:92px;
  display:flex;
  align-items:center;
}
.image-settings-sender-page .bg-control-swatch{
  width:34px;
  height:34px;
  border:1px solid var(--vrch-line-strong);
  border-radius:var(--r2);
  background:var(--vrch-media-surface);
  cursor:pointer;
  transition:border-color .12s ease, background .12s ease;
}
.image-settings-sender-page .bg-control-swatch:hover{
  border-color:var(--vrch-line-strong);
}
.image-settings-sender-page .bg-control-swatch:focus-visible{
  outline:none;
  border-color:var(--vrch-text);
}
:is(.image-settings-sender-page, .visual-settings-page) .bg-control-belt{
  position:relative;
  flex:1 1 auto;
  height:92px;
  overflow:visible;
  border:1px solid var(--vrch-line-strong);
  border-radius:var(--r2);
  cursor:pointer;
  touch-action:none;
  background:var(--vrch-color-spectrum);
}
:is(.image-settings-sender-page, .visual-settings-page) .bg-control-belt--compact{
  height:72px;
}
:is(.image-settings-sender-page, .visual-settings-page) .bg-control-belt:focus-visible{
  outline:none;
  border-color:var(--vrch-text);
}
:is(.image-settings-sender-page, .visual-settings-page) .bg-control-indicator{
  position:absolute;
  width:14px;
  height:14px;
  border:2px solid color-mix(in srgb, var(--vrch-content-white) 85%, transparent);
  border-radius:4px;
  background:var(--vrch-content-white);
  box-shadow:0 0 0 2px color-mix(in srgb, var(--vrch-content-black) 45%, transparent), 0 4px 12px color-mix(in srgb, var(--vrch-content-black) 40%, transparent);
  transform:translate(-50%, -50%);
  pointer-events:none;
  transition:transform .15s ease, background .15s ease;
}
:is(.image-settings-sender-page, .visual-settings-page) .bg-control-indicator.hidden{
  display:none;
}
.image-settings-sender-page .bg-control-reset{
  margin-top:0;
  cursor:pointer;
}
.image-settings-sender-page .bg-randomizer{
  margin-top:10px;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:var(--surface-2);
  display:flex;
  flex-direction:column;
  gap:12px;
  touch-action:pan-y;
}
.image-settings-sender-page .bg-randomizer-row{
  display:flex;
  align-items:center;
  gap:16px;
  margin:10px 0;
}
.image-settings-sender-page .bg-randomizer-row--slider{
  touch-action:pan-y;
  overscroll-behavior-x:contain;
}
.image-settings-sender-page .bg-randomizer-label{
  flex:1 1 auto;
  display:flex;
  align-items:center;
  color:var(--vrch-text);
  user-select:none;
}
.image-settings-sender-page .bg-randomizer-speed{
  align-items:center;
  gap:12px;
}
.image-settings-sender-page .bg-randomizer-quick{
  --vrch-size-button-sm:34px;
  gap:10px;
  flex-wrap:wrap;
}
.image-settings-sender-page .bg-randomizer-quick-btn{
  flex:1 1 calc(33.33% - 8px);
}
.image-settings-sender-page .bg-randomizer-quick-factor{
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  text-transform:uppercase;
}
.image-settings-sender-page .bg-randomizer-quick-sep{
  font-weight:var(--vrch-type-weight);
  opacity:.7;
}
.image-settings-sender-page .bg-randomizer-quick-btn--baseline .bg-randomizer-quick-sep{
  display:none;
}
.image-settings-sender-page .bg-randomizer-quick-value{
  display:inline-flex;
  align-items:baseline;
  gap:4px;
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  letter-spacing:var(--vrch-type-tracking);
}
.image-settings-sender-page .bg-randomizer-quick-number{
  display:inline-block;
  width:5ch;
  text-align:right;
  font-variant-numeric:tabular-nums;
}
.image-settings-sender-page .bg-randomizer-slider-wrap{
  position:relative;
  flex:1 1 auto;
  display:flex;
  align-items:center;
}
.image-settings-sender-page .bg-randomizer-slider-wrap input[type="range"]{
  width:100%;
}
.image-settings-sender-page .bg-randomizer-marker{
  position:absolute;
  top:-18px;
  min-width:24px;
  padding:2px 6px;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:var(--surface-0);
  color:var(--muted);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  text-align:center;
  pointer-events:none;
  transform:translate(-50%, -50%);
  box-shadow:none;
  z-index:1;
}
.image-settings-sender-page .bg-randomizer-marker span{
  display:block;
}
.image-settings-sender-page .bg-randomizer-marker.marker-default{
  background:var(--surface-0);
  border-color:var(--vrch-line);
  color:var(--muted);
}
.image-settings-sender-page .bg-randomizer-marker.marker-custom{
  background:var(--vrch-theme-selection);
  border-color:var(--vrch-theme-border);
  color:var(--vrch-accent-text);
}
.image-settings-sender-page .bg-randomizer-marker.is-active{
  border-color:var(--vrch-theme-action);
  background:var(--vrch-theme-wine);
  color:var(--vrch-selection-foreground);
  box-shadow:none;
}
.image-settings-sender-page .bg-randomizer-slider{
  flex:1 1 auto;
  -webkit-appearance:none;
  appearance:none;
  height:18px;
  background:transparent;
  z-index:0;
}
.image-settings-sender-page .bg-randomizer-slider:focus-visible{
  outline:none;
  filter:brightness(1.3);
}
.image-settings-sender-page .bg-randomizer-slider::-webkit-slider-runnable-track{
  height:8px;
  border:1px solid var(--vrch-range-track-border);
  border-radius:var(--r2);
  background:linear-gradient(to right, var(--vrch-theme-action) 0 var(--vrch-range-progress, 0%), var(--vrch-range-track) var(--vrch-range-progress, 0%) 100%);
  box-shadow:inset 0 1px 0 color-mix(in srgb, var(--vrch-content-white) 4%, transparent), inset 0 1px 3px color-mix(in srgb, var(--vrch-content-black) 45%, transparent);
}
.image-settings-sender-page .bg-randomizer-slider::-moz-range-track{
  height:8px;
  border:1px solid var(--vrch-range-track-border);
  border-radius:var(--r2);
  background:linear-gradient(to right, var(--vrch-theme-action) 0 var(--vrch-range-progress, 0%), var(--vrch-range-track) var(--vrch-range-progress, 0%) 100%);
  box-shadow:inset 0 1px 0 color-mix(in srgb, var(--vrch-content-white) 4%, transparent), inset 0 1px 3px color-mix(in srgb, var(--vrch-content-black) 45%, transparent);
}
.image-settings-sender-page .bg-randomizer-slider::-moz-range-progress{
  height:8px;
  border-radius:var(--r2);
  background:var(--vrch-theme-action);
}
.image-settings-sender-page .bg-randomizer-slider::-webkit-slider-thumb{
  -webkit-appearance:none;
  width:22px;
  height:34px;
  margin-top:-14px;
  border:1px solid var(--vrch-surface-pressed);
  border-radius:var(--r2);
  background:var(--vrch-text);
  box-shadow:0 0 0 1px color-mix(in srgb, var(--vrch-content-white) 8%, transparent), 0 3px 8px color-mix(in srgb, var(--vrch-content-black) 50%, transparent);
  cursor:pointer;
  transition:transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.image-settings-sender-page .bg-randomizer-slider:hover::-webkit-slider-thumb{
  background:var(--vrch-content-white);
  box-shadow:0 0 0 1px color-mix(in srgb, var(--vrch-content-white) 14%, transparent), 0 4px 10px color-mix(in srgb, var(--vrch-content-black) 56%, transparent);
  transform:scale(1.04);
}
.image-settings-sender-page .bg-randomizer-slider:active::-webkit-slider-thumb{
  transform:scale(.98);
  background:var(--vrch-content-white);
}
.image-settings-sender-page .bg-randomizer-slider::-moz-range-thumb{
  width:22px;
  height:34px;
  border:1px solid var(--vrch-surface-pressed);
  border-radius:var(--r2);
  background:var(--vrch-text);
  box-shadow:0 0 0 1px color-mix(in srgb, var(--vrch-content-white) 8%, transparent), 0 3px 8px color-mix(in srgb, var(--vrch-content-black) 50%, transparent);
  cursor:pointer;
  transition:transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.image-settings-sender-page .bg-randomizer-slider:hover::-moz-range-thumb{
  background:var(--vrch-content-white);
  box-shadow:0 0 0 1px color-mix(in srgb, var(--vrch-content-white) 14%, transparent), 0 4px 10px color-mix(in srgb, var(--vrch-content-black) 56%, transparent);
  transform:scale(1.04);
}
.image-settings-sender-page .bg-randomizer-slider:active::-moz-range-thumb{
  transform:scale(.98);
  background:var(--vrch-content-white);
}
.image-settings-sender-page .bg-randomizer-info{
  flex:0 0 28ch;
  width:28ch;
  max-width:28ch;
  min-width:28ch;
  color:var(--vrch-text-secondary);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  white-space:nowrap;
  text-align:right;
}
.image-settings-sender-page .bg-randomizer-info-wrap{
  display:flex;
  align-items:center;
  gap:8px;
}
.image-settings-sender-page .bg-randomizer-edit-btn{
  width:46px;
  min-width:46px;
  height:30px;
  min-height:30px;
  padding:0 8px;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:var(--surface-2);
  color:var(--muted);
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  transition:transform .04s ease, background .08s ease, color .08s ease, border-color .08s ease;
}
.image-settings-sender-page .bg-randomizer-edit-btn i{
  font-size:12px;
}
.image-settings-sender-page .bg-randomizer-edit-btn:hover{
  background:var(--vrch-surface-hover);
  color:var(--text);
  border-color:var(--vrch-line-strong);
}
.image-settings-sender-page .bg-randomizer-edit-btn:active{
  transform:translateY(1px);
}
.image-settings-sender-page .bg-randomizer-switch{
  margin-left:0;
}
.image-settings-sender-page .bg-randomizer-label:focus-visible{
  outline:none;
  background-color:var(--vrch-surface-hover);
  color:var(--vrch-text);
}
.image-settings-sender-page .ui-settings-row--split > .ui-settings-control > .ui-input.ui-color-input{
  width:100%;
  min-width:0;
  padding:4px;
}
.image-settings-sender-page .blend-control{
  margin:0;
  padding:10px 12px;
  border:none;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.image-settings-sender-page .blend-mode-pills{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.image-settings-sender__dialog{
  width:min(560px, calc(100vw - 28px));
}
.image-settings-sender__prompt-dialog{
  width:min(420px, calc(100vw - 28px));
}
.image-settings-sender__shader-dialog{
  width:min(760px, calc(100vw - 28px));
}
.image-settings-sender__dialog-body{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.image-settings-sender__dialog-field{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.image-settings-sender__dialog-field > .ui-input{
  width:100%;
}
.image-settings-sender__dialog-textarea{
  min-height:140px;
  resize:vertical;
}
.image-settings-sender__preset-dialog-body > .ui-toggle-row,
.image-settings-sender__preset-dialog-body > .ui-settings-row--split{
  margin:0;
}
.image-settings-sender__dialog-row > .ui-settings-label{
  align-items:flex-start;
  text-align:left;
  gap:4px;
}
.image-settings-sender__dialog-row > .ui-settings-control{
  display:flex;
  justify-content:flex-end;
}
.image-settings-sender__dialog-row > .ui-settings-control > .ui-btn--md{
  width:auto;
}
.image-settings-sender__shader-dialog-body .custom-shader-panel{
  display:flex;
  flex-direction:column;
  gap:10px;
}
@media (max-width: 640px){
  .image-settings-sender-page .bg-control{
    align-items:stretch;
    gap:12px;
    padding:10px 12px;
  }
  .image-settings-sender-page .bg-randomizer{
    gap:12px;
    padding:10px 12px;
  }
  .image-settings-sender-page .bg-randomizer-row{
    flex-wrap:wrap;
    gap:12px;
  }
  .image-settings-sender-page .bg-randomizer-info{
    font-size:var(--vrch-type-size);
  }
  .image-settings-sender-page .bg-control-left{
    align-self:stretch;
    gap:10px;
    min-height:108px;
    justify-content:space-between;
  }
  .image-settings-sender-page .bg-control-belt-wrap{
    align-self:stretch;
    min-height:108px;
  }
  .image-settings-sender-page .bg-control-belt{
    height:100%;
    min-height:108px;
  }
  .image-settings-sender__shader-dialog{
    width:min(85vw, 760px);
  }
}
@media (max-width: 560px){
  .image-settings-sender-page .image-settings-toolbar{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:8px;
  }
  .image-settings-sender-page .image-settings-toolbar .ui-runtime-toolbar__center{
    grid-column:1 / -1;
    grid-row:1;
    width:100%;
    justify-self:stretch;
  }
  .image-settings-sender-page .image-settings-toolbar .ui-runtime-toolbar__center .ui-runtime-chip-row--equal{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    grid-auto-flow:initial;
    width:100%;
  }
  .image-settings-sender-page .image-settings-toolbar .ui-runtime-toolbar__left,
  .image-settings-sender-page .image-settings-toolbar .ui-runtime-toolbar__right{
    grid-row:2;
    width:100%;
    justify-self:stretch;
  }
  .image-settings-sender-page .image-settings-toolbar .ui-runtime-toolbar__left{
    grid-column:1;
  }
  .image-settings-sender-page .image-settings-toolbar .ui-runtime-toolbar__right{
    grid-column:2;
  }
  .image-settings-sender-page .filters-reset-action,
  .image-settings-sender-page .ui-send-action{
    width:100%;
    min-width:0;
  }
}
@media (max-width: 640px){












  .prompt-sender__shell{
    gap:8px;
  }




  .prompt-sender__shell .ui-runtime-toolbar__center .ui-runtime-chip-row--equal{
    width:100%;
  }
  .gyro-sender__canvas-host{
    height:52vh;
    min-height:300px;
  }
  .sketch-ar-wrap{
    max-height:clamp(200px, 50vh, 540px);
  }
  .srt-player__favorites-grid,
  .prompt-sender__favorites-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  .srt-player__favorites-header,
  .prompt-sender__favorites-header{
    flex-direction:column;
    align-items:stretch;
  }
  .srt-player__favorites-header-left,
  .srt-player__favorites-actions,
  .prompt-sender__favorites-header-left,
  .prompt-sender__favorites-actions{
    width:100%;
  }
  .favorites-modules-inline,
  .prompt-sender__favorites-modules{
    width:100%;
    justify-content:flex-start;
  }
  .favorites-modules-select,
  .prompt-sender__favorites-modules-select{
    width:min(220px, 100%);
  }

}

@keyframes ui-status-breathe{
  0%, 100%{ transform:scale(0.84); opacity:0.48; }
  50%{ transform:scale(1); opacity:1; }
}









.image-websocket-viewer__fps{
  top:8px;
  left:8px;
  z-index:18;
  min-width:96px;
  justify-content:flex-start;
}
.image-websocket-viewer__stage.image-websocket-viewer__stage--status-visible .image-websocket-viewer__fps{
  top:34px;
}

.draggable-box{
  position:fixed;
  top:10px;
  left:100px;
  z-index:24;
  display:none;
  min-width:320px;
  min-height:220px;
  width:350px;
  height:250px;
  overflow:hidden;
  border:1px solid var(--border2);
  border-radius:var(--r);
  background:var(--surface-1);
  color:var(--text);
  font-family:var(--mono);
}
.draggable-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-height:32px;
  padding:4px 8px;
  border-bottom:1px solid var(--border);
  cursor:move;
}
.draggable-title{
  display:flex;
  align-items:center;
  min-height:24px;
  flex:1 1 auto;
  color:var(--text);
  text-transform:uppercase;
}
.header-controls{
  display:flex;
  align-items:center;
  gap:6px;
}
.draggable-header .function-button{
  min-width:24px;
  width:24px;
  height:24px;
  padding:0;
}
.draggable-content{
  height:calc(100% - 33px);
  padding:10px;
  overflow:auto;
  color:var(--text);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
  white-space:pre-wrap;
  word-break:break-word;
  user-select:text;
  -webkit-user-select:text;
}
.resize-handle{
  position:absolute;
  right:0;
  bottom:0;
  width:12px;
  height:12px;
  cursor:nwse-resize;
  background:
    linear-gradient(135deg, transparent 50%, var(--vrch-line-emphasis) 50%) bottom right/12px 12px no-repeat;
}

.srt-player__replace-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
  gap:10px;
  margin-top:12px;
}
.prompt-sender__replace-slot,
.srt-player__replace-slot{
  width:100%;
  min-height:72px;
  padding:12px;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:var(--vrch-surface-pressed);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:6px;
  text-align:left;
  cursor:pointer;
  transition:transform .04s ease, border-color .08s ease, background .08s ease;
}
.prompt-sender__replace-slot:hover,
.srt-player__replace-slot:hover{
  border-color:var(--vrch-line-strong);
  background:var(--vrch-surface-2);
}
.prompt-sender__replace-slot:active,
.srt-player__replace-slot:active{
  transform:translateY(1px);
}
.prompt-sender__replace-slot:focus-visible,
.srt-player__replace-slot:focus-visible{
  outline:none;
  border-color:var(--vrch-line-strong);
}
.prompt-sender__replace-slot .slot-label,
.srt-player__replace-slot .slot-label{
  color:var(--vrch-accent-text);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  letter-spacing:var(--vrch-type-tracking);
  text-transform:uppercase;
}
.prompt-sender__replace-slot .slot-text,
.srt-player__replace-slot .slot-text{
  color:var(--text);
  font-family:var(--sans);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-copy-line);
}

.image-websocket-viewer__frame{
  position:absolute;
  inset:0;
  isolation:isolate;
  z-index:2;
}
.image-websocket-viewer__stage{
  display:none;
}
.image-websocket-viewer__image{
  position:absolute;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  opacity:1;
  backface-visibility:hidden;
  transform:translateZ(0);
  will-change:opacity;
}
.image-websocket-viewer__image--back{ z-index:1; }
.image-websocket-viewer__image--front{ z-index:2; }
.ui-viewer-stage .image-websocket-viewer__image.fade-out{
  opacity:0;
  transition:opacity var(--fade-duration, 300ms) cubic-bezier(0.4,0,0.2,1);
}
.ui-viewer-stage .image-websocket-viewer__image.fade-in{
  opacity:1;
  transition:opacity var(--fade-duration, 300ms) cubic-bezier(0.4,0,0.2,1);
}
.ui-viewer-stage .image-websocket-viewer__image.hidden{
  display:none;
}




.ui-viewer-stage .ui-image-viewer-image.fade-out{
  opacity:0;
  transition:opacity var(--fade-duration, 300ms) cubic-bezier(0.4,0,0.2,1);
}
.ui-viewer-stage .ui-image-viewer-image.fade-in{
  opacity:1;
  transition:opacity var(--fade-duration, 300ms) cubic-bezier(0.4,0,0.2,1);
}


.depthmap-viewer__stage{
  background:var(--vrch-media-surface);
}


.video-viewer__buffer{
  display:none;
}
.audio-viewer__stage{
  display:none;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:20px;
  background:var(--vrch-surface-3);
}
.audio-viewer__visualizer{
  width:min(320px, calc(100vw - 48px));
  height:min(320px, calc(100vw - 48px));
  display:block;
  margin:0 auto;
  background:transparent;
  z-index:2;
}
.audio-viewer__track{
  width:min(420px, calc(100vw - 48px));
  max-width:100%;
  z-index:2;
}
.audio-viewer__buffer{
  display:none;
}
.audio-viewer__interaction-overlay{
  position:fixed;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:color-mix(in srgb, var(--vrch-content-black) 72%, transparent);
  z-index:30;
  cursor:pointer;
}
.audio-viewer__interaction-card{
  min-width:220px;
  padding:18px 24px;
  border:1px solid var(--border2);
  border-radius:2px;
  background:var(--vrch-surface-3);
  color:var(--text);
  text-align:center;
  box-shadow:0 10px 30px color-mix(in srgb, var(--vrch-content-black) 32%, transparent);
  animation:audio-viewer-prompt-pulse 1.4s ease-in-out infinite;
}
.audio-viewer__interaction-card i{
  display:block;
  margin-bottom:10px;
  color:var(--vrch-accent-text);
  font-size:28px;
}
.audio-viewer__interaction-card p{
  margin:0;
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  font-weight:var(--vrch-type-weight);
  letter-spacing:var(--vrch-type-tracking);
  text-transform:uppercase;
}
@keyframes audio-viewer-prompt-pulse{
  0%,100%{ transform:translateY(0); opacity:1; }
  50%{ transform:translateY(-1px); opacity:0.92; }
}
.model-viewer__canvas-host{
  position:absolute;
  inset:0;
  width:100%;
  height:100vh;
  overflow:visible;
  z-index:2;
}
.model-viewer__canvas-host canvas{
  display:block;
}
.depthmap-viewer__stage{
  isolation:isolate;
}
.depthmap-viewer__stage canvas{
  display:block;
}
.depthmap-viewer__thread-cache{
  display:none;
}
.depthmap-viewer__debug-panel{
  position:fixed;
  z-index:18;
  min-width:140px;
  padding:6px 8px;
  border:1px solid color-mix(in srgb, var(--vrch-content-white) 8%, transparent);
  border-radius:2px;
  background:color-mix(in srgb, var(--vrch-content-black) 68%, transparent);
  color:var(--vrch-text);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
  backdrop-filter:blur(2px);
}
.depthmap-viewer__debug-panel h3{
  margin:0 0 4px;
  font-size:var(--vrch-type-size);
}
.depthmap-viewer__debug-panel p{
  margin:2px 0;
}
.depthmap-viewer__gyro-debug{
  right:10px;
  bottom:10px;
}
.depthmap-viewer__head-debug{
  left:10px;
  bottom:10px;
}
.depthmap-viewer__video-shell{
  position:fixed;
  left:10px;
  bottom:10px;
  z-index:18;
}
.depthmap-viewer__video-feed{
  display:none;
  object-fit:cover;
}
.depthmap-viewer__video-shell video{
  object-fit:cover;
}
.rotate-90{
  transform:rotate(90deg);
}
.rotate-180{
  transform:rotate(180deg);
}
.rotate-270{
  transform:rotate(270deg);
}

.settingsField + .settingsField{ margin-top:12px; }
@media (max-width: 960px){
  .prompt-sender__replace-dialog{
    width:85vw;
    max-width:85vw;
    height:85vh;
    max-height:85vh;
  }




  .prompt-sender__keyboard-fab{
    width:38px;
    height:38px;
  }
}

@media (max-width: 640px){
  body.is-virtual-keyboard-open{
    --vrch-vk-sheet-space:clamp(260px, 46vh, 320px);
  }


  .prompt-sender__replace-dialog{
    width:85vw;
    max-width:85vw;
    height:85vh;
    max-height:85vh;
  }
  .live-console-settings__preset-grid{
    grid-template-columns:minmax(0, 1fr);
  }
  .live-console-settings__preset-check-btn{
    height:26px;
    padding:0 8px;
  }
  .live-console-settings__preset-item-comfy-btn{
    flex-basis:46px;
    width:46px;
  }
  .live-console-settings__preset-item-comfy-logo{
    width:32px;
    height:32px;
  }
  .live-console-maintenance__target-row{
    grid-template-columns:minmax(0, 1fr) auto;
    gap:8px;
  }
  .live-console-maintenance__header-actions{
    justify-self:end;
  }
  .live-console__about-header{
    align-items:flex-start;
    gap:12px;
  }
  .live-console__about-heading{
    min-width:0;
  }
  .live-console__about-title{
    font-size:var(--vrch-type-title-size);
  }
  .live-console__about-subtitle{
    font-size:var(--vrch-type-size);
  font-family:var(--vrch-font-readable);
  font-weight:var(--vrch-type-weight);
  line-height:var(--vrch-type-copy-line);
  letter-spacing:var(--vrch-type-tracking);
}
  .live-console__about-cards{
    gap:12px;
  }
  .live-console-settings__layout{
    --settings-nav-column:40px;
    --ui-settings-nav-padding:0 8px 0 0;
  }
  .live-console-settings__nav-btn{
    width:40px;
    height:40px;
    padding:0;
    border-radius:2px;
    justify-content:center;
    gap:0;
    margin:0 auto;
  }
  .live-console-settings__nav-btn .nav-label{
    display:none;
  }
  .live-console-settings__content{
    padding-left:12px;
  }
  .image-websocket-sender-page .tabs.ui-tabs > .ui-tab{ justify-content:center; }
  .image-websocket-sender-page .ui-runtime-control-btn .btn-label,
  .image-websocket-sender-page .ui-runtime-control-btn .btn-sub{
    display:none;
  }
  .image-websocket-sender-page .ui-runtime-control-btn{
    min-width:44px;
    width:44px;
    max-width:44px;
    padding:0 10px;
    gap:0;
  }
  .image-websocket-sender-page .ui-runtime-control-btn[id$="CropRatioToggle"]{
    width:44px;
    min-width:44px;
    max-width:44px;
  }
  .image-websocket-sender-page .favorites-title-text{
    font-size:0;
  }
  .image-websocket-sender-page .favorites-title-text::after{
    content:"Favorites";
    font-size:var(--vrch-type-title-size);
  }
  .image-websocket-sender-page .video-controls-row--transport,
  .image-websocket-sender-page .video-controls-row--primary{
    justify-content:space-between;
    gap:6px;
  }
  .image-websocket-sender-page .video-controls-row--transport .ui-runtime-control-btn,
  .image-websocket-sender-page .video-controls-row--primary .ui-runtime-control-btn,
  .image-websocket-sender-page .video-controls-row--transport .ui-runtime-control-btn[id$="CropRatioToggle"],
  .image-websocket-sender-page .video-controls-row--primary .ui-runtime-control-btn[id$="CropRatioToggle"]{
    flex:1 1 0;
    width:auto;
    min-width:0;
    max-width:none;
    padding:0;
  }
  .image-websocket-sender-page .video-controls-row--transport > .ui-runtime-control-btn{
    flex:1 1 44px;
    min-width:44px;
    max-width:none;
  }
  .image-websocket-sender-page .video-controls-row--transport .ui-play-mode-group{
    flex:0 0 146px;
    width:146px;
    min-width:146px;
    max-width:146px;
  }
  .image-websocket-sender-page .video-controls-row--transport .ui-play-mode-option.ui-runtime-control-btn{
    flex:0 0 48px;
    width:48px;
    min-width:48px;
    max-width:48px;
    padding:0 4px;
    gap:0;
  }
  .image-websocket-sender-page .video-pingpong-symbol{
    min-width:20px;
    font-size:13px;
  }
}

@media (max-width: 340px){
  .image-websocket-sender-page .video-controls.video-controls--stack{
    padding-left:4px;
    padding-right:4px;
  }
  .image-websocket-sender-page .video-controls.video-controls--stack.video-crop-controls{
    margin-left:-8px;
    margin-right:-8px;
  }
  .image-websocket-sender-page .video-controls-row--transport{
    gap:1px;
    justify-content:flex-start;
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .image-websocket-sender-page .video-controls-row--transport::-webkit-scrollbar{
    display:none;
  }
  .image-websocket-sender-page .video-controls-row--video .ui-runtime-control-btn{
    flex:0 0 44px;
    width:44px;
    min-width:44px;
    max-width:44px;
  }
  .image-websocket-sender-page .video-controls-row--transport .ui-play-mode-group{
    flex:0 0 134px;
    width:134px;
    min-width:134px;
    max-width:134px;
  }
  .image-websocket-sender-page .video-controls-row--transport .ui-play-mode-option.ui-runtime-control-btn{
    flex-basis:44px;
    width:44px;
    min-width:44px;
    max-width:44px;
    gap:0;
    padding:0 2px;
  }
  .image-websocket-sender-page .ui-play-mode-icon{
    width:20px;
    min-width:20px;
    height:20px;
  }
  .image-websocket-sender-page .ui-play-mode-icon > i{
    font-size:13px;
  }
  .image-websocket-sender-page .ui-play-mode-icon--loop > i{
    font-size:16px;
  }
  .image-websocket-sender-page .ui-play-mode-icon__mark--all{
    font-size:5.5px;
  }
  :where(.image-websocket-sender-page) .ui-loop-mode-toggle.ui-runtime-control-btn:not(.active) + .ui-play-mode-group .ui-play-mode-icon__mark--all{
    font-size:7.5px;
  }
  .image-websocket-sender-page .ui-loop-mode-toggle.ui-runtime-control-btn i{
    font-size:10px;
  }
}

@media (max-width: 480px){
  .image-websocket-sender-page .video-controls-row--transport{
    gap:4px;
  }
  .image-websocket-sender-page .video-controls-row--transport > .ui-runtime-control-btn{
    flex:0 0 40px;
    width:40px;
    min-width:40px;
    max-width:40px;
  }
  .image-websocket-sender-page .video-controls-row--transport .ui-play-mode-group{
    flex:0 0 134px;
    width:134px;
    min-width:134px;
    max-width:134px;
  }
  .image-websocket-sender-page .video-controls-row--transport .ui-play-mode-option.ui-runtime-control-btn{
    flex:0 0 44px;
    width:44px;
    min-width:44px;
    max-width:44px;
    padding:0 2px;
  }
}

@media (min-width: 481px) and (max-width: 640px){
  .live-console-maintenance__card-header--server{
    grid-template-columns:auto minmax(0, 1fr) auto;
    align-items:center;
    gap:8px;
    padding:0 8px;
  }
  .live-console-maintenance__refresh,
  .live-console-maintenance__reload-page{
    width:auto;
    padding:0 10px;
    justify-content:center;
  }
  .live-console-maintenance__refresh{
    min-width:92px;
    inline-size:98px;
    max-width:98px;
  }
  .live-console-maintenance__reload-page{
    min-width:92px;
    inline-size:98px;
    max-width:98px;
  }
  .live-console-maintenance__refresh span,
  .live-console-maintenance__reload-page span{
    display:inline;
  }
  .live-console-maintenance__reload-page i + span{
    margin-left:6px;
  }
  .live-console-maintenance__wifi-secondary-actions{
    grid-template-columns:repeat(auto-fit, minmax(88px, 1fr));
    justify-content:stretch;
  }
  .image-websocket-sender-page .video-controls-row--transport{
    gap:6px;
  }
  .image-websocket-sender-page .video-controls-row--transport > .ui-runtime-control-btn{
    flex:1 1 44px;
    min-width:44px;
    max-width:none;
  }
  .image-websocket-sender-page .ui-play-mode-group{
    flex:0 0 146px;
    width:146px;
    min-width:146px;
    max-width:146px;
  }
  .image-websocket-sender-page .ui-play-mode-option.ui-runtime-control-btn{
    flex:0 0 48px;
    width:48px;
    min-width:48px;
    max-width:48px;
    padding:0 5px;
  }
}

@media (max-width: 480px){
  .live-console-maintenance__card-header{
    grid-template-columns:minmax(0, 1fr) auto;
    align-items:center;
    gap:6px;
    padding:7px 8px;
  }
  .live-console-maintenance__card-summary{
    justify-content:flex-end;
    flex-wrap:nowrap;
    overflow:hidden;
  }
  .live-console-maintenance__card-header--server{
    grid-template-columns:auto minmax(0, 1fr) auto;
    align-items:center;
    min-width:0;
  }
  .live-console-maintenance__card-header--server .live-console-maintenance__card-toggle,
  .live-console-maintenance__card-header--server .live-console-maintenance__target-value,
  .live-console-maintenance__card-header--server .live-console-maintenance__connection-state{
    min-width:0;
  }
  .live-console-maintenance__card-header--server .live-console-maintenance__target-value{
    max-width:100%;
  }
  .live-console-maintenance__target-row{
    grid-template-columns:minmax(0, 1fr) auto;
    gap:6px;
  }
  .live-console-maintenance__target-value-wrap{
    flex-wrap:wrap;
  }
  .live-console-maintenance__header-actions{
    gap:4px;
  }
  .live-console-maintenance__refresh,
  .live-console-maintenance__reload-page{
    width:34px;
    inline-size:34px;
    min-width:34px;
    max-width:34px;
    padding:0;
    justify-content:center;
  }
  .live-console-maintenance__refresh span,
  .live-console-maintenance__reload-page span{
    display:none;
  }
  .live-console-maintenance__reload-page i + span{
    margin-left:0;
  }
  .live-console-maintenance__metrics{
    gap:2px;
  }
  .live-console-maintenance__wifi-current{
    grid-template-columns:1fr;
  }
  .live-console-maintenance__wifi-scan{
    width:104px;
    min-width:104px;
  }
  .live-console-maintenance__wifi-network{
    grid-template-columns:minmax(0, 1fr);
    align-items:start;
  }
  .live-console-maintenance__wifi-password{
    grid-template-columns:1fr;
    gap:5px;
  }
  .live-console-maintenance__wifi-secondary-actions{
    grid-template-columns:repeat(auto-fit, minmax(88px, 1fr));
    justify-content:stretch;
  }
  .live-console-maintenance__wifi-secondary-actions .live-console-maintenance__item-action{
    width:100%;
    min-width:0;
  }
}

@media (max-width: 480px){
  .ui-modal__dialog.live-console-settings{
    width:calc(100vw - 16px);
    max-width:calc(100vw - 16px);
    height:calc(var(--live-console-settings-available-height) - 16px);
    max-height:calc(var(--live-console-settings-available-height) - 16px);
    box-sizing:border-box;
    overflow-x:hidden;
  }
  .live-console-settings__form{
    --ui-dialog-footer-margin:0 -8px;
    --ui-dialog-footer-padding:12px 8px 0;
    gap:8px;
    padding:8px;
    min-width:0;
  }
  .live-console-settings__layout{
    padding-top:12px;
    min-width:0;
    width:100%;
  }
  .live-console-settings__content{
    min-width:0;
    overflow-x:hidden;
  }
  .live-console-settings__header{
    margin-bottom:8px;
    gap:3px;
  }
  .live-console-settings__header .ui-dialog__subtitle{
    font-size:var(--vrch-type-size);
  font-family:var(--vrch-font-readable);
  font-weight:var(--vrch-type-weight);
  line-height:var(--vrch-type-copy-line);
  letter-spacing:var(--vrch-type-tracking);
}
  .live-console-settings__section{
    gap:12px;
    min-width:0;
  }
  .live-console-maintenance__panel-header,
  .live-console-maintenance__cards,
  .live-console-maintenance__card,
  .live-console-maintenance__card-body{
    min-width:0;
    max-width:100%;
    overflow:hidden;
  }
  .live-console-settings__group-header--device-access{
    flex-direction:column;
    align-items:stretch;
  }
  .live-console-settings__device-access-refresh-btn{
    width:100%;
  }
  .live-console-maintenance__repo-row{
    grid-template-columns:minmax(0, 1fr) max-content;
    row-gap:4px;
  }
  .live-console-maintenance__repo-label{
    grid-column:1;
    grid-row:1;
  }
  .live-console-maintenance__repo-version{
    grid-column:2;
    grid-row:1;
    justify-self:end;
    justify-content:flex-end;
    flex-wrap:wrap;
    width:auto;
    max-width:100%;
    text-align:right;
    white-space:normal;
    overflow:visible;
  }
  .live-console-maintenance__repo-action-wrap{
    grid-column:1 / -1;
    grid-row:2;
    justify-self:stretch;
    justify-content:stretch;
    gap:6px;
    text-align:center;
    width:100%;
    max-width:none;
  }
  .live-console-maintenance__service-row{
    grid-template-columns:minmax(0, 1fr) max-content;
  }
  .live-console-maintenance__tool-row{
    grid-template-columns:minmax(0, 1fr) max-content;
  }
  .live-console-maintenance__tool-status{
    grid-column:2;
    grid-row:1;
  }
  .live-console-maintenance__tool-action-wrap{
    grid-column:1 / -1;
    grid-row:2;
    width:100%;
    min-width:0;
    max-width:none;
    justify-content:stretch;
    gap:6px;
  }
  .live-console-maintenance__tool-row.has-options{
    grid-template-columns:minmax(0, 1fr) max-content;
  }
  .live-console-maintenance__tool-row.has-options .live-console-maintenance__tool-action-wrap{
    justify-content:stretch;
    gap:6px;
  }
  .live-console-maintenance__service-action,
  .live-console-maintenance__item-action{
    flex:1 1 0;
    min-width:0;
    width:0;
  }
  .live-console-maintenance__item-action{
    padding:0 10px;
    justify-content:stretch;
  }
  .live-console-maintenance__item-action span{
    display:inline;
  }
  .live-console-maintenance__service-status{
    grid-column:2;
    grid-row:1;
  }
  .live-console-maintenance__service-action-wrap{
    grid-column:1 / -1;
    grid-row:2;
    width:100%;
    min-width:0;
    max-width:none;
    justify-content:stretch;
    gap:6px;
  }
  .live-console-maintenance__service-action{
    gap:6px;
    padding:0 8px;
    justify-content:center;
    text-align:center;
  }
  .live-console-maintenance__service-action > span{
    display:inline-flex;
    min-width:0;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    text-align:center;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .live-console-maintenance__repo-action-wrap > .live-console-maintenance__repo-state{
    flex:1 1 0;
    width:0;
    min-width:0;
    justify-content:center;
  }
  .live-console-settings__channels-row{
    grid-template-columns:26px minmax(0, 1fr) 48px;
    column-gap:6px;
  }
  .live-console-settings__channels-visibility-btn{
    width:30px;
    height:30px;
  }
  .live-console-settings__group--compact-fields .ui-settings-row--split:not(.ui-settings-row--joined-control){
    grid-template-columns:minmax(0, 1fr);
    align-items:stretch;
    gap:6px;
    min-height:auto;
    padding:8px;
  }
  .live-console-settings__group--compact-fields .ui-settings-row--split:not(.ui-settings-row--joined-control) > .ui-settings-label{
    min-height:auto;
    align-items:flex-start;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .live-console-settings__group--compact-fields .ui-settings-row--split:not(.ui-settings-row--joined-control) > .ui-settings-control{
    min-height:auto;
  }
  .live-console-settings__group--compact-fields .ui-settings-row--split:not(.ui-settings-row--joined-control) > .ui-settings-control > select.ui-input,
  .live-console-settings__group--compact-fields .ui-settings-row--split:not(.ui-settings-row--joined-control) > .ui-settings-control > .live-console-settings__option-button{
    min-height:30px;
    height:30px;
    line-height:var(--vrch-type-line);
    font-size:var(--vrch-type-size);
  }
  .live-console-vibectrl-settings__control-row{
    grid-template-columns:30px 28px 61px minmax(0, 1fr);
    column-gap:3px;
    row-gap:0;
  }
  .live-console-vibectrl-settings__control-index{
    justify-content:flex-start;
    gap:0;
    font-size:var(--vrch-type-size);
  }
  .live-console-vibectrl-settings__cc-group{
    grid-template-columns:auto 42px;
    gap:1px;
  }
  .live-console-vibectrl-settings__cc-label{
    font-size:var(--vrch-type-size);
  }
  .live-console-vibectrl-settings__cc-input{
    width:42px;
    min-width:42px;
    max-width:42px;
    height:30px;
    padding:0 2px;
    font-size:var(--vrch-type-size);
  }
  .live-console-vibectrl-settings__label-input{
    grid-column:auto;
    min-width:0;
    height:30px;
    padding:0 4px;
    font-size:var(--vrch-type-size);
  }
  .live-console-settings__select.live-console-settings__channel-input{
    width:48px;
    min-width:48px;
    max-width:48px;
    height:36px;
    line-height:36px;
    padding:0;
  }
  .live-console-device-access-card{
    flex-direction:column;
  }
  .live-console-device-access-card__actions{
    width:100%;
  }
  .live-console-device-access-card__action{
    width:100%;
  }
  .live-console__about-cards{
    gap:10px;
  }
}

.live-console-page.is-compact-touch{
  --compact-touch-target:48px;
  --compact-touch-target-sm:44px;
  --live-console-dock-control-inline-size:47px;
  --live-console-dock-control-block-size:48px;
  --live-console-statusbar-inline-inset:4px;
  --compact-settings-inset:4px;
  --compact-settings-nav:54px;
  --compact-settings-footer:62px;
  --ui-label-button-min-width:96px;
  --ui-label-button-height:var(--compact-touch-target);
  --ui-label-button-padding:14px;
  --ui-label-button-font-size:var(--vrch-type-size);
  --ui-button-block-size:var(--compact-touch-target-sm);
}
.live-console-page.is-compact-touch .live-console-settings-modal.ui-modal{
  align-items:center;
  padding:var(--compact-settings-inset) var(--compact-settings-inset) var(--compact-settings-inset) 0;
  overflow:hidden;
}
.live-console-page.is-compact-touch .live-console-settings-modal .ui-modal__dialog.live-console-settings{
  width:calc(100vw - var(--compact-settings-inset));
  max-width:calc(100vw - var(--compact-settings-inset));
  height:calc(var(--live-console-settings-available-height) - (var(--compact-settings-inset) * 2));
  max-height:calc(var(--live-console-settings-available-height) - (var(--compact-settings-inset) * 2));
  border-left:0;
  border-radius:0 3px 3px 0;
  overflow:hidden;
}
.live-console-page.is-compact-touch .live-console-settings__header{
  --ui-dialog-title-line-height:var(--vrch-type-line);
  min-height:52px;
  margin:0;
  padding:4px 8px;
  padding-left:calc(8px + var(--compact-settings-inset) + 1px);
  column-gap:8px;
  border-bottom:1px solid var(--border);
}
.live-console-page.is-compact-touch .live-console-settings__header .ui-dialog__subtitle{
  display:none;
  font-family:var(--vrch-font-readable);
  font-weight:var(--vrch-type-weight);
  line-height:var(--vrch-type-copy-line);
  letter-spacing:var(--vrch-type-tracking);
}
.live-console-page.is-compact-touch .live-console-settings__header .ui-modal__close{
  width:var(--compact-touch-target);
  min-width:var(--compact-touch-target);
  height:var(--compact-touch-target);
  min-height:var(--compact-touch-target);
  border:0;
  background:transparent;
  font-size:18px;
}
.live-console-page.is-compact-touch .live-console-settings__header .ui-modal__close:hover,
.live-console-page.is-compact-touch .live-console-settings__header .ui-modal__close:focus-visible{
  border:0;
  background:transparent;
}
.live-console-page.is-compact-touch .live-console-settings__form{
  --ui-dialog-footer-margin:0;
  --ui-dialog-footer-padding:7px 8px;
  gap:0;
  padding:0;
}
.live-console-page.is-compact-touch .live-console-settings__layout{
  --settings-nav-column:calc(var(--compact-settings-nav) + var(--compact-settings-inset) + 1px);
  --ui-settings-nav-padding:6px 0 6px calc(var(--compact-settings-inset) + 1px);
  width:100%;
  padding:0;
  overflow:hidden;
}
.live-console-page.is-compact-touch .live-console-settings__nav-btn{
  width:var(--compact-touch-target);
  height:var(--compact-touch-target);
  min-height:var(--compact-touch-target);
  margin:0 auto;
  padding:0;
  justify-content:center;
  gap:0;
}
.live-console-page.is-compact-touch .live-console-settings__nav-btn > i{
  flex-basis:24px;
  width:24px;
  min-width:24px;
  font-size:18px;
}
.live-console-page.is-compact-touch .live-console-settings__nav-btn .nav-label{
  display:none;
}
.live-console-page.is-compact-touch .live-console-settings__content{
  padding:8px;
  overflow-x:hidden;
  overflow-y:auto;
  scroll-padding-bottom:12px;
}
.live-console-page.is-compact-touch .live-console-settings__section{
  gap:10px;
}
.live-console-page.is-compact-touch .live-console-settings__section[data-section="deviceAccess"]{
  gap:8px;
}
.live-console-page.is-compact-touch .live-console-settings__group--vibectrl{
  gap:6px;
}
.live-console-page.is-compact-touch .ui-dialog__actions--footer{
  min-height:var(--compact-settings-footer);
  align-items:center;
  justify-content:flex-end;
}
.live-console-page.is-compact-touch .live-console-settings__preset-grid{
  grid-template-columns:minmax(0, 1fr);
  gap:8px;
}
.live-console-page.is-compact-touch .live-console-settings__preset-title-row,
.live-console-page.is-compact-touch .live-console-settings__group-header,
.live-console-page.is-compact-touch .live-console-maintenance__panel-header{
  align-items:center;
  gap:8px;
}
.live-console-page.is-compact-touch .live-console-settings__group-header--device-access{
  flex-direction:row;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.live-console-page.is-compact-touch .live-console-settings__group-header--device-access .live-console-settings__group-header-copy{
  align-items:flex-start;
  gap:0;
}
.live-console-page.is-compact-touch .live-console-settings__group-header--device-access .ui-content-title{
  text-align:left;
}
.live-console-page.is-compact-touch .live-console-settings__preset-group-header,
.live-console-page.is-compact-touch .live-console-settings__preset-group-toggle{
  min-height:var(--compact-touch-target-sm);
}
.live-console-page.is-compact-touch .live-console-settings__hint,
.live-console-page.is-compact-touch .ui-section-shell__subhint{
  display:none;
}
.live-console-page.is-compact-touch .live-console-settings__preset-check-btn,
.live-console-page.is-compact-touch .live-console-settings__device-access-refresh-btn{
  width:var(--compact-touch-target);
  min-width:var(--compact-touch-target);
  max-width:var(--compact-touch-target);
  height:var(--compact-touch-target);
  min-height:var(--compact-touch-target);
  padding:0;
  justify-content:center;
}
.live-console-page.is-compact-touch .live-console-settings__preset-check-btn span,
.live-console-page.is-compact-touch .live-console-settings__device-access-refresh-btn span{
  display:none;
}
.live-console-page.is-compact-touch .live-console-maintenance__header-actions{
  gap:6px;
}
.live-console-page.is-compact-touch .live-console-maintenance__refresh,
.live-console-page.is-compact-touch .live-console-maintenance__reload-page{
  width:96px;
  min-width:92px;
  max-width:98px;
  height:var(--compact-touch-target);
  min-height:var(--compact-touch-target);
  padding:0 10px;
  gap:6px;
  justify-content:center;
}
.live-console-page.is-compact-touch .live-console-maintenance__refresh span,
.live-console-page.is-compact-touch .live-console-maintenance__reload-page span{
  display:inline-flex;
}
.live-console-page.is-compact-touch .live-console-device-access-list{
  gap:8px;
  margin-top:0;
}
.live-console-page.is-compact-touch .live-console-maintenance__reload-page i + span{
  margin-left:0;
}
.live-console-page.is-compact-touch .live-console-maintenance__wifi-dialog .ui-dialog__header .ui-modal__close{
  position:static;
  flex:0 0 var(--compact-touch-target);
  width:var(--compact-touch-target);
  min-width:var(--compact-touch-target);
  height:var(--compact-touch-target);
  min-height:var(--compact-touch-target);
  border:0;
  background:transparent;
  font-size:18px;
}
:where(.live-console-page.is-compact-touch .live-console-maintenance__wifi-dialog .ui-dialog__header) .ui-modal__close:hover,
:where(.live-console-page.is-compact-touch .live-console-maintenance__wifi-dialog .ui-dialog__header) .ui-modal__close:focus-visible{
  border:0;
  background:transparent;
}
.live-console-page.is-compact-touch .live-console-maintenance__app-dialog-actions{
  padding:7px 12px 12px;
}
.live-console-page.is-compact-touch .live-console-maintenance__app-dialog-actions .ui-btn--sm{
  width:auto;
  min-width:112px;
  max-width:100%;
  flex-shrink:0;
  height:var(--compact-touch-target);
  min-height:var(--compact-touch-target);
  padding:0 14px;
}
:where(.live-console-page.is-compact-touch .live-console-maintenance__tool-dialog > .ui-dialog__actions--equal) .ui-btn--sm.ui-btn--wide-label{
  flex-basis:auto;
  padding-inline:10px;
}
.live-console-page.is-compact-touch .ui-settings-row--split{
  grid-template-columns:minmax(0, 1fr);
  align-items:stretch;
  gap:6px;
  min-height:var(--compact-touch-target);
  padding:8px;
}
.live-console-page.is-compact-touch .ui-settings-row--split > .ui-settings-label{
  min-height:auto;
  align-items:flex-start;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.live-console-page.is-compact-touch .ui-settings-row--split > .ui-settings-control{
  min-height:auto;
  width:100%;
  justify-content:stretch;
}
.live-console-page.is-compact-touch .ui-settings-row--split > .ui-settings-control > select.ui-input,
.live-console-page.is-compact-touch .ui-settings-row--split > .ui-settings-control > .live-console-settings__option-button{
  width:100%;
  min-height:var(--compact-touch-target);
  height:var(--compact-touch-target);
  line-height:var(--compact-touch-target);
}
.live-console-page.is-compact-touch .live-console-settings__group--recording{
  gap:4px;
}
.live-console-page.is-compact-touch .live-console-settings__group--recording .ui-settings-row--split{
  grid-template-columns:minmax(88px, 112px) minmax(0, 1fr);
  align-items:center;
  gap:8px;
  min-height:calc(var(--compact-touch-target) + 4px);
  padding:2px 8px;
}
.live-console-page.is-compact-touch .live-console-settings__group--recording .ui-settings-row--split > .ui-settings-label{
  height:var(--compact-touch-target);
  min-height:var(--compact-touch-target);
  align-items:flex-start;
  justify-content:center;
}
.live-console-page.is-compact-touch .live-console-settings__group--recording .ui-settings-row--split > .ui-settings-control{
  align-items:center;
}
.live-console-page.is-compact-touch .live-console-settings__input,
.live-console-page.is-compact-touch .live-console-settings__select{
  min-height:var(--compact-touch-target);
}
:where(.live-console-page.is-compact-touch) .live-console-settings__group--compact-fields .ui-settings-row--split > .ui-settings-control > select.ui-input,
:where(.live-console-page.is-compact-touch) .live-console-settings__group--compact-fields .ui-settings-row--split > .ui-settings-control > .live-console-settings__option-button{
  min-height:var(--compact-touch-target);
  height:var(--compact-touch-target);
  line-height:var(--compact-touch-target);
  font-size:var(--vrch-type-size);
}
:where(.live-console-page.is-compact-touch) .ui-settings-group--advanced-items{
  gap:4px;
}
:where(.live-console-page.is-compact-touch) .ui-settings-group--advanced-items .ui-settings-row--split{
  grid-template-columns:minmax(0, 1fr) minmax(150px, 196px);
  align-items:center;
  gap:8px;
  min-height:var(--compact-touch-target);
  padding:2px 8px;
}
:where(.live-console-page.is-compact-touch) .ui-settings-group--advanced-items .ui-settings-row--split > .ui-settings-label{
  min-height:var(--compact-touch-target-sm);
  align-items:flex-start;
  justify-content:center;
  white-space:normal;
}
:where(.live-console-page.is-compact-touch) .ui-settings-group--advanced-items .ui-settings-row--split > .ui-settings-control{
  min-height:var(--compact-touch-target-sm);
  justify-content:flex-end;
}
:where(.live-console-page.is-compact-touch) .ui-settings-group--advanced-items .ui-settings-row--split > .ui-settings-control > .live-console-settings__option-button{
  min-height:var(--compact-touch-target-sm);
  height:var(--compact-touch-target-sm);
  line-height:var(--compact-touch-target-sm);
}
.live-console-page.is-compact-touch .live-console-settings__group--layout-control .ui-settings-row--split{
  grid-template-columns:minmax(0, 1fr) minmax(150px, 196px);
  align-items:center;
  gap:8px;
  min-height:var(--compact-touch-target);
  padding:2px 8px;
}
.live-console-page.is-compact-touch .live-console-settings__group--layout-control .ui-settings-row--split > .ui-settings-label{
  min-height:var(--compact-touch-target-sm);
  align-items:flex-start;
  justify-content:center;
  white-space:normal;
}
.live-console-page.is-compact-touch .live-console-settings__group--layout-control .ui-settings-row--split > .ui-settings-control{
  min-height:var(--compact-touch-target-sm);
  justify-content:flex-end;
}
:where(.live-console-page.is-compact-touch) .live-console-settings__group--layout-control .ui-settings-row--split > .ui-settings-control > .live-console-settings__option-button{
  min-height:var(--compact-touch-target-sm);
  height:var(--compact-touch-target-sm);
  line-height:var(--compact-touch-target-sm);
}
.live-console-page.is-compact-touch .ui-settings-row--split.ui-settings-row--joined-control{
  grid-template-columns:minmax(0, 1fr) minmax(150px, 196px);
  align-items:stretch;
  gap:0;
  min-height:var(--compact-touch-target);
  padding:0;
}
.live-console-page.is-compact-touch .ui-settings-row--split.ui-settings-row--joined-control > .ui-settings-label{
  min-height:calc(var(--compact-touch-target) - 2px);
  align-items:flex-start;
  justify-content:center;
  padding:0 10px;
  white-space:normal;
}
.live-console-page.is-compact-touch .ui-settings-row--split.ui-settings-row--joined-control > .ui-settings-control{
  min-height:calc(var(--compact-touch-target) - 2px);
  align-items:stretch;
  justify-content:stretch;
}
:where(.live-console-page.is-compact-touch .ui-settings-row--split.ui-settings-row--joined-control > .ui-settings-control) > :is(
  select.ui-input,
  .ui-select-control,
  .live-console-settings__option-button,
  .ui-btn--sm,
  .ui-btn--md
){
  height:auto;
  min-height:calc(var(--compact-touch-target) - 2px);
  border-width:0 0 0 1px;
  border-radius:0;
}
:where(.live-console-page.is-compact-touch) .ui-settings-group--advanced-items .ui-toggle-row{
  min-height:var(--compact-touch-target);
  margin-top:0;
  padding:2px 8px;
}
:where(.live-console-page.is-compact-touch) .ui-settings-group--advanced-items .ui-toggle-row__text{
  min-height:var(--compact-touch-target-sm);
  padding-right:8px;
}
.live-console-page.is-compact-touch .live-console-workflows{
  --workflow-row-height:var(--compact-touch-target-sm);
}
.live-console-page.is-compact-touch .live-console-device-access-card__action,
.live-console-page.is-compact-touch .live-console-auth-status__check,
.live-console-page.is-compact-touch .live-console-auth-sync__action{
  min-height:var(--compact-touch-target-sm);
}
.live-console-page.is-compact-touch .live-console-settings__token-toggle{
  width:var(--compact-touch-target);
  min-width:var(--compact-touch-target);
  height:var(--compact-touch-target);
  min-height:var(--compact-touch-target);
}
.live-console-page.is-compact-touch .live-console-settings__token-toggle{
  flex-basis:var(--compact-touch-target);
}
.live-console-page.is-compact-touch .live-console-auth-token,
.live-console-page.is-compact-touch .live-console-auth-status,
.live-console-page.is-compact-touch .live-console-auth-sync-section{
  gap:6px;
}
.live-console-page.is-compact-touch .live-console-auth-status{
  margin-top:4px;
}
.live-console-page.is-compact-touch .live-console-auth-sync-section{
  padding-top:6px;
}
.live-console-page.is-compact-touch .live-console-settings__group--auth{
  gap:8px;
}

.live-console-page.is-compact-touch .live-console-auth__panel-header{
  grid-template-columns:minmax(0, 1fr) var(--compact-touch-target-sm);
  align-items:center;
  gap:8px;
}
.live-console-page.is-compact-touch .live-console-auth__panel-header .ui-section-shell__copy{
  gap:0;
}
.live-console-page.is-compact-touch .live-console-auth__panel-header .live-console-auth-status__check{
  width:var(--compact-touch-target-sm);
  min-width:var(--compact-touch-target-sm);
  max-width:var(--compact-touch-target-sm);
  height:var(--compact-touch-target-sm);
  min-height:var(--compact-touch-target-sm);
  padding:0;
  justify-self:end;
}
.live-console-page.is-compact-touch .live-console-auth__panel-header .live-console-auth-status__check span{
  display:none;
}
.live-console-page.is-compact-touch .live-console-auth-token .live-console-settings__input{
  height:var(--compact-touch-target-sm);
  min-height:var(--compact-touch-target-sm);
  padding-top:0;
  padding-bottom:0;
}
.live-console-page.is-compact-touch .live-console-auth-token .live-console-settings__token-row{
  gap:6px;
}
.live-console-page.is-compact-touch .live-console-auth-token .live-console-settings__token-toggle{
  flex-basis:var(--compact-touch-target-sm);
  width:var(--compact-touch-target-sm);
  min-width:var(--compact-touch-target-sm);
  height:var(--compact-touch-target-sm);
  min-height:var(--compact-touch-target-sm);
}
.live-console-page.is-compact-touch .live-console-auth-token .ui-token-preview-row{
  gap:6px;
  min-height:28px;
}
.live-console-page.is-compact-touch .live-console-auth-token .ui-token-preview{
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
  max-width:calc(100% - 30px);
}
.live-console-page.is-compact-touch .live-console-auth-token .ui-token-copy{
  width:28px;
  height:28px;
}
.live-console-page.is-compact-touch .live-console-auth-status__tags{
  gap:0 6px;
  min-height:0;
}
.live-console-page.is-compact-touch .live-console-auth-status__tag{
  min-height:18px;
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
}
.live-console-page.is-compact-touch .live-console-auth-qr-section{
  gap:6px;
  padding-top:8px;
}
.live-console-page.is-compact-touch .live-console-auth-qr-section__header{
  align-items:center;
  gap:8px;
}
.live-console-page.is-compact-touch .live-console-auth-qr-section__copy{
  gap:0;
}
.live-console-page.is-compact-touch .live-console-auth-qr{
  gap:8px;
}
.live-console-page.is-compact-touch .live-console-auth-qr__canvas{
  width:132px;
  height:132px;
}
.live-console-page.is-compact-touch .live-console-auth-sync-section__actions{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  align-items:stretch;
  gap:6px;
}
.live-console-page.is-compact-touch .live-console-auth-sync__action{
  flex:1 1 0;
  width:100%;
  min-width:0;
  padding:0 8px;
}
.live-console-page.is-compact-touch .live-console-auth-sync__action span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.live-console-page.is-compact-touch .live-console-settings__channels-row{
  grid-template-columns:var(--compact-touch-target) minmax(0, 1fr) var(--compact-touch-target);
  column-gap:6px;
  min-height:var(--compact-touch-target);
}
.live-console-page.is-compact-touch .live-console-settings__channels-visibility-btn{
  width:var(--compact-touch-target);
  height:var(--compact-touch-target);
}
.live-console-page.is-compact-touch .live-console-vibectrl-settings__field > .live-console-settings__select-control{
  min-height:var(--compact-touch-target);
  height:var(--compact-touch-target);
  line-height:var(--compact-touch-target);
  font-size:var(--vrch-type-size);
}
.live-console-page.is-compact-touch .live-console-vibectrl-settings__field{
  gap:5px;
  margin-top:8px;
}
.live-console-page.is-compact-touch .live-console-vibectrl-settings__control-row{
  grid-template-columns:36px 52px 82px minmax(0, 1fr);
  column-gap:4px;
  min-height:var(--compact-touch-target);
}
.live-console-page.is-compact-touch .live-console-vibectrl-settings__control-index{
  justify-content:flex-start;
  gap:2px;
}
.live-console-page.is-compact-touch .live-console-vibectrl-settings__cc-group{
  grid-template-columns:auto 56px;
  gap:2px;
}
.live-console-page.is-compact-touch .live-console-vibectrl-settings__cc-input{
  width:56px;
  min-width:56px;
  max-width:56px;
  height:var(--compact-touch-target);
  min-height:var(--compact-touch-target);
  padding:0 2px;
}
.live-console-page.is-compact-touch .live-console-vibectrl-settings__label-input{
  min-height:var(--compact-touch-target);
}
.live-console-page.is-compact-touch .live-console-settings__select.live-console-settings__channel-input{
  width:52px;
  min-width:52px;
  max-width:52px;
  height:var(--compact-touch-target);
  line-height:var(--compact-touch-target);
}
.live-console-page.is-compact-touch .live-console-settings__select-control.live-console-settings__channel-input{
  width:var(--compact-touch-target);
  min-width:var(--compact-touch-target);
  max-width:var(--compact-touch-target);
  height:var(--compact-touch-target);
  min-height:var(--compact-touch-target);
  line-height:var(--compact-touch-target);
}
.live-console-page.is-compact-touch .live-console-maintenance__card-header{
  min-height:var(--compact-touch-target);
  padding:0 8px;
}
.live-console-page.is-compact-touch .live-console-maintenance__card-header--server{
  grid-template-columns:auto minmax(0, 1fr);
  gap:8px;
}
.live-console-page.is-compact-touch .live-console-maintenance__target-row--header{
  display:block;
  min-width:0;
  width:100%;
}
.live-console-page.is-compact-touch .live-console-maintenance__target-value-wrap{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:center;
  gap:6px;
  min-width:0;
}
.live-console-page.is-compact-touch .live-console-maintenance__card-header--server .live-console-maintenance__target-value{
  font-size:var(--vrch-type-size);
  justify-self:start;
}
.live-console-page.is-compact-touch .live-console-maintenance__card-header--server .live-console-maintenance__connection-state{
  justify-self:end;
}
.live-console-page.is-compact-touch .live-console-maintenance__metrics{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:1px 3px;
  margin-top:0;
}
.live-console-page.is-compact-touch .live-console-maintenance__metric{
  min-height:22px;
  justify-content:flex-start;
  padding:0 1px;
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
}
.live-console-page.is-compact-touch .live-console-maintenance__metric[data-compact-text]{
  gap:0;
  font-size:0;
}
.live-console-page.is-compact-touch .live-console-maintenance__metric[data-compact-text]::before{
  content:"[" attr(data-compact-text) "]";
  color:inherit;
  font-size:var(--vrch-type-size);
}
.live-console-page.is-compact-touch .live-console-maintenance__metric[data-compact-text]::after{
  content:"";
}
.live-console-page.is-compact-touch .live-console-maintenance__metric.is-primary[data-metric="cpu"]{ order:1; }
.live-console-page.is-compact-touch .live-console-maintenance__metric.is-secondary[data-metric="gpu"]{ order:2; }
.live-console-page.is-compact-touch .live-console-maintenance__metric.is-primary[data-metric="ram"]{ order:3; }
.live-console-page.is-compact-touch .live-console-maintenance__metric.is-secondary[data-metric="swap"]{ order:4; }
.live-console-page.is-compact-touch .live-console-maintenance__metric.is-secondary[data-metric="vram"]{ order:5; }
.live-console-page.is-compact-touch .live-console-maintenance__metric.is-secondary[data-metric="disk"]{ order:6; }
.live-console-page.is-compact-touch .live-console-maintenance__metric.is-secondary[data-metric="net"]{ order:7; }
.live-console-page.is-compact-touch .live-console-maintenance__metric.is-primary[data-metric="rtt"]{ order:8; }
.live-console-page.is-compact-touch .live-console-maintenance__metric-break{ order:9; }
.live-console-page.is-compact-touch .live-console-maintenance__metric.is-primary[data-metric="ws-clients"]{ order:10; }
.live-console-page.is-compact-touch .live-console-maintenance__metric.is-secondary[data-metric="devices"]{ order:11; }
.live-console-page.is-compact-touch .live-console-maintenance__metric.is-secondary[data-metric="screens"]{ order:12; }
.live-console-page.is-compact-touch .live-console-maintenance__repo-row{
  grid-template-columns:minmax(0, 1fr) auto;
  grid-template-rows:auto auto;
  align-items:center;
  gap:2px 8px;
  min-height:var(--compact-touch-target);
  padding:6px 0;
}
.live-console-page.is-compact-touch .live-console-maintenance__repo-label{
  grid-column:1;
  grid-row:1;
  align-self:end;
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
}
.live-console-page.is-compact-touch .live-console-maintenance__repo-version{
  grid-column:1;
  grid-row:2;
  align-self:start;
  justify-self:start;
  flex-wrap:wrap;
  gap:2px 3px;
  min-height:18px;
  line-height:1;
}
.live-console-page.is-compact-touch .live-console-maintenance__repo-action-wrap,
.live-console-page.is-compact-touch .live-console-maintenance__tool-action-wrap{
  grid-column:2;
  grid-row:1 / span 2;
  align-self:center;
  justify-self:end;
  width:fit-content;
  min-width:var(--maintenance-action-min-column);
  max-width:var(--maintenance-action-column);
  min-height:var(--compact-touch-target);
}
.live-console-page.is-compact-touch .live-console-maintenance__app-panel .live-console-maintenance__repo-action-wrap,
.live-console-page.is-compact-touch .live-console-maintenance__app-panel .live-console-maintenance__tool-action-wrap{
  width:fit-content;
  max-width:var(--maintenance-action-column);
}
.live-console-page.is-compact-touch .live-console-maintenance__repo-row--wide-action > .live-console-maintenance__repo-action-wrap{
  width:fit-content;
  min-width:var(--maintenance-action-min-column);
  max-width:100%;
}
.live-console-page.is-compact-touch .live-console-maintenance__service-action-wrap{
  display:flex;
  width:auto;
  gap:4px;
}
.live-console-page.is-compact-touch .live-console-maintenance__service-action,
.live-console-page.is-compact-touch .live-console-maintenance__item-action{
  justify-content:center;
  text-align:center;
}
.live-console-page.is-compact-touch .live-console-maintenance__item-action{
  width:100%;
  min-height:var(--compact-touch-target);
  gap:6px;
  padding:0 8px;
}
.live-console-page.is-compact-touch .live-console-maintenance__item-action.ui-btn--compact-label{
  gap:4px;
  padding-inline:6px;
  letter-spacing:0;
}
.live-console-page.is-compact-touch .live-console-maintenance__service-action > span{
  display:none;
}
.live-console-page.is-compact-touch .live-console-maintenance__service-action{
  width:var(--compact-touch-target-sm);
  min-width:var(--compact-touch-target-sm);
  height:var(--compact-touch-target-sm);
  min-height:var(--compact-touch-target-sm);
  gap:0;
  padding:0;
}
@media (max-width:640px){
  .live-console-page.is-compact-touch .live-console-maintenance__tool-dialog .live-console-maintenance__repo-row{
    grid-template-columns:minmax(0, 1fr) auto;
    grid-template-areas:
      "name status"
      "action action";
    gap:4px 8px;
  }
  .live-console-page.is-compact-touch .live-console-maintenance__tool-dialog .live-console-maintenance__repo-label{
    grid-area:name;
    align-self:center;
  }
  .live-console-page.is-compact-touch .live-console-maintenance__tool-dialog .live-console-maintenance__repo-version{
    grid-area:status;
    align-self:center;
    justify-self:end;
  }
  .live-console-page.is-compact-touch .live-console-maintenance__tool-dialog .live-console-maintenance__repo-action-wrap{
    grid-area:action;
    align-self:center;
    justify-self:end;
    width:min(100%, var(--maintenance-action-column));
  }
  .live-console-page.is-compact-touch .live-console-maintenance__tool-dialog .live-console-settings__select-control{
    min-height:var(--compact-touch-target);
    height:var(--compact-touch-target);
  }
}
@container maintenance-card-list (max-width:420px){
  .live-console-page .live-console-maintenance__card .live-console-maintenance__repo-row{
    grid-template-columns:minmax(0, 1fr) minmax(var(--maintenance-action-min-column), max-content);
    grid-template-rows:auto auto;
    align-items:center;
    gap:2px 6px;
  }
  .live-console-page .live-console-maintenance__card .live-console-maintenance__repo-label{
    grid-column:1;
    grid-row:1;
    align-self:end;
  }
  .live-console-page .live-console-maintenance__card .live-console-maintenance__repo-version{
    grid-column:1;
    grid-row:2;
    align-self:start;
    justify-self:start;
    justify-content:flex-start;
    width:100%;
    max-width:100%;
    flex-wrap:nowrap;
    text-align:left;
  }
  .live-console-page .live-console-maintenance__card .live-console-maintenance__repo-version:has(.live-console-maintenance__badge.is-version) > .live-console-maintenance__badge.is-branch{
    display:none;
  }
  .live-console-page .live-console-maintenance__card .live-console-maintenance__repo-action-wrap,
  .live-console-page .live-console-maintenance__card .live-console-maintenance__tool-action-wrap{
    grid-column:2;
    grid-row:1 / span 2;
    align-self:center;
    justify-self:end;
    width:fit-content;
    min-width:var(--maintenance-action-min-column);
    max-width:var(--maintenance-action-column);
  }
  .live-console-page .live-console-maintenance__card .live-console-maintenance__service-row{
    grid-template-columns:minmax(0, 1fr) max-content;
  }
  .live-console-page .live-console-maintenance__card .live-console-maintenance__service-status{
    grid-column:2;
    grid-row:1;
    align-self:center;
    justify-self:end;
    width:auto;
  }
  .live-console-page .live-console-maintenance__card .live-console-maintenance__service-action-wrap{
    grid-column:1 / -1;
    grid-row:2;
    justify-self:stretch;
    justify-content:flex-end;
    width:100%;
    min-width:0;
    max-width:none;
  }
}
.live-console-page.is-compact-touch .live-console-maintenance__service-detail-actions{
  --ui-row-control-size:var(--compact-touch-target);
}
.live-console-page.is-compact-touch .live-console__dock.live-console__dock--icons{
  --dock-inline-inset:4px;
  width:58px;
  padding:4px var(--dock-inline-inset);
  gap:6px;
}
.live-console-page.is-compact-touch .live-console__dock.live-console__dock--icons .live-console__dock-items,
.live-console-page.is-compact-touch .live-console__dock.live-console__dock--icons .live-console__dock-footer{
  gap:6px;
}
.live-console-page.is-compact-touch .live-console__dock.live-console__dock--icons .live-console__dock-brand,
.live-console-page.is-compact-touch .live-console__dock.live-console__dock--icons .live-console__dock-item,
.live-console-page.is-compact-touch .live-console__dock.live-console__dock--icons .live-console__dock-fullscreen,
.live-console-page.is-compact-touch .live-console__dock.live-console__dock--icons .live-console__dock-settings,
.live-console-page.is-compact-touch .live-console__dock.live-console__dock--icons .live-console__dock-close{
  min-height:var(--compact-touch-target);
}
.live-console-page.is-compact-touch .live-console__pane-menubar .live-console__pane-menubar-btn,
.live-console-page.is-compact-touch .live-console__pane-footer-close{
  width:var(--compact-touch-target);
  min-width:var(--compact-touch-target);
  height:var(--compact-touch-target);
}
.live-console-page.is-compact-touch .live-console__statusbar:not(.is-compact){
  min-height:calc(var(--live-console-dock-control-block-size) + 13px);
  overflow:visible;
}
.live-console-page.is-compact-touch .live-console__statusbar:not(.is-compact) .live-console__status-marquee{
  display:block;
  flex:1 1 min(320px, 28vw);
  min-width:120px;
  padding-right:4px;
}
.image-websocket-viewer-v2__card{
  width:min(560px, 100%);
}
.image-websocket-viewer-v2__settings .ui-tip-text{
  width:min(560px, 100%);
  font-family:var(--vrch-font-readable);
  font-weight:var(--vrch-type-weight);
  line-height:var(--vrch-type-copy-line);
  letter-spacing:var(--vrch-type-tracking);
}
.image-websocket-viewer-v2__stage{
  display:none;
  background:var(--vrch-media-surface);
}
.image-websocket-viewer-v2__fps{
  top:8px;
  left:8px;
  right:auto;
  z-index:18;
  min-width:96px;
  justify-content:flex-start;
}
.image-websocket-viewer-v2__stage.image-websocket-viewer-v2__stage--status-visible .image-websocket-viewer-v2__fps{
  top:34px;
}
.image-websocket-viewer-v2__advanced{
  gap:6px;
}

.image-websocket-viewer-v2__advanced .ui-settings-row--split > .ui-settings-control{
  justify-content:flex-end;
}
.image-websocket-viewer-v2__advanced .ui-settings-row--split > .ui-settings-control.ui-settings-control--range{
  min-width:0;
}
.image-websocket-viewer-v2__advanced .ui-settings-row--split > .ui-settings-control > .ui-color-input{
  width:100%;
  min-width:0;
  height:34px;
}
.image-websocket-viewer-v2__settings-row--checkbox-group{
  align-items:flex-start;
  padding-top:10px;
  padding-bottom:10px;
}
.image-websocket-viewer-v2__settings-row--checkbox-group > .ui-settings-label{
  align-items:flex-start;
  min-height:0;
  padding-top:2px;
}
.image-websocket-viewer-v2__settings-row--checkbox-group > .ui-settings-control{
  align-items:flex-start;
}
.image-websocket-viewer-v2__advanced .input-row{
  margin-top:0;
}
.image-websocket-viewer-v2__advanced .toggle-container{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(168px, 224px);
  gap:10px;
  align-items:center;
  min-height:38px;
  padding:0 10px;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:var(--surface-2);
}
.image-websocket-viewer-v2__advanced .toggle-container:hover{
  border-color:var(--vrch-line-strong);
  background:var(--vrch-surface-hover);
}
.image-websocket-viewer-v2__advanced .toggle-container:focus-within{
  border-color:var(--vrch-line-strong);
}
.image-websocket-viewer-v2__advanced .label-cell{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:2px;
  color:var(--text);
  font-family:var(--sans);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-copy-line);
}
.image-websocket-viewer-v2__advanced .label-cell label{
  color:inherit;
}
.image-websocket-viewer-v2__advanced .switch-cell{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:flex-end;
}
.image-websocket-viewer-v2__advanced .switch-cell > select,
.image-websocket-viewer-v2__advanced .switch-cell > input[type="color"],
.image-websocket-viewer-v2__advanced .switch-cell > input[type="range"]{
  width:100%;
}
.image-websocket-viewer-v2__advanced .switch-cell > select{
  min-height:34px;
  height:34px;
  padding:0 34px 0 10px;
  border:1px solid var(--vrch-line-strong);
  border-radius:var(--r2);
  background:
    linear-gradient(45deg, transparent 50%, var(--vrch-text-secondary) 50%) calc(100% - 16px) calc(50% - 2px)/6px 6px no-repeat,
    linear-gradient(135deg, var(--vrch-text-secondary) 50%, transparent 50%) calc(100% - 11px) calc(50% - 2px)/6px 6px no-repeat,
    var(--vrch-surface-2);
  color:var(--text);
  appearance:none;
}
.image-websocket-viewer-v2__advanced .switch-cell > input[type="color"]{
  min-height:34px;
  height:34px;
  padding:4px;
  border:1px solid var(--vrch-line-strong);
  border-radius:var(--r2);
  background:var(--vrch-surface-2);
}
.image-websocket-viewer-v2__advanced .switch-cell > input[type="range"]{
  accent-color:var(--vrch-theme-action);
}
.image-websocket-viewer-v2__advanced .filter-value{
  color:var(--muted);
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
}
.image-websocket-viewer-v2__nested-group{
  margin-top:2px;
}
.image-websocket-viewer-v2__nested-group > summary{
  padding-top:6px;
}
.image-websocket-viewer-v2__nested-group[open] > summary{
  margin-bottom:6px;
}
.image-websocket-viewer-v2__advanced .checkbox-group{
  display:flex;
  flex-direction:column;
  gap:6px;
  width:100%;
}
.image-websocket-viewer-v2__advanced .checkbox-group label{
  display:flex;
  align-items:center;
  gap:6px;
  color:var(--text);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-line);
}
.image-websocket-viewer-v2__advanced .checkbox-group input[type="checkbox"]{
  accent-color:var(--vrch-theme-action);
}
.image-websocket-viewer-v2__advanced .image-viewer__advanced-filters{
  margin-top:6px;
}
.image-websocket-viewer-v2.is-live-console-embedded .image-websocket-viewer-v2__messages,
.image-websocket-viewer-v2.is-live-console-embedded .image-websocket-viewer-v2__audio-permission{
  display:none;
}
.image-websocket-viewer-v2 .projection-grid-overlay{
  position:absolute;
  inset:0;
  z-index:6;
  display:none;
  pointer-events:none;
}
.image-websocket-viewer-v2 .projection-grid-overlay.active{
  display:block;
}
.image-websocket-viewer-v2 .projection-grid-svg{
  width:100%;
  height:100%;
  display:block;
}
.image-websocket-viewer-v2 .projection-grid-line{
  vector-effect:non-scaling-stroke;
  shape-rendering:geometricPrecision;
}
.image-websocket-viewer-v2 .projection-grid-line--major{
  stroke:color-mix(in srgb, var(--vrch-projection-grid) 27%, transparent);
  stroke-width:1px;
}
.image-websocket-viewer-v2 .projection-grid-line--minor{
  stroke:color-mix(in srgb, var(--vrch-projection-grid) 14%, transparent);
  stroke-width:1px;
}
.image-websocket-viewer-v2 .projection-overlay{
  position:absolute;
  inset:0;
  z-index:8;
  display:none;
  pointer-events:none;
}
.image-websocket-viewer-v2 .projection-overlay.active{
  display:block;
  pointer-events:auto;
  cursor:default;
  touch-action:none;
  overscroll-behavior:contain;
}
.image-websocket-viewer-v2 .projection-overlay.active.projection-overlay--moveable{
  cursor:move;
}
body.image-websocket-viewer-v2.projection-edit-touch-lock{
  touch-action:none;
  overscroll-behavior:none;
  overflow:hidden;
}
.image-websocket-viewer-v2 .projection-guides{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  pointer-events:none;
}
.image-websocket-viewer-v2 .projection-guides line{
  stroke:var(--vrch-accent-text);
  opacity:.72;
  stroke-width:1.2px;
  vector-effect:non-scaling-stroke;
  shape-rendering:geometricPrecision;
}
.image-websocket-viewer-v2 .projection-guides line[data-guide="crossV"],
.image-websocket-viewer-v2 .projection-guides line[data-guide="crossH"]{
  stroke:var(--vrch-accent-text);
  stroke-dasharray:4 3;
}
.image-websocket-viewer-v2 .projection-reset-btn{
  position:absolute;
  transform:translate(-50%, -50%);
  width:30px;
  height:30px;
  min-width:30px;
  min-height:30px;
  display:none;
  align-items:center;
  justify-content:center;
  z-index:9;
  border:1px solid var(--vrch-line-strong);
  border-radius:var(--r2);
  background:var(--vrch-surface-1);
  color:var(--vrch-text-secondary);
  cursor:pointer;
  touch-action:manipulation;
  box-shadow:0 1px 0 color-mix(in srgb, var(--vrch-content-white) 6%, transparent) inset, 0 6px 18px color-mix(in srgb, var(--vrch-content-black) 26%, transparent);
  transition:transform .12s ease, background-color .12s ease, border-color .12s ease;
}
.image-websocket-viewer-v2 .projection-reset-btn.visible{
  display:inline-flex;
}
.image-websocket-viewer-v2 .projection-reset-btn::before{
  content:'';
  position:absolute;
  left:50%;
  top:50%;
  width:44px;
  height:44px;
  transform:translate(-50%, -50%);
}
.image-websocket-viewer-v2 .projection-reset-btn i{
  font-size:14px;
  line-height:1;
}
.image-websocket-viewer-v2 .projection-reset-btn:hover{
  border-color:var(--vrch-theme-border);
  background:var(--vrch-theme-selection);
}
.image-websocket-viewer-v2 .projection-reset-btn:active{
  transform:translate(-50%, calc(-50% + 1px));
}
.image-websocket-viewer-v2 .projection-sync-btn.projection-sync-btn--enabled,
.image-websocket-viewer-v2 .projection-grid-btn.projection-grid-btn--enabled,
.image-websocket-viewer-v2 .projection-sync-btn.projection-sync-btn--owner{
  color:var(--vrch-selection-foreground);
  background:var(--vrch-theme-selection);
  border-color:var(--vrch-theme-border);
}
.image-websocket-viewer-v2 .projection-sync-btn.projection-sync-btn--follow{
  color:var(--vrch-text-secondary);
  background:var(--vrch-surface-2);
  border-color:var(--vrch-line-strong);
}
.image-websocket-viewer-v2 .projection-handle{
  position:absolute;
  transform:translate(-50%, -50%);
  pointer-events:auto;
  box-sizing:border-box;
  touch-action:none;
}
.image-websocket-viewer-v2 .projection-handle::before{
  content:'';
  position:absolute;
  left:50%;
  top:50%;
  width:40px;
  height:40px;
  transform:translate(-50%, -50%);
}
.image-websocket-viewer-v2 .projection-handle--corner{
  width:16px;
  height:16px;
  border-radius:50%;
  background:var(--vrch-theme-action);
  border:2px solid var(--vrch-ink);
  box-shadow:0 0 0 1px color-mix(in srgb, var(--vrch-content-black) 55%, transparent);
  cursor:grab;
}
.image-websocket-viewer-v2 .projection-handle--edge{
  width:13px;
  height:13px;
  border-radius:2px;
  background:var(--vrch-accent-text);
  border:2px solid var(--vrch-ink);
  box-shadow:0 0 0 1px color-mix(in srgb, var(--vrch-content-black) 45%, transparent);
  cursor:grab;
}
.image-websocket-viewer-v2 .projection-handle:active{
  cursor:grabbing;
}
.image-websocket-viewer-v2 .audio-permission-notice{
  position:absolute;
  top:14px;
  left:50%;
  transform:translateX(-50%);
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:var(--vrch-surface-pressed);
  color:var(--vrch-text-secondary);
  font-size:var(--vrch-type-size);
  cursor:pointer;
  z-index:12;
}
.image-websocket-viewer-v2 .audio-permission-notice i{
  font-size:14px;
  color:var(--vrch-text-secondary);
}
.image-websocket-viewer-v2 .audio-permission-notice.hidden{
  display:none;
}
@media (max-width: 640px){
  .image-websocket-viewer-v2__card{
    width:min(100%, 560px);
  }
  .image-websocket-viewer-v2__settings .ui-tip-text{
    width:100%;
  font-family:var(--vrch-font-readable);
  font-weight:var(--vrch-type-weight);
  line-height:var(--vrch-type-copy-line);
  letter-spacing:var(--vrch-type-tracking);
}
  .image-websocket-viewer-v2__advanced .toggle-container{
    grid-template-columns:1fr;
    align-items:stretch;
    gap:6px;
    padding:10px;
  }
  .image-websocket-viewer-v2__advanced .switch-cell{
    justify-content:stretch;
  }
}
@media (max-width: 640px){
  .srt-player .srt-controls-actions{
    gap:6px;
  }
  .srt-player .srt-controls-actions .srt-player-control-btn{
    min-width:0;
    width:auto;
    padding:0;
  }
  .srt-player .srt-controls-actions .srt-player-control-btn > span{
    display:none;
  }
}
/* Shared runtime control panel for playback-style transport bars */


.ui-runtime-control-progress .player-progress{
  width:100%;
  min-height:45px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin:0;
}
.ui-runtime-control-progress .player-progress > span{
  min-width:44px;
  text-align:center;
  color:var(--vrch-text-secondary);
  font-variant-numeric:tabular-nums;
}
.ui-runtime-control-progress .player-progress > input[type="range"]{
  flex:1 1 auto;
  min-width:0;
  margin:0;
}









@media (max-width: 520px){
  .ui-runtime-control-progress .player-progress{
    flex-wrap:nowrap;
    gap:6px;
  }
  .ui-runtime-control-progress .player-progress > span{
    min-width:36px;
    font-size:var(--vrch-type-size);
  }

}


/* ============================================================
   Vibe operation dialog (P13) — one operation surface for Export
   and Import. Chrome comes from ui-modal / ui-dialog; the rules
   below only shape internal slots (preview, step checklist).
   Instrument palette: solid muted state colors, hard edges.
   ============================================================ */
.ui-modal__dialog.live-console-vibe-op__dialog{
  width:min(920px, calc(100% - 16px));
  max-width:920px;
  height:min(680px, calc(var(--live-console-settings-available-height) - 36px));
  max-height:calc(var(--live-console-settings-available-height) - 36px);
  padding:0;
  overflow:hidden;
  scrollbar-gutter:auto;
  scrollbar-width:none;
}
/* `.ui-btn--md` sets display:inline-flex, which outranks the UA [hidden]
   rule — so a `hidden` attribute alone never hides a modal action button.
   Make [hidden] authoritative for modal-dialog buttons (also corrects the
   existing open dialog's per-stage Cancel/Apply/Reload toggling). */

/* ONE preview component for Export and Import: fixed 16:9 frame plus a single
   filename/size footer, letterboxed content, and a quiet empty state. */
.live-console-vibe-op__preview-card{
  background:transparent;
}
.live-console-vibe-op__preview{
  position:relative;
  width:100%;
  aspect-ratio:16 / 9;
  border:1px solid var(--border);
  background:var(--vrch-media-code);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.live-console-vibe-op__preview-img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.live-console-vibe-op__preview[data-state="ready"] .live-console-vibe-op__preview-empty{ display:none; }
.live-console-vibe-op__preview[data-state="empty"] .live-console-vibe-op__preview-img{ display:none; }
.live-console-vibe-op__preview-empty{
  font-size:var(--vrch-type-size);
  color:var(--vrch-line-strong);
  letter-spacing:var(--vrch-type-tracking);
  text-transform:uppercase;
}
.live-console-vibe-op__preview-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:30px;
  padding:7px 1px 0;
}
.live-console-vibe-op__preview-name{
  min-width:0;
  font-size:var(--vrch-type-size);
  color:var(--text);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.live-console-vibe-op__preview-size{
  flex:0 0 auto;
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  color:var(--muted);
}
/* Conjugate two-column Review: preview + package information left,
   the domain toggle list right. Each column owns its scroll position on
   desktop, so reviewing a long scope list never displaces the preview. */
.live-console-vibe-op__confirm{
  display:grid;
  grid-template-columns:42fr 58fr;
  gap:16px;
  align-items:stretch;
  height:100%;
  min-height:0;
}
.live-console-vibe-op__confirm[data-disabled="true"][data-review-visible="true"]{
  opacity:.7;
}
.live-console-vibe-op__confirm[data-review-visible="false"] .live-console-vibe-op__col--left::after,
.live-console-vibe-op__confirm[data-review-visible="false"] .live-console-vibe-op__col--right::before{
  content:"";
  display:block;
  flex:0 0 auto;
  border:1px solid var(--vrch-confirm-surface);
  background:repeating-linear-gradient(to bottom, var(--vrch-toggle-row-surface) 0 43px, var(--vrch-surface-3) 43px 44px);
  opacity:.72;
}
.live-console-vibe-op__confirm[data-review-visible="false"] .live-console-vibe-op__col--left::after{
  height:150px;
}
.live-console-vibe-op__confirm[data-review-visible="false"] .live-console-vibe-op__col--right::before{
  min-height:100%;
}
.live-console-vibe-op__col{
  display:flex;
  flex-direction:column;
  gap:10px;
  min-width:0;
  min-height:0;
  overflow-y:auto;
  scrollbar-gutter:stable;
  padding-right:4px;
}
@media (max-width: 760px), (pointer: coarse){
  .live-console-vibe-op__confirm{
    grid-template-columns:1fr;
    height:auto;
  }
  .live-console-vibe-op__col{
    overflow:visible;
    scrollbar-gutter:auto;
    padding-right:0;
  }
}
.live-console-vibe-op__summary{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.live-console-vibe-op__summary-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  font-size:var(--vrch-type-size);
}
.live-console-vibe-op__summary-key{ color:var(--muted); }
.live-console-vibe-op__summary-val{ color:var(--text); font-family:var(--mono); }
.live-console-vibe-op__summary-row[data-tone="warn"] .live-console-vibe-op__summary-val{ color:var(--vrch-warning); }
/* Unified domain toggle list: compact on pointer-driven desktop, with the
   full 44px hit area restored for touch. */
.live-console-vibe-op__scope-block{
  border:1px solid var(--border);
  background:var(--vrch-surface-1);
}
.live-console-vibe-op__scope-block[hidden]{ display:none; }
.live-console-vibe-op__scope-header{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
  padding:8px 10px;
  border-bottom:1px solid var(--border);
  background:var(--vrch-secondary-surface);
}
.live-console-vibe-op__scope-heading{
  text-transform:uppercase;
  color:var(--muted);
}
.live-console-vibe-op__scope-count{
  font-size:var(--vrch-type-size);
  font-family:var(--mono);
  color:var(--vrch-text-dim);
}
.live-console-vibe-op__scope{
  display:flex;
  flex-direction:column;
}
.live-console-vibe-op__scope-row{
  display:flex;
  align-items:center;
  gap:10px;
  padding:4px 10px;
  min-height:40px;
  cursor:pointer;
}
.live-console-vibe-op__scope-row:not(:last-child){ border-bottom:1px solid var(--vrch-surface-3); }
/* DOM keeps the switch first (stable for tests/AT reading order tweaks are
   handled by the label wrapper); visually it sits on the right */
.live-console-vibe-op__scope-row .live-console-vibe-op__scope-check{
  order:2;
  flex:0 0 auto;
}
.live-console-vibe-op__scope-text{
  order:1;
  display:flex;
  flex-direction:column;
  gap:1px;
  flex:1 1 auto;
  min-width:0;
}
.live-console-vibe-op__scope-name{ font-size:var(--vrch-type-size); color:var(--text); }
.live-console-vibe-op__scope-hint{
  font-size:var(--vrch-type-size);
  color:var(--vrch-line-emphasis);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.live-console-vibe-op__scope-row[data-danger="true"] .live-console-vibe-op__scope-hint{ color:var(--vrch-warning); }
@media (pointer: coarse){
  .live-console-vibe-op__scope-row{
    min-height:44px;
    padding:6px 10px;
  }
}
.live-console-vibe-op__steps{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.live-console-vibe-op__step{
  display:flex;
  align-items:baseline;
  gap:8px;
  font-size:var(--vrch-type-size);
  color:var(--muted);
}
.live-console-vibe-op__step-glyph{
  font-family:var(--mono);
  width:14px;
  flex:0 0 auto;
  text-align:center;
  color:var(--vrch-line-emphasis);
}
.live-console-vibe-op__step-label{
  flex:1 1 auto;
}
.live-console-vibe-op__step-detail{
  font-family:var(--mono);
  font-size:var(--vrch-type-size);
  color:var(--vrch-line-emphasis);
  flex:0 0 auto;
}
.live-console-vibe-op__step[data-state="running"],
.live-console-vibe-op__step[data-state="ok"]{
  color:var(--text);
}
.live-console-vibe-op__step[data-state="running"] .live-console-vibe-op__step-glyph{
  color:var(--text);
}
.live-console-vibe-op__step[data-state="ok"] .live-console-vibe-op__step-glyph{
  color:var(--vrch-status-accent-text);
}
.live-console-vibe-op__step[data-state="warn"]{
  color:var(--vrch-warning);
}
.live-console-vibe-op__step[data-state="warn"] .live-console-vibe-op__step-glyph{
  color:var(--vrch-warning);
}
.live-console-vibe-op__step[data-state="fail"]{
  color:var(--vrch-danger);
}
.live-console-vibe-op__step[data-state="fail"] .live-console-vibe-op__step-glyph{
  color:var(--vrch-danger);
}
.live-console-vibe-op__step[data-state="skipped"]{
  color:var(--vrch-line-emphasis);
}
.live-console-vibe-op__warning{
  margin:10px 0 0;
  font-size:var(--vrch-type-size);
  color:var(--vrch-warning);
}
/* visually-hidden live region: announces stage/outcome to assistive tech
   without adding visible chrome or re-reading the whole checklist. */
.live-console-vibe-op__sr{
  position:absolute;
  width:1px;
  height:1px;
  margin:-1px;
  padding:0;
  border:0;
  overflow:hidden;
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  white-space:nowrap;
}
/* Stable outer geometry: header, review body and pinned actions occupy fixed
   grid rows. Mode changes stay inside independently scrolling columns. */
.ui-modal__dialog.live-console-vibe-op__dialog{
  display:grid;
  grid-template-rows:auto minmax(0, 1fr) auto;
}
.live-console-vibe-op__body{
  grid-row:2;
  grid-column:1;
  position:relative;
  min-height:0;
  overflow:hidden;
}
.live-console-vibe-op__actions{
  grid-row:3;
  grid-column:1;
  padding:12px;
  border-top:1px solid var(--border);
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin:0;
}
.live-console-vibe-op__overlay{
  position:absolute;
  top:10px;
  left:50%;
  z-index:3;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  width:min(520px, calc(100% - 24px));
  max-height:calc(100% - 20px);
  padding:0;
  background:transparent;
  transform:translateX(-50%);
  opacity:1;
  transition:transform .24s ease, opacity .24s ease;
  animation:live-console-vibe-notch-in .18s ease;
}
.live-console-vibe-op__overlay[hidden]{ display:none; }
.live-console-vibe-op__overlay.is-retracting{
  transform:translate(-50%, -18px);
  opacity:0;
  pointer-events:none;
}
@keyframes live-console-vibe-notch-in{
  from{ transform:translate(-50%, -18px); opacity:0; }
  to{ transform:translateX(-50%); opacity:1; }
}
.live-console-vibe-op__overlay-panel{
  width:100%;
  max-height:100%;
  overflow-y:auto;
  border:1px solid var(--border);
  background:color-mix(in srgb, var(--vrch-surface-2) 96%, transparent);
  padding:10px 12px;
}
.live-console-vibe-op__overlay-header{
  display:flex;
  flex-direction:column;
  gap:3px;
  margin-bottom:8px;
}
.live-console-vibe-op__overlay-title{
  color:var(--text);
  text-transform:uppercase;
}
.live-console-vibe-op__overlay-subtitle{
  color:var(--muted);
  font-size:var(--vrch-type-size);
  font-family:var(--vrch-font-readable);
  font-weight:var(--vrch-type-weight);
  line-height:var(--vrch-type-copy-line);
  letter-spacing:var(--vrch-type-tracking);
}
@media (max-width: 760px), (pointer: coarse){
  .live-console-vibe-op__body{
    overflow-y:auto;
  }
}
/* [hidden] must win over the shared close button's box display */
.live-console-vibe-op .ui-modal__close[hidden]{
  display:none;
}
/* every flex-displayed slot needs [hidden] made authoritative, or the
   confirm panel bleeds into the progress phase */
.live-console-vibe-op__confirm[hidden],
.live-console-vibe-op__steps[hidden],
.live-console-vibe-op__details[hidden],
.live-console-vibe-op__report[hidden]{
  display:none;
}
/* optional actions (e.g. workflow push): same row anatomy as the domain
   toggles — text left, switch right, ≥44px hit area */
.live-console-vibe-op__extra-row{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  min-height:44px;
  padding:6px 10px;
  border:1px solid var(--border);
  background:var(--vrch-surface-1);
  cursor:pointer;
}
.live-console-vibe-op__extra-row .live-console-vibe-op__extra-check{
  order:2;
  flex:0 0 auto;
}
.live-console-vibe-op__extra-copy{
  order:1;
  display:flex;
  flex:1 1 auto;
  min-width:0;
  flex-direction:column;
  gap:2px;
}
.live-console-vibe-op__extra-text{
  font-size:var(--vrch-type-size);
  color:var(--text);
}
.live-console-vibe-op__extra-hint{
  font-size:var(--vrch-type-size);
  color:var(--vrch-line-emphasis);
}
.live-console-vibe-op__extra-row[data-variant="inline"]{
  min-height:40px;
  padding:4px 0;
  border:0;
  background:transparent;
}
.live-console-vibe-op__extra-row[data-disabled="true"]{
  opacity:.5;
  cursor:default;
}
/* Compact touch uses the exact Settings header/footer geometry. */
.live-console-page.is-compact-touch .live-console-vibe-op__dialog > .ui-dialog__header{
  min-height:52px;
  padding:4px 8px;
  column-gap:8px;
}
.live-console-page.is-compact-touch .live-console-vibe-op__dialog > .ui-dialog__header .ui-dialog__subtitle{
  display:none;
  font-family:var(--vrch-font-readable);
  font-weight:var(--vrch-type-weight);
  line-height:var(--vrch-type-copy-line);
  letter-spacing:var(--vrch-type-tracking);
}
.live-console-page.is-compact-touch .live-console-vibe-op .ui-modal__close{
    width:var(--compact-touch-target);
    min-width:var(--compact-touch-target);
    height:var(--compact-touch-target);
    min-height:var(--compact-touch-target);
    border:0;
    background:transparent;
    font-size:18px;
}
.live-console-page.is-compact-touch .live-console-vibe-op__actions{
    min-height:var(--compact-settings-footer);
    padding:7px 8px;
}
.live-console-page.is-compact-touch .live-console-vibe-op__actions .ui-btn--sm{
    min-width:96px;
    height:var(--compact-touch-target);
    min-height:var(--compact-touch-target);
    padding:0 14px;
}
/* dry-run rows: what applies / restores / carries / skips, and why */
.live-console-vibe-op__details{
  display:flex;
  flex-direction:column;
  border:1px solid var(--border);
  background:var(--vrch-surface-1);
  max-height:240px;
  overflow-y:auto;
}
.live-console-vibe-op__row{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:10px;
  padding:5px 10px;
  font-size:var(--vrch-type-size);
}
.live-console-vibe-op__row:not(:last-child){
  border-bottom:1px solid var(--vrch-surface-3);
}
.live-console-vibe-op__row-label{
  color:var(--text);
  flex:0 0 auto;
}
.live-console-vibe-op__row-summary{
  color:var(--vrch-text-dim);
  text-align:right;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  min-width:0;
}
.live-console-vibe-op__row[data-kind="skipped"] .live-console-vibe-op__row-label{ color:var(--vrch-line-emphasis); }
.live-console-vibe-op__row[data-kind="skipped"] .live-console-vibe-op__row-summary{ color:var(--vrch-warning); }
.live-console-vibe-op__row[data-kind="push"] .live-console-vibe-op__row-summary{ color:var(--vrch-status-accent-text); }
/* final report lines under the checklist */
.live-console-vibe-op__report{
  margin-top:10px;
  display:flex;
  flex-direction:column;
  gap:3px;
  max-height:140px;
  overflow-y:auto;
}
.live-console-vibe-op__report-line{
  font-size:var(--vrch-type-size);
  color:var(--vrch-text-dim);
}
/* Review-stage operation parameters (name + mode) */
.live-console-vibe-op__params{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.live-console-vibe-op__params[hidden]{ display:none; }
.live-console-vibe-op__param-row{
  display:flex;
  align-items:center;
  gap:10px;
}
.live-console-vibe-op__param-label{
  flex:0 0 48px;
  color:var(--muted);
}
.live-console-vibe-op__param-input{
  flex:1 1 auto;
  min-width:0;
}
.live-console-vibe-op__param-row .live-console-settings__option-button{
  flex:1 1 auto;
}
.live-console-vibe-op__param-hint{
  margin:0;
  font-size:var(--vrch-type-size);
  color:var(--vrch-line-emphasis);
}
/* dry-run group titles + collapsed info line */
.live-console-vibe-op__row--title{
  border-bottom:1px solid var(--border);
  background:var(--vrch-secondary-surface);
}
.live-console-vibe-op__row--title .live-console-vibe-op__row-label{
  color:var(--muted);
}
.live-console-vibe-op__row[data-kind="info"] .live-console-vibe-op__row-label{
  color:var(--vrch-text-dim);
}
/* opt-in extra hint (e.g. workflow push never overwrites) */
.live-console-vibe-op__extra-hint{
  order:3;
  flex:1 1 100%;
}
/* Live Console shortcut registry editor */
.live-console-shortcuts__header{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:start;
  gap:12px;
}
.live-console-shortcuts__reset-all{
  min-width:92px;
}
.live-console-shortcuts__feedback{
  min-height:20px;
  margin-top:2px;
  color:var(--muted);
  font-family:var(--sans);
  font-size:var(--vrch-type-size);
  line-height:var(--vrch-type-copy-line);
}
.live-console-shortcuts__feedback.is-error{
  color:var(--vrch-danger);
}
.live-console-shortcuts__feedback.is-success{
  color:var(--vrch-status-accent-text);
}
.live-console-shortcuts__list{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.live-console-shortcuts__group{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.live-console-settings__group--shortcuts .live-console-shortcuts__control.has-reset{
  --ui-row-control-size:36px;
  display:grid;
  grid-template-columns:36px minmax(0, 1fr);
  gap:0;
  width:100%;
  min-width:0;
}
.live-console-settings__group--shortcuts .live-console-shortcuts__binding{
  width:100%;
  min-width:0;
}
.live-console-settings__group--shortcuts .live-console-shortcuts__control.has-reset .live-console-shortcuts__binding{
  border-top-left-radius:0;
  border-bottom-left-radius:0;
}
.live-console-settings__group--shortcuts .live-console-shortcuts__binding.is-capturing{
  border-color:var(--vrch-theme-action);
  background:var(--vrch-theme-selection);
  color:var(--vrch-status-accent-text);
}
.live-console-settings__group--shortcuts .live-console-shortcuts__binding.is-fixed{
  cursor:default;
  color:var(--vrch-text-secondary);
}
.live-console-shortcuts__binding-icon{
  flex:0 0 auto;
  margin-left:auto;
  color:var(--vrch-text-dim);
  font-size:var(--vrch-type-size);
}
.live-console-page.is-compact-touch .live-console-settings__group--shortcuts .live-console-shortcuts__control.has-reset{
  --ui-row-control-size:44px;
  grid-template-columns:44px minmax(0, 1fr);
  width:100%;
}
@media (max-width: 760px){
  .live-console-shortcuts__header{
    grid-template-columns:minmax(0, 1fr);
    gap:8px;
  }
  .live-console-shortcuts__reset-all{
    width:100%;
  }
}

/* Independent Prompts view; the host keeps the current Console layout intact. */
:is(.live-console-prompts-frame,.live-console-visual-settings-frame){position:fixed;inset:var(--live-console-monitor-top,0px) 0 var(--live-console-monitor-bottom,0px);width:100%;height:calc(100% - var(--live-console-monitor-top,0px) - var(--live-console-monitor-bottom,0px));border:0;background:transparent;z-index:var(--vrch-layer-modal)}
:is(.live-console-prompts-frame,.live-console-visual-settings-frame)[hidden]{display:none}

/* Console tool windows and scrims share the stage between the Monitor strips. */
.live-console-page > :is(.scene-picker-modal, .live-console-maintenance__screens-modal, .live-console-menu-tool, .live-console-vibectrl-actions, #liveConsoleSystemInfoModal){
  top:var(--live-console-monitor-top,0px);
  bottom:var(--live-console-monitor-bottom,0px);
}
.live-console-page > :is(.scene-picker-modal, .live-console-maintenance__screens-modal, .live-console-menu-tool, .live-console-vibectrl-actions, #liveConsoleSystemInfoModal) > .ui-modal__dialog{
  max-height:100%;
  min-height:0;
}

/* Per-encoder speed readout and authored default position in the existing Monitor. */
.live-console-vibectrl-monitor__speed{
  position:absolute;
  left:6px;
  top:0;
  z-index:1;
  background:color-mix(in srgb, var(--vrch-bg) 65%, transparent);
  pointer-events:none;
  width:16px;
  font-size:8px;
  line-height:8px;
  text-align:left;
  color:var(--vrch-text);
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.live-console-vibectrl-monitor__meter[data-default]::after{
  content:"";
  position:absolute;
  left:0;
  top:clamp(1px,calc(100% - var(--default-position)),calc(100% - 1px));
  width:100%;
  height:2px;
  transform:translateY(-50%);
  background:var(--vrch-text);
  pointer-events:none;
}
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__meter[data-default],
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__meter[data-default]{position:relative;left:auto;top:auto;}
.live-console-vibectrl-monitor[data-density="wide"] .live-console-vibectrl-monitor__meter[data-default]::after,
.live-console-vibectrl-monitor[data-layout="split"] .live-console-vibectrl-monitor__meter[data-default]::after{
  left:clamp(1px,var(--default-position),calc(100% - 1px));
  top:0;
  bottom:0;
  width:2px;
  height:auto;
  transform:translateX(-50%);
}

/* Components summary preserves independent name, version and status columns. */
.live-console-maintenance__repo-list.live-console-maintenance__repo-list--three-columns .live-console-maintenance__repo-row{flex-shrink:0;grid-template-columns:minmax(0,1.3fr) minmax(0,1.1fr) minmax(0,1.4fr);grid-template-rows:auto;gap:8px;min-height:38px;padding:4px 0}
.live-console-maintenance__repo-list.live-console-maintenance__repo-list--three-columns .live-console-maintenance__repo-label{grid-column:1;grid-row:1;align-self:center;line-height:1.2;word-break:normal;overflow-wrap:normal}
.live-console-maintenance__repo-list.live-console-maintenance__repo-list--three-columns .live-console-maintenance__repo-version{grid-column:2;grid-row:1;align-self:center;justify-self:stretch;justify-content:flex-start;width:100%;text-align:left;overflow:visible}
.live-console-maintenance__repo-list.live-console-maintenance__repo-list--three-columns .live-console-maintenance__badge{white-space:normal;overflow:visible;overflow-wrap:anywhere}
.live-console-maintenance__repo-list.live-console-maintenance__repo-list--three-columns .live-console-maintenance__repo-action-wrap{grid-column:3;grid-row:1;justify-self:stretch;justify-content:flex-end;width:100%;min-width:0;min-height:0;max-width:none;text-align:right}
.live-console-maintenance__repo-list.live-console-maintenance__repo-list--three-columns .live-console-maintenance__repo-state{flex:0 1 auto;width:auto;min-width:0;white-space:normal;justify-content:flex-end}
