/* Общие стили инпутов инспектора (глобальные — компоненты-инпуты живут в разных SFC). */
.ins-num,
.ins-text,
.ins-select {
  background: #16161b;
  border: 1px solid #33333d;
  color: #e6e6ea;
  padding: 3px 5px;
  border-radius: 4px;
  font-size: 11px;
  font-family: ui-monospace, monospace;
}
.ins-num { width: 56px; }
.ins-text { width: 120px; font-family: inherit; }
.ins-select { font-family: inherit; }
.ins-vec { display: flex; gap: 4px; }
.ins-color { width: 40px; height: 24px; background: none; border: 1px solid #33333d; border-radius: 4px; padding: 0; }
.ins-col { display: flex; flex-direction: column; gap: 5px; align-items: flex-end; }
.ins-row { display: flex; align-items: center; gap: 6px; }
.ins-label { color: #7a7a86; font-size: 10px; }
.ins-static { color: #7a7a86; font-size: 10px; font-family: ui-monospace, monospace; }
.ins-none { color: #6f6f7a; font-size: 10px; }

/* Кнопка внутри блока инспектора (предпросмотр медиа и т.п.). */
.ins-btn {
  background: #24242c; border: 1px solid #33333d; color: #d6d6de;
  cursor: pointer; padding: 2px 8px; border-radius: 4px; font-size: 11px;
}
.ins-btn:hover { background: #2f2f39; border-color: #4a4a57; }

/* Сегментированный переключатель (SectionSelect). */
.ins-sections { display: flex; border: 1px solid #33333d; border-radius: 5px; overflow: hidden; }
.ins-sections button {
  background: #16161b; border: none; border-right: 1px solid #33333d; color: #9a9aa6;
  cursor: pointer; padding: 3px 8px; font-size: 11px;
}
.ins-sections button:last-child { border-right: none; }
.ins-sections button:hover { background: #23232b; color: #d6d6de; }
.ins-sections button.on { background: #2b3a55; color: #dce7f7; }

.lib[data-v-166cbb17] { display: flex; flex-direction: column; gap: 10px; height: 100%; min-height: 0;
}
.lib-src[data-v-166cbb17], .lib-url[data-v-166cbb17], .lib-filter[data-v-166cbb17] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.src-dir[data-v-166cbb17] { font-size: 12px; color: #cfe0ff;
}
.src-ok[data-v-166cbb17] { font-size: 11px; color: #5cd18a;
}
.src-count[data-v-166cbb17] { font-size: 11px; color: #7a7a86; font-family: ui-monospace, monospace;
}
.src-warn[data-v-166cbb17] { font-size: 12px; color: #e0a24b;
}
.spacer[data-v-166cbb17] { flex: 1;
}
.lb[data-v-166cbb17] { background: #24242c; border: 1px solid #33333d; color: #d6d6de; cursor: pointer; padding: 4px 10px; border-radius: 5px; font-size: 12px;
}
.lb[data-v-166cbb17]:hover { background: #2f2f39; border-color: #4a4a57;
}
.lb[data-v-166cbb17]:disabled { opacity: 0.45; cursor: default;
}
.lb.main[data-v-166cbb17] { background: #2b3550; border-color: #3a4a6b; color: #cfe0ff;
}
.lb.warn[data-v-166cbb17] { background: #4a3a24; border-color: #6b5330; color: #f0c98a;
}
.lib-err[data-v-166cbb17] { color: #e0669a; font-size: 12px;
}
.lu-type[data-v-166cbb17] { background: #16161b; border: 1px solid #33333d; color: #d6d6de; border-radius: 4px; font-size: 11px; padding: 3px;
}
.lu-url[data-v-166cbb17] { flex: 1; min-width: 120px; background: #16161b; border: 1px solid #33333d; color: #e6e6ea; padding: 4px 6px; border-radius: 4px; font-size: 11px;
}
.chip[data-v-166cbb17] { background: #1c1c22; border: 1px solid #33333d; color: #9a9aa6; cursor: pointer; padding: 3px 9px; border-radius: 12px; font-size: 11px;
}
.chip.on[data-v-166cbb17] { background: #2b3550; border-color: #3a4a6b; color: #cfe0ff;
}
.chip-n[data-v-166cbb17] { color: #6f6f7a; font-size: 10px; margin-left: 4px; font-family: ui-monospace, monospace;
}
.lf-q[data-v-166cbb17] { flex: 1; min-width: 120px; background: #16161b; border: 1px solid #33333d; color: #e6e6ea; padding: 4px 6px; border-radius: 4px; font-size: 11px;
}
.lf-only[data-v-166cbb17] { font-size: 11px; color: #8a8a96; display: flex; align-items: center; gap: 4px;
}
.lib-grid[data-v-166cbb17] {
  flex: 1; min-height: 0; overflow: auto;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px;
  align-content: start;   /* карточки прижаты к верху, а не растянуты по высоте окна */
  padding: 4px; border: 1px solid #2c2c34; border-radius: 6px; background: #16161b;
}
.card[data-v-166cbb17] { display: flex; flex-direction: column; gap: 4px; padding: 6px; background: #1c1c22; border: 1px solid #2c2c34; border-radius: 6px;
}
.card.err[data-v-166cbb17] { border-color: #6b3450;
}
.card-thumb[data-v-166cbb17] { position: relative; height: 82px; display: flex; align-items: center; justify-content: center; background: #121216; border-radius: 4px; overflow: hidden;
}
.card-thumb img[data-v-166cbb17] { max-width: 100%; max-height: 100%; object-fit: contain;
}
.card-ic[data-v-166cbb17] { font-size: 26px; opacity: 0.75;
}
.card-env[data-v-166cbb17] { position: absolute; top: 3px; right: 4px; font-size: 11px;
}
.card-name[data-v-166cbb17] { font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.card-meta[data-v-166cbb17] { display: flex; align-items: center; gap: 5px;
}
.card-kind[data-v-166cbb17] { color: #7a7a86; font-size: 10px; font-family: ui-monospace, monospace;
}
.card-dot[data-v-166cbb17] { width: 7px; height: 7px; border-radius: 50%; background: #55555f;
}
.card-dot.on[data-v-166cbb17] { background: #5cd18a;
}
.card-dot.bad[data-v-166cbb17] { background: #e0669a;
}
.card-in[data-v-166cbb17] { color: #5cd18a; font-size: 10px; margin-left: auto;
}
.card-acts[data-v-166cbb17] { display: flex; gap: 4px;
}
.ca[data-v-166cbb17] { flex: 1; background: #24242c; border: 1px solid #33333d; color: #9a9aa6; cursor: pointer; border-radius: 4px; font-size: 11px; padding: 2px 0;
}
.ca[data-v-166cbb17]:hover { color: #6da8ff; border-color: #4a4a57;
}
.ca.del[data-v-166cbb17]:hover { color: #e0669a;
}
.lib-empty[data-v-166cbb17] { grid-column: 1 / -1; color: #6f6f7a; font-size: 12px; padding: 16px; text-align: center;
}
.lib-foot[data-v-166cbb17] { display: flex; flex-direction: column; gap: 6px;
}
.foot-env[data-v-166cbb17], .foot-proj[data-v-166cbb17] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.foot-l[data-v-166cbb17] { color: #8a8a96; font-size: 11px;
}
.foot-v[data-v-166cbb17] { font-size: 12px;
}
.foot-c[data-v-166cbb17] { font-size: 11px; color: #8a8a96; display: flex; align-items: center; gap: 4px;
}
.lib-prog[data-v-166cbb17] { display: flex; align-items: center; gap: 8px;
}
.lp-bar[data-v-166cbb17] { flex: 1; height: 4px; background: #26262e; border-radius: 2px; overflow: hidden;
}
.lp-fill[data-v-166cbb17] { height: 100%; background: #4b7bec; transition: width 0.15s;
}
.lp-txt[data-v-166cbb17] { color: #7a7a86; font-size: 10px; font-family: ui-monospace, monospace;
}

.tm[data-v-7cdcd606] { display: flex; flex-direction: column; gap: 3px; min-width: 0; width: 100%;
}
.tm-row[data-v-7cdcd606] { display: flex; align-items: center; gap: 6px;
}
.tm-row .ins-select[data-v-7cdcd606] { flex: 1; min-width: 0;
}   /* подпись блока сверху → слоты во всю ширину */
.tm-l[data-v-7cdcd606] { color: #7a7a86; font-size: 10px; width: 58px; flex-shrink: 0;
}
.tm-lib[data-v-7cdcd606] { background: #24242c; border: 1px solid #33333d; color: #9a9aa6; cursor: pointer; border-radius: 4px; font-size: 10px; padding: 2px 6px; margin-top: 2px;
}
.tm-lib[data-v-7cdcd606]:hover { color: #6da8ff;
}

.insp[data-v-8a9ffeb5] { display: flex; flex-direction: column;
}
.insp-title[data-v-8a9ffeb5] { font-weight: 600; margin-bottom: 8px;
}
.insp-head[data-v-8a9ffeb5] { display: flex; align-items: center; gap: 8px; margin-bottom: 10px;
}
.iname[data-v-8a9ffeb5] { flex: 1; min-width: 0; background: #16161b; border: 1px solid #33333d; color: #e6e6ea; padding: 4px 6px; border-radius: 4px; font-size: 12px;
}
.itype[data-v-8a9ffeb5] { color: #7a7a86; font-size: 11px; font-family: ui-monospace, monospace;
}
.block[data-v-8a9ffeb5] { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 5px 0; border-bottom: 1px solid #26262e;
}
/* Блок с подписью сверху: содержимое занимает всю ширину панели (схема — content.stacked). */
.block.stacked[data-v-8a9ffeb5] { flex-direction: column; align-items: stretch; gap: 5px;
}
.block.stacked > .blabel[data-v-8a9ffeb5] { align-self: flex-start;
}
.blabel[data-v-8a9ffeb5] { color: #8a8a96; font-size: 12px; flex-shrink: 0;
}
.bslide[data-v-8a9ffeb5] { color: #6da8ff; font-size: 9px; vertical-align: middle; margin-left: 3px;
}
.unknown[data-v-8a9ffeb5] { color: #b06; font-size: 11px;
}
.empty[data-v-8a9ffeb5] { color: #6f6f7a; font-size: 12px;
}
.hint[data-v-8a9ffeb5] { margin-top: auto; padding-top: 14px; color: #5f5f6a; font-size: 11px; line-height: 1.5;
}

.pls[data-v-ebec646d] { display: flex; flex-direction: column; gap: 6px; flex: 1; min-width: 0;
}
.pl-card[data-v-ebec646d] { display: flex; flex-direction: column; gap: 3px; padding: 5px 6px; background: #16161b; border: 1px solid #2c2c34; border-radius: 6px;
}
.pl-line[data-v-ebec646d] { display: flex; align-items: center; gap: 4px;
}
.pl-idx[data-v-ebec646d] { color: #5f5f6a; font-size: 10px; width: 10px; flex-shrink: 0;
}
.pl-cap[data-v-ebec646d] { color: #7a7a86; font-size: 10px; flex-shrink: 0;
}
.pl-in[data-v-ebec646d] { background: #1c1c22; border: 1px solid #33333d; color: #e6e6ea; border-radius: 4px; font-size: 11px; padding: 3px 4px; min-width: 0;
}
.pl-in.obj[data-v-ebec646d] { flex: 1;
}
.pl-in.prop[data-v-ebec646d] { flex: 1;
}
.pl-in.kind[data-v-ebec646d] { flex: 0 0 62px;
}
.pl-in.num[data-v-ebec646d] { flex: 1; min-width: 40px; font-family: ui-monospace, monospace;
}
.pl-rel[data-v-ebec646d] { display: flex; align-items: center; gap: 2px; color: #7a7a86; font-size: 10px; flex-shrink: 0; cursor: pointer;
}
.pl-rel input[data-v-ebec646d] { margin: 0; accent-color: #6da8ff; cursor: pointer;
}
.pl-color[data-v-ebec646d] { flex: 1; min-width: 30px; height: 20px; padding: 0; background: #1c1c22; border: 1px solid #33333d; border-radius: 4px; cursor: pointer;
}
.pl-b[data-v-ebec646d] { background: none; border: 1px solid #33333d; color: #9ab; cursor: pointer; border-radius: 4px; font-size: 11px; padding: 2px 5px;
}
.pl-b[data-v-ebec646d]:hover:not(:disabled) { background: #24242c;
}
.pl-b[data-v-ebec646d]:disabled { opacity: 0.45; cursor: default;
}
.pl-b.danger[data-v-ebec646d]:hover { color: #e0669a;
}
.pl-b.add[data-v-ebec646d] { color: #cfe0ff; border-color: #3a4a6b; background: #2b3550;
}
.pl-foot[data-v-ebec646d] { display: flex; align-items: center; justify-content: space-between;
}
.pl-cnt[data-v-ebec646d] { color: #6f6f7a; font-size: 10px;
}

.tp[data-v-252470dc] { display: flex; flex-direction: column; gap: 4px; flex: 1; min-width: 0;
}
.tp-line[data-v-252470dc] { display: flex; align-items: center; gap: 4px;
}
.tp-in[data-v-252470dc] { flex: 1; min-width: 0; background: #16161b; border: 1px solid #33333d; color: #e6e6ea; padding: 4px 6px; border-radius: 4px; font-size: 12px;
}
.tp-b[data-v-252470dc] { background: none; border: 1px solid #33333d; color: #9ab; cursor: pointer; border-radius: 4px; font-size: 11px; padding: 3px 6px;
}
.tp-b[data-v-252470dc]:hover { background: #24242c;
}
.tp-hint[data-v-252470dc] { color: #6f6f7a; font-size: 10px;
}

.aform[data-v-e9a0a471] { display: flex; flex-direction: column; gap: 2px;
}
.af-field[data-v-e9a0a471] { display: flex; align-items: flex-start; gap: 8px; padding: 3px 0;
}
.af-field[data-v-e9a0a471]:has(> .af-input:not(.af-area), > input[type="checkbox"], > select) { align-items: center;
}
.af-label[data-v-e9a0a471] { width: 64px; color: #8a8a96; font-size: 12px; flex-shrink: 0;
}
/* Список свойств (type:'props') — на всю ширину формы: подпись сверху, карточки под ней. */
.af-field.wide[data-v-e9a0a471] { flex-direction: column; align-items: stretch; gap: 4px;
}
.af-field.wide > .af-label[data-v-e9a0a471] { width: auto;
}
.af-input[data-v-e9a0a471] { flex: 1; min-width: 0; background: #16161b; border: 1px solid #33333d; color: #e6e6ea; padding: 4px 6px; border-radius: 4px; font-size: 12px;
}
.af-area[data-v-e9a0a471] { resize: vertical; font-family: inherit; line-height: 1.35;
}
.af-vec[data-v-e9a0a471] { display: flex; flex-direction: column; gap: 4px; flex: 1; min-width: 0;
}
.af-vrow[data-v-e9a0a471] { display: flex; gap: 4px;
}
.af-vrow input[data-v-e9a0a471] { flex: 1; width: 0; min-width: 0; background: #16161b; border: 1px solid #33333d; color: #e6e6ea; padding: 3px; border-radius: 4px; font-size: 11px; font-family: ui-monospace, monospace;
}
.af-vtype[data-v-e9a0a471] { display: flex; gap: 12px; align-self: flex-start; color: #d6d6de; font-size: 11px;
}
.af-vtype label[data-v-e9a0a471] { display: flex; align-items: center; gap: 4px; cursor: pointer;
}
.af-vtype input[data-v-e9a0a471] { margin: 0; accent-color: #6da8ff; cursor: pointer;
}
.af-empty[data-v-e9a0a471] { color: #6f6f7a; font-size: 11px; padding: 2px 0;
}

.acts[data-v-0e565e2f] { margin-top: 16px; border-top: 1px solid #2c2c34; padding-top: 12px;
}
.acts-title[data-v-0e565e2f] { font-weight: 600; font-size: 13px; margin-bottom: 8px;
}
.acts-scope[data-v-0e565e2f] { font-weight: 400; font-size: 10px; color: #7a7a86;
}
.hook-block[data-v-0e565e2f] { margin-bottom: 8px;
}
.hook-head[data-v-0e565e2f] { display: flex; align-items: center; justify-content: space-between;
}
.hook-name[data-v-0e565e2f] { color: #6da8ff; font-family: ui-monospace, monospace; font-size: 11px;
}
.hook-add[data-v-0e565e2f] { background: none; border: 1px solid #33333d; color: #9ab; cursor: pointer; border-radius: 4px; width: 20px; height: 18px; font-size: 12px; line-height: 1;
}
.hook-add[data-v-0e565e2f]:hover { background: #24242c;
}
.act-item[data-v-0e565e2f] { margin: 0 0 2px;
}
.act-row[data-v-0e565e2f] { display: flex; align-items: center; gap: 6px; padding: 3px 0 3px 8px; font-size: 11px;
}
.act-name[data-v-0e565e2f] { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; cursor: pointer;
}
.act-chev[data-v-0e565e2f] { display: inline-block; width: 12px; color: #7a7a86;
}
.act-edit[data-v-0e565e2f] { margin: 2px 0 6px 20px; padding: 6px 8px; background: #1b1b21; border: 1px solid #2c2c34; border-radius: 6px;
}
.act-missing[data-v-0e565e2f] { color: #b06a6a; font-size: 11px;
}
.act-type[data-v-0e565e2f] { color: #7a7a86; font-size: 9px; font-family: ui-monospace, monospace;
}
.act-btn[data-v-0e565e2f] { background: none; border: none; color: #7a7a86; cursor: pointer; font-size: 11px;
}
.act-btn[data-v-0e565e2f]:hover { color: #cfcfd8;
}
.act-btn.del[data-v-0e565e2f]:hover { color: #e0669a;
}
.acts-add[data-v-0e565e2f] { display: flex; gap: 4px; margin-top: 10px;
}
.a-sel[data-v-0e565e2f] { background: #16161b; border: 1px solid #33333d; color: #d6d6de; border-radius: 4px; font-size: 11px; padding: 3px;
}
.acts-btn[data-v-0e565e2f] { flex: 1; background: #2b3550; border: 1px solid #3a4a6b; color: #cfe0ff; cursor: pointer; border-radius: 4px; font-size: 11px; padding: 4px;
}
.acts-btn[data-v-0e565e2f]:hover { background: #33405f;
}

.ea[data-v-133a143a] { display: flex; flex-direction: column; gap: 10px; min-width: 320px;
}
.ea-row[data-v-133a143a] { display: flex; align-items: flex-start; gap: 10px;
}
.ea-row > label[data-v-133a143a] { width: 74px; flex-shrink: 0; color: #8a8a96; font-size: 12px; padding-top: 5px;
}
.ea-input[data-v-133a143a] {
  flex: 1; min-width: 0; background: #16161b; border: 1px solid #33333d; color: #e6e6ea;
  padding: 4px 6px; border-radius: 4px; font-size: 12px;
}
.ea-typebox[data-v-133a143a] { flex: 1; display: flex; flex-direction: column; gap: 6px; min-width: 0;
}
.ea-parent[data-v-133a143a] { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #cfe0ff; font-size: 12px; padding-top: 5px;
}
.ea-types[data-v-133a143a] { height: 120px;
}
.ea-actions[data-v-133a143a] { display: flex; gap: 8px; justify-content: flex-end; padding-top: 4px;
}
.ea-btn[data-v-133a143a] {
  background: #24242c; border: 1px solid #33333d; color: #d6d6de; cursor: pointer;
  padding: 5px 12px; border-radius: 5px; font-size: 12px;
}
.ea-btn[data-v-133a143a]:hover { background: #2f2f39; border-color: #4a4a57;
}
.ea-btn.primary[data-v-133a143a] { background: #2b4d3a; border-color: #3a6b4f; color: #bfe8cf;
}
.ea-btn.primary[data-v-133a143a]:hover { background: #345c46;
}
.ea-btn[data-v-133a143a]:disabled { opacity: 0.5; cursor: default;
}

.pf[data-v-ff53b4f8] { display: flex; flex-direction: column; gap: 10px;
}
.pf-save[data-v-ff53b4f8] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.pf-sel[data-v-ff53b4f8] { font-size: 12px; color: #cfe0ff;
}
.pf-n[data-v-ff53b4f8] { color: #7a7a86; font-size: 11px; margin-left: 6px; font-family: ui-monospace, monospace;
}
.pf-hint[data-v-ff53b4f8] { font-size: 12px; color: #8a8a96;
}
.pf-in[data-v-ff53b4f8] { flex: 1; min-width: 120px; background: #16161b; border: 1px solid #33333d; color: #e6e6ea; padding: 4px 6px; border-radius: 4px; font-size: 11px;
}
.pf-into[data-v-ff53b4f8] { font-size: 11px; color: #8a8a96; display: flex; align-items: center; gap: 5px;
}
.pf-into.off[data-v-ff53b4f8] { opacity: 0.6;
}
.pf-err[data-v-ff53b4f8] { color: #e0669a; font-size: 12px;
}
.pf-b[data-v-ff53b4f8] { background: #24242c; border: 1px solid #33333d; color: #d6d6de; cursor: pointer; padding: 3px 9px; border-radius: 5px; font-size: 11px;
}
.pf-b[data-v-ff53b4f8]:hover { background: #2f2f39; border-color: #4a4a57;
}
.pf-b[data-v-ff53b4f8]:disabled { opacity: 0.45; cursor: default;
}
.pf-b.main[data-v-ff53b4f8] { background: #2b3550; border-color: #3a4a6b; color: #cfe0ff;
}
.pf-b.del[data-v-ff53b4f8]:hover { color: #e0669a; border-color: #6b3450;
}
.pf-list[data-v-ff53b4f8] { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px; max-height: 50vh; overflow: auto;
}
.pf-card[data-v-ff53b4f8] { display: flex; flex-direction: column; gap: 5px; padding: 8px; background: #1c1c22; border: 1px solid #2c2c34; border-radius: 6px;
}
.pf-name[data-v-ff53b4f8] { font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.pf-meta[data-v-ff53b4f8] { display: flex; justify-content: space-between; color: #7a7a86; font-size: 10px; font-family: ui-monospace, monospace;
}
.pf-acts[data-v-ff53b4f8] { display: flex; gap: 4px;
}
.pf-acts .pf-b[data-v-ff53b4f8] { flex: 1; padding: 2px 0;
}
.pf-empty[data-v-ff53b4f8] { grid-column: 1 / -1; color: #6f6f7a; font-size: 12px; padding: 14px; text-align: center;
}

.palette[data-v-0173c2d0] { padding-bottom: 12px; border-bottom: 1px solid #2c2c34;
}
.p-head[data-v-0173c2d0] { display: flex; align-items: center; justify-content: space-between;
}
.p-title[data-v-0173c2d0] { font-weight: 600; font-size: 13px;
}
.p-more[data-v-0173c2d0] {
  background: #24242c; border: 1px solid #33333d; color: #d6d6de; cursor: pointer;
  padding: 3px 8px; border-radius: 5px; font-size: 11px;
}
.p-more[data-v-0173c2d0]:hover { background: #2f2f39; border-color: #4a4a57;
}

.tn[data-v-217100df] { list-style: none;
}
.tn-row[data-v-217100df] {
  display: flex; align-items: center; gap: 6px; padding: 3px 6px; border-radius: 5px;
  cursor: pointer; font-size: 12px;
}
.tn-row[data-v-217100df]:hover { background: #22222a;
}
.tn-row.sel[data-v-217100df] { background: #2b3a55;
}
.tn-row.over[data-v-217100df] { outline: 1px dashed #5a7fb8; background: #23303f;
}
.tn-fold[data-v-217100df] { width: 12px; color: #6f6f7a; font-size: 9px; flex-shrink: 0;
}
.tn-name[data-v-217100df] { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.tn-type[data-v-217100df] { color: #7a7a86; font-size: 10px; font-family: ui-monospace, monospace;
}
.tn-del[data-v-217100df] { background: none; border: none; color: #6f6f7a; cursor: pointer; font-size: 12px; padding: 0;
}
.tn-del[data-v-217100df]:hover { color: #e0669a;
}
.tn-children[data-v-217100df] { margin: 0; padding-left: 12px; border-left: 1px solid #2c2c34;
}

.hier[data-v-04caf486] { padding-top: 12px;
}
.h-title[data-v-04caf486] { font-weight: 600; margin-bottom: 8px; font-size: 13px;
}
.h-empty[data-v-04caf486] { color: #6f6f7a; font-size: 12px;
}
.h-root[data-v-04caf486] { margin: 0; padding: 4px 0 10px; min-height: 40px; border-radius: 5px;
}
.h-root.over[data-v-04caf486] { outline: 1px dashed #5a7fb8;
}
.h-hint[data-v-04caf486] { color: #5f5f6a; font-size: 10px; line-height: 1.4;
}

.tr[data-v-91df89a2] { display: flex; flex-direction: column; gap: 12px;
}
.tr-hint[data-v-91df89a2] { margin: 0; color: #8a8a96; font-size: 12px; line-height: 1.5;
}
.tr-box[data-v-91df89a2] { background: #16161b; border: 1px solid #2c2c34; border-radius: 8px; padding: 10px 12px;
}
.tr-head[data-v-91df89a2] { font-size: 12px; font-weight: 600; color: #d6d6de; margin-bottom: 8px;
}
.tr-sub[data-v-91df89a2] { color: #6f6f7a; font-weight: 400; margin-left: 8px;
}
.tr-row[data-v-91df89a2] { display: flex; align-items: center; gap: 10px; margin-bottom: 6px;
}
.tr-label[data-v-91df89a2] { width: 120px; flex-shrink: 0; color: #8a8a96; font-size: 12px;
}
.tr-input[data-v-91df89a2] {
  flex: 1; background: #1c1c22; border: 1px solid #33333d; color: #e6e6ea;
  padding: 4px 8px; border-radius: 4px; font-size: 12px;
}
.tr-eff[data-v-91df89a2] { margin-top: 8px; color: #8a8a96; font-size: 12px;
}
.tr-eff b[data-v-91df89a2] { color: #cfe0ff; font-weight: 600;
}
.tr-warn[data-v-91df89a2] {
  margin: 0; padding: 8px 10px; border-radius: 6px; font-size: 12px; line-height: 1.5;
  background: #3a2a1c; border: 1px solid #5c4227; color: #e8c79a;
}

.sc[data-v-c0034eb6] { display: flex; flex-direction: column; gap: 12px;
}
.sc-hint[data-v-c0034eb6] { margin: 0; color: #8a8a96; font-size: 12px; line-height: 1.5;
}
.sc-box[data-v-c0034eb6] { background: #16161b; border: 1px solid #2c2c34; border-radius: 8px; padding: 10px 12px;
}
.sc-head[data-v-c0034eb6] { font-size: 12px; font-weight: 600; color: #d6d6de; margin-bottom: 8px;
}
.sc-sub[data-v-c0034eb6] { color: #6f6f7a; font-weight: 400; margin-left: 8px;
}
.sc-row[data-v-c0034eb6] { display: flex; align-items: center; gap: 10px; margin-bottom: 10px;
}
.sc-label[data-v-c0034eb6] { width: 80px; flex-shrink: 0; color: #8a8a96; font-size: 12px;
}
.sc-input[data-v-c0034eb6] {
  flex: 1; background: #1c1c22; border: 1px solid #33333d; color: #e6e6ea;
  padding: 4px 8px; border-radius: 4px; font-size: 12px;
}
.sc-actions[data-v-c0034eb6] { display: flex; gap: 8px; flex-wrap: wrap;
}
.sc-btn[data-v-c0034eb6] {
  background: #24242c; border: 1px solid #33333d; color: #d6d6de;
  cursor: pointer; padding: 5px 10px; border-radius: 5px; font-size: 12px;
}
.sc-btn[data-v-c0034eb6]:hover { background: #2f2f39; border-color: #4a4a57;
}
.sc-btn.on[data-v-c0034eb6] { background: #2b3550; border-color: #3a4a6b; color: #cfe0ff;
}
.sc-empty[data-v-c0034eb6] { margin-top: 8px; color: #6f6f7a; font-size: 12px;
}
.sc-warn[data-v-c0034eb6] {
  margin-top: 10px; padding: 7px 9px; border-radius: 6px; font-size: 12px; line-height: 1.45;
  background: #33291a; border: 1px solid #5c4423; color: #e6c489;
}

.sliders[data-v-17e449aa] { display: flex; align-items: center; gap: 12px; height: 100%; padding: 0 12px;
}
.s-label[data-v-17e449aa] { color: #8a8a96; font-size: 12px; font-weight: 600; flex-shrink: 0;
}
.s-strip[data-v-17e449aa] { flex: 1; display: flex; gap: 8px; overflow-x: auto; min-width: 0; align-items: center; height: 100%;
}
.s-card[data-v-17e449aa] {
  display: flex; align-items: center; gap: 6px; flex-shrink: 0;
  background: #24242c; border: 1px solid #33333d; border-radius: 6px;
  padding: 6px 10px; cursor: pointer; font-size: 12px;
}
.s-card[data-v-17e449aa]:hover { background: #2c2c36;
}
.s-card.active[data-v-17e449aa] { border-color: #4b7bec; background: #26324a;
}
.s-card.drag[data-v-17e449aa] { opacity: 0.45;
}
.s-card.over[data-v-17e449aa] { border-color: #6da8ff;
}
.s-num[data-v-17e449aa] { color: #7a7a86; font-family: ui-monospace, monospace; font-size: 10px; cursor: grab;
}
.s-name[data-v-17e449aa] { color: #d6d6de;
}
.s-cam[data-v-17e449aa] { color: #8fd6b4; font-size: 10px; white-space: nowrap;
}
.s-tr[data-v-17e449aa] { color: #6f6f7a; font-size: 10px; white-space: nowrap;
}
.s-tr.smooth[data-v-17e449aa] { color: #8fb4ff;
}
.s-del[data-v-17e449aa] { background: none; border: none; color: #5f5f6a; cursor: pointer; font-size: 11px;
}
.s-del[data-v-17e449aa]:hover { color: #e0669a;
}
.s-empty[data-v-17e449aa] { color: #6f6f7a; font-size: 12px; align-self: center;
}
.s-actions[data-v-17e449aa] { display: flex; gap: 6px; flex-shrink: 0;
}
.s-btn[data-v-17e449aa] {
  background: #2b3550; border: 1px solid #3a4a6b; color: #cfe0ff;
  cursor: pointer; padding: 5px 10px; border-radius: 6px; font-size: 12px;
}
.s-btn[data-v-17e449aa]:disabled { opacity: 0.4; cursor: default;
}
.s-btn[data-v-17e449aa]:hover:not(:disabled) { background: #33405f;
}
.s-btn.play[data-v-17e449aa] { background: #2b4d3a; border-color: #3a6b4f; color: #bfe8cf;
}
.s-btn.play[data-v-17e449aa]:hover:not(:disabled) { background: #345c46;
}
.s-btn.play.on[data-v-17e449aa] { background: #4d2b2b; border-color: #6b3a3a; color: #e8bfbf;
}
/* Что реально видит зритель во время предпросмотра (камера слайда либо дефолтная камера). */
.s-pv[data-v-17e449aa] { color: #8fd6b4; font-size: 11px; white-space: nowrap; align-self: center;
}
.s-pv.warn[data-v-17e449aa] { color: #e0a24b;
}

.modal-overlay[data-v-f8d8bc12] {
  position: fixed; inset: 0; z-index: 100;
  background: rgba(0, 0, 0, 0.55);
  display: flex; align-items: center; justify-content: center;
}
.modal[data-v-f8d8bc12] {
  width: 560px; max-width: 92vw; max-height: 86vh;
  /* wide — каталоги (библиотека ресурсов): нужна сетка карточек */
  background: #1c1c22; border: 1px solid #33333d; border-radius: 10px;
  display: flex; flex-direction: column; overflow: hidden;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}
.modal-head[data-v-f8d8bc12] {
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 16px; background: #202027; border-bottom: 1px solid #2c2c34;
}
.modal-title[data-v-f8d8bc12] { font-weight: 600;
}
.modal-x[data-v-f8d8bc12] { background: none; border: none; color: #8a8a96; cursor: pointer; font-size: 14px;
}
.modal-x[data-v-f8d8bc12]:hover { color: #e6e6ea;
}
.modal.wide[data-v-f8d8bc12] { width: 1000px; height: 78vh;
}
.modal-body[data-v-f8d8bc12] { padding: 14px 16px; overflow: auto; flex: 1; min-height: 0;
}

/* z-index выше Modal (100): диалог вызывается и из содержимого модального окна. */
.dlg-overlay[data-v-c389d6c3] {
  position: fixed; inset: 0; z-index: 200;
  background: rgba(0, 0, 0, 0.5);
  display: flex; align-items: center; justify-content: center;
}
.dlg[data-v-c389d6c3] {
  width: 420px; max-width: 92vw;
  background: #1c1c22; border: 1px solid #33333d; border-radius: 10px;
  padding: 16px; display: flex; flex-direction: column; gap: 10px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.55);
}
.dlg-title[data-v-c389d6c3] { font-weight: 600; font-size: 13px;
}
.dlg-msg[data-v-c389d6c3] { color: #c6c6d0; font-size: 12px; line-height: 1.55; white-space: pre-wrap;
}
.dlg-input[data-v-c389d6c3] {
  background: #16161b; border: 1px solid #33333d; color: #e6e6ea;
  padding: 6px 8px; border-radius: 5px; font-size: 12px;
}
.dlg-input[data-v-c389d6c3]:focus { outline: none; border-color: #4b7bec;
}
.dlg-acts[data-v-c389d6c3] { display: flex; justify-content: flex-end; gap: 8px; margin-top: 4px;
}
.dbtn[data-v-c389d6c3] {
  background: #24242c; border: 1px solid #33333d; color: #d6d6de;
  cursor: pointer; padding: 5px 14px; border-radius: 5px; font-size: 12px;
}
.dbtn[data-v-c389d6c3]:hover { background: #2f2f39; border-color: #4a4a57;
}
.dbtn[data-v-c389d6c3]:focus-visible { outline: 2px solid #4b7bec; outline-offset: 1px;
}
.dbtn.main[data-v-c389d6c3] { background: #2b3550; border-color: #3a4a6b; color: #cfe0ff;
}
.dbtn.main.danger[data-v-c389d6c3] { background: #4a2430; border-color: #6b3450; color: #f0a8c0;
}

.toasts[data-v-780db86c] {
  position: fixed; right: 14px; bottom: 82px; z-index: 200;
  display: flex; flex-direction: column; gap: 8px; align-items: flex-end;
}
.toast[data-v-780db86c] {
  max-width: 340px; padding: 8px 14px; border-radius: 6px; cursor: pointer;
  background: #24242c; border: 1px solid #33333d; color: #d6d6de; font-size: 12px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
}
.toast.ok[data-v-780db86c] { border-color: #3a6b4f; background: #223528; color: #bfe8cf;
}
.toast.warn[data-v-780db86c] { border-color: #7a6432; background: #34301f; color: #ecd9a0;
}
.toast.error[data-v-780db86c] { border-color: #7a3a3a; background: #342022; color: #f0b9b9;
}

.tmenu[data-v-fc9cb005] { display: flex; gap: 6px;
}
.tm-btn[data-v-fc9cb005] {
  display: flex; align-items: center; gap: 5px;
  background: #24242c; border: 1px solid #33333d; color: #d6d6de;
  cursor: pointer; padding: 4px 9px; border-radius: 5px; font-size: 12px;
}
.tm-btn[data-v-fc9cb005]:hover { background: #2f2f39; border-color: #4a4a57;
}
.tm-ic[data-v-fc9cb005] { font-size: 12px;
}
.tm-state[data-v-fc9cb005] { color: #7f9fd8; font-size: 10px; font-family: ui-monospace, monospace;
}

.pm[data-v-927e87a8] { position: relative;
}
.pm-caret[data-v-927e87a8] { color: #7a7a86; font-size: 9px;
}
.tb.on[data-v-927e87a8] { background: #2f2f39; border-color: #4a4a57;
}
.pm-drop[data-v-927e87a8] {
  position: absolute; right: 0; top: calc(100% + 4px); z-index: 30; min-width: 190px;
  display: flex; flex-direction: column; padding: 4px;
  background: #202027; border: 1px solid #33333d; border-radius: 6px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.5);
}
.pm-item[data-v-927e87a8] {
  display: flex; align-items: center; gap: 8px; text-align: left;
  background: none; border: none; color: #d6d6de; cursor: pointer;
  padding: 6px 8px; border-radius: 4px; font-size: 12px;
}
.pm-item[data-v-927e87a8]:hover { background: #2b2b34;
}
.pm-item.sep[data-v-927e87a8] { border-top: 1px solid #2c2c34; margin-top: 3px; padding-top: 8px;
}
.pm-ic[data-v-927e87a8] { width: 16px; text-align: center;
}
.pm-l[data-v-927e87a8] { flex: 1;
}

.pl[data-v-85799e8d] { display: flex; flex-direction: column; gap: 10px;
}
.pl-warn[data-v-85799e8d] { background: #3a2c1c; border: 1px solid #6b5330; color: #f0c98a; border-radius: 6px; padding: 8px 10px; font-size: 12px;
}
.pl-add[data-v-85799e8d] { display: flex; gap: 6px;
}
.pl-in[data-v-85799e8d] { flex: 1; min-width: 0; background: #16161b; border: 1px solid #33333d; color: #e6e6ea; padding: 5px 8px; border-radius: 4px; font-size: 12px;
}
.pl-in.name[data-v-85799e8d] { flex: 0 0 150px;
}
.pl-b[data-v-85799e8d] { background: #24242c; border: 1px solid #33333d; color: #d6d6de; cursor: pointer; padding: 4px 10px; border-radius: 5px; font-size: 12px;
}
.pl-b[data-v-85799e8d]:hover:not(:disabled) { background: #2f2f39; border-color: #4a4a57;
}
.pl-b[data-v-85799e8d]:disabled { opacity: 0.5; cursor: default;
}
.pl-b.main[data-v-85799e8d] { background: #2b3550; border-color: #3a4a6b; color: #cfe0ff;
}
.pl-b.danger[data-v-85799e8d] { color: #e08;
}
.pl-err[data-v-85799e8d] { color: #e79; font-size: 12px;
}
.pl-empty[data-v-85799e8d] { color: #7a7a86; font-size: 12px;
}
.pl-row[data-v-85799e8d], .pl-crow[data-v-85799e8d] { display: flex; align-items: center; gap: 8px; padding: 6px 8px; background: #1b1b21; border: 1px solid #2c2c34; border-radius: 6px;
}
.pl-row.failed[data-v-85799e8d] { border-color: #6b3a48;
}
.pl-main[data-v-85799e8d] { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px;
}
.pl-nm[data-v-85799e8d] { background: none; border: none; color: #e6e6ea; font-size: 12px; font-weight: 600; padding: 0;
}
.pl-url[data-v-85799e8d] { color: #7a7a86; font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.pl-msg[data-v-85799e8d] { color: #e79; font-size: 11px;
}
.pl-badge[data-v-85799e8d] { font-size: 10px; padding: 1px 6px; border-radius: 10px; border: 1px solid #33333d; color: #9a9aa6;
}
.pl-badge.loaded[data-v-85799e8d] { color: #bfe8cf; border-color: #3a6b4f;
}
.pl-badge.failed[data-v-85799e8d] { color: #f0a0b0; border-color: #6b3a48;
}
.pl-cat[data-v-85799e8d] { margin-top: 6px; display: flex; flex-direction: column; gap: 6px;
}
.pl-cat-h[data-v-85799e8d] { display: flex; align-items: center; justify-content: space-between; color: #9a9aa6; font-size: 12px;
}
.pl-note[data-v-85799e8d] { color: #7a7a86; font-size: 11px; border-top: 1px solid #2c2c34; padding-top: 8px;
}

.hint[data-v-df40492f] { color: #8b8b96; font-size: 12px; padding: 6px 0;
}
.grid[data-v-df40492f] { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px; margin-bottom: 10px;
}
.card[data-v-df40492f] {
  position: relative; padding: 10px 12px 24px; border: 1px solid #33333d; border-radius: 6px;
  background: #1c1c22; cursor: pointer;
}
.card[data-v-df40492f]:hover { border-color: #4a4a57;
}
.card.sel[data-v-df40492f] { border-color: #5b7fd4; background: #20242f;
}
.name[data-v-df40492f] { font-size: 13px; font-weight: 600; margin-bottom: 4px;
}
.desc[data-v-df40492f] { font-size: 11px; color: #8b8b96; min-height: 14px;
}
.badge[data-v-df40492f] {
  position: absolute; left: 10px; bottom: 6px; font-size: 10px; padding: 0 6px;
  border-radius: 3px; border: 1px solid #33333d; color: #8b8b96;
}
.badge.local[data-v-df40492f] { color: #9fd0ae; border-color: #3a6b4f;
}
.row[data-v-df40492f] { display: flex; gap: 8px; margin-bottom: 14px;
}
.lb[data-v-df40492f] { background: #24242c; border: 1px solid #33333d; color: #d6d6de; cursor: pointer; padding: 4px 10px; border-radius: 5px; font-size: 12px;
}
.lb[data-v-df40492f]:hover:not(:disabled) { background: #2f2f39;
}
.lb[data-v-df40492f]:disabled { opacity: 0.45; cursor: default;
}
.lb.use[data-v-df40492f] { background: #2b4d3a; border-color: #3a6b4f; color: #bfe8cf;
}
.save[data-v-df40492f] { border-top: 1px solid #2c2c34; padding-top: 10px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap;
}
.stitle[data-v-df40492f] { width: 100%; font-size: 11px; color: #8b8b96;
}
.li[data-v-df40492f] { background: #16161b; border: 1px solid #33333d; color: #e6e6ea; padding: 4px 8px; border-radius: 4px; font-size: 12px; flex: 1; min-width: 120px;
}

.pj[data-v-d148c9fd] { display: flex; flex-direction: column; gap: 8px;
}
.pj-new[data-v-d148c9fd] { display: flex; gap: 6px;
}
.pj-in[data-v-d148c9fd] { flex: 1; min-width: 0; background: #16161b; border: 1px solid #33333d; color: #e6e6ea; padding: 5px 8px; border-radius: 4px; font-size: 12px;
}
.pj-b[data-v-d148c9fd] { background: #24242c; border: 1px solid #33333d; color: #d6d6de; cursor: pointer; padding: 4px 10px; border-radius: 5px; font-size: 12px;
}
.pj-b[data-v-d148c9fd]:hover:not(:disabled) { background: #2f2f39; border-color: #4a4a57;
}
.pj-b[data-v-d148c9fd]:disabled { opacity: 0.45; cursor: default;
}
.pj-b.main[data-v-d148c9fd] { background: #2b3550; border-color: #3a4a6b; color: #cfe0ff;
}
.pj-b.danger[data-v-d148c9fd]:hover:not(:disabled) { color: #e0669a;
}
.pj-err[data-v-d148c9fd] { color: #e79; font-size: 12px;
}
.pj-row[data-v-d148c9fd] { display: flex; align-items: center; gap: 8px; padding: 6px 8px; background: #1b1b21; border: 1px solid #2c2c34; border-radius: 6px;
}
.pj-row.active[data-v-d148c9fd] { border-color: #3a4a6b; background: #1d2130;
}
.pj-dot[data-v-d148c9fd] { width: 10px; color: #6da8ff; font-size: 10px;
}
.pj-main[data-v-d148c9fd] { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px;
}
.pj-nm[data-v-d148c9fd] { background: none; border: none; color: #e6e6ea; font-size: 12px; font-weight: 600; padding: 0;
}
.pj-meta[data-v-d148c9fd] { color: #7a7a86; font-size: 10px; font-family: ui-monospace, monospace; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.pj-note[data-v-d148c9fd] { color: #7a7a86; font-size: 11px; border-top: 1px solid #2c2c34; padding-top: 8px;
}

* { box-sizing: border-box;
}
html, body, #app { height: 100%; margin: 0;
}
body { font: 14px/1.4 system-ui, sans-serif; color: #e6e6ea; background: #17171b;
}
.layout { display: flex; flex-direction: column; height: 100%;
}
.topbar {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 14px; background: #202027; border-bottom: 1px solid #2c2c34;
}
.brand { font-weight: 700; letter-spacing: 0.5px;
}
.pname { background: #16161b; border: 1px solid #33333d; color: #e6e6ea; padding: 3px 8px; border-radius: 4px; font-size: 12px; width: 160px;
}
.dirty { color: #e0a24b; font-size: 12px;
}
.spacer { flex: 1;
}
.tb { background: #24242c; border: 1px solid #33333d; color: #d6d6de; cursor: pointer; padding: 4px 10px; border-radius: 5px; font-size: 12px;
}
.tb:hover:not(:disabled) { background: #2f2f39; border-color: #4a4a57;
}
.tb:disabled { opacity: 0.4; cursor: default;
}
.tb.hist { padding: 3px 8px; font-size: 14px; line-height: 1;
}
.lang { background: #16161b; border: 1px solid #33333d; color: #d6d6de; border-radius: 5px; font-size: 12px; padding: 3px 6px;
}
.tb.play { background: #2b4d3a; border-color: #3a6b4f; color: #bfe8cf;
}
.tb.play:hover { background: #345c46;
}
.body { flex: 1; display: flex; min-height: 0;
}
.left {
  width: 300px; flex-shrink: 0; padding: 12px;
  background: #1c1c22; border-right: 1px solid #2c2c34; overflow: auto;
}
.viewport { flex: 1; position: relative; min-width: 0;
}
.scene { display: block; width: 100%; height: 100%;
}
/* Рамка PiP-предпросмотра камеры: сам вид рендерится на canvas (scissor), это только обводка. */
.campip {
  position: absolute; right: 12px; bottom: 12px; pointer-events: none;
  border: 1px solid #4a4a57; border-radius: 3px; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.45);
}
.campip-title {
  position: absolute; left: 0; top: -20px; padding: 1px 7px;
  background: #202027; border: 1px solid #33333d; border-radius: 3px 3px 0 0;
  color: #cfe0ff; font-size: 10px; white-space: nowrap;
}
.right {
  width: 260px; flex-shrink: 0; padding: 12px;
  background: #1c1c22; border-left: 1px solid #2c2c34; overflow: auto;
}
.bottom {
  height: 68px; flex-shrink: 0;
  background: #202027; border-top: 1px solid #2c2c34;
}
