* { box-sizing: border-box; margin: 0; padding: 0; }
  :root { --neon: #c8f31d; --bg: #0c0c0c; --panel: #161616; --panel2: #1c1c1c; --line: #2a2a2a; --txt: #e8e8e8; --mut: #8a8a8a; }
  body { background: #000; color: var(--txt); font-family: "Microsoft YaHei", "PingFang SC", sans-serif; font-size: 14px; }
  button { font-family: inherit; cursor: pointer; }
  input, textarea, select { background: #0f0f0f; border: 1px solid var(--line); border-radius: 4px; color: var(--txt); padding: 8px 10px; font-size: 13px; font-family: inherit; width: 100%; }
  textarea { resize: vertical; }
  input:focus, textarea:focus, select:focus { outline: none; border-color: var(--neon); }

  /* ---- 左导航（品牌 + 菜单 + 账户） ---- */
  .brand { display: flex; align-items: center; gap: 9px; padding: 6px 8px 18px; color: #fff; font-size: 13.5px; font-weight: 600; letter-spacing: .3px; }
  .brand .logo { width: 18px; height: 18px; border-radius: 5px; background: var(--neon); flex: none; }
  .nav-foot { border-top: 1px solid var(--line); padding-top: 8px; margin-top: 8px; display: flex; flex-direction: column; gap: 1px; flex: none; }
  .nav-link { background: none; border: none; color: var(--mut); font-size: 12px; text-align: left; padding: 7px 9px; border-radius: 5px; }
  .nav-link:hover { background: #1e1e1e; color: var(--txt); }
  .nav-user { color: #666; font-size: 11px; padding: 2px 9px 4px; }

  /* ---- 顶栏（只占主区，左侧导航独立到底） ---- */
  .topbar { height: 50px; flex: none; display: flex; align-items: center; gap: 14px; padding: 0 18px; background: var(--panel); border-bottom: 1px solid var(--line); }
  .topbar .crumb { font-size: 13.5px; color: #fff; font-weight: 600; }
  .topbar .spacer { flex: 1; }
  .topbar .stat { color: var(--mut); font-size: 12px; }
  .topbar .stat b { color: var(--txt); font-weight: 500; }
  .topbar .dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--neon); margin-right: 5px; vertical-align: 1px; }
  .hbtn { background: none; border: 1px solid var(--line); border-radius: 4px; color: var(--mut); font-size: 12px; padding: 5px 13px; }
  .hbtn:hover { border-color: var(--neon); color: var(--neon); }

  /* ---- 三栏骨架 ---- */
  .app { display: flex; height: 100vh; overflow: hidden; }
  .nav { width: 186px; flex: none; display: flex; flex-direction: column; background: var(--panel); border-right: 1px solid var(--line); padding: 14px 10px 10px; }
  .vtabs { flex: 1; overflow-y: auto; display: flex; flex-direction: column; gap: 1px; }
  .vtabs button { background: none; border: none; border-radius: 6px; color: var(--mut); font-size: 12.5px; padding: 9px 10px; text-align: left; }
  .vtabs button:hover { background: #1e1e1e; color: var(--txt); }
  .vtabs button.active { background: #20240f; color: var(--neon); }
  .container { flex: 1; min-width: 0; display: flex; flex-direction: column; background: var(--bg); }
  .view { display: none; }
  .view.active { display: block; flex: 1; min-height: 0; overflow-y: auto; }

  /* ---- 右侧作品栏：单列信息卡 ---- */
  .rail { width: 300px; flex: none; display: flex; flex-direction: column; background: var(--panel); border-left: 1px solid var(--line); }
  .works-head { display: flex; align-items: center; height: 50px; padding: 0 14px; border-bottom: 1px solid var(--line); flex: none; }
  .works-head .wt { color: #fff; font-size: 13px; }
  .works-head .btn-ghost { margin-left: auto; padding: 3px 10px; font-size: 11px; }
  .works-wrap { flex: 1; overflow-y: auto; padding: 10px; }
  /* 右侧栏：工作台=作品，其它页面=该页操作 */
  .rail-panel { display: none; flex: 1; min-height: 0; flex-direction: column; }
  .rail-panel.active { display: flex; }
  .rail-body { display: flex; flex-direction: column; gap: 8px; }
  .rail-body .b-row { flex-direction: column; align-items: stretch; gap: 8px; margin: 0 !important; }
  .rail-body .b-row > * { width: 100% !important; }
  .rail-body .b-row > span:empty { display: none !important; }
  .rail-body .fs-card { margin: 0; padding: 10px 12px; }
  .rail-body .fs-title { margin-bottom: 8px; }
  .rail-tip { font-size: 11.5px; color: var(--mut); line-height: 1.7; padding: 12px 2px 4px; }
  .works { display: flex; flex-direction: column; gap: 8px; }
  .work { background: #131519; border: 1px solid var(--line); border-radius: 6px; padding: 9px 10px; cursor: pointer; }
  .work:hover { background: #191c22; border-color: #343a44; }
  .work video { display: none; }
  .work .meta { font-size: 11px; color: var(--mut); line-height: 1.65; }
  .work .meta .n { color: #e6e8ec; font-size: 12.5px; margin-bottom: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding-right: 16px; position: relative; }
  .work .w-edit { position: absolute; right: 0; top: 0; color: #8a8a8a; font-size: 11px; text-decoration: none; }
  .work .w-edit:hover { color: #fff; }
  .empty-tip { color: #555; font-size: 12px; padding: 20px 0; text-align: center; }

  /* ---- 生成工作台：居中单栏 ---- */
  .gen-wrap { height: 100%; display: flex; flex-direction: column; padding: 14px 16px 0; }
  .gen-split { flex: 1; min-height: 0; display: flex; gap: 14px; }
  .gen-preview { flex: 1; min-width: 0; display: flex; }
  .gen-preview .board { flex: 1; display: flex; flex-direction: column; margin-bottom: 0; }
  .gen-params { width: 410px; flex: none; overflow-y: auto; padding-right: 4px; padding-bottom: 6px; }
  .gen-params .sec:last-child { margin-bottom: 4px; }
  .board { border: 1px solid var(--line); border-radius: 8px; background: var(--panel2); overflow: hidden; }
  .board-head { flex: none; display: flex; align-items: center; padding: 9px 14px; border-bottom: 1px solid var(--line); }
  .board-head .bh-title { font-size: 12.5px; color: #ddd; }
  .board-head .bh-tip { margin-left: auto; font-size: 11px; color: #666; }
  .preview { position: relative; flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; background: #090909; }
  .preview .empty { color: #555; text-align: center; padding: 40px 0; }
  .preview .empty .ico { font-size: 42px; margin-bottom: 10px; }
  .preview video { max-width: 100%; max-height: 100%; border-radius: 6px; background: #000; }
  .runlog { position: absolute; left: 12px; right: 12px; bottom: 12px; max-height: 150px; overflow-y: auto; background: rgba(10,10,10,.88); border: 1px solid var(--line); border-radius: 6px; padding: 8px 10px; font-family: Consolas, monospace; font-size: 11.5px; line-height: 1.55; color: #9fb07a; white-space: pre-wrap; word-break: break-all; display: none; }
  .pv-bar { flex: none; display: flex; align-items: center; justify-content: center; gap: 12px; padding: 8px 14px; border-top: 1px solid var(--line); background: var(--panel); }
  .pv-btn { width: 34px; height: 34px; background: #111; border: 1px solid var(--line); border-radius: 4px; color: var(--mut); font-size: 16px; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; flex-shrink: 0; }
  .pv-btn:hover { border-color: var(--neon); color: var(--neon); }
  .thumbs { display: flex; align-items: center; gap: 8px; overflow-x: auto; max-width: 55%; }
  .thumbs .t { width: 56px; height: 64px; border-radius: 4px; border: 2px solid transparent; cursor: pointer; object-fit: cover; background: #000; flex-shrink: 0; }
  .thumbs .t.cur { border-color: var(--neon); }
  .thumbs .none { color: #555; font-size: 12px; }

  .sec { border: 1px solid var(--line); border-radius: 8px; margin-bottom: 12px; background: var(--panel2); }
  .sec-head { display: flex; align-items: center; padding: 10px 14px; cursor: pointer; user-select: none; }
  .sec-head .name { color: #e6e8ec; font-size: 13px; }
  .sec-head .arrow { margin-left: auto; color: var(--mut); font-size: 11px; transition: transform .15s; }
  .sec.open .sec-head .arrow { transform: rotate(180deg); }
  .sec-body { display: none; padding: 4px 14px 14px; }
  .sec.open .sec-body { display: block; }
  .sec-body label { display: block; color: var(--mut); font-size: 12px; margin: 10px 0 5px; }

  .slots { display: flex; gap: 8px; flex-wrap: wrap; }
  .slot { width: 80px; height: 80px; border: 1px dashed #3a3a3a; border-radius: 6px; background: #111; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; cursor: pointer; position: relative; overflow: hidden; color: #666; font-size: 11px; text-align: center; }
  .slot:hover { border-color: var(--neon); color: var(--neon); }
  .slot img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
  .slot .cap { position: relative; z-index: 1; padding: 0 4px; }
  .slot.has-img .cap { display: none; }
  .slot .clear { position: absolute; top: 3px; right: 3px; z-index: 2; width: 18px; height: 18px; border-radius: 50%; border: none; background: rgba(0,0,0,.65); color: #fff; font-size: 11px; line-height: 18px; display: none; }
  .slot.has-img .clear { display: block; }
  .slot .tag { position: absolute; left: 0; bottom: 0; z-index: 2; background: rgba(0,0,0,.65); color: #ccc; font-size: 10px; padding: 1px 6px; border-radius: 0 4px 0 0; }
  .voice-drop { border: 1.5px dashed #3a3a3a; border-radius: 6px; background: #111; padding: 18px 14px; display: flex; align-items: center; gap: 12px; cursor: pointer; color: var(--mut); }
  .voice-drop:hover { border-color: var(--neon); color: var(--neon); }
  .voice-drop .vd-ico { font-size: 22px; }
  .voice-drop .vd-text { font-size: 12.5px; line-height: 1.6; }
  .voice-drop .vd-name { color: #999; }
  .voice-drop .vd-hint { color: #666; font-size: 11px; }
  .voice-drop.set { border-style: solid; border-color: var(--neon); }
  .voice-drop.set .vd-name { color: var(--neon); font-weight: 600; }

  .form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; }
  .form-grid .fld label { display: block; color: var(--mut); font-size: 12px; margin: 10px 0 5px; }
  .form-grid .hint { color: #777; font-size: 12px; line-height: 1.7; padding-top: 12px; }

  .composer { flex: none; display: flex; align-items: center; gap: 14px; margin: 12px 0 14px; padding: 12px 14px; background: var(--panel); border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 -6px 22px rgba(0,0,0,.45); }
  .cost { display: flex; align-items: center; gap: 10px; color: var(--mut); font-size: 12px; }
  .cost b { color: var(--neon); font-weight: 500; font-size: 13px; }
  .composer .cost { flex: 1; }
  .run-row { display: flex; gap: 8px; flex: none; }
  .btn-run { width: 150px; height: 40px; background: var(--neon); color: #111; border: none; border-radius: 6px; font-size: 15px; font-weight: 600; }
  .btn-run:hover { filter: brightness(1.08); }
  .btn-run:disabled { background: #3a3a3a; color: #777; cursor: not-allowed; }
  .sel-mode { width: 104px; height: 40px; background: #111; }

  /* ---- 独立页面（批量 / 自检） ---- */
  .page-pad { padding: 24px 28px 44px; max-width: 980px; }
  .batch-page { max-width: none; }
  .batch-grid { display: flex; gap: 24px; align-items: stretch; }
  .b-left { flex: 1; min-width: 0; display: flex; flex-direction: column; }
  .b-left .dropzone { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 230px; }
  .dropzone .dz-ico { font-size: 34px; margin-bottom: 10px; display: block; }
  .b-right { width: 580px; flex-shrink: 0; }
  .ex-card { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 16px 18px; height: 100%; box-sizing: border-box; }
  .ex-head { display: flex; justify-content: space-between; align-items: center; color: #fff; font-size: 14px; font-weight: 600; margin-bottom: 12px; }
  .ex-scroll { overflow-x: auto; }
  .ex-table { border-collapse: collapse; font-size: 11.5px; min-width: 100%; }
  .ex-table th, .ex-table td { border: 1px solid #262626; padding: 6px 9px; text-align: left; white-space: nowrap; }
  .ex-table th { color: var(--neon); background: #141414; font-weight: 500; }
  .ex-table td { color: #aaa; }
  .ex-tips { margin-top: 10px; color: var(--mut); font-size: 11.5px; line-height: 1.7; }
  .fs-card { margin-top: 18px; background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 16px; }
  .fs-title { display: flex; align-items: center; gap: 10px; color: #fff; font-size: 14px; font-weight: 600; margin-bottom: 12px; }
  .fs-badge { font-size: 10.5px; font-weight: 400; color: var(--neon); border: 1px solid rgba(200,255,63,.35); border-radius: 4px; padding: 2px 6px; }
  .fs-card input { width: 100%; }
  .p-title { font-size: 17px; color: #fff; font-weight: 600; margin-bottom: 6px; }
  .p-desc { color: var(--mut); font-size: 12.5px; margin-bottom: 18px; line-height: 1.7; }
  .dropzone { border: 1.5px dashed #3a3a3a; border-radius: 8px; background: #101010; padding: 36px 20px; text-align: center; color: var(--mut); cursor: pointer; font-size: 13px; }
  .dropzone:hover, .dropzone.over { border-color: var(--neon); color: var(--neon); }
  .dropzone.has { border-color: var(--neon); color: var(--txt); border-style: solid; }
  .dropzone .fname { color: var(--neon); font-weight: 600; }
  .b-row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-top: 16px; }
  .b-row .chk { display: flex; align-items: center; gap: 6px; color: var(--mut); font-size: 12.5px; }
  .b-row .chk input { width: auto; }
  pre.log { margin-top: 16px; background: #0a0a0a; border: 1px solid var(--line); border-radius: 6px; padding: 12px; font-family: Consolas, monospace; font-size: 12px; line-height: 1.65; min-height: 320px; max-height: 520px; overflow-y: auto; white-space: pre-wrap; word-break: break-all; color: #9fb07a; display: none; }

  .btn-sub { background: var(--neon); color: #111; border: none; border-radius: 4px; padding: 8px 22px; font-size: 13.5px; font-weight: 600; }
  .btn-sub:hover { filter: brightness(1.08); }
  .btn-sub:disabled { background: #3a3a3a; color: #777; }
  .btn-ghost { background: none; border: 1px solid var(--line); color: var(--mut); border-radius: 4px; padding: 6px 14px; font-size: 12px; }
  .btn-ghost:hover { border-color: var(--neon); color: var(--neon); }
  .btn-ghost[disabled] { opacity: .35; pointer-events: none; }
  .pager { display: flex; align-items: center; justify-content: flex-end; gap: 10px; padding: 12px 4px 0; font-size: 12px; color: var(--mut); }
  .pager .pager-info { margin-right: auto; }
  .pager .btn-ghost { padding: 3px 12px; font-size: 11.5px; }
  .st-run { color: #e6c34a; } .st-ok { color: var(--neon); } .st-err { color: #ff6464; }

  /* ---- 弹窗（API 配置 / 用量） ---- */
  .mask { position: fixed; inset: 0; background: rgba(0,0,0,.65); display: none; align-items: center; justify-content: center; z-index: 100; }
  .mask.show { display: flex; }
  .modal { width: 540px; max-width: 92vw; max-height: 76vh; overflow-y: auto; background: var(--panel); border: 1px solid var(--line); border-radius: 10px; padding: 20px 22px; }
  .modal h3 { color: #fff; font-size: 15px; margin-bottom: 4px; }
  .modal .m-sub { color: var(--mut); font-size: 12px; margin-bottom: 14px; }
  .kv { display: flex; justify-content: space-between; gap: 16px; padding: 8px 0; border-bottom: 1px solid #222; font-size: 13px; }
  .kv:last-child { border-bottom: none; }
  .kv span { color: var(--mut); flex-shrink: 0; }
  .kv b { color: var(--txt); font-weight: 500; text-align: right; word-break: break-all; }
  .kv b.ok { color: var(--neon); } .kv b.bad { color: #ff6464; }
  .m-group { color: var(--neon); font-size: 12.5px; margin: 14px 0 4px; }
  .m-close { margin-top: 16px; width: 100%; }

  /* ---- 任务单 / 审批弹窗 ---- */
  .fm-label { display: block; color: var(--mut); font-size: 12px; margin: 12px 0 5px; }
  .fm-imgs { display: flex; gap: 8px; }
  .fm-img { width: 76px; height: 76px; border: 1px dashed #3a3a3a; border-radius: 6px; background: #111; display: flex; align-items: center; justify-content: center; color: #666; font-size: 11px; cursor: pointer; position: relative; overflow: hidden; text-align: center; }
  .fm-img:hover { border-color: var(--neon); color: var(--neon); }
  .fm-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
  .fm-img .x { position: absolute; top: 2px; right: 2px; z-index: 2; width: 16px; height: 16px; border: none; border-radius: 50%; background: rgba(0,0,0,.7); color: #fff; font-size: 10px; line-height: 16px; padding: 0; display: none; }
  .fm-img.has .x { display: block; }
  .fm-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 12px; }
  .rv-thumbs { display: flex; gap: 8px; flex-wrap: wrap; margin: 4px 0 10px; }
  .rv-thumbs img { width: 72px; height: 72px; object-fit: cover; border-radius: 6px; border: 1px solid var(--line); cursor: pointer; }

  ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-thumb { background: #2c2c2c; border-radius: 4px; }

  /* ---- 自检状态卡 ---- */
  .svc-cards { display: flex; gap: 14px; margin: 14px 0 4px; flex-wrap: wrap; }
  .svc-card { flex: 1; min-width: 240px; background: var(--panel2); border: 1px solid var(--line);
              border-radius: 10px; padding: 14px 16px; }
  .svc-card .t { font-size: 14px; font-weight: 600; margin-bottom: 6px; }
  .svc-card .d { font-size: 12.5px; color: var(--mut); line-height: 1.7; }
  .dot-ok { color: var(--neon); } .dot-bad { color: #ff6464; } .dot-warn { color: #ffb020; }

  /* ---- 飞书预览表格 ---- */
  .fs-grid { margin-top: 14px; overflow-x: auto; display: none; }
  .fs-table { border-collapse: collapse; width: 100%; font-size: 12.5px; }
  .fs-table th { color: var(--neon); font-weight: 500; text-align: left; padding: 8px 10px;
                 border-bottom: 1px solid var(--line); white-space: nowrap; background: #161616;
                 position: sticky; top: 0; }
  .fs-table td { padding: 8px 10px; border-bottom: 1px solid #1e1e1e; color: #bbb;
                 vertical-align: top; max-width: 260px; word-break: break-all; }
  .fs-table td.mut { color: #444; }
  .fs-th { display: inline-flex; flex-direction: column; align-items: center; width: 86px; margin: 0 6px 6px 0; }
  .fs-th img { width: 86px; height: 86px; object-fit: cover; border-radius: 6px; border: 1px solid var(--line); background: #111; }
  .fs-th span { font-size: 10.5px; color: var(--mut); margin-top: 3px; max-width: 86px;
                overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .fs-edit { width: 100%; min-width: 180px; min-height: 52px; background: #141414;
             border: 1px solid var(--line); border-radius: 6px; color: var(--txt);
             font: inherit; font-size: 12px; padding: 6px 8px; resize: vertical; }
  .fs-edit:focus { outline: none; border-color: var(--neon); }
  .fs-medit { background: #141414; border: 1px solid var(--line); border-radius: 6px;
              color: var(--txt); font-size: 12px; padding: 5px 6px; max-width: 190px; }
  .fs-dedit { width: 64px; background: #141414; border: 1px solid var(--line); border-radius: 6px;
              color: var(--txt); font-size: 12px; padding: 5px 6px; }
  .fs-ov { color: var(--mut); font-size: 11px; }

  /* ---- 数据页账号主从列表 ---- */
  .an-acc { padding: 9px 12px; border-radius: 8px; cursor: pointer; border: 1px solid transparent; margin-bottom: 4px; }
  .an-acc:hover { background: #1a1a1a; }
  .an-acc.on { background: #1c1c10; border-color: var(--neon); }
  .an-acc .nm { font-size: 13px; }
  .an-acc .sub { font-size: 11px; color: var(--mut); margin-top: 2px; }

  /* ---- 响应式：窄屏收窄左右栏 / 收起右作品栏 ---- */
  @media (max-width: 1440px) {
    .nav { width: 172px; }
    .rail { width: 270px; }
    .gen-params { width: 360px; }
  }
  @media (max-width: 1220px) {
    .gen-params { width: 310px; }
    .form-grid { grid-template-columns: 1fr; }
  }
  @media (max-width: 1160px) {
    .rail { display: none; }
  }

  /* ---- 任务表单：解析预览瀑布卡 ---- */
  .fm-preview { display: none; margin-top: 12px; border-top: 1px dashed var(--line); padding-top: 10px; }
  .fm-preview.show { display: block; }
  .fm-head { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
  .fm-chip { background: #15171d; border: 1px solid var(--line); border-radius: 5px; padding: 4px 9px; font-size: 11.5px; color: var(--mut); }
  .fm-chip b { color: var(--neon); font-weight: 500; }
  .fm-chip.warn { border-color: #7a5a1f; background: #1d190e; color: #f5b942; }
  .wf { columns: 2; column-gap: 10px; max-height: 300px; overflow-y: auto; }
  .wf-card { break-inside: avoid; margin-bottom: 10px; background: #131519; border: 1px solid var(--line); border-radius: 6px; padding: 8px 10px; }
  .wf-card .no { font-size: 11px; color: var(--mut); margin-bottom: 4px; }
  .wf-card .tx { font-size: 12px; color: #b8b8b8; line-height: 1.7; }

  /* ---- 片库：卡片陈列 ---- */
  .lib-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(188px, 1fr)); gap: 12px; }
  .lib-card { background: #131519; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; cursor: pointer; transition: border-color .15s, transform .15s; }
  .lib-card:hover { border-color: #3a4150; transform: translateY(-2px); }
  .lc-cover { position: relative; aspect-ratio: 9 / 14; background: #0b0c0f; overflow: hidden; }
  .lc-cover video { width: 100%; height: 100%; object-fit: cover; display: block; }
  .lc-play { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 22px; color: #fff; background: rgba(0,0,0,.18); pointer-events: none; transition: opacity .15s; }
  .lib-card:hover .lc-play { opacity: 0; }
  .lc-chk { position: absolute; top: 7px; left: 7px; z-index: 2; }
  .lc-badge { position: absolute; top: 7px; right: 7px; background: rgba(0,0,0,.62); color: #cfd6e4; border-radius: 4px; padding: 2px 7px; font-size: 11px; }
  .lc-body { padding: 9px 10px 10px; }
  .lc-title { position: relative; padding-right: 18px; color: #fff; font-size: 12.5px; line-height: 1.5; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  .lc-edit { position: absolute; right: 0; top: 1px; color: #8a8a8a; font-size: 11px; text-decoration: none; }
  .lc-tags { font-size: 11px; margin-top: 4px; color: #6ea8ff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .lc-sub { font-size: 11px; color: var(--mut); margin-top: 4px; }
  .lc-row { display: flex; gap: 6px; margin-top: 8px; }
  .lc-row .btn-ghost, .lc-row .btn-sub { flex: 1; text-align: center; padding: 4px 0; font-size: 11.5px; text-decoration: none; }

  /* ---- 片子查看弹窗 ---- */
  .vm-modal { width: 880px; max-width: 94vw; max-height: 92vh; background: #0b0c0f; }
  .vm-head { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
  .vm-head h3 { flex: 1; margin: 0; }
  .vm-head .btn-ghost { padding: 3px 12px; font-size: 11.5px; }
  .vm-modal video { width: 100%; max-height: 66vh; background: #000; border-radius: 8px; display: block; }
  .vm-meta { display: flex; flex-wrap: wrap; gap: 8px 16px; font-size: 12px; color: var(--mut); margin-top: 10px; }
  .vm-meta b { color: #ddd; font-weight: 500; }
  .vm-actions { display: flex; gap: 8px; margin-top: 12px; }
  .vm-actions .btn-ghost { padding: 4px 14px; font-size: 12px; text-decoration: none; }

