.rv-stage.is-web { padding: 10px 12px 106px; }
.rv-wrap.theatre .rv-stage.is-web { padding-bottom: clamp(106px, 10vh, 120px); }
.rv-list .rv-ses {
  content-visibility: auto;
  contain-intrinsic-size: auto 74px;
}
body:has(.ov) .rv-hud { display: none; }
.rv-wrap.theatre .rv-mob-empty-title { color: rgba(255, 255, 255, .9) !important; }
.rv-stage.is-mobile { padding-bottom: 96px; }
.rv-wrap.theatre .rv-stage.is-mobile { padding-bottom: clamp(96px, 10vh, 120px); }
.rv-tick { position: absolute; top: 50%; bottom: auto; width: 2px; padding: 0;
  transform: translate(-50%, -50%); cursor: pointer; z-index: 3; border-radius: 2px;
  transition: height .18s var(--ease-out, ease), width .18s var(--ease-out, ease),
    opacity .18s var(--ease-out, ease), background .18s var(--ease-out, ease); }
.rv-tick[data-w="low"]  { height: 7px;  opacity: .36; }
.rv-tick[data-w="med"]  { height: 9px;  opacity: .58; }
.rv-tick[data-w="high"] { height: 11px; opacity: .9; }
.rv-tick.rv-tk-click { background: rgba(255, 255, 255, .92); }            
.rv-tick.rv-tk-net,
.rv-tick.rv-tk-input,
.rv-tick.rv-tk-dead  { background: rgba(255, 255, 255, .82); }
.rv-tick.rv-tk-nav   { height: 5px; opacity: .24; background: rgba(255, 255, 255, .9); } 
.rv-tick.rv-tk-err   { background: #dd8a5c; }
.rv-tick.rv-tk-rage  { background: #db6b74; }
.rv-tick.rv-tk-ai { width: 2px; height: 13px; opacity: 1; background: #7f80ee;
  box-shadow: 0 0 5px rgba(127, 128, 238, .4); }
.rv-tick.rv-tk-ai::before { content: ""; position: absolute; top: -3.5px; left: 50%;
  transform: translateX(-50%); width: 4px; height: 4px; border-radius: 50%; background: #9a9bf7; }
.rv-tick:hover { height: 16px; width: 3px; opacity: 1; }
.rv-tick.rv-tk-nav:hover { height: 16px; opacity: .5; }
.rv-tick.rv-tk-ai:hover { height: 17px; }
.rv-tick.hot { height: 16px; width: 3px; opacity: 1; box-shadow: 0 0 7px rgba(255, 255, 255, .45); }
.rv-tick.rv-tk-nav.hot { height: 16px; opacity: .6; }
.rv-tick.rv-tk-ai.hot { height: 17px; box-shadow: 0 0 8px rgba(127, 128, 238, .7); }
.rv-tiptip { position: fixed; transform: translate(-50%, calc(-100% - 12px)); z-index: 40;
  min-width: 176px; max-width: 264px; font-family: var(--font); color: #fff;
  background: rgba(20, 21, 26, .98); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, .08); border-radius: 12px; padding: 11px 13px 12px;
  box-shadow: 0 18px 48px rgba(0, 0, 0, .5), 0 2px 8px rgba(0, 0, 0, .3), inset 0 1px 0 rgba(255, 255, 255, .05);
  pointer-events: auto; animation: rv-tt-in .18s var(--ease-out); }
@keyframes rv-tt-in { from { opacity: 0; transform: translate(-50%, calc(-100% - 5px)) scale(.97); }
  to { opacity: 1; transform: translate(-50%, calc(-100% - 12px)) scale(1); } }
.rv-tt-eyebrow { display: flex; align-items: center; gap: 6px; font-size: 10.5px; font-weight: 650;
  letter-spacing: .045em; text-transform: uppercase; color: rgba(255, 255, 255, .58); }
.rv-tt-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex-shrink: 0; }
.rv-tt-time { margin-left: auto; font-variant-numeric: tabular-nums; letter-spacing: 0; text-transform: none;
  font-weight: 500; color: rgba(255, 255, 255, .38); }
.rv-tt-head { margin-top: 6px; font-size: 13px; font-weight: 560; line-height: 1.35; letter-spacing: -.01em;
  color: #fff; word-break: break-word; }
.rv-tt-meta { margin-top: 3px; font-size: 11.5px; color: rgba(255, 255, 255, .52); font-variant-numeric: tabular-nums; }
.rv-tt-list { margin: 7px 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 4px; }
.rv-tt-list li { font-size: 11.5px; color: rgba(255, 255, 255, .72); padding-left: 13px; position: relative; line-height: 1.3; }
.rv-tt-list li::before { content: ""; position: absolute; left: 2px; top: 6px; width: 3px; height: 3px;
  border-radius: 50%; background: rgba(255, 255, 255, .38); }
.rv-tt-cta { margin-top: 11px; display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px;
  font-weight: 560; color: rgba(255, 255, 255, .82); letter-spacing: -.005em; transition: color .14s var(--ease-out); }
.rv-tt-cta:hover { color: #fff; }
.rv-tt-cta svg { transition: transform .16s var(--ease-out); }
.rv-tt-cta:hover svg { transform: translateX(2px); }
.rv-tt-click .rv-tt-eyebrow { color: #aab4cd; }
.rv-tt-nav   .rv-tt-eyebrow { color: #93a6c4; }
.rv-tt-rage  .rv-tt-eyebrow { color: #f2717c; }
.rv-tt-err   .rv-tt-eyebrow { color: #f0a15a; }
.rv-tt-ai    .rv-tt-eyebrow { color: #9a9bf7; }
.rv-tiptip.rv-tt-ai { border-color: rgba(120, 122, 240, .32);
  box-shadow: 0 18px 48px rgba(0, 0, 0, .5), 0 0 0 1px rgba(120, 122, 240, .14), 0 4px 22px rgba(91, 92, 235, .16); }
.rv-tiptip.rv-tt-ai .rv-tt-cta { color: #b3b4f9; }
.rv-tiptip.rv-tt-ai .rv-tt-cta:hover { color: #d0d0fb; }
.rv-insp-tabs button.soon { color: var(--rv-faint); opacity: .45; cursor: default; }
.rv-insp-tabs button.soon:hover { color: var(--rv-faint); }
.rv-insp-tabs button.soon::before { display: none; }
.rv-soontip {
  position: fixed; transform: translateX(-50%);
  background: rgba(8, 9, 12, .97); color: #fff; font-size: 10.5px; font-weight: 500;
  letter-spacing: .1px; white-space: nowrap; padding: 4px 8px; border-radius: 6px;
  border: 1px solid rgba(255, 255, 255, .09);
  box-shadow: 0 6px 18px rgba(0, 0, 0, .28);
  pointer-events: none; z-index: 60;
  opacity: 1;
  animation: rv-soontip-in .12s ease-out;
}
@keyframes rv-soontip-in {
  from { opacity: 0; transform: translateX(-50%) translateY(-3px); }
  to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .rv-soontip { animation: none; }
}
.rv-cl-args { display: flex; flex-direction: column; gap: 4px; margin-bottom: 6px; }
.rv-cl-arg { font-family: var(--mono); font-size: 10px; line-height: 1.7; color: var(--rv-faint);
  white-space: pre-wrap; word-break: break-word; background: var(--rv-hover, rgba(127,127,127,.06));
  border-radius: 5px; padding: 5px 7px; }
.rv-cl-meta { display: flex; flex-wrap: wrap; gap: 4px 14px; }
.rv-cl-kv { display: inline-flex; align-items: baseline; gap: 6px; font-size: 10px; line-height: 1.7; }
.rv-cl-kv .k { color: var(--rv-faint); }
.rv-cl-kv .v { font-family: var(--mono); color: var(--rv-ink, var(--text)); }
.rv-cmts-empty { padding: 18px 16px; font-size: 11.5px; line-height: 1.65;
  color: var(--rv-faint); text-align: center; }
.rv-post:disabled { opacity: .45; cursor: default; }
.rv-perf-empty { padding: 14px 16px; font-size: 11.5px; line-height: 1.65;
  color: var(--rv-faint); text-align: center; }
.rv-prop-empty { padding: 8px 14px 10px; font-size: 10.5px; line-height: 1.6;
  color: var(--rv-faint); }
.rv-netx { --netx-cols: 48px 56px 1fr 56px 60px 16px; }
.rv-netx .rv-net-hd {
  display: grid; grid-template-columns: var(--netx-cols); gap: 4px; align-items: center;
  padding: 6px 14px; font-family: var(--mono); font-size: 8.5px; font-weight: 600;
  letter-spacing: .5px; text-transform: uppercase; color: var(--rv-ghost);
  border-bottom: 1px solid var(--rv-line);
  position: sticky; top: 0; z-index: 1; background: var(--bg);
}
.rv-netx .rv-net-hd .r { text-align: right; }
.rv-netx .rv-req-row { grid-template-columns: var(--netx-cols); gap: 4px; align-items: center; }
.rv-netx .rv-req .u  { min-width: 0; }
.rv-netx .rv-net-t   { color: var(--rv-faint); font-variant-numeric: tabular-nums; }
.rv-netx .rv-req .mth.get    { color: var(--rv-net); }
.rv-netx .rv-req .mth.post   { color: var(--rv-ok); opacity: 1; }
.rv-netx .rv-req .mth.put    { color: var(--rv-warn); }
.rv-netx .rv-req .mth.delete { color: var(--rv-err); }
.rv-netx .rv-req .st { display: inline-flex; align-items: center; justify-content: flex-end; gap: 5px; }
.rv-netx .rv-req .st.ok { color: var(--rv-ok); }
.rv-netx .rv-req .st .dot { width: 5px; height: 5px; border-radius: 50%; background: currentColor; flex: 0 0 auto; }
.rv-netx .rv-net-chev { color: var(--rv-ghost); font-size: 7px; justify-self: end; line-height: 1; }
.rv-netx .rv-nx-tabs { display: flex; gap: 0; border-bottom: 1px solid var(--rv-line); margin: 2px 0 8px; }
.rv-netx .rv-nx-tab {
  font-family: var(--mono); font-size: 9.5px; padding: 4px 9px 5px;
  background: none; border: none; border-bottom: 1.5px solid transparent;
  color: var(--rv-faint); cursor: pointer; transition: .13s var(--ease);
}
.rv-netx .rv-nx-tab:hover { color: var(--rv-mut); }
.rv-netx .rv-nx-tab.on { color: var(--rv-ink); font-weight: 600; border-bottom-color: var(--rv-ink); }
.rv-netx .rv-nx-tabs + .rv-rx-h { margin-top: 2px; }
.rv-dbg-empty { padding: 16px; font-size: 11px; color: var(--rv-faint); text-align: center; }
.rv-json.rv-json-dark {
  background: #14151a; border-left: none; border-radius: 7px;
  padding: 9px 11px; margin: 5px 0 0; color: #c9cddb;
  overflow-x: auto;
}
.rv-json.rv-json-dark.plain { color: #8a90a6; padding: 9px 11px; }
.rv-json.rv-json-dark .jline.fold:hover { background: rgba(255,255,255,.06); }
.rv-json.rv-json-dark .jcaret { color: #6c7288; }
.rv-json.rv-json-dark .jpv { color: #6c7288; }
.rv-json.rv-json-dark .jk { color: #9d8cff; }  
.rv-json.rv-json-dark .js { color: #5ed3a3; }  
.rv-json.rv-json-dark .jn { color: #6aa4ff; }  
.rv-json.rv-json-dark .jb { color: #ff8b8b; }  
.rv-json.rv-json-dark .jp { color: #6c7288; }  
.rv-issue { cursor: default; }
.rv-issue {
  background: var(--surface);
  border: 1px solid var(--line-strong);
  color: #3f434b;
}
.rv-issue svg { color: #bd8638; }
.rv-issue:hover { background: rgba(17, 17, 20, .04); border-color: #d8d8db; }
@media (min-width: 1241px) {
  .rv-acts .rv-issue[data-tip]:hover::after { opacity: 0; }
}
.rv-ico { transition: background-color .12s var(--ease), color .12s var(--ease), transform .1s var(--ease); }
.rv-issue { transition: background-color .12s var(--ease), border-color .12s var(--ease), color .12s var(--ease), transform .1s var(--ease); }
.rv-ico:not(:disabled):active,
.rv-issue:not(:disabled):active { transform: scale(0.955); }
@media (prefers-reduced-motion: reduce) {
  .rv-ico:active, .rv-issue:active { transform: none; }
}
.replayer-wrapper .replayer-mouse {
  width: 19px;
  height: 29px;
  margin-left: 0;
  margin-top: 0;
  border: none;
  border-radius: 0;
  background: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='29' viewBox='0 0 15 23'%3E%3Cpath d='M1 1L1 19.4L5.5 15.2L8.4 21.9L10.8 20.8L7.9 14.2L14.2 14.2Z' fill='%235b5ceb' stroke='%23fff' stroke-width='1.3' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: 0 0;
  background-size: contain;
  filter: drop-shadow(0 1px 2px rgba(17, 17, 20, .35));
  z-index: 3;
}
.replayer-wrapper .replayer-mouse::after {
  position: absolute;
  left: 2px;
  top: 2px;
  background: rgba(91, 92, 235, .5);
}
.rv-insp-tabs { overflow-x: auto; overflow-y: hidden; }
.rv-copywrap { position: relative; }
.rv-copybtn {
  position: absolute; top: 5px; right: 5px; width: 22px; height: 22px;
  display: grid; place-items: center; border-radius: 5px; border: none;
  background: rgba(255, 255, 255, .08); color: #c9cddb; cursor: pointer;
  opacity: 0; transition: opacity .12s ease-out, background .12s ease-out;
}
.rv-copywrap:hover .rv-copybtn { opacity: 1; }
.rv-copybtn:hover { background: rgba(255, 255, 255, .18); color: #fff; }
.rv-cl-args .rv-copybtn, .rv-cl-stack ~ .rv-copybtn,
.rv-copywrap:has(> .rv-cl-stack) .rv-copybtn,
.rv-copywrap:has(> .rv-cl-arg) .rv-copybtn {
  background: var(--rv-line-2); color: var(--rv-mut);
}
.rv-copywrap:has(> .rv-cl-stack) .rv-copybtn:hover,
.rv-copywrap:has(> .rv-cl-arg) .rv-copybtn:hover {
  background: var(--rv-line); color: var(--rv-ink, var(--text));
}
.rv-sk { padding: 4px 0; }
.rv-sk-row { display: flex; align-items: center; gap: 10px; padding: 9px 14px; }
.rv-sk-net { display: grid; grid-template-columns: 48px 56px 1fr 56px 60px;
  gap: 4px; align-items: center; padding: 9px 14px; }
.rv-sk-tiles { display: flex; gap: 10px; padding: 12px 14px; }
.rv-sk-tile { display: flex; flex-direction: column; gap: 7px; flex: 1; }
.rv-sk-lane { display: flex; flex-direction: column; gap: 6px; padding: 8px 14px; }
.rv-shm .rv-sd-sec,
.rv-shm .rv-sd-card { opacity: 1; transform: none; transition: none; }
.menu-pop.rv-ctx { min-width: 176px; }
.menu-pop.rv-ctx button:hover { background: var(--line-2); }
.rv-stage.is-web .rv-canvas,
.rv-stage.is-web .rv-screen { min-width: 0; }
.rv-who { flex: 0 1 auto; }
.rv-who-line { min-width: 0; }
.rv-who-line .nm {
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rv-who-meta { overflow: hidden; text-overflow: ellipsis; }
.rv-plan { flex-shrink: 0; }
.rv-stagebar .rv-acts { flex-shrink: 0; }
.rv-stagebar { position: relative; z-index: 2; }
@media (max-width: 1240px) {
  .rv-stagebar .rv-lbl { display: none; }
  .rv-stagebar .rv-share,
  .rv-stagebar .rv-issue { padding: 0; width: 26px; gap: 0; justify-content: center; }
  .rv-stagebar .rv-share + span { margin-left: 0; }
}
@media (max-width: 1120px) {
  .rv-wrap:not(.theatre):not(.cmp-mode) {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-rows: minmax(220px, 1fr) minmax(180px, 42vh);
    grid-template-areas:
      "rail stage"
      "rail dock";
  }
  .rv-wrap:not(.theatre):not(.cmp-mode) > .rv-rail { grid-area: rail; }
  .rv-wrap:not(.theatre):not(.cmp-mode) > .rv-main {
    grid-area: stage;
    min-width: 0;
  }
  .rv-wrap:not(.theatre):not(.cmp-mode) > .rv-inspect {
    grid-area: dock;
    width: auto !important;
    min-width: 0;
    border-top: 1px solid var(--rv-line);
  }
  .rv-wrap:not(.theatre):not(.cmp-mode) > .rv-resize { display: none; }
}
