
  :root{--y:#F4D044;--y2:#F0C040;--y3:#D8B438;--ink:#0A0A0A;--ink2:#141414;--ink3:#1E1E1E;--grey:#8A8A8A}
  *{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
  html,body{height:100%}
  body{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
       background:var(--ink);color:#fff;overflow-x:hidden;font-size:14px;line-height:1.55;
       -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
  .stripe{height:6px;background:linear-gradient(90deg,var(--y),var(--y2),var(--y3))}
  .grid-bg{position:fixed;inset:0;pointer-events:none;z-index:35;
    background-image:linear-gradient(rgba(244,208,68,.045) 1px,transparent 1px),
                     linear-gradient(90deg,rgba(244,208,68,.045) 1px,transparent 1px);
    background-size:44px 44px;
    mask-image:radial-gradient(circle at 50% 20%,#000,transparent 78%);
    -webkit-mask-image:radial-gradient(circle at 50% 20%,#000,transparent 78%)}
  .glow{position:fixed;top:-25vh;left:50%;transform:translateX(-50%);width:120vw;height:62vh;z-index:35;
    pointer-events:none;background:radial-gradient(ellipse at center,rgba(244,208,68,.15),transparent 62%)}
  .wrap{position:relative;z-index:1;min-height:100%;display:flex;flex-direction:column}
  /* 占位符：给 fixed 的 nav 让出高度，手机端换行后高度会变，由 JS 动态同步 */
  .nav-spacer{height:64px}

  nav{display:flex;align-items:center;justify-content:space-between;max-width:1200px;margin:0 auto;
      width:100%;padding:14px 6vw;gap:16px}
  /* 全局吸顶栏：每一页常驻 */
  nav{position:fixed;top:0;left:0;right:0;z-index:70;
      background:rgba(38,32,16,.5);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
      border-bottom:1px solid rgba(255,255,255,.06)}
  /* 顶端拉通黄色渐变线条（吸顶，压在顶栏之上；顶栏内容下方留出空间）*/
  .stripe{position:fixed;top:0;left:0;right:0;z-index:71;height:6px;
      background:linear-gradient(90deg,var(--y),var(--y2),var(--y3))}

  .brand{display:flex;align-items:center;gap:12px;font-weight:800;flex-shrink:0;white-space:nowrap}
  .brand>div{white-space:nowrap}
  .mark{width:38px;height:38px;border-radius:9px;display:grid;place-items:center;
        background:var(--y) url('/static/logo.png') center/cover no-repeat;
        color:var(--ink);font-weight:900;box-shadow:0 6px 22px rgba(244,208,68,.28);flex-shrink:0}
  .brand small{display:block;font-weight:500;font-size:.6rem;letter-spacing:.3em;color:var(--grey);margin-top:2px}
  nav .links{display:flex;gap:10px;font-size:.86rem;align-items:center}
  nav .links a{color:#c8c8c8;text-decoration:none;cursor:pointer;transition:.2s;
    padding:7px 16px;border-radius:999px;border:1px solid transparent;white-space:nowrap}
  nav .links a:hover{color:var(--y);border-color:rgba(244,208,68,.5);background:rgba(244,208,68,.07)}
  @media(max-width:680px){nav .links{display:none}}
  .nav-right{display:flex;align-items:center;gap:14px}
  .nav-right .btn{padding:6px 12px;font-size:.82rem;min-height:0;white-space:nowrap}
  .credits{font-size:.78rem;color:var(--y);border:1px solid rgba(244,208,68,.35);
           border-radius:999px;padding:6px 12px;display:none;white-space:nowrap}
  .btn{padding:12px 26px;border-radius:999px;font-size:.88rem;font-weight:700;border:none;cursor:pointer;
       transition:.22s;font-family:inherit}
  .btn-y{background:var(--y);color:var(--ink)}
  .btn-y:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(244,208,68,.4)}
  .btn-g{background:transparent;border:1.5px solid rgba(255,255,255,.22);color:#e8e8e8}
  .btn-g:hover{border-color:var(--y);color:var(--y)}

  main{flex:1;max-width:1160px;margin:0 auto;width:100%;padding:3.2vh 5.5vw 60px}
  .hero{text-align:center;margin-bottom:44px}
  .eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:.7rem;letter-spacing:.26em;color:var(--y);
    border:1px solid rgba(244,208,68,.4);border-radius:999px;padding:8px 18px;margin-bottom:26px}
  .eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--y);box-shadow:0 0 10px var(--y)}
  h1{font-size:clamp(2rem,5.5vw,3.4rem);font-weight:900;line-height:1.1}
  h1 .hl{color:var(--y)}
  .sub{margin-top:18px;color:#b9b9b9;font-size:clamp(.9rem,1.8vw,1.05rem);line-height:1.8}

  .sec-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 20px}
  .sec-head h2{font-size:1.15rem;display:flex;align-items:center;gap:10px}
  .sec-head h2::before{content:"";width:5px;height:20px;background:var(--y);border-radius:3px}

  /* 首页四大入口卡片 */
  .entry-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:0 0 40px}
  .entry-card{display:block;background:var(--ink2);border:1px solid rgba(244,208,68,.16);border-radius:15px;
    padding:22px 20px;text-decoration:none;color:inherit;transition:.22s;position:relative;overflow:hidden}
  .entry-card:hover{border-color:rgba(244,208,68,.55);transform:translateY(-3px);box-shadow:0 10px 30px rgba(244,208,68,.08)}
  .entry-card .ec-ico{font-size:1.9rem;line-height:1;margin-bottom:12px}
  .entry-card .ec-t{font-size:1.02rem;font-weight:800;margin-bottom:6px;color:#fff}
  .entry-card .ec-d{font-size:.78rem;color:var(--grey);line-height:1.6}

  /* 项目卡片「继续创作」提示 */
  .card .card-go{margin-top:12px;font-size:.78rem;color:var(--y);font-weight:700;opacity:0;transition:.2s}
  .card:hover .card-go{opacity:1}

  .cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
  .card{background:var(--ink2);border:1px solid rgba(244,208,68,.16);border-radius:15px;padding:19px;
        transition:.22s;cursor:pointer;position:relative;overflow:hidden}
  .card:hover{border-color:rgba(244,208,68,.5);transform:translateY(-3px)}
  .card .k{font-size:.68rem;letter-spacing:.2em;color:var(--y);opacity:.85}
  .card h3{font-size:1.05rem;margin:10px 0 8px}
  .card p{font-size:.82rem;color:var(--grey);line-height:1.7}
  .card .step{margin-top:16px;font-size:.72rem;color:var(--y);display:flex;align-items:center;gap:6px}
  .card .step .bar{flex:1;height:4px;background:rgba(255,255,255,.08);border-radius:3px;overflow:hidden}
  .card .step .bar i{display:block;height:100%;background:var(--y);border-radius:3px}
  .card.empty-cta{border-style:dashed;display:grid;place-items:center;text-align:center;color:var(--grey)}
  .card.empty-cta:hover{color:var(--y)}
  .card.empty-cta .plus{font-size:2rem;color:var(--y);line-height:1}
  .card-del{position:absolute;top:10px;right:10px;width:26px;height:26px;border-radius:50%;
    background:rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.15);color:#999;font-size:1rem;
    line-height:1;cursor:pointer;display:none;place-items:center;font-family:inherit;z-index:2}
  .card:hover .card-del{display:grid}
  .card-del:hover{background:#ff5a5a;color:#fff;border-color:#ff5a5a}

  .lock-tip{margin-top:40px;text-align:center;font-size:.8rem;color:var(--grey)}
  .lock-tip a{color:var(--y);cursor:pointer;text-decoration:underline}

  /* 弹窗 */
  .mask{position:fixed;inset:0;background:rgba(0,0,0,.72);backdrop-filter:blur(4px);z-index:50;
        display:none;align-items:center;justify-content:center;padding:20px}
  .mask.show{display:flex}
  .modal{background:var(--ink2);border:1px solid rgba(244,208,68,.25);border-radius:18px;
         width:100%;max-width:400px;padding:32px;position:relative;animation:pop .22s ease}
  @keyframes pop{from{transform:scale(.94);opacity:0}to{transform:scale(1);opacity:1}}
  .modal h2{font-size:1.3rem;margin-bottom:6px}
  .modal .m-sub{font-size:.82rem;color:var(--grey);margin-bottom:24px}
  .tabs{display:flex;gap:8px;margin-bottom:22px;background:var(--ink3);border-radius:10px;padding:4px}
  .tabs button{flex:1;padding:6px 12px;border:none;background:transparent;color:#999;border-radius:7px;
               font-family:inherit;font-size:.82rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:.2s}
  .tabs button.on{background:var(--y);color:var(--ink);font-weight:700}
  .field{margin-bottom:14px}
  .field label{display:block;font-size:.76rem;color:var(--grey);margin-bottom:6px}
  .field input{width:100%;padding:12px 14px;background:var(--ink3);border:1px solid rgba(255,255,255,.1);
    border-radius:10px;color:#fff;font-size:.92rem;font-family:inherit;outline:none;transition:.2s}
  .field input:focus{border-color:var(--y)}
  .modal .btn-y{width:100%;margin-top:8px;padding:13px}
  /* 大弹窗（字段编辑） */
  .modal-lg{max-width:820px;width:92vw;max-height:88vh;overflow-y:auto;padding:28px}
  .modal-lg textarea,.modal-lg input{width:100%;background:var(--ink3);border:1px solid rgba(255,255,255,.12);
    border-radius:8px;color:#fff;font-family:inherit;font-size:.9rem;padding:11px 13px;outline:none;
    line-height:1.6;resize:vertical;margin-top:6px}
  .modal-lg textarea:focus,.modal-lg input:focus{border-color:var(--y)}
  .modal-lg label{display:block;font-size:.76rem;color:var(--y);margin:14px 0 0;letter-spacing:.03em}
  .modal-lg .row2{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}
  .modal-lg .m-ops{display:flex;gap:10px;justify-content:flex-end;margin-top:22px}
  /* ★ 2026-10-25：弹窗顶部常驻字数条——主人要求"编辑框弹出的地方也要标明多少字" */
  .m-cntbar{display:flex;align-items:center;justify-content:flex-end;margin:-4px 0 6px}
  .m-cntbar .cnt-pill{font-size:.78rem;padding:5px 12px}
  .modal-lg .m-ops .btn{padding:10px 26px}
  /* 视频预览：限制尺寸，居中，不撑满屏幕 */
  #editModal video{display:block;max-width:min(560px,86vw);max-height:62vh;width:auto;height:auto;
    margin:6px auto 0;border-radius:10px;background:#000}
  .preview-box{text-align:center}
  /* 出片参考图选择（按出场人物·手动选图） */
  .ref-list{display:flex;flex-direction:column;gap:10px;margin-top:6px}
  /* 配音方式选择（按场次） */
  .voice-mode-box{background:rgba(244,208,68,.07);border:1px solid rgba(244,208,68,.28);border-radius:10px;padding:10px 12px;margin:6px 0 12px}
  .vm-title{font-size:.82rem;font-weight:700;color:var(--y);margin-bottom:8px}
  .vm-opt{display:flex;align-items:flex-start;gap:8px;padding:5px 0;cursor:pointer;font-size:.82rem}
  .vm-opt input{margin-top:3px;flex:none}
  .vm-opt .mini{color:var(--grey);font-size:.74rem}
  .vm-hint{font-size:.74rem;color:#ffb44a;margin-top:6px;line-height:1.5}
  .vm-engine{margin:4px 0 2px 22px;display:flex;align-items:center;gap:6px}
  .vm-engine select{flex:1;min-width:0;padding:5px 8px;font-size:.78rem;background:#1b1b20;color:#eee;border:1px solid #3a3a44;border-radius:6px}
  .ref-crow{background:var(--ink3);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:10px 12px}
  .ref-chd{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .ref-no{font-family:ui-monospace,Menlo,monospace;font-size:.76rem;color:var(--y);flex:none;min-width:96px}
  .ref-name{font-size:.88rem;color:#fff;font-weight:700;flex:none;min-width:70px}
  .ref-pickcur{flex:1;min-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ref-ok{color:#7be08a;font-size:.76rem}
  .ref-ops{display:flex;gap:6px;flex:none}
  .ref-lib{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;padding:10px;background:rgba(0,0,0,.25);border-radius:8px;max-height:260px;overflow-y:auto}
  .ref-lib-item{position:relative;width:78px;cursor:pointer;border:2px solid transparent;border-radius:8px;overflow:hidden;background:var(--ink2)}
  .ref-lib-item.on{border-color:var(--y);box-shadow:0 0 0 2px rgba(244,208,68,.3)}
  .ref-lib-item img{width:100%;height:92px;object-fit:cover;display:block}
  .ref-lib-nm{display:block;font-size:.68rem;color:#bbb;padding:3px 4px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ref-lib-ck{position:absolute;top:3px;right:3px;background:var(--y);color:#111;font-size:.68rem;width:16px;height:16px;line-height:16px;text-align:center;border-radius:50%;font-weight:700}
  .ref-lib-item:not(.on) .ref-lib-ck{display:none}
  .m-close{position:absolute;top:16px;right:16px;background:none;border:none;color:#666;font-size:1.3rem;
           cursor:pointer;line-height:1}
  .m-close:hover{color:var(--y)}
  .msg{font-size:.8rem;margin-top:12px;min-height:18px;text-align:center}
  .msg.err{color:#ff7a7a}
  .msg.ok{color:var(--y)}

  /* 提示框统一居中显示（删除/报错等），屏幕再大也一眼看到 */
  .toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.92);
    background:var(--y);color:var(--ink);padding:13px 26px;border-radius:14px;font-weight:700;
    font-size:.88rem;z-index:9999;opacity:0;transition:.28s;pointer-events:none;
    max-width:80vw;text-align:center;box-shadow:0 12px 40px rgba(0,0,0,.35);white-space:pre-wrap}
  .toast.show{opacity:1;transform:translate(-50%,-50%) scale(1)}

  /* 全局生成进度条 */
  .genbar{position:fixed;top:0;left:0;right:0;height:3px;z-index:999;display:none;
    background:linear-gradient(90deg,var(--y),#ff8a3d,var(--y));background-size:200% 100%;
    animation:genflow 1.1s linear infinite}
  .genbar.show{display:block}
  @keyframes genflow{0%{background-position:0% 0}100%{background-position:-200% 0}}
  .genmask{position:fixed;inset:0;z-index:998;display:none;align-items:center;justify-content:center;
    background:rgba(0,0,0,.55);backdrop-filter:blur(2px)}
  .genmask.show{display:flex}
  .genmask .gbox{background:#161616;border:1px solid #2a2a2a;border-radius:14px;padding:26px 34px;
    text-align:center;max-width:80vw}
  .genmask .gspin{width:34px;height:34px;margin:0 auto 14px;border-radius:50%;
    border:3px solid #333;border-top-color:var(--y);animation:genspin .8s linear infinite}
  @keyframes genspin{to{transform:rotate(360deg)}}
  .genmask .gtxt{color:#eee;font-weight:700;font-size:.95rem}
  .genmask .gsub{color:#8A8A8A;font-size:.78rem;margin-top:6px}
  footer{text-align:center;padding:30px;font-size:.72rem;color:#555}

  /* ===== 编剧工作台 overlay ===== */
  .overlay{position:fixed;inset:0;background:transparent;z-index:40;display:none;overflow-y:auto}
  /* 弹层打开时隐藏首页内容，避免从透明弹层下透出来 */
  body.overlay-open #homeWrap{visibility:hidden}
  .overlay>.studio-head, .overlay>#studioRoot{--x:0}
  #studioRoot,#assetsRoot,#knowRoot{padding-top:var(--nav-h,64px)}
  .overlay.show{display:block}
  .studio-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;
    max-width:1160px;margin:0 auto;padding:22px 5vw 0}
  .crumb{font-size:.8rem;color:var(--grey);cursor:pointer;margin-bottom:8px}
  .crumb:hover{color:var(--y)}
  .proj-title{background:transparent;border:none;border-bottom:1.5px solid transparent;color:#fff;
    font-size:1.5rem;font-weight:800;font-family:inherit;outline:none;padding:2px 0;max-width:60vw}
  .proj-title:hover,.proj-title:focus{border-color:rgba(244,208,68,.5)}
  .head-ops{display:flex;align-items:center;gap:12px}
  .btn-back{display:inline-flex;align-items:center;gap:5px;padding:8px 15px;border-radius:9px;
    font-size:.82rem;font-weight:600;color:#141414;text-decoration:none;white-space:nowrap;
    background:linear-gradient(180deg,#F7DE77,#E5C132);border:1px solid #C9A825;
    box-shadow:0 2px 8px rgba(244,208,68,.28);transition:all .15s;cursor:pointer}
  .btn-back:hover{filter:brightness(1.06);box-shadow:0 3px 12px rgba(244,208,68,.42);transform:translateY(-1px)}
  .btn-back:active{transform:translateY(0);filter:brightness(.97)}
  .save-tip{font-size:.76rem;color:var(--y)}
  .stepnav-bar{display:flex;gap:8px;max-width:1160px;margin:18px auto 0;padding:0 5vw;flex-wrap:wrap}
  .stepnav{flex:1;min-width:108px;display:flex;align-items:center;gap:8px;padding:10px 13px;border-radius:11px;
    background:var(--ink2);border:1px solid rgba(255,255,255,.07);cursor:pointer;transition:.2s}
  .stepnav:hover{border-color:rgba(244,208,68,.4)}
  .stepnav .sn{width:24px;height:24px;border-radius:50%;background:var(--ink3);display:grid;place-items:center;
    font-size:.78rem;font-weight:700;color:var(--grey);flex:none}
  .stepnav .snm{font-size:.82rem;color:var(--grey)}
  .stepnav.on{background:rgba(244,208,68,.12);border-color:var(--y)}
  .stepnav.on .sn{background:var(--y);color:var(--ink)}
  .stepnav.on .snm{color:#fff;font-weight:700}
  .stepnav.done .sn{background:rgba(244,208,68,.25);color:var(--y)}
  .step-body{max-width:1160px;margin:0 auto;padding:20px 5vw 80px}
  .panel{background:var(--ink2);border:1px solid rgba(244,208,68,.16);border-radius:15px;padding:22px 24px;
    width:100%;max-width:1160px;margin:18px auto 0}

  .pt{font-size:1.08rem;margin-bottom:9px;letter-spacing:.01em}
  .pd{font-size:.82rem;color:var(--grey);line-height:1.7;margin-bottom:16px}
  .pd-ops{display:flex;gap:12px;margin-top:18px;flex-wrap:wrap}
  /* 剧本优化标准选择条 */
  .std-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px;
    background:var(--ink3);border:1px solid rgba(244,208,68,.28);border-radius:12px;padding:12px 16px}
  .std-lab{font-size:.82rem;color:var(--y);font-weight:700;letter-spacing:.03em;white-space:nowrap}
  .std-sel{background:#111;color:#fff;border:1px solid rgba(255,255,255,.18);border-radius:9px;
    padding:9px 14px;font-size:.86rem;font-family:inherit;outline:none;cursor:pointer;min-width:200px}
  /* 本剧色彩总纲（项目级色板）选择条 */
  .pal-bar{border-color:rgba(120,200,255,.35)}
  .pal-bar .std-lab{color:#78C8FF}
  .pal-warn{color:#E8A33D;font-size:.78rem}
  .std-sel:focus{border-color:var(--y)}
  .std-desc{font-size:.76rem;color:var(--grey);line-height:1.5;flex:1;min-width:200px}
  /* 第①步 定基调 */
  .tone-bar{background:var(--ink3);border:1px solid rgba(244,208,68,.28);border-radius:12px;
    padding:14px 16px;margin-bottom:18px;display:flex;flex-direction:column;gap:12px}
  .tone-head{font-size:.86rem;color:var(--y);font-weight:700;letter-spacing:.03em}
  .tone-tip{font-size:.74rem;color:var(--grey);font-weight:400;letter-spacing:0}
  .tone-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
  .tone-lab{font-size:.82rem;color:var(--grey);font-weight:700;white-space:nowrap;min-width:56px}
  .tone-chips{display:flex;gap:8px;flex-wrap:wrap}
  .tone-chip{background:#111;color:#bbb;border:1px solid rgba(255,255,255,.18);border-radius:20px;
    padding:6px 14px;font-size:.8rem;cursor:pointer;user-select:none;transition:.15s}
  .tone-chip:hover{border-color:rgba(244,208,68,.5);color:#fff}
  .tone-chip.on{background:var(--y);color:#111;border-color:var(--y);font-weight:700}
  /* 第⑦步出片列表 */
  .render-list{display:flex;flex-direction:column;gap:7px}
  .render-row{display:grid;grid-template-columns:64px 52px 1fr 54px 148px auto;align-items:center;gap:10px;
    background:var(--ink3);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:9px 13px;font-size:.82rem}
  .render-row .rr-no{color:var(--y);font-weight:700}
  .render-row .rr-dur{color:var(--grey)}
  .render-row .rr-ref{color:var(--grey);text-align:center}
  .rr-ops{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
  .rr-ops a.btn-mini{text-decoration:none;display:inline-block}
  .rst{font-size:.8rem}
  .rst.ready{color:var(--grey)}
  .rst.noref{color:#e07b7b}
  .rst.que{color:#e0c07b}
  .rst.run{color:var(--y)}
  .rst.ok{color:#7fe07f}
  .rst.fail{color:#e07b7b}
  .rr-took{font-size:.72rem;color:var(--grey);margin-left:6px;white-space:nowrap}
  .rerr{grid-column:1/-1;color:#e07b7b;font-size:.74rem;padding-top:4px;word-break:break-all}
  /* 出片记录（历史，全部保留） */
  .render-history{margin-top:22px;border-top:1px solid rgba(255,255,255,.09);padding-top:16px}
  
/* 超宽弹窗：中文提示词左右对照专用 */
.modal-xl{max-width:1500px;width:96vw;max-height:92vh;overflow-y:auto;padding:24px}
.pz6-wrap{margin-top:6px}
.pz6-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:14px;align-items:start}
@media (max-width:1100px){.pz6-grid{grid-template-columns:minmax(0,1fr)}}

/* 左栏：整条原文 */
.pz6-left{border:1px solid #2f2f2b;border-radius:10px;background:#101010;overflow:hidden}
.pz6-left-hd{display:flex;align-items:center;gap:8px;padding:7px 10px;background:#161613;border-bottom:1px solid #2a2a26}
.pz6-left-hd b{font-size:.8rem;color:#e8d98a}
.pz6-left-hd .mini{margin-left:auto;font-size:.72rem;color:var(--grey)}
.pz6-left-body{max-height:62vh;overflow:auto;padding:8px 0;font-family:ui-monospace,Consolas,monospace;font-size:.76rem;line-height:1.6}
.pz6-ln{display:flex;padding:0 10px 0 0;border-left:3px solid transparent}
.pz6-ln .no{width:34px;flex:none;text-align:right;color:#4a4a44;padding-right:8px;user-select:none;font-size:.7rem}
.pz6-ln .tx{flex:1;white-space:pre-wrap;word-break:break-word;color:#cfcfc8}
.pz6-ln.ok{border-left-color:#2f5b36}
.pz6-ln.miss{border-left-color:#7a2a2a;background:#1a1212}
.pz6-ln.miss .tx{color:#f0b0b0}
.pz6-ln.pic{border-left-color:#33404a}
.pz6-ln.pic .tx{color:#9fb6c4}

/* 右栏 */
.pz6-right{display:flex;flex-direction:column;gap:10px}
.pz6-final{border:1px solid #3a4a2f;border-radius:10px;background:#12160f;overflow:hidden}
.pz6-final-hd{display:flex;align-items:center;gap:8px;padding:8px 11px;background:#161c13;border-bottom:1px solid #2c3a24}
.pz6-final-hd b{font-size:.82rem;color:#a8d98a}
.pz6-final-hd .mini{margin-left:auto;font-size:.72rem;color:var(--grey)}
.pz6-final pre{margin:0;padding:10px 12px;max-height:30vh;overflow:auto;white-space:pre-wrap;word-break:break-word;
  font-family:ui-monospace,Consolas,monospace;font-size:.74rem;line-height:1.65;color:#cfcfc8}
.pz6-final .auto{background:#1e2a1a;border-radius:3px;padding:0 2px;color:#a8d98a}
.pz6-final .auto-tag{color:#5e7a4e;font-size:.68rem}

/* 覆盖检查条 */
.pz6-cov{border-radius:8px;padding:8px 11px;font-size:.76rem;line-height:1.6}
.pz6-cov.ok{background:#121a12;border:1px solid #2f5b36;color:#8fc89a}
.pz6-cov.bad{background:#1a1212;border:1px solid #7a2a2a;color:#f0b0b0}
.pz6-cov b{color:#fff}
.pz6-miss-list{margin:6px 0 0;padding:0;list-style:none}
.pz6-miss-list li{display:flex;gap:8px;align-items:flex-start;padding:4px 0;border-top:1px dashed #4a2a2a;font-size:.74rem}
.pz6-miss-list li .t{flex:1;color:#e0c0c0;word-break:break-word}
.pz6-auto-tag{display:inline-block;font-size:.66rem;padding:0 5px;border-radius:999px;background:#233;color:#8ad;margin-left:6px}


/* 最终出片预览：一行按钮条（不占篇幅） */
.pz6-finalbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  border:1px solid #3a4a2f;border-radius:10px;background:#12160f;padding:8px 11px}
.pz6-finalbar-t{font-size:.82rem;color:#a8d98a;font-weight:600}
.pz6-finalbar .mini{font-size:.72rem;color:var(--grey)}
.pz6-finalbar .btn{margin-left:auto;padding:7px 16px}

/* 最终预览弹层内容 */
.final-pre{margin:0;padding:14px 16px;max-height:66vh;overflow:auto;white-space:pre-wrap;word-break:break-word;
  background:#0d0d0b;border:1px solid #2c3a24;border-radius:10px;
  font-family:ui-monospace,Consolas,monospace;font-size:.78rem;line-height:1.7;color:#cfcfc8}
.final-pre .auto{background:#1e2a1a;border-radius:3px;padding:0 2px;color:#a8d98a}
.final-pre .auto-tag{color:#5e7a4e;font-size:.7rem}
#finalModal .m-ops{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}


/* 步骤失败常驻红条（不自动消失） */
.step-err{background:#2a1414;border:1px solid #7a2b2b;border-left:4px solid #ff5252;
  border-radius:10px;padding:13px 15px;margin:0 0 14px}
.step-err-hd{display:flex;align-items:center;gap:10px;margin-bottom:7px}
.step-err-t{color:#ff8a8a;font-weight:700;font-size:.92rem}
.step-err-x{margin-left:auto;cursor:pointer;color:var(--grey);font-size:.78rem;
  padding:2px 8px;border-radius:6px}
.step-err-x:hover{background:#3a1f1f;color:#fff}
.step-err-msg{color:#ffd9d9;font-size:.86rem;line-height:1.65;
  background:#1c0e0e;border-radius:7px;padding:9px 11px;margin-bottom:8px;
  font-family:ui-monospace,Consolas,monospace;white-space:pre-wrap;word-break:break-word}
.step-err-tip{color:#b09a9a;font-size:.78rem;margin-bottom:10px}
.step-err-ops{display:flex;gap:9px;flex-wrap:wrap}


/* 场卡片「单独生成」按钮 */
.btn-regen{background:#1d2a1a !important;border-color:#4a6b3a !important;color:#a8d98a !important}
.btn-regen:hover{background:#26371f !important;border-color:#6a9560 !important}

.rh-head{font-weight:700;color:var(--y);margin-bottom:10px;font-size:.92rem}
  .rh-list{display:flex;flex-direction:column;gap:6px}
  .rh-row{display:grid;grid-template-columns:74px 1fr 88px auto;align-items:center;gap:10px;padding:8px 12px;
    background:rgba(255,255,255,.03);border-radius:8px;font-size:.82rem}
  .rh-row .rh-sc{color:var(--y);font-weight:600}
  .rh-row .rh-when{color:var(--grey)}
  .rh-row .rh-ops{display:flex;gap:6px;justify-content:flex-end;align-items:center}
  .rh-thumb{width:56px;height:32px;flex:0 0 56px;border-radius:5px;overflow:hidden;background:#000;
    display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.12);cursor:pointer}
  .rh-thumb img{width:100%;height:100%;object-fit:cover;display:block}
  .rh-thumb .rh-noimg{color:#888;font-size:.7rem}
  .render-history .rh-list{max-height:340px;overflow-y:auto}
  @media(max-width:680px){
    .rh-row{grid-template-columns:64px 1fr auto;gap:4px 8px}
    .rh-row .rh-when{grid-column:1/-1;font-size:.72rem}
  }
  /* 主机连接状态灯（第⑦步常驻） */
  .conn{font-size:.78rem;padding:6px 12px;border-radius:999px;display:inline-flex;gap:7px;align-items:center;
    cursor:pointer;border:1px solid transparent;align-self:center;white-space:nowrap;transition:.2s;font-weight:600}
  .conn.ok{background:rgba(127,224,127,.13);color:#7fe07f;border-color:rgba(127,224,127,.35)}
  .conn.bad{background:rgba(224,123,123,.13);color:#e07b7b;border-color:rgba(224,123,123,.35)}
  .conn.checking{background:rgba(255,255,255,.06);color:var(--grey);border-color:rgba(255,255,255,.12)}
  .conn .dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}
  .conn.ok .dot{background:#7fe07f;box-shadow:0 0 8px rgba(127,224,127,.8);animation:connpulse 2s infinite}
  .conn.bad .dot{background:#e07b7b;box-shadow:0 0 8px rgba(224,123,123,.7)}
  .conn.checking .dot{background:var(--grey)}
  @keyframes connpulse{0%,100%{opacity:1}50%{opacity:.35}}
  .spin{display:inline-block;width:11px;height:11px;border:2px solid rgba(244,208,68,.3);border-top-color:var(--y);
    border-radius:50%;animation:sp .8s linear infinite;vertical-align:-1px;margin-right:5px}
  @keyframes sp{to{transform:rotate(360deg)}}
  /* 资产库 */
  .role-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:13px}
  .role-card{background:var(--ink3);border:1px solid rgba(255,255,255,.1);border-radius:11px;padding:13px}
  .role-hd{display:flex;gap:8px;align-items:center;margin-bottom:8px}
  .role-name{flex:1;background:#111;color:#fff;border:1px solid rgba(255,255,255,.15);border-radius:8px;
    padding:8px 10px;font-size:.9rem;font-weight:700;font-family:inherit;outline:none}
  .role-name:focus{border-color:var(--y)}
  .role-note{width:100%;background:#111;color:var(--grey);border:1px solid rgba(255,255,255,.1);border-radius:8px;
    padding:7px 10px;font-size:.78rem;font-family:inherit;outline:none;margin-bottom:10px}
  .role-note:focus{border-color:var(--y)}
  .role-imgs{display:flex;flex-wrap:wrap;gap:8px}
  .role-hd-ops{display:flex;gap:6px;align-items:center;flex-wrap:nowrap}
  .role-tags{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:7px}
  .role-tag{font-size:.66rem;padding:2px 7px;border-radius:20px;background:rgba(255,255,255,.08);color:var(--grey)}
  .role-tag-ok{background:rgba(76,175,80,.16);color:#7ed87f}
  .role-tag-warn{background:rgba(255,171,64,.16);color:#ffb84d}
  .role-tag-ai{background:rgba(244,208,68,.16);color:var(--y)}
  .role-tag-g{background:rgba(120,120,140,.2);color:#b0b0c0}
  .role-card-g{opacity:.92}
  .role-note{resize:vertical;min-height:44px;line-height:1.4}
  .role-group-box{margin-top:14px;border:1px dashed rgba(255,255,255,.16);border-radius:10px;padding:10px 13px}
  .role-group-box>summary{cursor:pointer;font-size:.8rem;color:var(--grey);font-weight:700;outline:none}
  .role-group-box>summary:hover{color:var(--y)}
  .role-group-box .role-list{margin-top:12px}
  /* 扫码导入弹层 */
  .scan-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px;margin-top:10px}
  .scan-row{display:flex;align-items:center;gap:9px;padding:8px 11px;background:var(--ink3);border:1px solid rgba(255,255,255,.08);border-radius:9px;cursor:pointer}
  .scan-row:hover{border-color:var(--y)}
  .scan-row input{width:auto;flex:none;margin:0;cursor:pointer}
  .scan-nm{font-size:.84rem;color:#fff;font-weight:600}
  .scan-meta{font-size:.68rem;color:var(--grey);margin-left:auto;white-space:nowrap}
  .scan-g{margin-top:12px;border-top:1px solid rgba(255,255,255,.1);padding-top:10px}
  .scan-g>summary{cursor:pointer;font-size:.78rem;color:var(--grey)}
  .scan-refresh{display:flex;gap:8px;align-items:flex-start;margin-top:12px;padding:10px 12px;
    background:rgba(255,214,0,.07);border:1px solid rgba(255,214,0,.3);border-radius:9px;
    font-size:.78rem;color:#e8e2c0;line-height:1.5;cursor:pointer}
  .scan-refresh input{width:auto;flex:none;margin:2px 0 0;cursor:pointer}
  .asset-thumb{position:relative;width:88px;height:88px;border-radius:8px;overflow:hidden;border:1px solid rgba(255,255,255,.12)}
  .asset-thumb img{width:100%;height:100%;object-fit:cover;cursor:pointer}
  .thumb-del{position:absolute;top:2px;right:2px;width:20px;height:20px;border:none;border-radius:50%;
    background:rgba(0,0,0,.7);color:#fff;cursor:pointer;font-size:14px;line-height:1;padding:0}
  .thumb-del:hover{background:#c0392b}
  .know-card{background:var(--ink3);border:1px solid rgba(255,255,255,.1);border-radius:11px;padding:13px;margin-bottom:11px}
  .know-hd{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:9px;flex-wrap:wrap}
  .know-name{font-weight:700;font-size:.9rem;color:#fff;word-break:break-all}
  .know-hd .mini{font-size:.72rem;color:var(--grey)}
  .know-ops{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
  .switch{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--grey);cursor:pointer;user-select:none}
  .switch input{width:16px;height:16px;accent-color:var(--y);cursor:pointer}
  .big-ta{width:100%;min-height:300px;background:var(--ink3);border:1px solid rgba(255,255,255,.1);
    border-radius:12px;color:#fff;font-size:.95rem;font-family:inherit;padding:16px;line-height:1.8;outline:none;resize:vertical}
  .big-ta:focus{border-color:var(--y)}
  .mid-ta{width:100%;min-height:380px;background:var(--ink3);border:1px solid rgba(255,255,255,.1);
    border-radius:12px;color:#fff;font-size:.9rem;font-family:inherit;padding:12px;line-height:1.5;outline:none;resize:vertical}
  .mid-ta:focus{border-color:var(--y)}
  .split{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  @media(max-width:760px){.split{grid-template-columns:1fr}}
  .split-h{font-size:.78rem;color:var(--y);margin-bottom:8px;letter-spacing:.05em}
  .shot-list{display:flex;flex-direction:column;gap:12px}
  .shot-card{background:var(--ink3);border:1px solid rgba(255,255,255,.08);border-radius:11px;padding:14px}
  .shot-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
  .shot-no{font-size:.82rem;font-weight:700;color:var(--y)}
  .shot-card .del{background:none;border:none;color:#777;font-size:.76rem;cursor:pointer}
  .shot-card .del:hover{color:#ff7a7a}
  /* 卡片内操作按钮也统一 chip 风（覆盖上一行） */
  .shot-card .hd-ops .del,.shot-card .hd-ops .copy,.shot-card .hd-ops .expand{
    background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.16);color:#b8b8b8;
    font-size:.72rem;padding:4px 11px;border-radius:999px;white-space:nowrap;
    transition:.18s;display:inline-flex;align-items:center}
  .shot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px}
  .shot-grid .wide{grid-column:span 3}
  @media(max-width:640px){.shot-grid{grid-template-columns:1fr 1fr}.shot-grid .wide{grid-column:span 2}}
  .shot-card label{display:block;font-size:.72rem;color:var(--grey)}
  .shot-card input,.shot-card textarea{width:100%;margin-top:5px;background:var(--ink2);border:1px solid rgba(255,255,255,.1);
    border-radius:8px;color:#fff;font-family:inherit;font-size:.85rem;padding:8px 10px;outline:none;resize:vertical}
  .shot-card input:focus,.shot-card textarea:focus{border-color:var(--y)}
  .shot-card .full{display:block;margin-top:10px}
  .shot-card .full textarea{min-height:52px}
  .empty{text-align:center;color:var(--grey);padding:40px;font-size:.85rem}
  .pz-card{background:var(--ink3);border:1px solid rgba(255,255,255,.08);border-radius:11px;padding:14px;margin-bottom:12px}
  .pz-hd{display:flex;align-items:center;gap:11px;margin-bottom:9px}
  .pz-hd .mini{font-size:.72rem;color:var(--grey);flex:1}
  .btn-mini{background:rgba(244,208,68,.15);border:1px solid rgba(244,208,68,.4);color:var(--y);
    font-size:.74rem;padding:5px 14px;border-radius:999px;cursor:pointer;font-family:inherit}
  .btn-mini:hover{background:var(--y);color:var(--ink)}
  .dur-warn{background:rgba(255,122,122,.12);border:1px solid rgba(255,122,122,.45);color:#ff9a9a;
    font-size:.8rem;line-height:1.5;padding:10px 14px;border-radius:10px;margin-bottom:14px}
  .pz-ta{width:100%;min-height:90px;background:var(--ink2);border:1px solid rgba(255,255,255,.1);border-radius:8px;
    color:#fff;font-size:.84rem;font-family:inherit;padding:10px;outline:none;resize:vertical;line-height:1.6}
  .pz-ta:focus{border-color:var(--y)}
  .mini-ta{font-size:.76rem;color:#666;background:var(--ink2);border-radius:8px;padding:8px 10px;margin-bottom:8px;line-height:1.6;max-height:90px;overflow:auto}
  .placeholder-box{text-align:center;padding:50px 20px;background:var(--ink3);border-radius:14px;
    border:1px dashed rgba(244,208,68,.3);margin:10px 0 20px}
  .placeholder-box .ph-ic{font-size:2.4rem;margin-bottom:12px}
  .placeholder-box .ph-t{font-size:1.05rem;font-weight:700;color:var(--y);margin-bottom:10px}
  .placeholder-box .ph-d{font-size:.82rem;color:var(--grey);line-height:1.9}

  /* ===== v2：展开收缩 + 字数 ===== */
  .box-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
  .box-tip{font-size:.78rem;color:var(--y);letter-spacing:.05em}
  .cnt{font-size:.74rem;color:var(--grey);margin-right:10px}
  /* ★ 2026-10-25：字数胶囊——原来字数夹在标题和按钮之间被 margin-left:auto 挤没了。
     现在单独包一层，永远贴标题右边，任何宽度下都看得见。 */
  .cnt-wrap{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;margin-left:10px}
  .cnt-wrap+.hd-ops{margin-left:auto}
  .cnt-pill{font-size:.72rem;line-height:1;padding:4px 10px;border-radius:999px;white-space:nowrap;
    background:rgba(244,208,68,.08);border:1px solid rgba(244,208,68,.22);color:var(--y);font-weight:600}
  .cnt-pill.cnt-over{background:rgba(255,122,122,.1);border-color:rgba(255,122,122,.45);color:#ff7a7a}
  .box{max-height:0;overflow:hidden;transition:max-height .3s ease}
  .box.open{max-height:none;overflow:visible}
  /* 剧本优化：收起约15行，展开全部 */
  #box2l,#box2r{max-height:460px;overflow:hidden;border-radius:12px;transition:max-height .3s ease}
  #box2l.open,#box2r.open{max-height:none;overflow:visible}
  #box2l .mid-ta,#box2r .mid-ta{min-height:440px;height:auto;resize:none}
  #box2l.open .mid-ta,#box2r.open .mid-ta{min-height:440px;resize:vertical}
  /* 故事输入：收起约15行，展开显示全部 */
  #box1{max-height:420px;overflow:hidden;border-radius:12px;transition:max-height .3s ease}
  #box1.open{max-height:none;overflow:visible}
  #box1 .big-ta{min-height:400px;height:auto;resize:none}
  #box1.open .big-ta{min-height:400px;resize:vertical}
  .split-h{display:flex;align-items:center;justify-content:space-between;gap:8px}

  /* 逐句情绪：卡片预览 */
  .line-emo-preview{display:flex;flex-wrap:wrap;gap:6px;padding:0 15px 12px}
  .le-tag{display:inline-flex;align-items:center;gap:5px;font-size:.7rem;line-height:1;
    padding:4px 8px;border-radius:8px;background:rgba(244,208,68,.08);
    border:1px solid rgba(244,208,68,.22);color:#cfcfcf;max-width:100%}
  .le-tag i{font-style:normal;color:var(--y);font-weight:700}
  /* 逐句情绪：编辑弹窗 */
  .lines-editor{display:flex;flex-direction:column;gap:8px;margin:6px 0 10px}
  /* ★ 2026-10-25：第④步弹窗的镜头块（分场存全量镜头内容，逐镜做最后确认） */
  .sh-edit-head{margin:20px 0 10px;font-weight:700;color:var(--y);font-size:.86rem;
    border-top:1px solid #2a2a2a;padding-top:16px}
  .sh-edit-card{background:var(--ink2);border:1px solid #262626;border-radius:10px;
    padding:14px 16px;margin-bottom:12px}
  .sh-edit-card .sh-edit-t{font-weight:700;color:#ddd;font-size:.84rem;margin-bottom:10px;
    display:flex;gap:8px;align-items:center;flex-wrap:wrap}
  .sh-edit-card .sh-src{font-size:.68rem;color:#777;background:#1f1f1f;border-radius:999px;
    padding:2px 8px;font-weight:400}
  .sh-edit-card .row3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
  .sh-edit-card label{display:block;font-size:.72rem;color:var(--grey);margin:10px 0 4px}
  .sh-edit-card input,.sh-edit-card textarea{width:100%;background:#131313;border:1px solid #2a2a2a;
    border-radius:7px;color:#e8e8e8;padding:8px 10px;font-size:.8rem;font-family:inherit;
    line-height:1.55;box-sizing:border-box}
  .sh-edit-card textarea{resize:vertical}
  .sh-edit-card .spk-sel{width:100%;background:#131313;border:1px solid #2a2a2a;border-radius:7px;
    color:var(--y);padding:8px 10px;font-size:.82rem;font-family:inherit;box-sizing:border-box}

  @media(max-width:640px){ .sh-edit-card .row3{grid-template-columns:1fr} }
  .line-row{display:flex;gap:8px;align-items:flex-start;background:var(--ink2);
    border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:8px}
  .line-role{flex-shrink:0;width:64px;font-size:.72rem;color:var(--y);font-weight:700;
    padding-top:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .line-text{flex:1;min-width:0;font-size:.8rem;background:var(--ink3)!important;margin:0!important;min-height:40px}
  .line-emo{flex-shrink:0;width:130px;display:flex;flex-direction:column;gap:5px}
  .line-emo select,.line-emo input{font-size:.76rem;margin:0!important;background:var(--ink3)!important}

  /* 镜头卡片：收起只留表头行摘要 */
  .shot-card{padding:0;overflow:hidden}
  .shot-hd{display:flex;align-items:center;gap:10px;padding:12px 15px;margin:0;cursor:pointer}
  .shot-hd:hover{background:rgba(244,208,68,.05)}
  .shot-no{flex-shrink:0;text-align:left}
  .shot-sum{flex:1;font-size:.78rem;color:var(--grey);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}

  /* 版本角标（B+C 轻量版）：vX · 时间 · 来源 */
  .meta-wrap{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;margin-left:6px}
  .m-badge{font-size:.66rem;line-height:1;padding:3px 7px;border-radius:999px;white-space:nowrap;
    border:1px solid rgba(255,255,255,.14);color:#9a9a9a;background:rgba(255,255,255,.03)}
  .m-ver{color:var(--y);border-color:rgba(244,208,68,.4);font-weight:700}
  .m-ai{color:#7fb2ff;border-color:rgba(127,178,255,.32)}
  .m-edit{color:#75d6a0;border-color:rgba(117,214,160,.32)}
  .m-stale{color:#ffb44a;border-color:rgba(255,180,74,.5);background:rgba(255,180,74,.1)}
  .pz-hd .meta-wrap{margin-left:0}
  .split-h .meta-wrap{margin-left:0}
  .hd-ops{margin-left:auto;display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap}
  /* 卡片内操作按钮：统一 chip 风格 */
  .hd-ops .copy,.hd-ops .del,.hd-ops .expand,.hd-ops .btn-mini{
    background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.16);color:#b8b8b8;
    font-size:.72rem;padding:4px 11px;border-radius:999px;cursor:pointer;font-family:inherit;
    line-height:1.4;white-space:nowrap;transition:.18s;text-decoration:none;display:inline-flex;align-items:center}
  .hd-ops .copy:hover,.hd-ops .expand:hover,.hd-ops .btn-mini:hover{border-color:var(--y);color:var(--y);background:rgba(244,208,68,.08)}
  .hd-ops .del:hover{border-color:#ff7a7a;color:#ff7a7a;background:rgba(255,122,122,.08)}
  .shot-body{display:none;padding:0 15px 15px}
  .shot-card.open .shot-body{display:block}

  /* 提示词卡片：同样收起 */
  .pz-card{padding:0;overflow:hidden;margin-bottom:9px}
  .pz-hd{display:flex;align-items:center;gap:10px;padding:11px 15px;margin:0;cursor:pointer}
  .pz-hd:hover{background:rgba(244,208,68,.05)}
  .pz-body{display:none;padding:0 15px 15px}
  .pz-card.open .pz-body{display:block}
  /* 提示词预览行 */
  .pz-prev{padding:0 15px 13px;font-size:.76rem;color:#888;line-height:1.6
    ;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .pz-card{cursor:pointer}
  /* 中文提示词收起时默认三行高度 */
  .pz-card:not(.open) .pz-body{display:block;max-height:0;overflow:hidden;padding:0 15px}
  .pz-card .pz-ta.clamp{height:72px;min-height:72px;overflow:hidden;resize:none}
  .pz-card.open .pz-ta.clamp{height:auto;min-height:90px;overflow:auto;resize:vertical}

  /* 懒加载提示 */
  .lazy-more{text-align:center;color:var(--grey);font-size:.8rem;padding:20px;margin-top:8px}

  /* =================================================================
     字体微缩（在既有 rem 体系上再降一档，最小改动）
     桌面基准 14px；手机端在下面 media 内单点回调，保证“手机看得清”
     ================================================================= */
  .sub{font-size:clamp(.82rem,1.6vw,.95rem)}
  .card p{font-size:.78rem}
  .card h3{font-size:.98rem}
  .modal-lg textarea,.modal-lg input{font-size:.84rem}
  .big-ta{font-size:.88rem}
  .mid-ta{font-size:.84rem}
  .pz-ta{font-size:.8rem}
  .shot-card input,.shot-card textarea{font-size:.8rem}
  .role-name{font-size:.84rem}
  .role-note{font-size:.74rem}

  /* =================================================================
     移动端适配（A 方案 · 只加样式，不动逻辑）
     目标是手机（~375-430px）也能完整创作：能看、能点、能编辑
     ================================================================= */
  @media (max-width: 700px){
    /* --- 全局：留白收紧、字号略降 --- */
    body{font-size:15px;line-height:1.6}   /* 手机基准回调到 15px，保证可读 */
    nav{padding:10px 16px;flex-wrap:wrap;gap:10px}
    .brand{font-size:.98rem}
    .brand small{display:none}
    .mark{width:32px;height:32px;border-radius:8px}
    .nav-right{gap:8px;margin-left:auto}
    .nav-right .btn{padding:6px 12px;font-size:.82rem;min-height:0;white-space:nowrap}
    .nav-right .credits{padding:6px 12px;font-size:.78rem;white-space:nowrap;min-height:0}

    /* 导航链接：手机上展开成可点的一行（不再隐藏） */
    nav .links{display:flex !important;gap:8px;font-size:.82rem;width:100%;justify-content:flex-start;
      flex-wrap:wrap;order:3;padding-top:6px;margin-top:4px}
    nav .links a{padding:6px 12px}
    /* 首页入口卡片：手机两列 */
    .entry-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:28px}
    .entry-card{padding:16px 14px}
    .entry-card .ec-ico{font-size:1.5rem;margin-bottom:8px}
    .entry-card .ec-t{font-size:.92rem}
    .entry-card .ec-d{font-size:.72rem}

    /* 首页 hero / 区块 */
    .hero{padding:28px 16px !important}
    .sec-head{flex-direction:column;align-items:flex-start;gap:10px}
    .cards{grid-template-columns:1fr;gap:14px}

    /* 登录弹窗 / 通用弹窗：占满宽度、限高可滚 */
    .modal,.modal-lg{width:94vw !important;max-width:94vw !important;max-height:88vh;overflow:auto}
    .modal-lg .row2{grid-template-columns:1fr}

    /* 工作台头 / 步骤导航 */
    .studio-head{flex-direction:column;align-items:stretch;gap:10px}
    .head-ops{justify-content:flex-start;flex-wrap:wrap}
    .stepnav-bar{flex-wrap:nowrap;overflow-x:auto;padding:0 14px 6px;gap:6px;-webkit-overflow-scrolling:touch}
    .stepnav{flex:0 0 auto;min-width:88px;padding:10px 10px;font-size:.78rem}
    .stepnav .snm{font-size:.78rem}
    .step-body{padding:16px 14px !important}

    /* 剧本优化：左右两栏 → 上下 */
    .split{grid-template-columns:1fr;gap:12px}

    /* 分镜卡片内部 */
    .shot-grid{grid-template-columns:1fr}
    .shot-grid .wide{grid-column:span 1}
    .shot-hd{flex-wrap:wrap;gap:8px}
    .hd-ops{margin-left:0;width:100%;justify-content:flex-start}

    /* 出片列表：6 列 grid → 竖向卡片 */
    .render-list{gap:10px}
    .render-row{grid-template-columns:1fr;gap:4px 10px;padding:12px 14px;
      grid-template-areas:none}
    .render-row .rr-no{font-size:.95rem}
    .render-row .rr-dur,.render-row .rr-ref{display:inline;text-align:left;margin-right:12px}
    .rr-ops{justify-content:flex-start;margin-top:8px}
    .rr-ops .btn,.rr-ops .btn-mini{min-height:38px;padding:8px 14px}

    /* 资产库：卡片 1 列 */
    .role-list{grid-template-columns:1fr}
    .asset-thumb{width:calc(33.33% - 6px);height:auto;aspect-ratio:1/1}

    /* 标准选择条 */
    .std-bar{flex-direction:column;align-items:stretch;gap:8px}
    .std-sel,.std-desc{width:100% !important;min-width:0}

    /* 按钮普遍加大到手指可点 */
    .btn{min-height:42px;padding:10px 16px}
    .btn-mini{min-height:34px;padding:7px 12px}
    /* 登录弹窗内按钮：与顶栏导航键统一尺寸 */
    #authSubmit{min-height:0;padding:6px 12px;font-size:.82rem;white-space:nowrap}

    /* 输入框防 iOS 自动放大（字号<16 会触发缩放） */
    input,select,textarea{font-size:16px !important}
  }

  /* 超窄机（~360px 及以下）再收一点 */
  @media (max-width: 380px){
    .stepnav{min-width:76px;font-size:.74rem}
    .asset-thumb{width:calc(50% - 5px)}
    .rr-ops .btn,.rr-ops .btn-mini{flex:1 1 auto;text-align:center}
  }


/* ===== 2026-10-20 剧组手艺包 / 修改意见 / 案例库 / 质检 ===== */
.team-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 12px;margin:0 0 12px;
  border:1px solid #3a3a3a;border-radius:10px;background:linear-gradient(180deg,#20201d,#1a1a18)}
.team-bar .std-lab{font-size:.85rem;color:#F4D044;font-weight:700}
.team-bar .std-sel{min-width:200px}
.team-bar .std-desc{font-size:.76rem;color:#9a9a92;flex:1;min-width:180px}

.fb-bar{margin:12px 0;padding:10px 12px;border:1px dashed #4a4a44;border-radius:10px;background:#1c1c1a}
.fb-hd{font-size:.85rem;font-weight:700;color:#F4D044;margin-bottom:6px}
.fb-hd .mini{font-weight:400;color:#8f8f88}
.fb-ta{width:100%;box-sizing:border-box;background:#141412;color:#eee;border:1px solid #3a3a36;
  border-radius:8px;padding:8px 10px;font-size:.85rem;line-height:1.6;resize:vertical}
.fb-ops{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap}

.sb-report{margin:8px 0;padding:8px 12px;border-left:3px solid #6aa9ff;background:#151a22;
  border-radius:6px;font-size:.78rem;color:#bcd2ee;line-height:1.7}

.case-item{border:1px solid #333;border-radius:8px;margin:8px 0;padding:8px 10px;background:#181816}
.case-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;font-size:.82rem}
.case-body{white-space:pre-wrap;word-break:break-word;font-size:.74rem;color:#c9c9c0;max-height:220px;overflow:auto;margin:0}

.lint-ok{font-size:.7rem;color:#7fd08a;border:1px solid #2f5b36;border-radius:999px;padding:1px 7px}
.lint-warn{font-size:.7rem;color:#ffc861;border:1px solid #6b5320;border-radius:999px;padding:1px 7px;cursor:help}
.lint-fail{font-size:.7rem;color:#ff8080;border:1px solid #6b2a2a;border-radius:999px;padding:1px 7px;cursor:help}
.lint-unsure{font-size:.7rem;color:#8fb8ff;border:1px solid #2f4a6b;border-radius:999px;padding:1px 7px;cursor:help}
.lint-sec{font-size:.68rem;color:#9aa4b2;border:1px solid #3a4048;border-radius:4px;padding:0 4px;margin-right:4px}
.lint-fix{font-size:.72rem;color:#8fb8ff;margin-top:2px;padding-left:14px}

.scene-ref-box{margin-top:12px;padding:10px 0 0;border-top:1px dashed #3a3a36}
.vm-title{font-size:.82rem;font-weight:700;color:#F4D044;margin-bottom:6px}

.pf-row{border:1px solid #333;border-radius:8px;padding:8px 10px;margin:6px 0;background:#181816}
.pf-hd{font-size:.85rem;margin-bottom:4px}
.pf-ul{margin:0;padding-left:18px;font-size:.78rem;line-height:1.7}
.pf-ul li.warn{color:#ffc861}
.pf-ul li.fail{color:#ff8080}

.scene-lib{margin-top:20px;border-top:1px solid #333;padding-top:14px}
.scene-lib-hd{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.scene-list{display:flex;gap:12px;flex-wrap:wrap}
.scene-card{border:1px solid #333;border-radius:10px;padding:10px;background:#181816;min-width:220px}
.scene-card-hd{display:flex;gap:6px;align-items:center;justify-content:space-between;margin-bottom:6px}

.looks-box{margin-top:8px;padding:8px;border:1px solid #3a3a36;border-radius:8px;font-size:.78rem}
.look-row{display:flex;gap:8px;align-items:center;margin-top:4px}
.look-nm{color:#F4D044;min-width:70px}

/* 音量补偿标记（出片记录） */
.ln-tag{font-size:.68rem;border-radius:999px;padding:1px 7px;margin-left:6px;cursor:help}
.ln-tag.ok{color:#7fd08a;border:1px solid #2f5b36}
.ln-tag.bad{color:#ff8080;border:1px solid #6b2a2a}

/* ===== 中文提示词·六段分框编辑器（2026-10-21）===== */
.pz6-loading,.pz6-err{padding:16px;text-align:center;color:var(--grey);font-size:.82rem}
.pz6-err{color:#ff8080}
.pz6-truth{font-size:.78rem;color:var(--grey);background:#141412;border:1px solid #333;border-radius:8px;padding:6px 10px;margin-bottom:10px}
.pz6-truth b{color:var(--y)}
.pz6-sec{border:1px solid #2f2f2b;border-radius:10px;padding:8px 10px 10px;margin-bottom:10px;background:#131311;transition:border-color .15s}
.pz6-sec.bad{border-color:#7a2a2a;background:#1a1212}
.pz6-sec.warn{border-color:#6b5420;background:#191610}
.pz6-hd{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.pz6-no{width:20px;height:20px;line-height:20px;text-align:center;border-radius:50%;background:var(--y);color:var(--ink);font-size:.72rem;font-weight:700;flex:none}
.pz6-name{font-family:ui-monospace,Consolas,monospace;font-size:.82rem;color:#e8d98a;font-weight:600}
.pz6-cn{font-size:.72rem;color:var(--grey)}
.pz6-tag{font-size:.68rem;border-radius:999px;padding:1px 7px;border:1px solid #3a3a36}
.pz6-tag.ok{color:#7fd08a;border-color:#2f5b36}
.pz6-tag.warn{color:#ffc861;border-color:#6b5420}
.pz6-tag.bad{color:#ff8080;border-color:#7a2a2a}
.pz6-tag.miss{color:var(--grey);border-color:#3a3a36}
.pz6-ops{margin-left:auto}
.pz6-ta{width:100%;box-sizing:border-box;background:#0e0e0c;border:1px solid #333;border-radius:8px;
  color:#eee;font-size:.82rem;line-height:1.65;padding:8px;resize:vertical;font-family:inherit}
.pz6-ta:focus{outline:none;border-color:var(--y)}
.pz6-iss{font-size:.75rem;margin-top:6px;padding:4px 8px;border-radius:6px;line-height:1.5}
.pz6-iss.bad{color:#ff9a9a;background:#2a1414;border-left:3px solid #c33}
.pz6-iss.warn{color:#ffc861;background:#241d0e;border-left:3px solid #a80}
.pz6-foot{font-size:.74rem;color:var(--grey);text-align:center;padding:6px 0 2px}
  /* 本场色板标记（第③步场卡片下的只读小条） */
  .pal-row{margin:6px 0 2px}
  .pal-chip{display:inline-flex;align-items:center;gap:6px;font-size:.76rem;color:#9fdcff;
    background:rgba(120,200,255,.09);border:1px solid rgba(120,200,255,.28);border-radius:999px;padding:3px 10px}
  .pal-chip b{color:#d8f1ff}
  .pal-chip i{color:#8fb8cc;font-style:normal}
  .pal-chip .pal-edit{margin-left:4px;background:rgba(120,200,255,.16);border:none;color:#cdeaff;
    border-radius:999px;padding:1px 8px;font-size:.72rem;cursor:pointer;font-family:inherit}
  .pal-chip .pal-edit:hover{background:rgba(120,200,255,.3)}
  .pal-none{color:#8a8a8a;border-color:rgba(255,255,255,.12);background:rgba(255,255,255,.03)}
  .pal-ok{color:#7fd77f;font-size:.78rem}
