:root{
  --bg:#0F1012;--panel:#141517;--card:#1A1D21;--elev:#22262B;--line:#262930;--line2:#2C3138;
  --orange:#FF7A1A;--orange2:#FF8F3F;--accent:#FF9A4D;--text:#F2F3F5;--muted:#9AA3AE;--dim:#6B7380;
  --green:#3DD68C;--green2:#5FE3A3;--yellow:#F5C542;--red:#FF5C5C;--blue:#5AA9FF;
  --font:'Manrope',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;--disp:'Chakra Petch',var(--font);--mono:'JetBrains Mono',Consolas,monospace;
  --r:10px;--r2:14px;--sb:248px;
}
*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.45}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{font-family:var(--disp);margin:0;font-weight:600;letter-spacing:.2px}
h1{font-size:22px}h2{font-size:18px}h3{font-size:15px}
.boot{padding:40px;color:var(--muted)}
.hidden{display:none!important}
.muted{color:var(--muted)}.dim{color:var(--dim)}.small{font-size:12px}.mono{font-family:var(--mono);font-size:12px}
.orange{color:var(--accent)}.green{color:var(--green)}.red{color:var(--red)}.yellow{color:var(--yellow)}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.row.top{align-items:flex-start}
.col{display:flex;flex-direction:column;gap:10px}.grow{flex:1 1 auto;min-width:0}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media(max-width:1100px){.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.grid2,.grid3,.grid4{grid-template-columns:minmax(0,1fr)}}

/* ---------- shell */
.shell{display:flex;min-height:100vh}
.sidebar{width:var(--sb);flex:0 0 var(--sb);background:var(--panel);border-right:1px solid var(--line);padding:18px 14px;position:sticky;top:0;height:100vh;overflow:auto}
.logo{display:flex;align-items:center;gap:10px;padding:4px 8px 18px}
.logo .mark{width:34px;height:34px;border-radius:9px;background:var(--orange);display:grid;place-items:center;font-family:var(--disp);font-weight:700;color:#14100B;font-size:18px;overflow:hidden}
.logo .mark .mk{width:100%;height:100%;display:block;fill:currentColor}
.logo .name{font-family:var(--disp);font-size:20px;font-weight:700;letter-spacing:.5px}
.logo .ver{font-size:10px;color:var(--dim);margin-left:auto;font-family:var(--mono)}
.nav a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;color:var(--muted);font-weight:500}
.nav a:hover{background:var(--card);color:var(--text);text-decoration:none}
.nav a.on{background:rgba(255,122,26,.12);color:var(--accent)}
.nav .sec{font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:1px;padding:14px 10px 6px}
.nav .ic{width:18px;text-align:center;font-size:15px}
.sb-foot{margin-top:18px;padding:12px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.credit-pill{display:inline-flex;align-items:center;gap:6px;background:var(--card);border:1px solid var(--line2);border-radius:20px;padding:4px 10px;font-family:var(--mono);font-size:12px;color:var(--accent)}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;gap:14px;padding:14px 24px;border-bottom:1px solid var(--line);background:var(--panel);position:sticky;top:0;z-index:5}
.topbar h1{font-size:18px}
.content{padding:22px 24px 60px;max-width:1440px;width:100%}
.topbar .mob{display:none}
@media(max-width:900px){.sidebar{display:none}.content{padding:14px 12px 60px}.topbar{padding:10px 12px;flex-wrap:wrap;gap:8px 10px}.topbar h1{min-width:0;flex:1 1 auto;font-size:16px}.topbar #topact{flex-wrap:wrap;max-width:100%;justify-content:flex-end}.topbar .mob{display:inline-flex}}
.mobnav{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:40}.mobnav .sidebar{display:block;height:100vh;width:280px}
.mobnav.open{display:block}

/* ---------- cards & panels */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r2);padding:16px}
.card.tight{padding:12px}
.card h3{margin-bottom:8px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r2);padding:16px}
.kpi{display:flex;flex-direction:column;gap:2px}.kpi .v{font-family:var(--disp);font-size:26px;font-weight:700}.kpi .l{color:var(--muted);font-size:12px}
.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:600;background:var(--elev);color:var(--muted);white-space:nowrap}
.badge.o{background:rgba(255,122,26,.16);color:var(--accent)}.badge.g{background:rgba(61,214,140,.14);color:var(--green)}.badge.y{background:rgba(245,197,66,.14);color:var(--yellow)}.badge.r{background:rgba(255,92,92,.14);color:var(--red)}.badge.b{background:rgba(90,169,255,.14);color:var(--blue)}
.tag{display:inline-block;padding:1px 7px;border-radius:5px;background:var(--elev);color:var(--muted);font-size:11px;margin:2px 2px 0 0}
.sep{height:1px;background:var(--line);margin:12px 0}
.empty{padding:26px;text-align:center;color:var(--muted);border:1px dashed var(--line2);border-radius:var(--r2)}

/* ---------- buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 14px;border-radius:9px;border:1px solid var(--line2);background:var(--elev);color:var(--text);cursor:pointer;font-weight:600;font-size:13px;line-height:1.2;white-space:nowrap;transition:.12s}
a.btn,a.btn:hover{text-decoration:none}
.btn:hover{border-color:#3a4049;background:#272c32}.btn:disabled{opacity:.5;cursor:not-allowed}
.btn.p{background:var(--orange);border-color:var(--orange);color:#14100B}.btn.p:hover{background:var(--orange2);border-color:var(--orange2)}
.btn.ghost{background:transparent}.btn.danger{color:var(--red)}.btn.danger:hover{border-color:var(--red)}
.btn.sm{padding:5px 10px;font-size:12px;border-radius:7px}.btn.xs{padding:3px 8px;font-size:11px;border-radius:6px}
.btn.icon{padding:6px 8px}
.actbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:12px 0}

/* ---------- forms */
label.f{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted);min-width:0}
label.f>span{font-weight:600}
.in,select.in,textarea.in{width:100%;background:var(--bg);border:1px solid var(--line2);border-radius:8px;padding:8px 10px;color:var(--text);font-size:13px;outline:none;min-width:0}
.in:focus{border-color:var(--orange)}
textarea.in{min-height:70px;resize:vertical;font-family:var(--font)}
select.in{appearance:auto}
.chk{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--text);cursor:pointer}
.chk input{accent-color:var(--orange);width:15px;height:15px}
.inline{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.inline label.f{flex:1 1 160px}
.drop{display:block;border:1px dashed var(--line2);border-radius:var(--r2);padding:18px;text-align:center;color:var(--muted);cursor:pointer;background:var(--bg)}
.drop:hover,.drop.over{border-color:var(--orange);color:var(--text)}
.drop input{display:none}
.help{font-size:12px;color:var(--dim)}

/* ---------- tables */
table.t{width:100%;border-collapse:collapse;table-layout:fixed;font-size:13px}
table.t th{text-align:left;color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px;padding:8px 8px;border-bottom:1px solid var(--line2);background:var(--panel);position:sticky;top:0}
table.t td{padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top;word-wrap:break-word}
table.t tr:hover td{background:rgba(255,255,255,.02)}
table.t tr.on td{background:rgba(255,122,26,.08)}
table.t td.num{font-family:var(--mono);font-size:12px;color:var(--muted)}
.tw{overflow:auto;max-height:70vh;border:1px solid var(--line);border-radius:var(--r)}
/* 3.0: màn hẹp — bảng cuộn ngang trong khung thay vì bóp cột chữ về 0 (cột cố định cộng lại rộng hơn màn hình) */
#tbl{min-width:860px}
table.t.projlist{min-width:860px}
td .cell{width:100%;background:transparent;border:1px solid transparent;border-radius:6px;padding:4px 6px;color:var(--text);resize:vertical;min-height:30px;font-family:var(--font);font-size:13px}
td .cell:focus{background:var(--bg);border-color:var(--orange);outline:none}
td .cell.dirty{border-color:var(--yellow)}
.st{font-size:12px;white-space:nowrap}
table#tbl td.st{white-space:normal;overflow-wrap:anywhere;line-height:1.35}   /* 4.3: nhãn đồng bộ dài (⛔ Quá dài ×1,6 — rút gọn / thu lại) xuống dòng, không tràn sang cột nút */

/* ---------- stepper */
.stepper{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 16px}
.stepper a{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:9px;border:1px solid var(--line);background:var(--card);color:var(--muted);font-weight:600;font-size:12px}
.stepper a:hover{text-decoration:none;color:var(--text)}
.stepper a.done{border-color:rgba(61,214,140,.4);color:var(--green)}
.stepper a.cur{border-color:var(--orange);color:var(--accent);background:rgba(255,122,26,.1)}
.stepper .n{width:20px;height:20px;border-radius:50%;background:var(--elev);display:grid;place-items:center;font-family:var(--mono);font-size:11px}
.stepper a.cur .n{background:var(--orange);color:#14100B}.stepper a.done .n{background:rgba(61,214,140,.2)}

/* ---------- progress / jobs */
.prog{height:6px;background:var(--elev);border-radius:4px;overflow:hidden}.prog>i{display:block;height:100%;background:var(--orange);width:0;transition:width .3s}
.jobbar{position:fixed;right:16px;bottom:16px;width:360px;max-width:calc(100vw - 32px);z-index:30;display:flex;flex-direction:column;gap:8px}
.job{background:var(--panel);border:1px solid var(--line2);border-radius:var(--r2);padding:10px 12px;box-shadow:0 8px 30px rgba(0,0,0,.5);font-size:12px}
.job .t{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:6px}
.job .msg{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.job .t b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* 4.7.2 ⏱ đồng hồ việc nền + thanh thời gian từng công đoạn của dự án */
.jclock{font-family:var(--mono);font-size:11px;color:var(--accent);white-space:nowrap}
.job.done .jclock{color:var(--green)}.job.error .jclock{color:var(--red)}
.tbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:8px 0 0;font-size:12px}
.tbar .tlab{color:var(--muted);margin-right:2px}
.tchip{background:var(--elev);border:1px solid var(--line2);border-radius:999px;padding:2px 9px;color:var(--muted);white-space:nowrap}
.tchip b{color:var(--text);font-family:var(--mono);font-weight:600}.tchip i{font-style:normal;color:var(--dim)}
.tchip.run{border-color:rgba(255,122,26,.5);color:var(--accent)}.tchip.run b,.tchip.run .jclock{color:var(--accent)}
.tchip.tot{border-color:rgba(61,214,140,.45);background:rgba(61,214,140,.08)}.tchip.tot b{color:var(--green)}
/* 4.7.2 ➜ nút Tiếp mỗi bước (① → ② → ③ → Edit → Xuất) */
.rv-next{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:14px;padding:12px 14px;border:1px dashed var(--line2);border-radius:var(--r2);background:rgba(255,122,26,.04)}
.rv-next .btn.p{font-size:14px;padding:9px 18px;box-shadow:0 4px 14px rgba(255,122,26,.22)}
.rv-next .nx-r{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-left:auto}
.btn.nx{white-space:nowrap}
body.has-jobs .content{padding-bottom:200px}
.log{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;font-family:var(--mono);font-size:11.5px;color:var(--muted);max-height:220px;overflow:auto;white-space:pre-wrap}
.log .err{color:var(--red)}

/* ---------- toasts / modal */
/* 4.7.2: thông báo gọn ở giữa phía trên, KHÔNG bắt chuột (bấm xuyên qua) → không bao giờ che nút Đóng / Lưu; trình Edit mở thì hạ dưới thanh nút */
#toasts{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:60;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none;width:max-content;max-width:calc(100vw - 24px)}
body.ed-open #toasts{top:84px}
.toast{background:var(--elev);border:1px solid var(--line2);border-left:3px solid var(--orange);border-radius:8px;padding:6px 12px;font-size:12.5px;line-height:1.4;box-shadow:0 6px 20px rgba(0,0,0,.45);max-width:min(520px,calc(100vw - 24px));pointer-events:none;animation:toastIn .16s ease-out;transition:opacity .25s}
.toast.out{opacity:0}
@keyframes toastIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.toast.err{border-left-color:var(--red)}.toast.ok{border-left-color:var(--green)}.toast.warn{border-left-color:var(--yellow)}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:50;display:flex;align-items:flex-start;justify-content:center;padding:40px 12px;overflow:auto}
.modal-box{background:var(--panel);border:1px solid var(--line2);border-radius:16px;padding:20px;width:100%;max-width:720px;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.modal-box h2{margin-bottom:12px}
.modal-box.wide{max-width:1040px}

/* ---------- misc */
.audio{height:32px;width:100%;max-width:340px}
.chars .card{position:relative}
.wf-steps{display:flex;flex-wrap:wrap;gap:6px}
.wf-step{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:8px;background:var(--elev);font-size:12px;border:1px solid var(--line2)}
.wf-step.review{border-color:rgba(245,197,66,.5);color:var(--yellow)}
.wf-step .x{cursor:pointer;color:var(--dim)}.wf-step .x:hover{color:var(--red)}
.login{min-height:100vh;display:grid;place-items:center;padding:20px}
.login .card{width:100%;max-width:400px;padding:28px}
.kv{display:grid;grid-template-columns:140px minmax(0,1fr);gap:6px 12px;font-size:13px}.kv b{color:var(--muted);font-weight:600}
.kv>*{min-width:0;overflow-wrap:anywhere}          /* 3.0: tên file dài không đẩy trang rộng ra trên điện thoại */
.pill-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:14px;flex-wrap:wrap}
.pill-tabs a{padding:8px 12px;color:var(--muted);font-weight:600;border-bottom:2px solid transparent;margin-bottom:-1px}
.pill-tabs a.on{color:var(--accent);border-bottom-color:var(--orange)}.pill-tabs a:hover{text-decoration:none;color:var(--text)}
.thumb{width:100%;aspect-ratio:16/9;object-fit:cover;background:#000;border-radius:8px}
video.player{width:100%;max-height:420px;background:#000;border-radius:var(--r)}
.scene{border:1px solid var(--line);border-radius:var(--r);padding:10px;background:var(--bg)}
kbd{font-family:var(--mono);font-size:11px;background:var(--elev);padding:1px 5px;border-radius:4px;border:1px solid var(--line2)}
.notice{background:rgba(255,122,26,.08);border:1px solid rgba(255,122,26,.35);border-radius:var(--r);padding:10px 12px;font-size:13px}
.notice.warn{background:rgba(245,197,66,.08);border-color:rgba(245,197,66,.4)}
.notice.err{background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.45)}
.speaker{display:flex;gap:10px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg)}
.speaker .k{width:34px;height:34px;border-radius:50%;background:var(--elev);display:grid;place-items:center;font-family:var(--disp);font-weight:700;color:var(--accent)}

/* màn đăng nhập: tab Đăng nhập / Đăng ký · nút Google (1.5) */
.ltabs{display:flex;gap:4px;background:var(--elev);border:1px solid var(--line2);border-radius:10px;padding:4px;margin:0 0 14px}
.ltab{flex:1;background:transparent;border:0;color:var(--muted);font-family:var(--ui);font-weight:600;font-size:13px;padding:8px 10px;border-radius:7px;cursor:pointer}
.ltab.on{background:var(--orange);color:#14100B}
.btn.gbtn{width:100%;justify-content:center;gap:10px;background:#fff;color:#1f1f1f;border-color:#fff;font-weight:600}
.btn.gbtn:hover{background:#f1f1f1}
.lor{display:flex;align-items:center;gap:10px;color:var(--dim);font-size:12px;margin:12px 0}
.lor:before,.lor:after{content:"";flex:1;height:1px;background:var(--line2)}

/* 2.3: tinh chỉnh giọng */
.knob{display:grid;grid-template-columns:120px minmax(0,1fr) 52px;gap:8px;align-items:center;font-size:12px;margin-top:6px}
.knob b{color:var(--muted);font-weight:600}.knob .v{text-align:right;font-family:var(--mono);font-size:11.5px;color:var(--accent)}
input[type=range].rng{width:100%;accent-color:var(--orange);margin:0}
.hint{font-size:12px;color:var(--muted);line-height:1.6}.hint li{margin-left:16px}
.ab{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.ab .audio{max-width:260px}
.dictbox{font-family:var(--mono);font-size:12px;min-height:150px;white-space:pre}
.stat{display:inline-block;padding:2px 8px;border-radius:6px;background:var(--elev);font-size:11.5px;margin:2px 4px 0 0;color:var(--muted)}
.stat b{color:var(--text)}
/* 2.5 video từ ảnh */
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px}
.thumbs.many{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));max-height:560px;overflow:auto;padding-right:4px}
.thumb{position:relative;border:1px solid var(--line2);border-radius:8px;overflow:hidden;background:var(--bg);aspect-ratio:16/10}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.thumb .n{position:absolute;top:4px;left:4px;background:rgba(0,0,0,.7);color:#fff;font-family:var(--mono);font-size:11px;padding:1px 6px;border-radius:5px}
.thumb .ops{position:absolute;right:4px;bottom:4px;display:flex;gap:3px;opacity:.85}.thumb:hover .ops{opacity:1}
.thumb .sm{position:absolute;top:4px;right:4px;background:rgba(0,0,0,.72);color:var(--yellow);font-size:10.5px;padding:1px 5px;border-radius:5px}
.thumb .ops .btn{padding:2px 6px}
.thumb.up::after{content:'';position:absolute;left:0;bottom:0;height:3px;width:var(--p,0%);background:var(--orange);transition:width .2s}
.thumb.up img{opacity:.55}.thumb.err{outline:2px solid var(--red);cursor:pointer}.thumb.err img{opacity:.4}
.vres video{width:100%;max-height:380px;border-radius:8px;background:#000;display:block}

/* 2.6 trình Edit hậu kỳ */
.edov{position:fixed;inset:0;z-index:55;background:rgba(0,0,0,.78);display:flex;justify-content:center;padding:14px}
.edbox{background:var(--panel);border:1px solid var(--line2);border-radius:14px;width:100%;max-width:1440px;display:flex;flex-direction:column;padding:12px 14px;box-shadow:0 20px 60px rgba(0,0,0,.6);min-height:0}
.edhead{padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:10px;gap:10px;flex-wrap:wrap}
.edmain{display:flex;gap:14px;flex:1;min-height:0}
.edstage{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center}
.edwrap{position:relative;background:#050505;border-radius:8px;line-height:0;box-shadow:0 0 0 1px var(--line2)}
.edwrap canvas{display:block;touch-action:none;border-radius:8px}
.edwrap img{position:absolute;left:0;top:0;cursor:pointer;border-radius:8px}
.edtl{width:100%;margin-top:8px;gap:8px}
.edside{width:370px;flex:0 0 370px;overflow:auto;padding-right:4px}
.edsec{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px}
.edsec h4{margin:0 0 8px;font-size:13px;font-family:var(--disp);letter-spacing:.2px}
.edsec input[type=range]{width:100%}
.edlist{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.edcov{margin-top:8px;border-top:1px dashed var(--line2);padding-top:8px}
.edask{margin-bottom:8px}
@media (max-width:980px){.edov{padding:0}.edbox{border-radius:0}.edmain{flex-direction:column;overflow:auto}.edside{width:auto;flex:none}}
/* 2.7 trình Edit: tab, lớp kiểu CapCut, tông màu, hiệu ứng, Auto */
.edbox{max-height:calc(100vh - 28px)}
.edtabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px;position:sticky;top:0;background:var(--panel);padding-bottom:6px;z-index:2}
.edtabs button{flex:1 1 auto;padding:6px 8px;border-radius:8px;border:1px solid var(--line2);background:var(--card);color:var(--muted);font-weight:600;font-size:12px;cursor:pointer;font-family:var(--font)}
.edtabs button:hover{color:var(--text)}
.edtabs button.on{background:rgba(255,122,26,.15);border-color:var(--orange);color:var(--accent)}
.edtabs .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);margin-left:5px;vertical-align:middle}
.chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:6px}
.chip{padding:7px 8px;border-radius:9px;border:1px solid var(--line2);background:var(--elev);color:var(--text);font-size:12px;font-weight:600;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;font-family:var(--font);line-height:1.2}
.chip:hover{border-color:#3a4049}
.chip.on{border-color:var(--orange);background:rgba(255,122,26,.14);color:var(--accent)}
.chip .sw{width:14px;height:14px;border-radius:4px;flex:0 0 14px;border:1px solid rgba(255,255,255,.25)}
.sl{display:grid;grid-template-columns:86px minmax(0,1fr) 54px;gap:8px;align-items:center;font-size:12px;margin-top:6px}
.sl b{color:var(--muted);font-weight:600}.sl .v{text-align:right;font-family:var(--mono);font-size:11px;color:var(--accent)}
.sl input{width:100%;accent-color:var(--orange);margin:0}
.edcov.selfx{border-top-color:var(--orange)}
.edlayers{margin-top:10px;border-top:1px solid var(--line);padding-top:8px;max-height:32vh;overflow:auto;flex:0 0 auto}
.lyrs{position:relative;padding-bottom:2px}
.lyr{display:grid;grid-template-columns:26px 190px minmax(0,1fr);align-items:center;gap:6px;height:27px;border-radius:6px}
.lyr:not(.ruler):hover{background:rgba(255,255,255,.03)}
.lyr.on{background:rgba(255,122,26,.08)}.lyr.on .nm{color:var(--accent)}
.lyr.off .nm,.lyr.off .trk{opacity:.4}
.lyr .eye{background:none;border:0;color:var(--muted);cursor:pointer;font-size:13px;padding:0;width:26px;height:22px;line-height:22px}
.lyr .nm{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.lyr .trk{position:relative;height:19px;background:var(--bg);border-radius:5px;cursor:pointer;touch-action:none}
.lyr.ruler{height:18px}.lyr.ruler .trk{background:none;cursor:col-resize}
.lyr .rl span{position:absolute;top:2px;transform:translateX(-50%);font-family:var(--mono);font-size:10px;color:var(--dim);white-space:nowrap}
.lyr .rl span:first-child{transform:none}
.lyr .bar{position:absolute;top:2px;bottom:2px;border-radius:4px;background:rgba(154,163,174,.25);border:1px solid rgba(154,163,174,.45);min-width:4px}
.lyr .bar.k-fx{background:rgba(255,122,26,.3);border-color:rgba(255,122,26,.75);cursor:grab}
.lyr .bar.k-cov{background:rgba(90,169,255,.28);border-color:rgba(90,169,255,.7);cursor:grab}
.lyr .bar.k-col{background:linear-gradient(90deg,rgba(242,162,92,.35),rgba(111,168,232,.35));border-color:rgba(255,255,255,.2)}
.lyr .bar.k-logo{background:rgba(61,214,140,.22);border-color:rgba(61,214,140,.55)}
.lyr .bar.k-mus{background:repeating-linear-gradient(90deg,rgba(186,120,255,.34) 0 6px,rgba(186,120,255,.18) 6px 12px);border-color:rgba(186,120,255,.8);cursor:grab}
.muslist{max-height:280px;overflow:auto;display:flex;flex-direction:column;gap:3px}
.musrow{display:flex;align-items:center;gap:6px;padding:3px 4px;border-radius:6px;border:1px solid transparent}
.musrow.on{border-color:var(--orange);background:rgba(255,122,26,.1)}
.musrow .nm{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.musrow [data-mp].on{background:rgba(186,120,255,.25)}
.lyr .bar.k-vid{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18)}
.lyr .bar .hd{position:absolute;top:-2px;bottom:-2px;width:9px;cursor:ew-resize;background:rgba(255,255,255,.0)}
.lyr .bar .hd:hover{background:rgba(255,255,255,.25)}
.lyr .bar .hd.l{left:-5px;border-radius:4px 0 0 4px}.lyr .bar .hd.r{right:-5px;border-radius:0 4px 4px 0}
.lyr .seg{position:absolute;top:4px;bottom:4px;background:rgba(255,255,255,.4);border-radius:2px;min-width:2px}
.lyrs .ph{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--orange);pointer-events:none;box-shadow:0 0 6px rgba(255,122,26,.6)}
.autopop{position:absolute;right:0;top:calc(100% + 8px);width:370px;max-width:92vw;z-index:6;background:var(--card);border:1px solid var(--line2);border-radius:12px;padding:12px;box-shadow:0 14px 44px rgba(0,0,0,.55);line-height:1.45;white-space:normal;text-align:left}
.wfb{margin-top:10px}.wfb.wait{background:rgba(245,197,66,.08);border-color:rgba(245,197,66,.5)}
@media (max-width:980px){.lyr{grid-template-columns:26px 120px minmax(0,1fr)}.edlayers{max-height:none}}
/* 2.8: trình Edit — khung tự co giãn, thanh lớp kiểu CapCut (chọn / dao cắt, khối phụ đề, đoạn cắt bỏ), phím tắt */
.edvid{position:absolute;left:0;top:0;width:2px;height:2px;opacity:0;pointer-events:none}
.edstage{min-height:0}
.edview{flex:1 1 auto;min-height:0;width:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}
.edhint{margin:4px 0 0;text-align:center}
.edlayers{max-height:38vh;display:flex;flex-direction:column}
.ltool{padding:0 0 6px;gap:6px}
.ltool .tl.on{background:rgba(255,122,26,.18);border-color:var(--orange);color:var(--accent)}
.ltool .vsep{width:1px;height:18px;background:var(--line2);margin:0 2px}
.lscroll{overflow:auto;flex:1 1 auto;min-height:0;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.lyrs{position:relative;min-width:100%;width:calc(216px + (100% - 216px) * var(--z, 1));padding-bottom:2px}
.lyr{grid-template-columns:216px minmax(0,1fr)!important;gap:0!important;height:28px}
.lyr .lh{position:sticky;left:0;z-index:4;background:var(--panel);display:flex;align-items:center;gap:4px;height:100%;padding-right:6px;border-right:1px solid var(--line)}
.lyr.on .lh{background:#2a2016}
.lyr .trk{margin:0 6px}
.lyrs.blade .trk{cursor:crosshair}
.lyr .sblk{position:absolute;top:2px;bottom:2px;border-radius:4px;background:rgba(255,193,77,.26);border:1px solid rgba(255,193,77,.7);overflow:hidden;cursor:grab;min-width:6px;font-size:10.5px;line-height:13px;color:var(--text);white-space:nowrap;padding:0 6px}
.lyr .sblk span{pointer-events:none;display:block;overflow:hidden;text-overflow:ellipsis}
.lyr .sblk.on{background:rgba(255,122,26,.45);border-color:var(--orange);z-index:2}
.lyr .sblk.new{border-style:dashed}
.lyr .sblk .hd{position:absolute;top:0;bottom:0;width:6px;cursor:ew-resize}.lyr .sblk .hd.l{left:0}.lyr .sblk .hd.r{right:0}
.lyr .sblk .hd:hover{background:rgba(255,255,255,.35)}
.lyr .clip{position:absolute;top:2px;bottom:2px;border-radius:4px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);font-size:10px;color:var(--red);text-align:center;line-height:13px;overflow:hidden}
.lyr .clip.on{border-color:var(--orange);background:rgba(255,122,26,.2)}
.lyr .clip.cut{background:repeating-linear-gradient(45deg,rgba(255,92,92,.25) 0 6px,rgba(255,92,92,.08) 6px 12px);border-color:rgba(255,92,92,.7)}
.lyr .rl .cutmark{position:absolute;top:12px;height:4px;background:var(--red);border-radius:2px}
.edprompt{position:absolute;inset:0;z-index:70;background:rgba(0,0,0,.55);display:flex;align-items:flex-start;justify-content:center;padding-top:12vh}
.edprompt .card{width:100%;max-width:460px;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.edprompt textarea{margin-top:6px}
.edkeys .kbtn{min-width:90px;font-family:var(--mono)}
.edkeys.rec .kbtn{opacity:.6}
/* 2.8: bước ① quét sub · bảng câu (chọn dòng, giờ sửa được, bật / tắt lồng) */
.ocrbox{position:relative;line-height:0;background:#000;border-radius:8px;overflow:hidden;user-select:none}
.ocrbox img{width:100%;display:block;min-height:120px}
.ocrrg{position:absolute;border:2px solid var(--orange);background:rgba(255,122,26,.12);cursor:move;touch-action:none;box-shadow:0 0 0 9999px rgba(0,0,0,.35)}
.ocrrg span{position:absolute;left:4px;top:3px;font-size:11px;line-height:1;color:#fff;background:rgba(0,0,0,.55);padding:2px 5px;border-radius:4px;pointer-events:none}
.ocrrg i{position:absolute;width:12px;height:12px;background:var(--orange);border-radius:3px}
.ocrrg i[data-h=nw]{left:-7px;top:-7px;cursor:nwse-resize}.ocrrg i[data-h=ne]{right:-7px;top:-7px;cursor:nesw-resize}
.ocrrg i[data-h=sw]{left:-7px;bottom:-7px;cursor:nesw-resize}.ocrrg i[data-h=se]{right:-7px;bottom:-7px;cursor:nwse-resize}
#ocr_boxes i{position:absolute;border:1px solid rgba(61,214,140,.9);pointer-events:none}
td.tmcell .cell.tm{min-height:0;padding:2px 4px;font-family:var(--mono);font-size:11.5px;width:100%;display:block;resize:none;margin-bottom:2px}
table.t tr.skip td{opacity:.62}
table.t tr.skip td.st{opacity:1}
.dubsw{display:inline-flex;align-items:center;gap:5px;cursor:pointer;font-size:12px;font-weight:600}
.dubsw input{accent-color:var(--green);width:15px;height:15px}
tr.skip .dubsw span{color:var(--yellow)}
.amode{align-items:flex-start;line-height:1.35}
.amode input{margin-top:2px}
.card.vstar{border-color:rgba(245,197,66,.6);box-shadow:inset 0 0 0 1px rgba(245,197,66,.25)}
/* 2.9 — Đọc văn bản chuyên nghiệp */
.ttsx{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:14px;align-items:start}
.ttsx-side{display:flex;flex-direction:column;gap:12px;position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto;padding-right:2px}
.ttsx-side .card{padding:14px}.ttsx-side h3{font-size:14px}
@media(max-width:1180px){.ttsx{grid-template-columns:minmax(0,1fr)}.ttsx-side{position:static;max-height:none;overflow:visible}}
.ttool{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin:8px 0 6px}
.vsep{width:1px;height:18px;background:var(--line2);margin:0 4px}
.ttext{font-size:15px;line-height:1.65;min-height:300px;resize:vertical}
.psl{grid-template-columns:118px minmax(0,1fr) 48px}.psl b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.psl input.dim{opacity:.35}
.sents{display:flex;flex-direction:column;gap:2px;margin-top:6px;max-height:460px;overflow:auto;padding-right:2px}
.sent{display:flex;align-items:flex-start;gap:6px;padding:5px 6px;border-radius:8px;border:1px solid transparent}
.sent:hover{background:var(--elev)}.sent.on{border-color:var(--orange);background:rgba(255,122,26,.08)}
.sent.title .st{font-weight:700;color:var(--accent)}.sent.busy{opacity:.5;pointer-events:none}
.sent .stx{flex:1 1 auto;min-width:0}.sent .st{font-size:13px;line-height:1.45;white-space:normal;overflow-wrap:anywhere}.sent>.btn{flex:0 0 auto}.sent .sm{font-size:11px;color:var(--dim);margin-top:1px}
.sent textarea{width:100%;font-size:13px}
/* ===== 3.0 KEY REVIEW ===== */
.nav a.nav-az .ic{color:var(--orange)}
.nav a.nav-az:not(.on){color:var(--text)}
/* 3.6: menu 2 tầng — KEY (workflow chính, IN HOA) trên nền nổi bật · tiện ích phụ trên nền phụ */
.nav-cap{font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:var(--dim);padding:6px 10px 2px;font-weight:700}
.nav-keys{margin:8px 0 10px;padding:4px 4px 6px;border-radius:12px;background:linear-gradient(165deg,rgba(255,122,26,.22),rgba(255,122,26,.05) 70%);border:1px solid rgba(255,122,26,.38);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.nav-keys .nav-cap{color:var(--accent)}
.nav-keys a{font-weight:800;letter-spacing:.5px;font-size:12.5px;color:var(--text);text-transform:uppercase}
.nav-keys a .ic{color:var(--orange)}
.nav-keys a.on{background:var(--orange);color:#14100B}
.nav-keys a.on .ic{color:#14100B}
.nav-sub{padding:2px 4px 6px;border-radius:12px;background:rgba(255,255,255,.025);border:1px solid var(--line)}
.nav-sub a{font-size:13px}
/* 5.0.9 📁 thư mục WORKFLOW (mọi Key + Tiện ích) / 🎥 FXANIM: gập sẵn, bấm mới mở */
.nav-folder{margin:8px 0}
.nav-fold{display:flex;align-items:center;gap:10px;width:100%;padding:11px 10px;border-radius:11px;border:1px solid rgba(255,122,26,.42);background:linear-gradient(165deg,rgba(255,122,26,.22),rgba(255,122,26,.05) 75%);color:var(--text);font:inherit;font-weight:800;font-size:13px;letter-spacing:.8px;text-transform:uppercase;cursor:pointer;text-align:left;box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.nav-fold:hover{border-color:rgba(255,122,26,.7)}
.nav-fold:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.nav-fold .ic{width:20px;text-align:center;color:var(--orange)}
.nav-fold .lb{flex:1}
.nav-fold .chev{font-style:normal;font-size:11px;opacity:.8;transition:transform .18s}
.nav-folder.open .nav-fold .chev{transform:rotate(90deg)}
.nav-fold-body{display:none;padding-top:2px}
.nav-folder.open .nav-fold-body{display:block}
.nav-folder.open .nav-fold-body .nav-keys{margin-top:6px}
.nav-folder.fx .nav-fold{border-color:rgba(91,141,239,.48);background:linear-gradient(165deg,rgba(91,141,239,.22),rgba(91,141,239,.05) 75%)}
.nav-folder.fx .nav-fold:hover{border-color:rgba(91,141,239,.8)}
.nav-folder.fx .nav-fold .ic{color:#8fb0ff}
.nav-fx{margin-top:6px}
.nav-out{margin-top:8px;padding:2px 4px}
.nav-out a{font-size:13px}
/* trang Key: nền đặc biệt hơn + bước workflow chính IN HOA, tính năng phụ (details / tiện ích) nền phụ */
.content.key-page{background:radial-gradient(1200px 380px at 12% -10%,rgba(255,122,26,.10),transparent 60%),radial-gradient(900px 300px at 95% 0%,rgba(186,120,255,.07),transparent 60%)}
.key-page .stepper a,.key-page .rv-fstep{text-transform:uppercase;letter-spacing:.4px}
.key-page .rv-az{border-color:rgba(255,122,26,.5);box-shadow:0 0 0 1px rgba(255,122,26,.12),0 10px 30px -18px rgba(255,122,26,.6)}
.key-page details.card,.key-page .rv-ocrd,.key-page .wf-sub{background:rgba(255,255,255,.02);border-style:dashed}
.key-hub{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.key-card{position:relative;overflow:hidden;border:1px solid rgba(255,122,26,.35);background:linear-gradient(160deg,rgba(255,122,26,.14),var(--card) 60%)}
.key-card h3{margin:0 0 4px;text-transform:uppercase;letter-spacing:.6px;font-size:15px}
.key-card .ksteps{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0}
.key-card .ksteps span{font-size:10.5px;text-transform:uppercase;letter-spacing:.3px;padding:3px 7px;border-radius:6px;background:rgba(255,122,26,.12);border:1px solid rgba(255,122,26,.3);color:var(--accent);font-weight:700}
.key-card .ksub{font-size:11.5px;color:var(--muted)}
.key-card .kbig{font-size:34px;position:absolute;right:12px;top:8px;opacity:.15}
.rv-flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:2px 0 12px}
.rv-fstep{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid var(--line2);border-radius:999px;background:var(--card);font-size:12px;font-weight:600;color:var(--muted)}
.rv-fstep b{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--elev);color:var(--text);font-size:11px}
.rv-fstep.az{border-color:rgba(255,122,26,.55);color:var(--accent)}.rv-fstep.az b{background:var(--orange);color:#14100B}
.rv-arrow{color:var(--dim);font-weight:700}
.rv-ocrd{margin-bottom:12px}.rv-ocrd>summary{cursor:pointer;padding:10px 14px;border:1px solid var(--line2);border-radius:12px;background:var(--card);font-size:13px;font-weight:600;color:var(--muted)}.rv-ocrd[open]>summary{margin-bottom:8px}.rv-ocrd>.card{margin-bottom:0}
.rv-az{border:1px solid rgba(255,122,26,.55);background:linear-gradient(135deg,rgba(255,122,26,.14),rgba(255,122,26,.03) 55%,var(--card));box-shadow:0 0 0 1px rgba(255,122,26,.08),0 10px 30px rgba(255,122,26,.07)}
.rv-az h2{font-family:var(--disp);font-size:20px;letter-spacing:.2px}
.btn.rv-go{font-size:15px;padding:11px 24px;border-radius:11px;box-shadow:0 6px 18px rgba(255,122,26,.28)}
.rv-key{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px}
.rv-key .help{line-height:1.55}
.rv-layers .rv-layer{display:grid;grid-template-columns:minmax(150px,210px) minmax(0,1fr) 48px 34px;gap:4px 10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r);margin-top:6px;background:var(--panel)}
.rv-layers .rv-layer.on{border-color:rgba(255,122,26,.5);background:rgba(255,122,26,.06)}
.rv-layers .rv-layer input[type=range]{width:100%;accent-color:var(--orange);margin:0}
.rv-layers .rv-layer input[type=range]:disabled{opacity:.35}
.rv-layers .rv-layer .v{text-align:right;font-family:var(--mono);font-size:11px;color:var(--accent)}
.rv-layers .rv-layer:not(.on) .v{color:var(--dim)}
.rv-layers .rv-ldesc{grid-column:1/-1;margin:0}
.rv-savekey{border-color:rgba(61,214,140,.35)}
.notice.ok{background:rgba(61,214,140,.08);border-color:rgba(61,214,140,.4)}
@media(max-width:760px){.rv-layers .rv-layer{grid-template-columns:minmax(0,1fr) 48px 34px}.rv-layers .rv-layer input[type=range]{grid-column:1/-1;grid-row:2}.rv-flow{gap:6px}.btn.rv-go{width:100%}}
/* ===== 3.1 KEY DRAMA ===== */
.row.wrap{flex-wrap:wrap}
.help.y{color:var(--yellow)}
.dsheet{white-space:pre-wrap;font-family:var(--mono);font-size:11.5px;line-height:1.55;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px;max-height:62vh;overflow:auto;color:var(--text-2)}
.dscenes td .cell{min-height:44px;font-size:12.5px;resize:vertical}
.dscenes .cell.mono{font-family:var(--mono);font-size:11px}
.dscenes .in.sm{height:auto}
.dchars{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:10px}
.dchar{border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--panel)}
.dnarr{margin-top:12px}
.drefs{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;align-items:center}
.dref{position:relative;line-height:0}
.dref img{width:64px;height:64px;object-fit:cover;border-radius:8px;border:1px solid var(--line);display:block;background:#0a0b0d}
.drefs.big .dref img{width:118px;height:118px}
.dref .btn.xs.danger{position:absolute;top:-7px;right:-7px;height:20px;padding:0 6px;border-radius:999px;line-height:18px}
.dupl{cursor:pointer;display:inline-flex}
.dclips{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.dclip{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel);display:flex;flex-direction:column}
.dclip-v{background:#0a0b0d;min-height:90px;display:flex}
.dclip-v video{width:100%;display:block;max-height:210px;background:#000}
.dclip-v .drop{border:none;border-radius:0;width:100%;min-height:110px;margin:0}
.dclip-b{padding:8px 10px;display:flex;flex-direction:column;gap:4px}
/* 3.6 Key Phim — ảnh khung cảnh + render AI từng cảnh */
.dscenes{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:12px}
.dscene{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel);display:flex;flex-direction:column}
.dscene.done{border-color:rgba(61,214,140,.45)}
.dscene-img{position:relative;background:#0a0b0d;min-height:120px;display:flex;align-items:center;justify-content:center}
.dscene-img img{width:100%;display:block;max-height:220px;object-fit:cover}
.dscene-ph{color:var(--dim);font-size:12px;padding:30px 10px;text-align:center}
.dscene-b{position:absolute;top:6px;left:6px}
.dscene-pick{position:absolute;bottom:6px;right:6px;display:flex;gap:3px}
.dscene-b2{padding:8px 10px;display:flex;flex-direction:column;gap:2px}
.dscene-p{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.dline{font-style:italic;color:var(--text-2);font-size:12.5px}
@media(max-width:760px){.dchars,.dclips{grid-template-columns:minmax(0,1fr)}#tbl.dscenes,.dscenes{min-width:640px}}
/* ===== 3.2 KEY NEWS ===== */
.pill-tabs.sub a{font-size:11.5px;padding:4px 10px}
.in.xs{height:26px;padding:2px 6px;width:58px;font-size:12px}
.chk.sm{font-size:12px}
.kb-stat{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:12.5px;color:var(--text-2);line-height:1.7}
.nw-foot{margin-top:14px;border-top:1px dashed var(--line2);padding-top:12px}
.nw-foot .btn.p{box-shadow:0 4px 14px rgba(255,122,26,.22)}
.nw-srcs{margin-top:8px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 10px;max-height:150px;overflow:auto}
.nw-doc{display:block;font-size:12.5px;padding:2px 0}
.nw-media{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:10px}
.nw-item{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel);display:flex;flex-direction:column}
.nw-thumb{position:relative;background:#0a0b0d;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center}
.nw-thumb img,.nw-thumb video{width:100%;height:100%;object-fit:cover;display:block}
.nw-miss{color:var(--dim);font-size:22px}
.nw-kind{position:absolute;top:4px;left:4px;background:rgba(0,0,0,.6);border-radius:6px;padding:1px 5px;font-size:12px}
.nw-ib{padding:6px 8px;display:flex;flex-direction:column;gap:5px}
.nw-name{font-size:11.5px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nw-mini{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--muted)}
.nw-mv{display:flex;gap:3px;justify-content:flex-end}
.nw-trans{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.nw-tr{border:1px solid var(--line2);border-radius:999px;padding:5px 11px;font-size:12px;cursor:pointer;color:var(--muted);background:var(--panel)}
.nw-tr.on{border-color:var(--orange);color:var(--accent);background:rgba(255,122,26,.08)}
.nw-tr input{display:none}
.nw-units{display:flex;flex-direction:column;gap:6px;margin-top:8px;max-height:60vh;overflow:auto}
.nw-unit{display:grid;grid-template-columns:34px 1fr auto;gap:8px;align-items:center;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.nw-un{font-family:var(--mono);font-size:11px;color:var(--dim);text-align:center}
.nw-ut{font-size:12.5px;resize:vertical;min-height:38px}
.nw-ua{display:flex;align-items:center;gap:5px}
.nw-auto{margin-top:10px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px;border:1px solid rgba(255,122,26,.4);border-radius:10px;background:rgba(255,122,26,.05)}
.nw-keys{margin-top:8px;display:flex;flex-direction:column;gap:5px}
.nw-key{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 9px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-size:12.5px}
@media(max-width:760px){.nw-media{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.nw-unit{grid-template-columns:28px 1fr;grid-auto-rows:auto}.nw-ua{grid-column:1/-1;justify-content:flex-end}}

/* ===== 3.3 KEY NEWS: timeline câu ↔ ảnh ↔ giọng · kho học dịch · bảng gốc↔dịch ===== */
.in.xs.w{width:auto;max-width:130px}
.nw-tbl td .cell{min-height:40px;font-size:12.5px;resize:vertical}
.nw-tbl .cell.dirty{border-color:var(--yellow)}
.nw-pairs{display:flex;flex-direction:column;gap:6px;max-height:52vh;overflow:auto;margin-top:6px}
.nw-pair{display:grid;grid-template-columns:1fr auto;gap:2px 8px;padding:6px 9px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-size:12px}
.nw-pair .s{color:var(--muted);grid-column:1}.nw-pair .t{color:var(--text);grid-column:1}.nw-pair .btn{grid-column:2;grid-row:1/3;align-self:center}
.nw-span{position:absolute;right:4px;bottom:4px;background:rgba(0,0,0,.6);border-radius:6px;padding:1px 5px;font-size:10px;font-family:var(--mono)}
.nw-item{--hue:calc(var(--c,0) * 55);border-left:3px solid hsl(var(--hue) 70% 55%)}
.nw-item.flash{box-shadow:0 0 0 2px var(--orange)}
.nw-tl{margin-top:8px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.nw-tlrow{display:grid;grid-template-columns:64px 1fr;gap:8px;align-items:center;margin:4px 0}
.nw-tll{font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.5px}
.nw-tlt{position:relative;height:30px;background:var(--bg);border-radius:6px;overflow:hidden}
.nw-tlm,.nw-tlu{position:absolute;top:2px;bottom:2px;border-radius:4px;font-size:11px;line-height:26px;padding:0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;box-sizing:border-box}
.nw-tlm{--hue:calc(var(--c,0) * 55);background:hsl(var(--hue) 60% 30%);border:1px solid hsl(var(--hue) 70% 55%);color:#fff}
.nw-tlu{background:rgba(255,122,26,.16);border:1px solid rgba(255,122,26,.45);color:var(--accent);text-align:center;padding:0 2px}
.nw-tlu.on{background:rgba(255,122,26,.45);color:#fff}
/* 3.6 Key News: dải dòng (timeline) + bảng nội dung có công cụ */
.nw-strip{margin-top:8px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.nw-stript{position:relative;height:26px;background:var(--bg);border-radius:6px;overflow:hidden}
.nw-lb{position:absolute;top:2px;bottom:2px;border-radius:3px;font-size:10px;line-height:22px;text-align:center;overflow:hidden;cursor:pointer;box-sizing:border-box;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.08);color:var(--muted)}
.nw-lb.rec-ok{background:rgba(61,214,140,.22);border-color:rgba(61,214,140,.5);color:#cfead9}
.nw-lb.rec-changed{background:rgba(255,200,60,.22);border-color:rgba(255,200,60,.6);color:#ffe7a3}
.nw-lb.on{background:rgba(255,122,26,.55);border-color:var(--orange);color:#fff}
.nw-lb:hover{filter:brightness(1.25)}
.nw-lg{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:middle;margin:0 2px 0 6px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2)}
.nw-lg.ok{background:rgba(61,214,140,.35);border-color:rgba(61,214,140,.6)}
.nw-lg.changed{background:rgba(255,200,60,.35);border-color:rgba(255,200,60,.7)}
.nw-ltool{margin:8px 0 6px;gap:6px}
.nw-la{white-space:nowrap}
.nw-la .btn{padding:2px 5px;margin-right:2px}
.nw-tbl tr.on td{background:rgba(255,122,26,.08)}
.nw-tbl tr.rec-changed td.num{color:#ffd166}
.nw-tbl tr.flash td{animation:nwflash 1.2s ease-out}
.nw-tbl .lsel,#ct_all{accent-color:var(--orange);width:15px;height:15px;cursor:pointer}
@keyframes nwflash{from{background:rgba(255,122,26,.35)}to{background:transparent}}
.help .y,.y{color:#ffd166}
.nw-ph{position:absolute;top:0;bottom:0;width:2px;background:#fff;left:0;pointer-events:none;box-shadow:0 0 6px rgba(255,255,255,.8)}
.nw-unit .nw-un{line-height:1.2}
@media(max-width:760px){.nw-tlrow{grid-template-columns:48px 1fr}.nw-tll{font-size:9px}}
/* ===== 3.3.1 Model AI (Key News) ===== */
.nw-ai{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:flex-end;margin-top:8px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
/* ===== 3.4 🌐 Dịch chuẩn dùng chung (Key Review · Key Drama · Key News): 🧠 Model AI + ⚙️ nhà cung cấp + lời gốc ===== */
.ai-adv{margin-top:6px}
.ai-adv>summary{cursor:pointer;padding:2px 0}
.rv-dich textarea#t_req{min-height:38px;height:38px}
.rv-dich textarea#t_req:focus{min-height:70px}
.dsrc{margin-top:3px;font-size:11.5px;color:var(--muted);font-style:italic;overflow-wrap:anywhere}
.lnk{color:var(--accent);cursor:pointer;font-weight:600}
.lnk:hover{text-decoration:underline}

/* ===== 3.7 TỔNG QUẢN LÝ (Fanpage) ===== */
.nw-tbl tr.dirty td{background:rgba(255,209,102,.07)}
.nw-tbl tr[draggable]{cursor:default}
.link{color:var(--accent);cursor:pointer;text-decoration:underline dotted}

/* ===== 3.8 quyền theo vai: Key khoá (xám) · sắp ra mắt · trang khoá ===== */
.nav a.locked{opacity:.45;filter:grayscale(1)}.nav a.locked:hover{opacity:.7}.nav a.locked i,.nav .soon i{font-style:normal;font-size:10px;margin-left:auto;opacity:.9}
.nav a i.try{font-style:normal;font-size:10px;margin-left:auto;padding:0 5px;border-radius:8px;background:rgba(245,158,11,.18);color:#f59e0b}
.nav .soon{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:9px;color:var(--muted);opacity:.4;cursor:not-allowed;font-size:13.5px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}
.nav .soon .ic{width:20px;text-align:center}.nav .soon i{border:1px solid var(--line2);border-radius:5px;padding:0 5px;text-transform:none;font-weight:500;letter-spacing:0}
.lockcard{text-align:center;padding:40px 20px;max-width:720px;margin:24px auto}.lockcard .lockic{font-size:46px}
.key-card.locked{opacity:.5;filter:grayscale(.9)}.key-card.soon{opacity:.4;filter:grayscale(1);pointer-events:none}
.btn.locked{opacity:.45;filter:grayscale(1)}.card.locked{opacity:.55;filter:grayscale(.9)}.card.locked:hover{opacity:.75}
.pricebox{border:1px dashed rgba(255,122,26,.45);border-radius:10px;padding:10px 12px;background:rgba(255,122,26,.05)}
/* 3.9 🎧 bảng xem & nghe thử âm thanh gốc (hình + trộn lớp trực tiếp) */
.mx .mx-v{margin-top:10px;background:#000;border-radius:10px;overflow:hidden;display:flex;justify-content:center}
.mx .mx-v video{display:block;width:100%;max-height:52vh;background:#000}
.mx .mx-tr{display:grid;gap:6px;margin-top:10px}
.mx .rv-layer{display:grid;grid-template-columns:minmax(150px,230px) minmax(0,1fr) 48px auto;gap:4px 10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r,10px)}
.mx .rv-layer.on{border-color:rgba(255,122,26,.5);background:rgba(255,122,26,.06)}
.mx .rv-layer.focus{box-shadow:0 0 0 1px var(--accent) inset}
.mx .rv-layer input[type=range]{width:100%;accent-color:var(--orange);margin:0}
.mx .rv-layer .v{text-align:right;font-family:var(--mono);font-size:11px;color:var(--accent)}
.mx [data-msolo].on{background:var(--accent);color:#14100B;border-color:var(--accent)}
@media (max-width:640px){.mx .rv-layer{grid-template-columns:1fr 1fr 44px auto}.mx .rv-layer label{grid-column:1/-1}}
/* 3.9 tab 💬 Sub: ô kiểu sub vẽ bằng canvas (giống mục ART của CapCut) + danh sách font hiện đúng mặt chữ */
.subtiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:6px;max-height:252px;overflow:auto;padding:2px 2px 4px}
.subtile{display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 3px 4px;border:1px solid var(--line2);border-radius:9px;background:#2B3440;color:var(--muted);font-size:11px;font-family:var(--font);cursor:pointer;line-height:1.2;min-width:0}
.subtile:hover{border-color:var(--dim);color:var(--text)}
.subtile.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);color:var(--text)}
.subtile canvas{width:100%;max-width:112px;height:auto;aspect-ratio:112/50;display:block}
.subtile span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.fontlist{display:flex;flex-direction:column;max-height:200px;overflow:auto;border:1px solid var(--line2);border-radius:9px;background:var(--elev)}
.fontrow{display:flex;align-items:center;gap:8px;padding:6px 10px;font-size:18px;line-height:1.25;border:0;border-bottom:1px solid var(--line);background:none;color:var(--text);cursor:pointer;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fontrow:last-child{border-bottom:0}
.fontrow:hover{background:rgba(255,255,255,.04)}
.fontrow.on{background:rgba(255,122,26,.14);color:var(--accent)}
.fontrow i{margin-left:auto;font-style:normal;font-size:10px;color:var(--dim);font-family:var(--font);flex:0 0 auto}
.subfx{margin-top:8px;padding:8px;border:1px dashed var(--line2);border-radius:9px}
.fontprev{display:inline-block;line-height:1.3;white-space:nowrap}
/* 4.0 Thu âm theo file SRT + bộ canh lời */
.srtbox{max-height:300px;overflow:auto;margin-top:6px;border:1px solid var(--line);border-radius:8px}
.srtbox table.t td{padding:5px 8px;font-size:12.5px}.srtbox table.t th{padding:6px 8px}
.srtbox tr.bad td{background:rgba(255,92,92,.07)}
.sent.gd{border-color:rgba(255,92,92,.35)}
#t_jobcard:not(:has(.log div)):has(.hidden){display:none}   /* chưa có việc thu âm nào → ẩn khung tiến trình + nhật ký */

/* 4.2 🤖 FXCINE AI */
.fx-est{font-weight:500;opacity:.8;font-size:11px}
.fx-budget{display:inline-flex;align-items:center;gap:6px;background:var(--card);border:1px solid var(--line2);border-radius:20px;padding:4px 10px;font-size:12px}
.fx-best{padding:6px 0;border-top:1px solid var(--line)}.fx-best:first-of-type{border-top:0}
.fx-trend{border:1px solid var(--line);border-radius:var(--r);padding:8px 10px;margin-top:8px;background:var(--bg)}
.fx-formula{border:1px solid rgba(255,122,26,.4);border-radius:var(--r);padding:8px 10px;margin-top:10px;background:rgba(255,122,26,.06)}
.fx-out{padding:6px 0;border-top:1px solid var(--line)}
.fx-eps{display:flex;gap:4px;flex-wrap:wrap;margin:2px 0}
.fx-eps a{padding:5px 10px;border:1px solid var(--line2);border-radius:8px;background:var(--card);color:var(--muted);font-weight:600;font-size:12px}
.fx-eps a:hover{text-decoration:none;color:var(--text)}.fx-eps a.on{border-color:var(--orange);color:var(--accent);background:rgba(255,122,26,.1)}
.fx-eps a i{font-style:normal;margin-left:4px;font-size:11px;opacity:.8}.fx-eps a i.g{color:var(--green)}.fx-eps a i.r{color:var(--red)}
.fx-shot{border:1px solid var(--line);border-radius:var(--r);padding:10px;margin-top:8px;background:var(--bg)}
.fx-beats{width:100%;border-collapse:collapse;font-size:13px}
.fx-beats td{padding:5px 6px;border-top:1px solid var(--line);vertical-align:top}
.fx-beats td.tm{width:70px;font-family:var(--mono);font-size:11.5px;color:var(--accent);white-space:nowrap}
.fx-beats td.bd{width:62px;text-align:right;font-family:var(--mono);font-size:11.5px;color:var(--muted);white-space:nowrap}
.fx-beats td.bd.red{color:var(--red);font-weight:700}
.fx-ln{margin-top:3px;padding-left:10px;border-left:2px solid var(--line2);font-size:12.5px}
.fx-ln .vi{display:block;color:var(--dim);font-size:11.5px}
.fx-iss{margin-top:6px}
.fx-up{margin-top:6px;font-size:12px;color:var(--text);background:rgba(90,169,255,.08);border:1px solid rgba(90,169,255,.3);border-radius:8px;padding:5px 8px}
.fx-refs{border:1px dashed var(--line2);border-radius:var(--r);padding:8px 10px;margin:8px 0}.fx-refs summary{cursor:pointer}
.fx-ref{margin-top:8px}
.fx-edrow{border:1px solid var(--line);border-radius:var(--r);padding:8px;margin-top:8px;background:var(--bg)}
/* 4.3 🔁 đồng bộ voice ↔ sub ↔ video */
.sync-card{padding:10px 12px}.sync-card.ok{border-color:rgba(70,200,120,.45)}.sync-card.warn{border-color:rgba(255,196,0,.5)}.sync-card.bad{border-color:rgba(255,90,90,.55)}.sync-card.nat{border-style:dashed}
.sync-bar{display:flex;height:6px;border-radius:4px;overflow:hidden;background:var(--line);margin-top:8px}.sync-bar span{display:block;min-width:0}.sync-bar .g{background:#3fbf7f}.sync-bar .b{background:#4c9ffe}.sync-bar .y{background:#f0b429}.sync-bar .r{background:#ef5350}
.sync-t tr.bad td{background:rgba(239,83,80,.10)}.sync-t tr.warn td{background:rgba(240,180,41,.10)}
.sync-opts{border:1px dashed var(--line2);border-radius:var(--r);padding:4px 10px}.sync-opts .f span{font-size:11px}
.fx-cont{border:1px solid rgba(90,169,255,.3);background:rgba(90,169,255,.08);border-radius:var(--r);padding:8px 10px;margin:0 0 8px}.fx-cont .help{margin:4px 0 0}
.fx-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:12px}
.fx-tile{text-align:center}.fx-tile .n{font-size:26px;font-weight:800;color:var(--accent);font-family:var(--disp)}
tr.fx-off td{opacity:.45}
@media(max-width:760px){.fx-lnrow{flex-wrap:wrap!important}.fx-beats td.tm{width:54px}}
#fx_job:not(:has(.log div)):has(#fx_prog.hidden){display:none}   /* chưa có việc Claude nào → ẩn khung tiến trình + nhật ký */

/* 4.5 📱 Reel truyện (RJ Cliffhanger) */
.rj-pre{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;font-family:var(--mono);font-size:12px;line-height:1.45;color:var(--text);white-space:pre-wrap;overflow:auto;margin:6px 0 0}
.rj-iss{margin-top:6px;display:grid;gap:4px}.rj-iss div{padding:4px 8px;border-radius:6px;background:var(--bg);border:1px solid var(--line)}
.rj-steps{padding-left:20px;line-height:1.55;font-size:13px}.rj-steps li{margin-bottom:8px}
.rj-card{border-color:rgba(255,122,26,.45)}
.rj-top .card h3{margin-top:0}
@media(max-width:900px){.rj-top{grid-template-columns:1fr}}
#rj_job:not(:has(.log div)):has(#rj_prog.hidden){display:none}   /* chưa có việc Claude API nào → ẩn khung tiến trình */

/* ---------- 4.7.7 💾 bộ nhớ tài khoản */
.st-pill{display:flex;flex-direction:column;gap:5px;margin-top:10px;color:var(--muted);text-decoration:none}
.st-pill:hover{text-decoration:none;color:var(--text)}
.st-pill .st-t{display:flex;justify-content:space-between;gap:6px;font-size:12px}.st-pill .st-t b{font-family:var(--mono);font-weight:500;color:var(--text)}
.stm{height:6px;background:var(--elev);border-radius:4px;overflow:hidden;border:1px solid var(--line)}
.stm>i{display:block;height:100%;background:var(--green);border-radius:4px;transition:width .3s}
.stm.warn>i{background:var(--yellow)}.stm.full>i{background:var(--red)}
.stm.big{height:12px;border-radius:7px}.stm.big>i{border-radius:7px}
.stbar{margin:14px 24px 0;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;max-width:1392px}
.stbar.hidden{display:none}
@media(max-width:900px){.stbar{margin:10px 12px 0}}
.st-sum{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.st-sum .v{font-family:var(--mono);font-size:26px;font-weight:600;color:var(--text);line-height:1}
.st-sum .v.full{color:var(--red)}.st-sum .v.warn{color:var(--yellow)}
.st-cats{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.st-cat{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid var(--line2);background:var(--elev);font-size:12px;color:var(--text);cursor:pointer;font-family:var(--font)}
.st-cat b{font-family:var(--mono);font-weight:500;color:var(--muted)}
.st-cat.on{border-color:var(--orange);background:rgba(255,122,26,.14);color:var(--accent)}.st-cat.on b{color:var(--accent)}
.st-cat.ro{cursor:default;opacity:.85}
a.st-cat:hover{text-decoration:none;border-color:#3a4049}
.st-list td.sz{font-family:var(--mono);white-space:nowrap;text-align:right}
.st-list tr.busy td{opacity:.6}
.st-list td .help{word-break:break-all}
.st-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px}
.st-tools .in{max-width:260px}
.st-mini{display:flex;flex-direction:column;gap:4px;min-width:120px}
.st-mini .stm{height:5px}

/* 4.8 💳 Nạp tiền + 💬 hỗ trợ (thanh bên, hộp nạp) */
.sb-act{margin-top:10px;gap:8px;align-items:center}.sb-act .sb-topup{flex:1;justify-content:center;text-align:center}
.sb-tele{display:block;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line2);color:var(--muted);font-size:12px}.sb-tele b{color:var(--accent)}
.sb-tele:hover{color:var(--text);text-decoration:none}
.tp-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:18px;align-items:start}
.tp-pay{border:1px solid var(--line2);border-radius:var(--r2);padding:12px;background:var(--elev)}
.tp-qr{text-align:center}.tp-qr svg,.tp-qr img{width:100%;max-width:240px;height:auto;background:#fff;border-radius:10px;padding:6px;display:block;margin:0 auto 6px}
.tp-kv{grid-template-columns:110px minmax(0,1fr);margin-top:8px}.tp-kv>span{color:var(--muted)}.tp-kv>b{color:var(--text);font-weight:600}
@media (max-width:760px){.tp-grid{grid-template-columns:1fr}}

/* 4.8 trang đầu Key: cột phải 🎬 video mẫu + 📊 số liệu · 🔒 Key khoá xem được trang đầu (xám, không bấm được) */
.kh-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}
.kh-main{min-width:0}.kh-side{position:sticky;top:12px;display:flex;flex-direction:column;gap:12px;min-width:0}
.kh-side .card{margin:0}
@media (max-width:1180px){.kh-grid{grid-template-columns:minmax(0,1fr)}.kh-side{position:static}}
.ks-vid{padding:8px 0;border-top:1px solid var(--line)}.ks-vid:first-of-type{border-top:0;padding-top:0}
.ks-vid video{width:100%;max-height:340px;background:#000;border-radius:10px;display:block;object-fit:contain}.ks-vid video.tall{max-height:460px}
.ks-t{font-size:13px;min-width:0;overflow-wrap:anywhere}
.ks-kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ks-k{border:1px solid var(--line2);border-radius:10px;padding:8px 10px;background:var(--elev)}.ks-k b{display:block;font-family:var(--disp);font-size:20px;color:var(--accent);line-height:1.15}
.ks-k span{font-size:11px;color:var(--muted)}
.kp-banner{display:flex;gap:10px;align-items:flex-start;border:1px solid rgba(245,197,66,.45);background:rgba(245,197,66,.07);border-radius:var(--r2);padding:10px 14px;margin-bottom:12px;font-size:13px;line-height:1.5}
.kp-ic{font-size:20px;line-height:1}
.kp-main{filter:grayscale(.9);opacity:.62;pointer-events:none;user-select:none}
.kp-steps{margin:6px 0 0;padding-left:20px;color:var(--muted);font-size:13px;line-height:1.6}
/* nút ⚡ Tạo A–Z: chữ + biểu tượng nằm GIỮA nút (biểu tượng emoji không kéo lệch dòng chữ) */
.btn.rv-go{line-height:1;gap:8px;padding:12px 26px;min-height:44px}
.btn.rv-go .ic{display:inline-flex;align-items:center;justify-content:center;font-size:1.05em;line-height:1;height:1em}
.btn.rv-go>span:not(.ic){display:inline-block;line-height:1;text-box:trim-both cap alphabetic}
.rv-one{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0 2px;font-size:13px}
.rv-one span{padding:5px 10px;border-radius:999px;border:1px solid var(--line2);background:var(--elev)}.rv-one span.go{border-color:var(--orange);color:var(--accent);font-weight:700}
.rv-one i{font-style:normal;color:var(--dim)}

/* 4.8 📌 thanh việc: tên dự án + % · bấm mở lại dự án · ✨ mục vừa xong sáng lên tới khi bấm xem */
.jobbar .job.link{cursor:pointer}.jobbar .job.link:hover{border-color:var(--orange)}
.jobbar .job.here{opacity:.75}
.jobbar .jproj{color:var(--accent)}.jobbar .jpct{font-family:var(--mono);font-size:11px;color:var(--accent)}
.jobbar .jgo{float:right;color:var(--accent);font-weight:700}
@keyframes fxFresh{0%,100%{box-shadow:0 0 0 1px rgba(255,154,77,.55),0 0 14px rgba(255,122,26,.30)}50%{box-shadow:0 0 0 2px rgba(255,154,77,.9),0 0 26px rgba(255,122,26,.55)}}
.fresh{position:relative;animation:fxFresh 2.2s ease-in-out infinite;border-radius:10px;background-color:rgba(255,122,26,.07)}
tr.fresh{animation:none;box-shadow:none}tr.fresh td{background:rgba(255,122,26,.12)}tr.fresh td:first-child{box-shadow:inset 3px 0 0 var(--orange)}
.fresh::after{content:'✨ mới xong';position:absolute;top:6px;right:8px;font-size:10px;font-weight:700;color:#14100B;background:var(--orange);border-radius:6px;padding:1px 6px;pointer-events:none}
tr.fresh::after{display:none}tr.fresh td:first-child b::after{content:' ✨ mới xong';font-size:10px;color:var(--accent)}

/* 4.8 🌄 Tạo Ảnh */
.an-grid{align-items:start}
.an-chips{gap:4px}.an-chips .btn.on,.btn.xs.on{border-color:var(--orange);color:var(--accent);background:rgba(255,122,26,.12)}
.lbl{font-size:12px;font-weight:700;color:var(--muted);margin:6px 0 4px}
.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 4px 3px 3px;border:1px solid var(--line2);border-radius:999px;background:var(--elev);font-size:12px}.chip img{width:24px;height:24px;object-fit:cover;border-radius:50%}
.an-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.an-card{border:1px solid var(--line2);border-radius:12px;background:var(--elev);overflow:hidden;display:flex;flex-direction:column}
.an-th{display:block;background:#000;aspect-ratio:4/3}.an-th img{width:100%;height:100%;object-fit:contain;display:block}
.an-meta{padding:6px 8px 0;display:flex;flex-direction:column;gap:2px;min-width:0}.an-meta b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.an-acts{display:flex;flex-wrap:wrap;gap:4px;padding:6px 8px 8px}
.an-sgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.an-sr{border:1px solid var(--line2);border-radius:12px;padding:6px;background:var(--elev);display:flex;flex-direction:column;gap:4px}
.an-sr .an-th{border-radius:8px;overflow:hidden}.an-cap{min-height:32px;max-height:32px;overflow:hidden}
.an-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;max-height:60vh;overflow:auto}
.an-pk{padding:0;border:2px solid transparent;border-radius:10px;overflow:hidden;background:#000;cursor:pointer;aspect-ratio:1}.an-pk:hover{border-color:var(--orange)}.an-pk img{width:100%;height:100%;object-fit:cover;display:block}

/* 4.8 🖼 Thumbnail */
.th-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:14px;align-items:start;margin-top:12px}
@media (max-width:1100px){.th-grid{grid-template-columns:minmax(0,1fr)}}
.th-right{display:flex;flex-direction:column;gap:12px}.th-right .card{margin:0}
.th-stage{position:relative;width:100%;aspect-ratio:16/9;background:repeating-conic-gradient(#1b1d21 0% 25%,#15171a 0% 50%) 50%/24px 24px;border-radius:12px;overflow:hidden;cursor:crosshair;touch-action:none;max-height:70vh;margin:0 auto}
.th-stage img{width:100%;height:100%;object-fit:contain;display:block;user-select:none;-webkit-user-drag:none}
.th-busy{position:absolute;top:8px;right:8px;background:rgba(0,0,0,.6);border-radius:8px;padding:2px 8px;font-size:12px}
.th-quick{gap:4px;margin-top:8px}.th-cmd{gap:6px;margin-top:8px}.th-cmd .in{flex:1}
.th-frs{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.th-fr{position:relative;width:110px;border-radius:8px;overflow:hidden;background:#000;aspect-ratio:16/9}
.th-fr img{width:100%;height:100%;object-fit:cover;display:block}.th-fr .th-net{position:absolute;right:4px;top:3px;font-style:normal;font-size:12px;text-shadow:0 0 3px #000}
.th-pickv video,.th-pickv img{width:100%;max-height:58vh;aspect-ratio:auto 16 / 9;object-fit:contain;background:#000;border-radius:8px;display:block}.th-fr span{position:absolute;left:4px;bottom:4px;font-size:10px;background:rgba(0,0,0,.65);padding:0 4px;border-radius:4px}
.th-rng span b{color:var(--accent);font-weight:700;margin-left:4px}.th-rng input{width:100%}
.th-sw{display:flex;gap:3px;flex-wrap:wrap}.th-c{width:18px;height:18px;border-radius:5px;border:1px solid var(--line2);cursor:pointer;padding:0}
.th-fontpv{margin:4px 0 8px;padding:8px 10px;border:1px dashed var(--line2);border-radius:10px;font-size:22px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.th-opts{display:flex;flex-direction:column;gap:6px;margin-top:8px}.th-opt{text-align:left;border:1px solid var(--line2);border-radius:10px;background:var(--elev);padding:6px 8px;cursor:pointer;display:flex;flex-direction:column;gap:2px;color:var(--text)}.th-opt:hover{border-color:var(--orange)}.th-opt span{font-size:12px;color:var(--muted)}
.th-outs{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}.th-out img{width:100%;border-radius:8px;display:block;background:#000}
.stepper a.th-step{border-style:dashed}
.th-card{border-color:rgba(255,122,26,.35)}
/* 4.10.3 ⚡ nơi ren (thanh tiêu đề mỗi Key) */
.ren-sw{display:inline-flex;align-items:center;gap:4px;margin-right:10px;padding:2px;border:1px solid var(--line);border-radius:10px}
.kv .ren-sw{flex-wrap:wrap;max-width:100%}
.ren-sw .btn{padding:4px 9px}
.ren-sw .badge{margin:0 4px}

/* 4.10.6 📂 danh sách video trên máy: dòng gộp nhiều video */
.rv-pk{padding:3px 6px;border-radius:8px}.rv-pk:hover{background:var(--elev)}.rv-pk.grp{background:rgba(255,122,26,.08);border:1px solid rgba(255,122,26,.25)}.rv-pk.grp b{color:var(--accent)}
/* 4.10.7 📂 video chọn trên trình duyệt: thanh «⬆ Video tải lên máy chủ» góc dưới trái (sống qua mọi trang) */
.wvdock{position:fixed;left:calc(var(--sb,240px) + 16px);bottom:16px;width:340px;max-width:calc(100vw - 32px);z-index:31;background:var(--panel,#17171b);border:1px solid var(--line,#2a2a31);border-left:3px solid var(--orange,#ff7a1a);border-radius:10px;padding:10px 12px;box-shadow:0 8px 28px rgba(0,0,0,.45);display:flex;flex-direction:column;gap:8px;font-size:13px}
.wvdock .wv-it .prog{margin:4px 0 2px}
.wvdock .wv-n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:230px;font-weight:600}
.wvdock .wv-it.loi .help{color:var(--red,#ff5a5a)}
.wvdock .wv-it.xong .prog i{background:var(--green,#3ecf8e)}
@media (max-width:760px){.wvdock{left:8px;right:8px;width:auto;bottom:8px}body.has-jobs .wvdock{bottom:auto;top:64px}}
.rv-wv{border-left:3px solid var(--orange,#ff7a1a)}
.rv-wv .wv-row{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin-top:6px}
.rv-wv .wv-row .prog{flex:1 1 180px;min-width:140px;margin:0}
/* 5.0.1 🆕 app: thanh «Có bản fxcine mới — Cập nhật ngay» (cố định trên cùng, không bị trang vẽ lại xoá) */
.updbar{position:fixed;top:10px;left:50%;transform:translateX(-50%);z-index:70;background:var(--elev);border:1px solid var(--orange);color:var(--text);
  border-radius:var(--r);padding:7px 10px 7px 14px;display:flex;gap:10px;align-items:center;box-shadow:0 8px 28px rgba(0,0,0,.45);font-size:14px;max-width:calc(100vw - 32px)}
.updbar .prog{width:140px}.updbar.hidden{display:none}
