/* 领先视频画布 v18 · LibTV-inspired content-first workspace */
.v18-studio {
  --v18-bg: #151719;
  --v18-panel: #232528;
  --v18-panel-2: #292c30;
  --v18-panel-3: #303338;
  --v18-line: rgba(255,255,255,.105);
  --v18-line-soft: rgba(255,255,255,.065);
  --v18-text: #f4f5f7;
  --v18-sub: #a1a7b0;
  --v18-muted: #757c86;
  --v18-blue: #4eacff;
  --v18-blue-strong: #178df3;
  --v18-shadow: 0 28px 70px rgba(0,0,0,.38), 0 5px 18px rgba(0,0,0,.28);
  background: var(--v18-bg);
  color: var(--v18-text);
  color-scheme: dark;
}

.v18-studio .v18-topbar {
  height: 70px;
  flex-basis: 70px;
  padding: 0 18px;
  border-bottom: 1px solid rgba(255,255,255,.09);
  background: rgba(20,22,24,.96);
  box-shadow: 0 1px 0 rgba(0,0,0,.45);
  backdrop-filter: saturate(130%) blur(24px);
}
.v18-studio .v15-back,
.v18-studio .v15-top-actions > button {
  border-color: var(--v18-line);
  background: rgba(255,255,255,.045);
  color: #bdc3cc;
}
.v18-studio .v15-back:hover,
.v18-studio .v15-top-actions > button:hover { border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.1); color: #fff; }
.v18-studio .v15-mark { background: linear-gradient(145deg,#50b8ff,#148bed); box-shadow: 0 8px 24px rgba(20,139,237,.24); }
.v18-studio .v15-project-name small { color: #707781; font-size: 8px; letter-spacing: .14em; }
.v18-studio .v15-project-name input { width: 210px; color: #f3f4f6; font-size: 14px; }
.v18-studio .v15-project-switch { border-color: var(--v18-line); background: rgba(255,255,255,.045); color: #bdc3cc; }
.v18-studio .v15-revision { background: rgba(255,255,255,.07); color: #8f97a2; }
.v18-studio .v15-view-modes { border: 1px solid var(--v18-line); background: #292c30; }
.v18-studio .v15-view-modes button { color: #8f96a0; }
.v18-studio .v15-view-modes button.active { background: #f4f5f7; color: #1d2024; box-shadow: 0 5px 18px rgba(0,0,0,.3); }
.v18-studio .v15-cloud-state { background: rgba(255,255,255,.055); color: #939aa4; }
.v18-studio .v15-cloud-state.saved { background: rgba(37,181,112,.13); color: #71d3a1; }
.v18-studio .v15-top-actions > .v15-save-version { border-color: #f1f3f5; background: #f1f3f5; color: #17191c; }
.v18-studio .v15-top-actions > .v15-save-version:hover { background: #fff; color: #111; }

.v18-studio .v15-project-menu {
  top: 48px;
  border-color: var(--v18-line);
  background: rgba(37,39,43,.98);
  box-shadow: var(--v18-shadow);
}
.v18-studio .v15-project-menu-head strong,.v18-studio .v15-project-item b { color: #f4f5f7; }
.v18-studio .v15-project-item:hover { background: rgba(255,255,255,.07); }
.v18-studio .v15-project-item.active { background: rgba(78,172,255,.14); }
.v18-studio .v15-project-item > span { background: rgba(255,255,255,.08); color: #aab2bd; }

.v18-workspace { position: relative; flex: 1; min-width: 0; min-height: 0; overflow: hidden; background: var(--v18-bg); }
.v18-studio .v13-canvas-stage {
  position: absolute;
  inset: 0;
  width: auto;
  height: auto;
  min-height: 0;
  padding: 0;
  overflow: auto;
  background-color: var(--v18-bg);
  background-image: radial-gradient(circle,rgba(255,255,255,.115) 1px,transparent 1.2px);
  background-size: 28px 28px;
  box-shadow: none;
  cursor: default;
  overscroll-behavior: contain;
}
.v18-studio .v13-canvas-stage::-webkit-scrollbar { width: 10px; height: 10px; }
.v18-studio .v13-canvas-stage::-webkit-scrollbar-thumb { border: 3px solid transparent; border-radius: 99px; background: rgba(255,255,255,.16); background-clip: padding-box; }
.v18-studio .v13-canvas-note {
  position: sticky;
  z-index: 20;
  top: 80px;
  left: 18px;
  width: max-content;
  padding: 8px 11px;
  border: 1px solid var(--v18-line);
  border-radius: 9px;
  background: rgba(31,33,36,.83);
  color: #868e99;
  font-size: 9px;
  box-shadow: 0 10px 30px rgba(0,0,0,.2);
  backdrop-filter: blur(18px);
}
.v18-studio #v13NodeLayer,.v18-studio #v13Edges { width: 4300px; height: 1800px; }
.v18-studio #v13Edges .v17-edge-rail { stroke: rgba(15,16,18,.95); stroke-width: 7; stroke-linecap: round; stroke-linejoin: round; }
.v18-studio #v13Edges .v15-edge { stroke: #7d8795; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.v18-studio #v13Edges .v15-edge-group:hover .v15-edge,
.v18-studio #v13Edges .v15-edge-group.selected .v15-edge { stroke: #d9e7f5; stroke-width: 3; filter: drop-shadow(0 0 7px rgba(78,172,255,.6)); }
.v18-studio #v13Edges .v15-edge-hit { stroke-width: 24!important; }
.v18-studio #v13Edges .v15-edge-preview { stroke: var(--v18-blue); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 7 7; animation: v19EdgeFlow .7s linear infinite; }
@keyframes v19EdgeFlow { to { stroke-dashoffset: -14; } }

.v18-canvas-hud {
  position: absolute;
  z-index: 60;
  top: 16px;
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 5px;
  border: 1px solid var(--v18-line);
  border-radius: 13px;
  background: rgba(36,38,42,.9);
  box-shadow: 0 16px 42px rgba(0,0,0,.26);
  backdrop-filter: blur(20px);
}
.v18-canvas-hud.left { left: 18px; }
.v18-canvas-hud.right { right: 18px; }
.v18-canvas-hud button {
  height: 34px;
  padding: 0 10px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #aab1bb;
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 9px;
  font-weight: 650;
  white-space: nowrap;
}
.v18-canvas-hud button:hover { background: rgba(255,255,255,.09); color: #fff; }
.v18-canvas-hud button.primary { background: #f3f4f6; color: #191b1e; }
.v18-canvas-hud button .material-icons-round { font-size: 16px; }
.v18-canvas-hud > i { width: 1px; height: 20px; margin: 0 3px; background: var(--v18-line); }
.v18-canvas-hud b { min-width: 38px; color: #c9ced5; text-align: center; font-size: 9px; }

.v18-studio .v13-node.v18-content-node {
  --accent: #87909d;
  width: var(--node-w);
  height: var(--node-h);
  min-height: 0;
  padding: 14px;
  overflow: visible;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 16px;
  background: rgba(37,39,42,.975);
  box-shadow: 0 20px 55px rgba(0,0,0,.3), 0 2px 8px rgba(0,0,0,.25);
  display: flex;
  flex-direction: column;
  cursor: grab;
  contain: layout style;
  backface-visibility: hidden;
  transition: border-color .16s ease, box-shadow .16s ease, opacity .16s ease;
}
.v18-studio .v13-node.v18-content-node::before { display: none; }
.v18-studio .node-type-knowledge { --accent: #43c58c; }
.v18-studio .node-type-brief { --accent: #a1a8b2; }
.v18-studio .node-type-script { --accent: #4eacff; }
.v18-studio .node-type-assets { --accent: #43c58c; }
.v18-studio .node-type-storyboard { --accent: #a68cff; }
.v18-studio .node-type-image { --accent: #9c7cff; }
.v18-studio .node-type-video { --accent: #ff7b7b; }
.v18-studio .node-type-merge { --accent: #ffb14a; }
.v18-studio .node-type-review { --accent: #d6d9de; }
.v18-studio .v13-node.v18-content-node:hover { border-color: rgba(255,255,255,.23); box-shadow: 0 25px 70px rgba(0,0,0,.38); }
.v18-studio .v13-node.v18-content-node.selected { border: 1.5px solid var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent),0 30px 72px rgba(0,0,0,.46); }
.v18-studio .v13-node.v18-content-node.is-dragging { z-index: 40; cursor: grabbing; will-change: transform; transition: none; box-shadow: 0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent),0 38px 90px rgba(0,0,0,.52); }
.v18-studio .v13-node.connection-target { border-color: var(--v18-blue); box-shadow: 0 0 0 5px rgba(78,172,255,.18),0 25px 70px rgba(0,0,0,.4); }

.v18-studio .v13-node-head { flex: 0 0 auto; gap: 10px; }
.v18-studio .v13-node-head > i { width: 34px; height: 34px; flex-basis: 34px; border-radius: 9px; background: color-mix(in srgb,var(--node-color) 15%,#2b2e32); color: color-mix(in srgb,var(--node-color) 82%,white); box-shadow: none; }
.v18-studio .v13-node-head > i .material-icons-round { font-size: 18px; }
.v18-studio .v13-node-head small { color: #777f89; font-size: 8px; letter-spacing: .04em; }
.v18-studio .v13-node-head strong { color: #f2f3f5; font-size: 12px; }
.v18-studio .v17-step { margin-right: 5px; background: rgba(255,255,255,.08); color: #aab1ba; }
.v18-studio .v19-step-trigger {
  min-width: 27px;
  height: 20px;
  margin: -2px 6px -2px 0;
  padding: 0 6px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 7px;
  background: rgba(255,255,255,.08);
  color: #c3c9d1;
  font: inherit;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .04em;
  cursor: pointer;
  vertical-align: middle;
  transition: background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease;
}
.v18-studio .v19-step-trigger:hover,.v18-studio .v13-node.selected .v19-step-trigger { border-color: color-mix(in srgb,var(--accent) 68%,white 15%); background: color-mix(in srgb,var(--accent) 28%,#30343a); color: #fff; transform: translateY(-1px); }
.v18-studio .v15-node-more { background: transparent; color: #747c86; }
.v18-studio .v15-node-more:hover { border-color: var(--v18-line); background: rgba(255,255,255,.08); color: #fff; }

.v18-node-body { min-height: 0; flex: 1; margin-top: 12px; overflow: hidden; display: flex; flex-direction: column; }
.v18-node-body > img,.v18-node-body > video {
  width: 100%;
  min-height: 0;
  flex: 1 1 auto;
  margin: 0;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 11px;
  display: block;
  object-fit: cover;
  background: #181a1d;
}
.v18-studio .node-type-image .v18-node-body > img,
.v18-studio .node-type-video .v18-node-body > video { aspect-ratio: 9/13; }
.v18-studio .v15-node-placeholder { min-height: 92px; flex: 1; margin: 0; border-color: rgba(255,255,255,.12); background: rgba(255,255,255,.035); color: #777f89; font-size: 9px; }
.v18-studio .node-type-image .v15-node-placeholder,
.v18-studio .node-type-video .v15-node-placeholder { min-height: 290px; }
.v18-node-body > p {
  min-height: 0;
  margin: 10px 2px 0;
  color: #b8bec7;
  font-size: 10px;
  line-height: 1.7;
  display: -webkit-box;
  -webkit-line-clamp: 5;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.v18-studio .node-type-script .v18-node-body > p { color: #d6d9de; font-size: 11px; line-height: 1.75; -webkit-line-clamp: 13; }
.v18-studio .node-type-brief .v18-node-body > p,
.v18-studio .node-type-assets .v18-node-body > p,
.v18-studio .node-type-storyboard .v18-node-body > p { -webkit-line-clamp: 8; }
.v18-studio .node-type-image .v18-node-body > p,
.v18-studio .node-type-video .v18-node-body > p { -webkit-line-clamp: 2; color: #9097a1; }

.v18-node-meta { flex: 0 0 auto; margin-top: 10px; }
.v18-node-meta > button { width: 100%; height: 28px; padding: 0 8px; border: 1px solid rgba(255,255,255,.075); border-radius: 8px; background: rgba(255,255,255,.045); color: #9ba3ae; display: flex; align-items: center; gap: 5px; font-size: 8px; text-align: left; }
.v18-node-meta > button:hover { border-color: rgba(255,255,255,.17); background: rgba(255,255,255,.085); color: #e6e8eb; }
.v18-node-meta .material-icons-round { font-size: 13px; }
.v18-node-meta span { min-width: 0; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v18-node-meta em { padding: 2px 5px; border-radius: 99px; background: rgba(78,172,255,.11); color: #80c4ff; font-style: normal; white-space: nowrap; }
.v18-studio .v13-node-foot { flex: 0 0 auto; min-height: 30px; padding-top: 9px; border-top-color: rgba(255,255,255,.075); color: #767e88; font-size: 8px; }
.v18-studio .v13-node-foot > span .material-icons-round { color: #48bf87; }
.v18-studio .v13-node-foot button { border: 1px solid rgba(255,255,255,.09); background: rgba(255,255,255,.07); color: #e5e7ea; }
.v18-studio .v13-node-foot button:hover { background: rgba(255,255,255,.13); }
.v18-studio .v13-port { top: 48%; width: 19px; height: 19px; border: 4px solid #25272a; background: #84909e; box-shadow: 0 0 0 1px rgba(255,255,255,.48); }
.v18-studio .v13-port:hover { background: var(--v18-blue); box-shadow: 0 0 0 5px rgba(78,172,255,.16); }
.v20-node-add-next {
  position: absolute;
  z-index: 12;
  right: -16px;
  top: calc(48% + 28px);
  width: 30px;
  height: 30px;
  padding: 0;
  border: 4px solid #25272a;
  border-radius: 50%;
  background: #454a51;
  color: #d7dbe0;
  display: grid;
  place-items: center;
  opacity: 0;
  transform: scale(.82);
  cursor: pointer;
  box-shadow: 0 0 0 1px rgba(255,255,255,.32),0 8px 22px rgba(0,0,0,.28);
  transition: opacity .14s ease,transform .14s ease,background .14s ease,box-shadow .14s ease;
}
.v20-node-add-next .material-icons-round { font-size: 15px; }
.v18-studio .v13-node:hover .v20-node-add-next,
.v18-studio .v13-node.selected .v20-node-add-next,
.v20-node-add-next:focus-visible { opacity: 1; transform: scale(1); }
.v20-node-add-next:hover { background: var(--v18-blue); color: #fff; box-shadow: 0 0 0 5px rgba(78,172,255,.17),0 10px 24px rgba(0,0,0,.34); }

.v20-next-menu {
  position: absolute;
  z-index: 180;
  width: 332px;
  max-height: min(520px,calc(100% - 100px));
  padding: 14px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 18px;
  background: rgba(34,36,39,.985);
  color: #eef0f2;
  box-shadow: 0 30px 80px rgba(0,0,0,.52),0 2px 10px rgba(0,0,0,.35);
  backdrop-filter: blur(26px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(8px) scale(.98);
  transform-origin: 0 0;
  overflow: auto;
  transition: opacity .14s ease,transform .14s ease,visibility .14s;
}
.v20-next-menu.open { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
.v20-next-menu > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; padding: 2px 2px 11px; border-bottom: 1px solid rgba(255,255,255,.075); }
.v20-next-menu > header small,.v20-next-menu > header strong { display: block; }
.v20-next-menu > header small { color: #737b85; font-size: 8px; font-weight: 750; letter-spacing: .13em; }
.v20-next-menu > header strong { max-width: 250px; margin-top: 4px; overflow: hidden; color: #f2f3f5; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.v20-next-menu > header button { width: 30px; height: 30px; padding: 0; border: 0; border-radius: 9px; background: rgba(255,255,255,.06); color: #9aa2ac; display: grid; place-items: center; }
.v20-next-menu > header button:hover { background: rgba(255,255,255,.11); color: #fff; }
.v20-next-menu > section { padding-top: 11px; }
.v20-next-menu > section > b { display: block; margin: 0 3px 6px; color: #737b85; font-size: 8px; font-weight: 720; letter-spacing: .08em; }
.v20-next-menu > section > div { display: grid; gap: 3px; }
.v20-next-menu section button { width: 100%; min-height: 50px; padding: 7px 8px; border: 1px solid transparent; border-radius: 11px; background: transparent; color: #dce0e5; display: flex; align-items: center; gap: 9px; text-align: left; }
.v20-next-menu section button:hover { border-color: rgba(255,255,255,.09); background: rgba(255,255,255,.065); }
.v20-next-menu section button > i { width: 34px; height: 34px; flex: 0 0 34px; border-radius: 10px; background: rgba(78,172,255,.1); color: #83c9ff; display: grid; place-items: center; font-style: normal; }
.v20-next-menu section button > i .material-icons-round { font-size: 18px; }
.v20-next-menu section button > span { min-width: 0; flex: 1; }
.v20-next-menu section button strong,.v20-next-menu section button small { display: block; }
.v20-next-menu section button strong { font-size: 10px; }
.v20-next-menu section button small { margin-top: 3px; overflow: hidden; color: #7d858f; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.v20-next-menu section button > .material-icons-round { color: #69717b; font-size: 16px; }

.v18-studio .v15-minimap { position: sticky; left: 18px; bottom: 96px; border-color: var(--v18-line); background: rgba(38,40,44,.82); box-shadow: 0 14px 38px rgba(0,0,0,.28); opacity: .72; }
.v18-studio .v15-minimap span { border-color: rgba(78,172,255,.55); }

.v18-floating-dock {
  position: absolute;
  z-index: 140;
  left: 50%;
  bottom: 20px;
  transform: translateX(-50%);
  height: 64px;
  padding: 7px;
  border: 1px solid rgba(255,255,255,.11);
  border-radius: 18px;
  background: rgba(38,40,43,.94);
  box-shadow: 0 24px 60px rgba(0,0,0,.45), inset 0 1px rgba(255,255,255,.04);
  backdrop-filter: blur(26px);
  display: flex;
  align-items: center;
  gap: 3px;
}
.v18-floating-dock button { width: 48px; height: 48px; padding: 0; border: 0; border-radius: 13px; background: transparent; color: #d0d4da; display: grid; place-items: center; }
.v18-floating-dock button:hover,.v18-floating-dock button.active { background: rgba(255,255,255,.1); color: #fff; }
.v18-floating-dock button.add { background: #f3f4f6; color: #17191c; }
.v18-floating-dock button.add:hover,.v18-floating-dock button.add.active { background: #fff; color: #111; }
.v18-floating-dock .material-icons-round { font-size: 24px; }
.v18-floating-dock > i { width: 1px; height: 30px; margin: 0 5px; background: var(--v18-line); }

.v18-add-menu {
  position: absolute;
  z-index: 155;
  left: 50%;
  bottom: 96px;
  width: 610px;
  max-width: calc(100% - 32px);
  padding: 16px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  background: rgba(35,37,40,.985);
  box-shadow: var(--v18-shadow);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateX(-50%) translateY(12px) scale(.98);
  transform-origin: 50% 100%;
  transition: opacity .16s ease, transform .16s ease, visibility .16s;
}
.v18-add-menu.open { opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(-50%) translateY(0) scale(1); }
.v18-add-menu header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.v18-add-menu header small,.v18-add-menu header strong { display: block; }
.v18-add-menu header small { color: #707781; font-size: 8px; letter-spacing: .16em; }
.v18-add-menu header strong { margin-top: 3px; color: #f2f3f5; font-size: 14px; }
.v18-add-menu header > button { width: 32px; height: 32px; border: 0; border-radius: 9px; background: rgba(255,255,255,.06); color: #9fa6af; display: grid; place-items: center; }
.v18-add-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; }
.v18-add-grid > button,.v18-add-menu footer > button { min-width: 0; padding: 9px; border: 1px solid transparent; border-radius: 11px; background: transparent; color: #d9dde2; display: flex; align-items: center; gap: 10px; text-align: left; }
.v18-add-grid > button:hover,.v18-add-menu footer > button:hover { border-color: rgba(255,255,255,.1); background: rgba(255,255,255,.065); }
.v18-add-grid i,.v18-add-menu footer > button > .material-icons-round { width: 34px; height: 34px; flex: 0 0 34px; border-radius: 9px; background: rgba(255,255,255,.07); color: #bfc5cd; display: grid; place-items: center; font-style: normal; }
.v18-add-grid i .material-icons-round { font-size: 18px; }
.v18-add-grid span,.v18-add-menu footer span { min-width: 0; }
.v18-add-grid b,.v18-add-grid small,.v18-add-menu footer b,.v18-add-menu footer small { display: block; }
.v18-add-grid b,.v18-add-menu footer b { font-size: 10px; }
.v18-add-grid small,.v18-add-menu footer small { margin-top: 3px; color: #777f89; font-size: 8px; }
.v18-add-menu footer { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--v18-line-soft); }

.v18-studio .v13-inspector.v18-floating-inspector {
  position: absolute;
  z-index: 160;
  left: var(--composer-x,0);
  top: var(--composer-y,0);
  bottom: auto;
  width: 820px;
  max-width: none;
  max-height: 620px;
  min-width: 0;
  padding: 0;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 20px;
  background: rgba(35,37,40,.985);
  color: var(--v18-text);
  box-shadow: var(--v18-shadow);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  overflow: hidden;
  transform: scale(var(--composer-scale,.72));
  transform-origin: 0 0;
  transition: opacity .14s ease, visibility .14s;
}
.v18-studio .v13-inspector.v18-floating-inspector.open { opacity: 1; visibility: visible; pointer-events: auto; transform: scale(var(--composer-scale,.72)); }
.v18-studio .v13-inspector.v18-floating-inspector::before { content:""; position:absolute; z-index:-1; top:-7px; left:calc(var(--composer-anchor,48px) - 7px); width:14px; height:14px; border-left:1px solid rgba(255,255,255,.12); border-top:1px solid rgba(255,255,255,.12); background:#232528; transform:rotate(45deg); }
.v19-composer-head { min-height: 70px; padding: 13px 14px; border-bottom: 1px solid var(--v18-line-soft); display: flex; align-items: center; gap: 11px; }
.v19-composer-head > i { width: 44px; height: 44px; flex: 0 0 44px; border-radius: 13px; background: color-mix(in srgb,var(--node-color) 18%,#292c30); color: color-mix(in srgb,var(--node-color) 82%,white); display: grid; place-items: center; font-style: normal; }
.v19-composer-head > i .material-icons-round { font-size: 23px; }
.v19-composer-head > div { min-width: 0; flex: 1; }
.v19-composer-head small { display: block; margin-bottom: 3px; color: #737b86; font-size: 9px; letter-spacing: .04em; }
.v19-composer-head input { width: 100%; height: 25px; padding: 0; border: 0; outline: 0; background: transparent; color: #f2f4f6; font-size: 16px; font-weight: 680; }
.v19-composer-head .v15-node-state { max-width: 170px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v19-composer-body { max-height: 440px; padding: 16px 18px 8px; overflow: auto; }
.v19-composer-body::-webkit-scrollbar { width: 8px; }
.v19-composer-body::-webkit-scrollbar-thumb { border: 2px solid transparent; border-radius: 99px; background: rgba(255,255,255,.16); background-clip: padding-box; }
.v19-composer-body > textarea { width: 100%; min-height: 190px; resize: vertical; padding: 0 2px 14px; border: 0; border-bottom: 1px solid var(--v18-line-soft); outline: 0; background: transparent; color: #e8eaed; font: 400 15px/1.75 inherit; caret-color: var(--v18-blue); }
.v19-composer-body > textarea::placeholder { color: #666e78; }
.v19-node-composer[data-node-type="knowledge"] .v19-composer-body > textarea { min-height: 90px; }
.v19-knowledge-control { margin-top: 14px; }
.v19-knowledge-control label { display: block; margin-bottom: 7px; color: #7d858f; font-size: 9px; }
.v19-knowledge-control > button { width: 100%; min-height: 58px; padding: 9px 11px; border: 1px solid rgba(67,197,140,.2)!important; border-radius: 12px; background: rgba(67,197,140,.075)!important; color: #dcefe5!important; display: flex; align-items: center; gap: 9px; text-align: left; }
.v19-knowledge-control > button > .material-icons-round { color: #55d49a; }
.v19-knowledge-control > button span { min-width: 0; flex: 1; }
.v19-knowledge-control > button b,.v19-knowledge-control > button small { display: block; }
.v19-knowledge-control > button b { font-size: 11px; }
.v19-knowledge-control > button small { margin-top: 3px; overflow: hidden; color: #85a596; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.v19-knowledge-quick { margin-top: 7px; display: flex; gap: 6px; }
.v19-knowledge-quick > button { height: 30px; flex: 1; padding: 0 8px; border: 1px solid rgba(255,255,255,.09); border-radius: 9px; background: rgba(255,255,255,.045); color: #9ca5b0; display: flex; align-items: center; justify-content: center; gap: 5px; font-size: 9px; }
.v19-knowledge-quick > button:hover { border-color: rgba(78,172,255,.38); background: rgba(78,172,255,.09); color: #ddecfa; }
.v19-knowledge-quick .material-icons-round { font-size: 14px; }
.v20-knowledge-steps { margin: 2px 0 14px; display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; }
.v20-knowledge-steps > span { min-height: 64px; padding: 9px; border: 1px solid #e2e8f0; border-radius: 12px; background: #f8fafc; display: grid; grid-template-columns: 24px 1fr; column-gap: 7px; align-content: center; }
.v20-knowledge-steps i { width: 24px; height: 24px; grid-row: span 2; border-radius: 8px; background: #e8f3ff; color: #087cf0; display: grid; place-items: center; font-size: 10px; font-style: normal; font-weight: 750; }
.v20-knowledge-steps b { color: #2b3037; font-size: 10px; }
.v20-knowledge-steps small { margin-top: 2px; color: #87909b; font-size: 8px; }
.v20-knowledge-toolbar { margin-bottom: 14px; display: flex; flex-wrap: wrap; gap: 7px; }
.v20-knowledge-toolbar .v12-btn:last-child { margin-left: auto; }
.v20-knowledge-list-head { margin-bottom: 7px; display: flex; align-items: center; justify-content: space-between; color: #303640; }
.v20-knowledge-list-head b { font-size: 10px; }
.v20-knowledge-list-head span { padding: 3px 7px; border-radius: 99px; background: #eef4fa; color: #60738a; font-size: 8px; }
.v15-knowledge-picker > label > button { height: 27px; padding: 0 8px; border: 1px solid #d8e4ef; border-radius: 8px; background: #f5f9fd; color: #3c79b5; font-size: 8px; }
.v15-knowledge-empty b { display: block; margin-top: 8px; color: #3a424c; font-size: 11px; }
.v15-knowledge-empty .v12-btn { margin-top: 12px; }
@media (max-width:700px) { .v20-knowledge-steps { grid-template-columns: 1fr; } .v20-knowledge-toolbar .v12-btn:last-child { margin-left: 0; } }
.v19-brief-framework { margin-top: 12px; padding: 11px; border: 1px solid rgba(78,172,255,.17); border-radius: 12px; background: rgba(78,172,255,.055); }
.v19-brief-framework header,.v19-brief-framework header > span { display: flex; align-items: center; gap: 6px; }
.v19-brief-framework header { justify-content: space-between; color: #d7e9f8; font-size: 10px; }
.v19-brief-framework header .material-icons-round { color: #68baff; font-size: 15px; }
.v19-brief-framework header em { padding: 3px 6px; border-radius: 99px; background: rgba(78,172,255,.1); color: #85c9ff; font-size: 8px; font-style: normal; }
.v19-brief-framework > div { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 9px; }
.v19-brief-framework > div span { padding: 4px 7px; border: 1px solid rgba(255,255,255,.075); border-radius: 99px; background: rgba(255,255,255,.045); color: #9fa8b3; font-size: 8px; }
.v19-brief-framework p { margin: 8px 0 0; color: #778794; font-size: 8px; line-height: 1.55; }
.v19-composer-details { margin-top: 10px; border-top: 1px solid var(--v18-line-soft); }
.v19-composer-details > summary { height: 42px; color: #858d98; display: flex; align-items: center; gap: 6px; cursor: pointer; list-style: none; font-size: 10px; }
.v19-composer-details > summary::-webkit-details-marker { display: none; }
.v19-composer-details > summary .material-icons-round { font-size: 16px; }
.v19-composer-details > summary .material-icons-round:last-child { margin-left: auto; transition: transform .14s ease; }
.v19-composer-details[open] > summary .material-icons-round:last-child { transform: rotate(180deg); }
.v19-composer-details > div { padding: 2px 0 10px; }
.v19-secondary-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.v19-secondary-actions > button { height: 30px; padding: 0 9px; border: 1px solid var(--v18-line); border-radius: 9px; background: rgba(255,255,255,.045); color: #adb4bd; display: flex; align-items: center; gap: 4px; font-size: 9px; }
.v19-secondary-actions > button:hover { background: rgba(255,255,255,.1); color: #fff; }
.v19-secondary-actions > button.danger { border-color: rgba(255,90,90,.2); color: #ff8d89; }
.v19-secondary-actions .material-icons-round { font-size: 14px; }
.v19-composer-footer { min-height: 66px; padding: 9px 12px 10px 16px; border-top: 1px solid var(--v18-line-soft); background: rgba(30,32,35,.97); display: flex; align-items: center; gap: 8px; }
.v19-composer-model { max-width: 360px; min-width: 0; height: 42px; padding: 0 8px; border: 0; border-radius: 10px; background: transparent; color: #eceef0; display: flex; align-items: center; gap: 7px; }
.v19-composer-model:hover { background: rgba(255,255,255,.065); }
.v19-composer-model > .material-icons-round { font-size: 20px; }
.v19-composer-model > span:not(.material-icons-round) { min-width: 0; overflow: hidden; font-size: 12px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.v19-composer-model em { padding: 3px 6px; border-radius: 99px; background: rgba(78,172,255,.1); color: #86c8ff; font-size: 8px; font-style: normal; white-space: nowrap; }
.v19-composer-model .material-icons-round:last-child { color: #7d858f; font-size: 17px; }
.v19-composer-tools { margin-left: auto; display: flex; gap: 2px; }
.v19-composer-tools > button { width: 38px; height: 38px; padding: 0; border: 0; border-radius: 10px; background: transparent; color: #959da8; display: grid; place-items: center; }
.v19-composer-tools > button:hover { background: rgba(255,255,255,.07); color: #fff; }
.v19-composer-tools .material-icons-round { font-size: 19px; }
.v19-composer-run { width: 48px; height: 48px; flex: 0 0 48px; padding: 0; border: 0; border-radius: 14px; background: #f4f5f7; color: #17191c; display: grid; place-items: center; box-shadow: 0 7px 22px rgba(0,0,0,.3); }
.v19-composer-run:hover { background: #fff; transform: translateY(-1px); }
.v19-composer-run > .v19-run-label { display: none; }
.v19-composer-run .material-icons-round { font-size: 25px; }

/* v23 · Brief 独立工作台：原始输入和正式输出分开保存、生成和审核 */
.v18-studio .v23-brief-node-head > div { display: flex; min-width: 0; flex: 1; flex-direction: column; justify-content: center; }
.v18-studio .v23-brief-node-head strong { font-size: 14px; letter-spacing: .01em; }
.v18-studio .v23-brief-node-head small { margin-top: 3px; color: #7f8791; font-size: 8px; }
.v23-brief-node-body { gap: 7px; }
.v23-brief-card-stage { min-height: 38px; padding: 8px 10px; border: 1px solid rgba(255,255,255,.085); border-radius: 10px; background: rgba(255,255,255,.035); display: grid; grid-template-columns: 78px minmax(0,1fr); align-items: center; gap: 7px; }
.v23-brief-card-stage.output { border-color: rgba(78,172,255,.17); background: rgba(78,172,255,.055); }
.v23-brief-card-stage span { color: #838c97; display: flex; align-items: center; gap: 5px; font-size: 8px; }
.v23-brief-card-stage span .material-icons-round { font-size: 13px; }
.v23-brief-card-stage b { overflow: hidden; color: #d9dde2; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.v23-brief-node-body > p { margin-top: 2px; -webkit-line-clamp: 3!important; color: #9fa7b1!important; font-size: 9px!important; line-height: 1.55!important; }
.v23-brief-card-hint { margin: 2px 2px 0; color: #707985; font-size: 8px; }

.v23-brief-composer-head strong { display: block; color: #f2f4f6; font-size: 18px; font-weight: 720; }
.v23-brief-composer-body { max-height: 470px; padding-top: 14px; }
.v23-brief-workbench { display: grid; gap: 10px; }
.v23-brief-section { padding: 13px; border: 1px solid rgba(255,255,255,.09); border-radius: 14px; background: rgba(255,255,255,.03); }
.v23-brief-section > header { margin-bottom: 10px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.v23-brief-section > header > div { min-width: 0; }
.v23-brief-section > header b,.v23-brief-section > header span { display: block; }
.v23-brief-section > header b { color: #eef0f3; font-size: 12px; }
.v23-brief-section > header span { margin-top: 3px; color: #7d8691; font-size: 8px; }
.v23-brief-section > header > button { height: 32px; padding: 0 10px; border: 1px solid rgba(78,172,255,.28); border-radius: 9px; background: rgba(78,172,255,.1); color: #9bd1ff; display: flex; align-items: center; gap: 5px; font-size: 9px; font-weight: 650; white-space: nowrap; }
.v23-brief-section > header > button:hover { border-color: rgba(78,172,255,.55); background: rgba(78,172,255,.18); color: #fff; }
.v23-brief-section > header > button .material-icons-round { font-size: 15px; }
.v23-brief-section > textarea { width: 100%; box-sizing: border-box; min-height: 118px; padding: 11px 12px; resize: vertical; border: 1px solid rgba(255,255,255,.1); border-radius: 11px; outline: 0; background: #1d1f22; color: #e7eaed; font: 400 11px/1.7 inherit; caret-color: #4eacff; }
.v23-brief-section.output > textarea { min-height: 240px; color: #f0f2f4; }
.v23-brief-section > textarea:focus { border-color: rgba(78,172,255,.62); box-shadow: 0 0 0 3px rgba(78,172,255,.1); }
.v23-brief-section > textarea::placeholder { color: #626b76; }
.v23-brief-files { margin-top: 8px; display: grid; gap: 6px; }
.v23-brief-files article { min-height: 45px; padding: 7px 8px; border: 1px solid rgba(255,255,255,.075); border-radius: 10px; background: rgba(255,255,255,.035); display: flex; align-items: center; gap: 8px; }
.v23-brief-files article > i { width: 30px; height: 30px; flex: 0 0 30px; border-radius: 8px; background: rgba(255,99,99,.1); color: #ff9994; display: grid; place-items: center; font-style: normal; }
.v23-brief-files article > i .material-icons-round { font-size: 16px; }
.v23-brief-files article > span { min-width: 0; flex: 1; }
.v23-brief-files article b,.v23-brief-files article small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v23-brief-files article b { color: #dfe3e7; font-size: 9px; }
.v23-brief-files article small { margin-top: 3px; color: #737d88; font-size: 8px; }
.v23-brief-files article > button { width: 27px; height: 27px; padding: 0; border: 0; border-radius: 8px; background: transparent; color: #77818c; display: grid; place-items: center; }
.v23-brief-files article > button:hover { background: rgba(255,92,92,.1); color: #ff8b86; }
.v23-brief-files article > button .material-icons-round { font-size: 15px; }
.v23-brief-file-empty { min-height: 38px; padding: 0 9px; border: 1px dashed rgba(255,255,255,.09); border-radius: 9px; color: #707985; display: flex; align-items: center; gap: 6px; font-size: 8px; }
.v23-brief-file-empty .material-icons-round { font-size: 14px; }
.v23-brief-flow { height: 24px; color: #68727e; display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 8px; }
.v23-brief-flow .material-icons-round { font-size: 14px; }
.v23-brief-section > header > em { padding: 4px 8px; border-radius: 99px; background: rgba(255,255,255,.06); color: #8c95a0; font-size: 8px; font-style: normal; }
.v23-brief-section > header > em.pending { background: rgba(255,173,66,.12); color: #ffc06f; }
.v23-brief-section > header > em.approved { background: rgba(67,197,140,.13); color: #79dca8; }
.v23-brief-output-empty { min-height: 126px; border: 1px dashed rgba(78,172,255,.18); border-radius: 11px; background: rgba(78,172,255,.035); color: #77828e; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; text-align: center; }
.v23-brief-output-empty .material-icons-round { color: #68baff; font-size: 23px; }
.v23-brief-output-empty b { color: #c9d0d7; font-size: 11px; }
.v23-brief-output-empty span { font-size: 8px; }
.v23-brief-output-actions { margin-top: 9px; display: flex; justify-content: flex-end; gap: 7px; }
.v23-brief-output-actions button { height: 32px; padding: 0 10px; border: 1px solid rgba(255,255,255,.1); border-radius: 9px; background: rgba(255,255,255,.055); color: #c0c6cd; display: flex; align-items: center; gap: 5px; font-size: 9px; }
.v23-brief-output-actions button:hover { background: rgba(255,255,255,.1); color: #fff; }
.v23-brief-output-actions button.approve { border-color: rgba(67,197,140,.25); background: rgba(67,197,140,.1); color: #78dba7; }
.v23-brief-output-actions .material-icons-round { font-size: 15px; }
.v19-node-composer[data-node-type="brief"] .v19-composer-footer { background: rgba(30,32,35,.99); }

/* v24 · 知识库与脚本节点：去编号，显式展示输入承接、输出与审核 */
.v18-studio .v24-simple-node-head > div { display: flex; min-width: 0; flex: 1; flex-direction: column; justify-content: center; }
.v18-studio .v24-simple-node-head strong { color: #f1f3f5; font-size: 14px; letter-spacing: .01em; }
.v18-studio .v24-simple-node-head small { margin-top: 3px; overflow: hidden; color: #7f8791; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.v24-knowledge-node-body,.v24-script-node-body { gap: 7px; }
.v24-node-stage { min-height: 38px; padding: 8px 10px; border: 1px solid rgba(255,255,255,.085); border-radius: 10px; background: rgba(255,255,255,.035); display: grid; grid-template-columns: 78px minmax(0,1fr); align-items: center; gap: 7px; }
.v24-node-stage.output { border-color: rgba(78,172,255,.17); background: rgba(78,172,255,.055); }
.v24-node-stage span { color: #838c97; display: flex; align-items: center; gap: 5px; font-size: 8px; }
.v24-node-stage span .material-icons-round { font-size: 13px; }
.v24-node-stage b { overflow: hidden; color: #d9dde2; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.v24-knowledge-node-body > p,.v24-script-node-body > p { margin-top: 2px; -webkit-line-clamp: 3!important; color: #9fa7b1!important; font-size: 9px!important; line-height: 1.55!important; }
.v24-node-hint { margin: 2px 2px 0; color: #707985; font-size: 8px; }
.v24-script-source-strip { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; }
.v24-script-source-strip span { height: 30px; padding: 0 8px; border: 1px solid rgba(255,255,255,.08); border-radius: 9px; color: #7c8590; display: flex; align-items: center; gap: 5px; font-size: 8px; }
.v24-script-source-strip span.ready { border-color: rgba(67,197,140,.18); background: rgba(67,197,140,.07); color: #72d8a4; }
.v24-script-source-strip .material-icons-round { font-size: 13px; }
.v24-module-composer-head strong { display: block; color: #f2f4f6; font-size: 18px; font-weight: 720; }
.v24-module-composer-body { max-height: 500px; padding-top: 14px; }
.v24-module-workbench { display: grid; gap: 10px; }
.v24-module-section { padding: 13px; border: 1px solid rgba(255,255,255,.09); border-radius: 14px; background: rgba(255,255,255,.03); }
.v24-module-section > header { margin-bottom: 10px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.v24-module-section > header > div { min-width: 0; }
.v24-module-section > header b,.v24-module-section > header span { display: block; }
.v24-module-section > header b { color: #eef0f3; font-size: 12px; }
.v24-module-section > header span { margin-top: 3px; color: #7d8691; font-size: 8px; }
.v24-module-section > header > em { padding: 4px 8px; border-radius: 99px; background: rgba(255,255,255,.06); color: #8c95a0; font-size: 8px; font-style: normal; white-space: nowrap; }
.v24-module-section > header > em.ready,.v24-module-section > header > em.approved { background: rgba(67,197,140,.13); color: #79dca8; }
.v24-module-section > header > em.pending { background: rgba(255,173,66,.12); color: #ffc06f; }
.v24-module-flow { min-height: 24px; color: #68727e; display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 8px; text-align: center; }
.v24-module-flow .material-icons-round { font-size: 14px; }
.v24-knowledge-workbench .v19-knowledge-control { margin-top: 0; }
.v24-knowledge-output { display: grid; gap: 6px; }
.v24-knowledge-output article { min-height: 45px; padding: 7px 8px; border: 1px solid rgba(255,255,255,.075); border-radius: 10px; background: rgba(255,255,255,.035); display: flex; align-items: center; gap: 8px; }
.v24-knowledge-output article > i { width: 30px; height: 30px; flex: 0 0 30px; border-radius: 8px; background: rgba(67,197,140,.1); color: #72d8a4; display: grid; place-items: center; font-style: normal; }
.v24-knowledge-output article > i .material-icons-round { font-size: 16px; }
.v24-knowledge-output article > span { min-width: 0; flex: 1; }
.v24-knowledge-output b,.v24-knowledge-output small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v24-knowledge-output b { color: #dfe3e7; font-size: 9px; }
.v24-knowledge-output small { margin-top: 3px; color: #737d88; font-size: 8px; }
.v24-source-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.v24-source-grid article { min-width: 0; min-height: 106px; padding: 10px; border: 1px solid rgba(255,255,255,.085); border-radius: 12px; background: rgba(255,255,255,.025); display: flex; align-items: flex-start; gap: 8px; }
.v24-source-grid article.ready { border-color: rgba(67,197,140,.2); background: rgba(67,197,140,.055); }
.v24-source-grid article.missing { border-style: dashed; }
.v24-source-grid article > i { color: #7d8691; font-style: normal; }
.v24-source-grid article.ready > i { color: #5bd49a; }
.v24-source-grid article > i .material-icons-round { font-size: 17px; }
.v24-source-grid article > span { min-width: 0; flex: 1; }
.v24-source-grid article b,.v24-source-grid article small { display: block; }
.v24-source-grid article b { color: #eef0f3; font-size: 10px; }
.v24-source-grid article small { margin-top: 3px; color: #7b8490; font-size: 8px; }
.v24-source-grid article p { margin: 8px 0 0; overflow: hidden; color: #9aa3ad; font-size: 8px; line-height: 1.55; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.v24-link-inputs { width: 100%; height: 34px; margin-top: 8px; border: 1px solid rgba(78,172,255,.28); border-radius: 9px; background: rgba(78,172,255,.09); color: #91cbff; display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 9px; font-weight: 650; }
.v24-link-inputs:hover { background: rgba(78,172,255,.17); color: #fff; }
.v24-link-inputs .material-icons-round { font-size: 15px; }
.v24-script-requirement { display: grid!important; gap: 7px; margin: 12px 0 0!important; }
.v24-script-requirement > span { color: #8b949f; font-size: 9px; }
.v24-script-requirement textarea,.v24-module-section.output > textarea { width: 100%; box-sizing: border-box; padding: 10px 11px; resize: vertical; border: 1px solid rgba(255,255,255,.1); border-radius: 11px; outline: 0; background: #1d1f22; color: #e7eaed; font: 400 10px/1.65 inherit; caret-color: #4eacff; }
.v24-script-requirement textarea { min-height: 82px; }
.v24-module-section.output > textarea { min-height: 250px; color: #f0f2f4; }
.v24-script-requirement textarea:focus,.v24-module-section.output > textarea:focus { border-color: rgba(78,172,255,.62); box-shadow: 0 0 0 3px rgba(78,172,255,.1); }
.v24-output-empty { min-height: 126px; border: 1px dashed rgba(78,172,255,.18); border-radius: 11px; background: rgba(78,172,255,.035); color: #77828e; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; text-align: center; }
.v24-output-empty .material-icons-round { color: #68baff; font-size: 23px; }
.v24-output-empty b { color: #c9d0d7; font-size: 11px; }
.v24-output-empty span { font-size: 8px; }
.v24-output-actions { margin-top: 9px; display: flex; justify-content: flex-end; gap: 7px; }
.v24-output-actions button { height: 32px; padding: 0 10px; border: 1px solid rgba(255,255,255,.1); border-radius: 9px; background: rgba(255,255,255,.055); color: #c0c6cd; display: flex; align-items: center; gap: 5px; font-size: 9px; }
.v24-output-actions button:first-child { border-color: rgba(78,172,255,.28); background: rgba(78,172,255,.1); color: #9bd1ff; }
.v24-output-actions button:hover { background: rgba(255,255,255,.1); color: #fff; }
.v24-output-actions .material-icons-round { font-size: 15px; }
.v19-node-composer[data-node-type="knowledge"] .v19-composer-footer,.v19-node-composer[data-node-type="script"] .v19-composer-footer { background: rgba(30,32,35,.99); }
.v18-studio .v13-inspector-title { position: sticky; z-index: 3; top: -18px; margin: -18px -18px 14px; padding: 14px 18px; border-bottom: 1px solid var(--v18-line-soft); background: rgba(35,37,40,.98); backdrop-filter: blur(20px); }
.v18-studio .v13-inspector-title > i { background: color-mix(in srgb,var(--node-color) 17%,#292c30); }
.v18-studio .v13-inspector-title small { color: #777f89; }
.v18-studio .v13-inspector-title strong { color: #f4f5f7; }
.v18-studio .v15-node-state { background: rgba(255,255,255,.07); color: #9ba3ae; }
.v18-inspector-close { width: 32px; height: 32px; margin-left: 2px; padding: 0; border: 0; border-radius: 9px; background: rgba(255,255,255,.06); color: #a4abb5; display: grid; place-items: center; }
.v18-inspector-close:hover { background: rgba(255,255,255,.12); color: #fff; }
.v18-studio .v13-inspector label { color: #9ca4af; }
.v18-studio .v13-inspector .v12-input,.v18-studio .v13-inspector .v12-textarea,.v18-studio .v13-inspector select { border-color: rgba(255,255,255,.11); background: #1c1e21; color: #eceef0; }
.v18-studio .v13-inspector .v12-textarea { min-height: 150px; }
.v18-studio .v15-node-model-select,.v18-studio .v15-knowledge-control > button,.v18-studio .v15-script-review { border-color: rgba(255,255,255,.1); background: rgba(255,255,255,.04); color: #e8eaed; }
.v18-studio .v15-node-model-select:hover,.v18-studio .v15-knowledge-control > button:hover { border-color: rgba(78,172,255,.55); background: rgba(78,172,255,.08); }
.v18-studio .v15-script-core,.v18-studio .v15-shot-review article,.v18-studio .v16-gate-strip > div { border-color: rgba(255,255,255,.08); background: rgba(255,255,255,.045); }
.v18-studio .v15-script-core strong,.v18-studio .v15-shot-review b { color: #e9ebee; }
.v18-studio .v15-hook-options button { border-color: rgba(255,255,255,.1); background: rgba(255,255,255,.035); color: #bdc3cc; }
.v18-studio .v15-hook-options button.selected { border-color: #4eacff; background: rgba(78,172,255,.12); color: #a8d8ff; }
.v18-studio .v13-inspector-actions .v12-btn { border-color: rgba(255,255,255,.11); background: rgba(255,255,255,.065); color: #e2e5e9; }
.v18-studio .v13-inspector-actions .v12-btn:hover { background: rgba(255,255,255,.12); }
.v18-studio .v13-inspector-actions .v12-btn.primary { border-color: #f2f3f5; background: #f2f3f5; color: #17191c; }
.v18-studio .v13-inspector-actions .v12-btn.danger { border-color: rgba(255,89,89,.2); background: rgba(255,80,80,.1); color: #ff8c88; }
.v18-studio .v15-production-rule { background: rgba(67,197,140,.08); color: #8ba899; }
.v18-studio .v15-production-rule b { color: #c9ded2; }

.v18-studio .v13-taskbar.v18-status-pill {
  position: absolute;
  z-index: 70;
  left: 18px;
  bottom: 20px;
  width: auto;
  max-width: min(440px,calc(50% - 250px));
  height: 38px;
  padding: 0 10px;
  border: 1px solid var(--v18-line);
  border-radius: 11px;
  background: rgba(35,37,40,.9);
  color: #8f97a1;
  box-shadow: 0 14px 36px rgba(0,0,0,.24);
  backdrop-filter: blur(18px);
}
.v18-studio .v13-taskbar.v18-status-pill > div { color: #8f97a1; }
.v18-studio .v13-taskbar.v18-status-pill .v15-runs { background: transparent; }

.v18-timeline-drawer {
  position: absolute;
  z-index: 145;
  left: 18px;
  right: 18px;
  bottom: 96px;
  height: 210px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  background: rgba(35,37,40,.98);
  box-shadow: var(--v18-shadow);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(15px);
  transition: opacity .16s ease, transform .16s ease, visibility .16s;
  overflow: hidden;
}
.v18-timeline-drawer.open { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
.v18-timeline-drawer > header { height: 58px; padding: 0 14px 0 18px; border-bottom: 1px solid var(--v18-line-soft); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.v18-timeline-drawer > header > div { display: flex; align-items: baseline; gap: 9px; }
.v18-timeline-drawer header small { color: #6e7680; font-size: 8px; letter-spacing: .14em; }
.v18-timeline-drawer header strong { color: #f0f2f4; font-size: 13px; }
.v18-timeline-drawer header span { color: #777f89; font-size: 8px; }
.v18-timeline-drawer header nav { display: flex; gap: 5px; }
.v18-timeline-drawer header button { height: 32px; padding: 0 9px; border: 1px solid var(--v18-line); border-radius: 9px; background: rgba(255,255,255,.05); color: #aeb5bf; display: flex; align-items: center; gap: 4px; font-size: 8px; }
.v18-timeline-drawer header button.primary { border-color: #f2f3f5; background: #f2f3f5; color: #17191c; }
.v18-studio .v18-timeline-drawer .v13-timeline { min-height: 0; max-height: none; height: 151px; padding: 12px 14px; border: 0; background: transparent; }
.v18-studio .v18-timeline-drawer .v13-track-clip { border-color: rgba(255,255,255,.1); background: rgba(255,255,255,.045); color: #e5e7ea; }
.v18-studio .v18-timeline-drawer .v13-track-clip.active { border-color: #4eacff; background: rgba(78,172,255,.1); }
.v18-studio .v18-timeline-drawer .v13-track-clip > span { background: rgba(255,255,255,.09); color: #9fd1ff; box-shadow: none; }
.v18-studio .v18-timeline-drawer .v13-track-clip b { color: #e7e9ec; }

.v18-studio .v16-storyboard-panel { position: absolute; z-index: 100; inset: 0; padding: 24px; background: #151719; color: #eef0f2; overflow: auto; }
.v18-studio:not(.storyboard-mode) .v16-storyboard-panel { display: none; }
.v18-studio.storyboard-mode .v18-canvas-hud,.v18-studio.storyboard-mode .v18-floating-dock,.v18-studio.storyboard-mode .v18-status-pill { display: none; }
.v18-studio .v16-storyboard-head,.v18-studio .v16-storyboard-summary,.v18-studio .v16-storyboard-table-wrap,.v18-studio .v16-storyboard-footer { border-color: var(--v18-line); background: #222428; color: #e8eaed; }
.v18-studio .v16-storyboard-summary > div { border-color: var(--v18-line); background: #222428; box-shadow: none; }
.v18-studio .v16-board-step { border-color: var(--v18-line); background: rgba(255,255,255,.035); }
.v18-studio .v16-board-step b,.v18-studio .v16-storyboard-summary b { color: #edf0f2; }
.v18-studio .v16-storyboard-table th { background: #1c1e21; color: #8f97a1; }
.v18-studio .v16-storyboard-table td { border-color: var(--v18-line-soft); color: #c7ccd3; }
.v18-studio .v16-storyboard-table tr:hover td { background: rgba(255,255,255,.025); }
.v18-studio .v16-storyboard-table button,.v18-studio .v16-storyboard-head button,.v18-studio .v16-storyboard-footer button { border-color: var(--v18-line); background: rgba(255,255,255,.07); color: #e1e4e8; }

/* v21 · LibTV 式可操作故事板：表格不是预览，而是逐镜编辑与生产入口 */
.v18-studio .v16-board-step { min-width: 210px; padding: 11px 15px; border: 1px solid transparent; border-radius: 14px; background: transparent; text-align: left; cursor: pointer; }
.v18-studio .v16-board-step:hover { border-color: rgba(255,255,255,.12); background: rgba(255,255,255,.055); }
.v18-studio .v16-board-step.done { background: rgba(46,181,125,.08); }
.v18-studio .v16-storyboard-table td { padding: 0; vertical-align: top; }
.v18-studio .v16-storyboard-table td > button,.v18-studio .v16-storyboard-table .v21-shot-main { width: 100%; min-height: 76px; padding: 13px 14px; border: 0; border-radius: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.v18-studio .v16-storyboard-table td > button:hover,.v18-studio .v16-storyboard-table .v21-shot-main:hover { background: rgba(78,172,255,.065); }
.v18-studio .v16-storyboard-table .v21-shot-main strong,.v18-studio .v16-storyboard-table .v21-shot-main span { display: block; color: #f0f2f4; font-size: 12px; }
.v18-studio .v16-storyboard-table .v21-shot-main p { margin: 5px 0 0; color: #c3c9d0; font: 400 11px/1.6 inherit; }
.v18-studio .v16-storyboard-table .v21-shot-main small { display: block; margin-top: 5px; color: #7f8894; font-size: 9px; line-height: 1.45; }
.v18-studio .v16-storyboard-table .v21-shot-number { min-width: 54px; color: #fff; font-size: 15px; font-weight: 750; text-align: center; }
.v18-studio .v16-storyboard-table .v21-cell-button { min-width: 66px; text-align: center; }
.v18-studio .v21-shot-actions { min-width: 112px; padding: 9px; display: grid; gap: 5px; }
.v18-studio .v21-shot-actions button { min-height: 30px; padding: 0 8px; border: 1px solid rgba(255,255,255,.1); border-radius: 8px; background: rgba(255,255,255,.045); color: #dfe3e8; display: flex; align-items: center; gap: 5px; font-size: 9px; cursor: pointer; }
.v18-studio .v21-shot-actions button:hover { border-color: rgba(78,172,255,.5); background: rgba(78,172,255,.12); color: #fff; }
.v18-studio .v21-shot-actions .material-icons-round { font-size: 14px; }
.v18-studio .v16-storyboard-footer > div { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }

.v21-shot-editor,.v21-prompt-editor { display: grid; gap: 14px; }
.v21-shot-editor-grid,.v21-prompt-meta { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.v21-shot-field,.v21-prompt-editor label { display: grid; gap: 7px; color: #656d78; font-size: 12px; font-weight: 650; }
.v21-shot-field input,.v21-shot-field textarea,.v21-prompt-editor textarea { width: 100%; box-sizing: border-box; padding: 11px 12px; border: 1px solid #d9dde3; border-radius: 10px; outline: 0; background: #fff; color: #1f2328; font: 400 13px/1.6 inherit; }
.v21-shot-field textarea { min-height: 84px; resize: vertical; }
.v21-shot-field input:focus,.v21-shot-field textarea:focus,.v21-prompt-editor textarea:focus { border-color: #1684ee; box-shadow: 0 0 0 3px rgba(22,132,238,.1); }
.v21-prompt-editor > section { padding: 14px; border: 1px solid #e0e4e9; border-radius: 12px; background: #fafbfc; }
.v21-prompt-editor > section > header { margin-bottom: 9px; display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.v21-prompt-editor > section > header b { color: #20242a; font-size: 13px; }
.v21-prompt-editor > section > header span { color: #808894; font-size: 10px; }
.v21-prompt-editor > section > textarea { min-height: 170px; resize: vertical; }
.v21-prompt-editor .v21-prompt-meta { padding: 0; border: 0; background: transparent; }
.v21-prompt-editor .v21-prompt-meta textarea { min-height: 92px; }
.node-type-prompt .v15-node-placeholder { background: linear-gradient(145deg,rgba(56,160,255,.1),rgba(114,86,225,.055)); }

/* v25 · “视频分镜”单节点三阶段：确认镜头 → 准备资产 → 合成提示词 */
.v25-storyboard-node-head > div strong,.v25-storyboard-composer-head strong { letter-spacing: 0; }
.v25-storyboard-node-body { min-height: 210px!important; padding: 22px!important; display: grid; align-content: center; gap: 18px; }
.v25-storyboard-node-icon { color: #8b929b; text-align: center; }
.v25-storyboard-node-icon .material-icons-round { font-size: 38px; }
.v25-storyboard-node-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: start; }
.v25-storyboard-node-steps > span { position: relative; display: grid; justify-items: center; gap: 5px; text-align: center; }
.v25-storyboard-node-steps > span:not(:last-child)::after { content: ""; position: absolute; top: 10px; left: calc(50% + 13px); width: calc(100% - 26px); height: 1px; background: rgba(255,255,255,.16); }
.v25-storyboard-node-steps i { z-index: 1; width: 21px; height: 21px; border: 1px solid rgba(255,255,255,.26); border-radius: 50%; background: #2b2d31; display: grid; place-items: center; color: #9ba2ac; font-style: normal; }
.v25-storyboard-node-steps i .material-icons-round { font-size: 14px; }
.v25-storyboard-node-steps .done i { border-color: #f0f2f4; background: #f0f2f4; color: #202226; }
.v25-storyboard-node-steps b { color: #e8eaed; font-size: 10px; font-weight: 650; }
.v25-storyboard-node-steps small { color: #737b86; font-size: 8px; }
.v25-storyboard-node-body > button,.v25-open-storyboard { min-height: 40px; border: 1px solid rgba(255,255,255,.08); border-radius: 9px; background: rgba(255,255,255,.085); color: #f0f2f4; display: flex; align-items: center; justify-content: center; gap: 7px; font-size: 10px; font-weight: 700; cursor: pointer; }
.v25-storyboard-node-body > button:hover,.v25-open-storyboard:hover { border-color: rgba(255,255,255,.22); background: rgba(255,255,255,.13); }
.v25-storyboard-composer-body { display: grid; gap: 16px; }
.v25-storyboard-composer-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.v25-storyboard-composer-steps > button { min-height: 76px; padding: 12px; border: 1px solid rgba(255,255,255,.1); border-radius: 12px; background: rgba(255,255,255,.04); color: #dfe3e7; display: flex; align-items: center; gap: 10px; text-align: left; cursor: pointer; }
.v25-storyboard-composer-steps > button:hover { border-color: rgba(78,172,255,.52); background: rgba(78,172,255,.08); }
.v25-storyboard-composer-steps i { width: 27px; height: 27px; flex: 0 0 27px; border-radius: 50%; background: rgba(255,255,255,.09); display: grid; place-items: center; color: #fff; font-style: normal; font-size: 11px; }
.v25-storyboard-composer-steps span { display: grid; gap: 3px; }
.v25-storyboard-composer-steps b { font-size: 11px; }
.v25-storyboard-composer-steps small { color: #7f8791; font-size: 9px; }
.v25-open-storyboard { width: 100%; }
.v18-studio .v16-board-step.active { border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.085); box-shadow: inset 0 0 0 1px rgba(255,255,255,.025); }
.v18-studio .v25-storyboard-table { min-width: 1920px; table-layout: fixed; }
.v18-studio .v25-storyboard-table th:nth-child(1) { width: 64px; }
.v18-studio .v25-storyboard-table th:nth-child(2) { width: 76px; }
.v18-studio .v25-storyboard-table th:nth-child(3) { width: 330px; }
.v18-studio .v25-storyboard-table th:nth-child(4) { width: 190px; }
.v18-studio .v25-storyboard-table th:nth-child(5) { width: 220px; }
.v18-studio .v25-storyboard-table th:nth-child(6) { width: 300px; }
.v18-studio .v25-storyboard-table th:nth-child(7) { width: 210px; }
.v18-studio .v25-storyboard-table th:nth-child(8) { width: 220px; }
.v18-studio .v25-storyboard-table th:nth-child(9) { width: 150px; }
.v18-studio .v25-storyboard-table th:nth-child(10) { width: 130px; }
.v18-studio .v25-final-prompt { min-height: 76px!important; display: flex!important; align-items: center; justify-content: center; gap: 6px; color: #98a1ac!important; font-size: 10px; }
.v18-studio .v25-final-prompt.ready { color: #65d6aa!important; background: rgba(46,181,125,.065)!important; }
.v18-studio .v25-final-prompt .material-icons-round { font-size: 15px; }
.v25-story-assets { padding: 22px; border: 1px solid var(--v18-line); border-radius: 16px; background: #1d1f22; display: grid; gap: 26px; }
.v25-global-style { display: grid; gap: 9px; }
.v25-global-style > span,.v25-story-assets-section h3 { color: #eef0f2; font-size: 13px; font-weight: 700; }
.v25-global-style textarea { min-height: 88px; padding: 13px 14px; border: 1px solid rgba(255,255,255,.1); border-radius: 11px; background: #17191c; color: #cdd2d8; font: 400 12px/1.65 inherit; resize: vertical; outline: 0; }
.v25-global-style textarea:focus { border-color: rgba(78,172,255,.65); box-shadow: 0 0 0 3px rgba(78,172,255,.08); }
.v25-story-assets-section { display: grid; gap: 12px; }
.v25-story-assets-section > header { display: flex; align-items: center; justify-content: space-between; }
.v25-story-assets-section > header h3 { margin: 0; }
.v25-story-assets-section > header span { color: #79828d; font-size: 10px; }
.v25-story-assets-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(210px,1fr)); gap: 12px; }
.v25-story-asset-card,.v25-story-asset-add { min-height: 300px; border: 1px solid rgba(255,255,255,.1); border-radius: 13px; background: #222428; color: #dfe3e7; overflow: hidden; }
.v25-story-asset-preview { height: 150px; background: #181a1d; }
.v25-story-asset-preview img { width: 100%; height: 100%; object-fit: cover; }
.v25-story-asset-preview > div { width: 100%; height: 100%; display: grid; place-content: center; justify-items: center; gap: 8px; color: #69727d; }
.v25-story-asset-card > header,.v25-story-asset-card > p,.v25-story-asset-card > footer { margin: 0 13px; }
.v25-story-asset-card > header { padding-top: 12px; display: flex; justify-content: space-between; gap: 8px; }
.v25-story-asset-card > header div { display: grid; gap: 3px; }
.v25-story-asset-card > header small { color: #707985; font-size: 8px; }
.v25-story-asset-card > header strong { font-size: 11px; }
.v25-story-asset-card > header > span { height: 20px; padding: 0 7px; border-radius: 10px; background: rgba(255,255,255,.06); color: #89929d; display: flex; align-items: center; font-size: 8px; }
.v25-story-asset-card > header > span.ready { background: rgba(46,181,125,.11); color: #65d6aa; }
.v25-story-asset-card > p { height: 54px; padding-top: 9px; overflow: hidden; color: #929aa4; font-size: 9px; line-height: 1.55; }
.v25-story-asset-card > footer { padding: 11px 0 13px; display: grid; grid-template-columns: repeat(2,1fr); gap: 7px; }
.v25-story-asset-card > footer button { min-height: 31px; border: 1px solid rgba(255,255,255,.09); border-radius: 8px; background: rgba(255,255,255,.045); color: #cdd2d8; display: flex; align-items: center; justify-content: center; gap: 5px; font-size: 8px; cursor: pointer; }
.v25-story-asset-card > footer .material-icons-round { font-size: 13px; }
.v25-story-asset-add { border-style: dashed; display: grid; place-content: center; justify-items: center; gap: 8px; color: #707985; cursor: pointer; }
.v25-story-asset-add:hover { border-color: rgba(78,172,255,.5); color: #9fd1ff; background: rgba(78,172,255,.045); }
.v25-asset-picker { display: grid; gap: 18px; }
.v25-asset-upload { min-height: 110px; padding: 18px; border: 1px dashed #b8c5d4; border-radius: 12px; background: #f7faff; color: #1f6fbd; display: flex; align-items: center; justify-content: center; gap: 12px; cursor: pointer; }
.v25-asset-upload input { display: none; }
.v25-asset-upload span { display: grid; gap: 4px; }
.v25-asset-upload small { color: #778392; }
.v25-asset-existing { display: grid; grid-template-columns: repeat(auto-fill,minmax(120px,1fr)); gap: 10px; }
.v25-asset-existing h4,.v25-asset-existing p { grid-column: 1/-1; margin: 0; }
.v25-asset-existing button { padding: 7px; border: 1px solid #dde3ea; border-radius: 10px; background: #fff; display: grid; gap: 6px; cursor: pointer; }
.v25-asset-existing img { width: 100%; height: 90px; border-radius: 7px; object-fit: cover; }
.v25-asset-existing span { color: #3f4853; font-size: 10px; }
.v26-reference-binding { margin-top: 10px; padding: 10px 12px; border: 1px solid rgba(255,178,74,.2); border-radius: 10px; background: rgba(255,178,74,.06); color: #f0bd78; display: flex; align-items: center; gap: 9px; }
.v26-reference-binding.ready { border-color: rgba(46,181,125,.24); background: rgba(46,181,125,.07); color: #6ed8ae; }
.v26-reference-binding > .material-icons-round { font-size: 16px; }
.v26-reference-binding > div { display: grid; gap: 2px; }
.v26-reference-binding b { color: #e6e9ed; font-size: 9px; }
.v26-reference-binding span { color: inherit; font-size: 8px; }
.v27-media-node-head > div { min-width: 0; display: grid; gap: 3px; }
.v27-media-node-head > div small { max-width: 270px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #7f8893; font-size: 8px; }
.v27-node-media-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 9px; }
.v27-node-media-actions button { min-height: 31px; border: 1px solid rgba(255,255,255,.09); border-radius: 8px; background: rgba(255,255,255,.045); color: #cbd1d7; display: flex; align-items: center; justify-content: center; gap: 5px; font: 600 9px/1 inherit; cursor: pointer; }
.v27-node-media-actions button:hover { border-color: rgba(78,172,255,.45); background: rgba(78,172,255,.08); color: #a9d7ff; }
.v27-node-media-actions button.primary { border-color: rgba(78,172,255,.3); background: rgba(78,172,255,.14); color: #8bcbff; }
.v27-node-media-actions .material-icons-round { font-size: 14px; }
.v27-audio-toggle { margin-top: 10px; padding: 10px 12px; border: 1px solid rgba(78,172,255,.2); border-radius: 10px; background: rgba(78,172,255,.06); display: flex; align-items: center; gap: 10px; cursor: pointer; }
.v27-audio-toggle.disabled { opacity: .62; cursor: not-allowed; }
.v27-audio-toggle input { width: 15px; height: 15px; accent-color: #4eacff; }
.v27-audio-toggle > span { display: grid; grid-template-columns: 20px 1fr; align-items: center; column-gap: 7px; }
.v27-audio-toggle .material-icons-round { grid-row: 1/3; font-size: 17px; color: #76c0ff; }
.v27-audio-toggle b { color: #e6e9ed; font-size: 9px; }
.v27-audio-toggle small { color: #89929d; font-size: 8px; }
.v28-trusted-asset { display: grid; grid-template-columns: minmax(0,1fr) minmax(210px,42%); gap: 14px; align-items: center; margin-top: 12px; padding: 14px 16px; border: 1px solid rgba(255,255,255,.1); border-radius: 14px; background: rgba(255,255,255,.035); }
.v28-trusted-asset span { display: flex; flex-direction: column; gap: 4px; }
.v28-trusted-asset b { font-size: 13px; color: #f3f5f8; }
.v28-trusted-asset small { font-size: 11px; line-height: 1.5; color: #9299a4; }
.v28-trusted-asset input { width: 100%; min-width: 0; height: 38px; padding: 0 12px; border: 1px solid rgba(255,255,255,.12); border-radius: 10px; background: #181b1f; color: #fff; font-size: 12px; outline: none; }
.v28-trusted-asset input:focus { border-color: #4b9cff; box-shadow: 0 0 0 3px rgba(75,156,255,.12); }
@media (max-width: 720px) { .v28-trusted-asset { grid-template-columns: 1fr; } }

.v29-asset-shot-scope { margin: 8px 13px 0; padding-top: 8px; border-top: 1px solid rgba(255,255,255,.07); display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.v29-asset-shot-scope > span { margin-right: 3px; color: #727c87; font-size: 8px; }
.v29-asset-shot-scope > button { min-width: 24px; height: 22px; padding: 0 7px; border: 1px solid rgba(255,255,255,.09); border-radius: 11px; background: rgba(255,255,255,.035); color: #929aa4; font-size: 8px; cursor: pointer; }
.v29-asset-shot-scope > button.active { border-color: rgba(78,172,255,.45); background: rgba(78,172,255,.14); color: #8fcdff; }
.v29-video-inputs { margin-top: 12px; padding: 13px; border: 1px solid rgba(255,255,255,.09); border-radius: 14px; background: rgba(255,255,255,.025); display: grid; gap: 10px; }
.v29-video-inputs > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.v29-video-inputs > header > div { display: grid; gap: 3px; }
.v29-video-inputs > header b { color: #f1f4f7; font-size: 11px; }
.v29-video-inputs > header span { color: #858e99; font-size: 9px; }
.v29-video-inputs > header button { min-height: 30px; padding: 0 10px; border: 1px solid rgba(255,255,255,.1); border-radius: 9px; background: rgba(255,255,255,.05); color: #bdc5ce; display: flex; align-items: center; gap: 5px; font-size: 9px; cursor: pointer; }
.v29-video-inputs > header button .material-icons-round { font-size: 14px; }
.v29-video-prompt-source { padding: 10px; border: 1px solid rgba(255,181,72,.18); border-radius: 10px; background: rgba(255,181,72,.05); color: #dca859; display: flex; align-items: center; gap: 9px; }
.v29-video-prompt-source.ready { border-color: rgba(46,181,125,.24); background: rgba(46,181,125,.06); color: #5dd1a2; }
.v29-video-prompt-source > .material-icons-round { font-size: 17px; }
.v29-video-prompt-source > div { display: grid; gap: 2px; }
.v29-video-prompt-source b { color: #e8ebef; font-size: 9px; }
.v29-video-prompt-source span { font-size: 8px; }
.v29-video-reference-list { display: grid; gap: 7px; }
.v29-video-reference-list > p { margin: 0; padding: 14px; border: 1px dashed rgba(255,255,255,.1); border-radius: 10px; color: #7e8792; font-size: 9px; text-align: center; }
.v29-video-reference-list article { min-height: 46px; padding: 6px 8px; border: 1px solid rgba(255,255,255,.07); border-radius: 10px; background: rgba(255,255,255,.025); display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 9px; }
.v29-video-reference-list article.ready { border-color: rgba(46,181,125,.15); }
.v29-video-reference-list img,.v29-video-reference-list article > i { width: 34px; height: 34px; border-radius: 7px; object-fit: cover; background: rgba(255,255,255,.05); display: grid; place-items: center; }
.v29-video-reference-list article > i .material-icons-round { color: #6e7782; font-size: 16px; }
.v29-video-reference-list article > span { min-width: 0; display: grid; gap: 2px; }
.v29-video-reference-list article b,.v29-video-reference-list article small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v29-video-reference-list article b { color: #dce1e6; font-size: 9px; }
.v29-video-reference-list article small { color: #7f8994; font-size: 8px; }
.v29-video-reference-list article em { padding: 3px 7px; border-radius: 8px; background: rgba(255,181,72,.08); color: #c79550; font: normal 8px/1 inherit; }
.v29-video-reference-list article.ready em { background: rgba(46,181,125,.1); color: #59ca9d; }

.v18-studio .v15-edge-menu { border-color: var(--v18-line); background: rgba(37,39,43,.98); color: #d9dde2; box-shadow: var(--v18-shadow); }
.v18-studio .v15-edge-menu > span b { color: #e7e9ec; }
.v18-shortcuts { display: grid; gap: 8px; }
.v18-shortcuts > div { padding: 9px 10px; border-radius: 10px; background: #f5f7fa; display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.v18-shortcuts kbd { padding: 4px 7px; border: 1px solid #dce2e9; border-radius: 6px; background: #fff; color: #3c4652; font-size: 10px; box-shadow: 0 1px 2px rgba(0,0,0,.08); }
.v18-shortcuts span { color: #687381; font-size: 10px; }

@media (max-width: 1180px) {
  .v18-canvas-hud button { padding: 0 8px; font-size: 0; }
  .v18-canvas-hud button .material-icons-round { font-size: 17px; }
  .v18-studio .v13-taskbar.v18-status-pill { display: none; }
}
@media (max-width: 820px) {
  .v18-studio .v18-topbar { height: 58px; flex-basis: 58px; }
  .v18-canvas-hud.left { display: none; }
  .v18-canvas-hud.right { top: 10px; right: 10px; }
  .v18-floating-dock { bottom: 10px; height: 56px; padding: 5px; }
  .v18-floating-dock button { width: 42px; height: 42px; }
  .v18-floating-dock button:nth-of-type(4),.v18-floating-dock button:nth-of-type(7),.v18-floating-dock button:nth-of-type(9) { display: none; }
  .v18-add-menu { bottom: 76px; width: calc(100% - 20px); }
  .v20-next-menu { left: 10px!important; right: 10px; width: auto; max-height: calc(100% - 110px); }
  .v18-studio .v13-inspector.v18-floating-inspector { bottom: auto; width: 680px; }
  .v18-add-grid { grid-template-columns: 1fr; max-height: 46vh; overflow: auto; }
  .v18-timeline-drawer { left: 10px; right: 10px; bottom: 76px; }
}
@media (prefers-reduced-motion: reduce) {
  .v18-studio * { scroll-behavior: auto!important; }
  .v18-add-menu,.v20-next-menu,.v20-node-add-next,.v18-floating-inspector,.v18-timeline-drawer,.v18-studio .v13-node { transition: none!important; }
}
