/* ═══ RESET & VARS ═══ */
*{margin:0;padding:0;box-sizing:border-box}
:root{
--pri:#E63946;--pri-h:#c62d39;--pri-rgb:230,57,70;
--gold:#F4A261;--gold-rgb:244,162,97;
--bg:#0a0a0f;--bg2:#12121a;--bg3:#1a1a26;--bg4:#22222e;
--tx:#eee;--tx2:#aaa;--tx3:#666;
--bd:#2a2a3a;--bd2:#3a3a4a;
--ok:#4CC9F0;--warn:#F7B731;--err:#E63946;
--r:10px;--rs:6px;--rl:16px;--rxxl:24px;
--shadow:0 4px 20px rgba(0,0,0,.4);
--tr:.2s ease;
}
html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--tx);overflow:hidden}
a{color:var(--pri);cursor:pointer;text-decoration:none}
input,select,textarea,button{font:inherit;color:inherit}
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--bd);border-radius:3px}

/* ═══ UTILS ═══ */
.hidden{display:none!important}
.full{width:100%}
.grad{background:linear-gradient(135deg,var(--pri),var(--gold));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.view{display:none;height:100vh;width:100vw;overflow:hidden;flex-direction:column}
.view.active{display:flex}

/* ═══ BUTTONS ═══ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 18px;border-radius:var(--r);border:none;font-weight:600;font-size:14px;cursor:pointer;transition:var(--tr);white-space:nowrap}
.btn-primary{background:var(--pri);color:#fff}.btn-primary:hover{background:var(--pri-h)}
.btn-ghost{background:transparent;color:var(--tx2);border:1px solid var(--bd)}.btn-ghost:hover{border-color:var(--tx2)}
.btn-outline{background:transparent;border:2px solid var(--pri);color:var(--pri)}.btn-outline:hover{background:rgba(var(--pri-rgb),.1)}
.btn-sm{padding:5px 12px;font-size:12px;border-radius:var(--rs)}
.btn-lg{padding:12px 24px;font-size:16px}
.btn-xl{padding:14px 32px;font-size:16px;border-radius:var(--rl)}

/* ═══ FORMS ═══ */
.fg{margin-bottom:14px}
.fg label{display:block;font-size:13px;font-weight:600;color:var(--tx2);margin-bottom:6px}
.fi,.ft,.fs{width:100%;padding:10px 14px;background:var(--bg3);border:1px solid var(--bd);border-radius:var(--rs);color:var(--tx);font-size:14px;transition:var(--tr);outline:none}
.fi:focus,.ft:focus,.fs:focus{border-color:var(--pri);box-shadow:0 0 0 3px rgba(var(--pri-rgb),.15)}
.ft{resize:vertical;min-height:60px}
.fs{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}

/* ═══ MODAL ═══ */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.7);display:none;align-items:center;justify-content:center;z-index:1000;backdrop-filter:blur(4px)}
.modal-bg.active{display:flex}
.modal{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rl);width:90%;max-width:520px;max-height:85vh;overflow-y:auto;box-shadow:var(--shadow)}
.modal-sm{max-width:400px}
.modal-hd{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--bd)}
.modal-hd h3{font-size:18px}
.modal-x{background:none;border:none;color:var(--tx3);font-size:24px;cursor:pointer}
.modal-bd{padding:24px}

/* ═══ TOAST ═══ */
.toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:8px}
.toast{padding:12px 20px;border-radius:var(--r);color:#fff;font-size:14px;font-weight:500;animation:toastIn .3s ease;box-shadow:var(--shadow)}
.toast.success{background:#2ecc71}.toast.error{background:var(--err)}.toast.info{background:var(--ok)}.toast.warning{background:var(--warn);color:#000}
@keyframes toastIn{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}

/* ═══ EMPTY STATE ═══ */
.empty{text-align:center;padding:60px 20px;color:var(--tx3)}
.empty-icon{font-size:64px;margin-bottom:16px}
.empty h3{font-size:20px;color:var(--tx2);margin-bottom:8px}

/* ═══ LANDING ═══ */
.l-nav{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;border-bottom:1px solid var(--bd)}
.l-brand{font-size:20px;font-weight:800;cursor:pointer;display:flex;align-items:center;gap:8px}
.l-brand span{font-size:28px}
.l-actions{display:flex;gap:10px;align-items:center}
.l-hero{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;padding:40px 20px;background:radial-gradient(ellipse at 50% 30%,rgba(var(--pri-rgb),.08),transparent 70%)}
.l-hero-inner{max-width:700px}
.l-badge{display:inline-block;padding:6px 16px;background:rgba(var(--pri-rgb),.1);border:1px solid rgba(var(--pri-rgb),.2);border-radius:var(--rxxl);font-size:13px;color:var(--pri);margin-bottom:24px}
.l-hero h1{font-size:48px;font-weight:900;line-height:1.2;margin-bottom:20px}
.l-desc{font-size:16px;color:var(--tx2);line-height:1.8;margin-bottom:32px}
.l-cta{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-bottom:40px}
.l-stats{display:flex;gap:48px;justify-content:center}
.l-stats div{text-align:center}
.l-stats b{display:block;font-size:32px;font-weight:900;color:var(--gold)}
.l-stats span{font-size:13px;color:var(--tx3)}
.l-pipeline,.l-features{padding:60px 32px;max-width:1200px;margin:0 auto}
.l-pipeline h2,.l-features h2{font-size:28px;font-weight:800;text-align:center;margin-bottom:40px}
.pipe-flow{display:flex;align-items:flex-start;justify-content:center;gap:8px;flex-wrap:wrap}
.pipe-step{width:130px;text-align:center;padding:20px 12px;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rl);cursor:pointer;transition:var(--tr)}
.pipe-step:hover{border-color:var(--pri);transform:translateY(-4px)}
.pipe-icon{font-size:36px;margin-bottom:8px}
.pipe-name{font-weight:700;font-size:14px;margin-bottom:4px}
.pipe-desc{font-size:11px;color:var(--tx3);line-height:1.4}
.pipe-arrow{color:var(--tx3);font-size:24px;padding-top:30px}
.feat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}
.feat-card{padding:28px;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rl);transition:var(--tr)}
.feat-card:hover{border-color:var(--bd2);transform:translateY(-2px)}
.feat-card .feature-icon{font-size:36px;margin-bottom:12px}
.feat-card h3{font-size:16px;margin-bottom:8px}
.feat-card p{font-size:14px;color:var(--tx2);line-height:1.6}
.l-footer{text-align:center;padding:24px;border-top:1px solid var(--bd);color:var(--tx3);font-size:13px}

/* ═══ DASHBOARD ═══ */
.d-nav{display:flex;align-items:center;gap:16px;padding:12px 24px;border-bottom:1px solid var(--bd);flex-shrink:0}
.d-search{flex:1;max-width:400px}
.d-search input{width:100%;padding:8px 16px;background:var(--bg3);border:1px solid var(--bd);border-radius:var(--rxxl);color:var(--tx);font-size:14px;outline:none}
.d-search input:focus{border-color:var(--pri)}
.d-actions{display:flex;gap:10px;align-items:center}
.d-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:20px;cursor:pointer;border-radius:var(--r);transition:var(--tr)}
.d-icon:hover{background:var(--bg3)}
.d-body{flex:1;overflow-y:auto;padding:24px}
.d-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}
.d-header h1{font-size:24px}
.d-stats{display:flex;gap:24px}
.d-stats div{text-align:center}
.d-stats b{display:block;font-size:20px;color:var(--gold)}
.d-stats span{font-size:11px;color:var(--tx3)}
.proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.proj-card{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rl);overflow:hidden;cursor:pointer;transition:var(--tr)}
.proj-card:hover{border-color:var(--bd2);transform:translateY(-2px);box-shadow:var(--shadow)}
.proj-new{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;border-style:dashed;color:var(--tx3)}
.proj-new:hover{border-color:var(--pri);color:var(--pri)}
.pn-icon{font-size:48px;margin-bottom:8px}
.proj-cover{aspect-ratio:16/9;background:var(--bg3);display:flex;align-items:center;justify-content:center;font-size:48px}
.proj-info{padding:14px}
.proj-title{font-weight:700;font-size:15px;margin-bottom:4px}
.proj-meta{display:flex;gap:12px;font-size:12px;color:var(--tx3)}
.proj-status{display:inline-block;padding:2px 8px;border-radius:var(--rs);font-size:11px;font-weight:600}
.proj-status.draft{background:rgba(255,255,255,.05);color:var(--tx3)}
.proj-status.producing{background:rgba(var(--pri-rgb),.1);color:var(--pri)}
.proj-status.done{background:rgba(46,204,113,.1);color:#2ecc71}

/* ═══ WORKBENCH ═══ */
.wb-top{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;border-bottom:1px solid var(--bd);flex-shrink:0;height:48px}
.wb-top-l{display:flex;align-items:center;gap:10px}
.wb-back{background:none;border:none;color:var(--tx);font-size:20px;cursor:pointer;padding:4px 8px}
.wb-back:hover{color:var(--pri)}
#wb-pname{font-weight:700;font-size:15px}
.wb-status{padding:2px 10px;border-radius:var(--rs);font-size:11px;font-weight:600;background:rgba(255,255,255,.05);color:var(--tx3)}
.wb-top-c{flex:1;display:flex;justify-content:center}
.wb-pips{display:flex;align-items:center;gap:4px}
.pip-dot{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--bg3);border:2px solid var(--bd);cursor:pointer;font-size:14px;transition:var(--tr)}
.pip-dot:hover,.pip-dot.active{border-color:var(--pri);background:rgba(var(--pri-rgb),.1)}
.pip-dot.done{border-color:var(--ok);background:rgba(76,201,240,.1)}
.pip-line{width:20px;height:2px;background:var(--bd)}
.wb-top-r{display:flex;gap:8px}
.wb-main{display:flex;flex:1;overflow:hidden}
.wb-side{width:180px;border-right:1px solid var(--bd);overflow-y:auto;flex-shrink:0;padding:8px 0}
.side-section{margin-bottom:16px}
.side-label{font-size:10px;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:1px;padding:8px 16px 4px}
.side-item{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;font-size:13px;color:var(--tx2);transition:var(--tr);border-left:3px solid transparent}
.side-item:hover{background:var(--bg3);color:var(--tx)}
.side-item.active{background:rgba(var(--pri-rgb),.05);color:var(--pri);border-left-color:var(--pri);font-weight:600}
.side-item .si-icon{font-size:18px;width:24px;text-align:center}
.wb-canvas{flex:1;overflow-y:auto;background:var(--bg)}

/* ═══ MODULE COMMON ═══ */
.wb-module{display:none;padding:0;height:100%;flex-direction:column}
.wb-module.active{display:flex}
.mod-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--bd);flex-shrink:0}
.mod-header h2{font-size:18px}
.mod-actions{display:flex;gap:8px;align-items:center}
.mod-body{flex:1;overflow-y:auto;padding:20px 24px}
.split-panel{display:flex;gap:20px}
.split-panel .panel-left{flex:1;min-width:0}
.split-panel .panel-right{width:360px;flex-shrink:0}
.panel-section{margin-bottom:24px}
.panel-title{font-size:14px;font-weight:700;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--bd)}
.mod-footer{border-top:1px solid var(--bd);padding:16px 24px;max-height:240px;overflow-y:auto;flex-shrink:0}

/* ═══ SCRIPT MODULE ═══ */
.genre-grid{display:flex;flex-wrap:wrap;gap:8px}
.genre-opt{padding:6px 14px;border-radius:var(--rxxl);border:1px solid var(--bd);font-size:13px;cursor:pointer;transition:var(--tr);background:var(--bg3)}
.genre-opt:hover{border-color:var(--tx3)}
.genre-opt.active{background:var(--pri);border-color:var(--pri);color:#fff}
.tone-tags{display:flex;flex-wrap:wrap;gap:6px}
.tone-tag{padding:4px 12px;border-radius:var(--rxxl);font-size:12px;background:var(--bg3);border:1px solid var(--bd);cursor:pointer;transition:var(--tr)}
.tone-tag.active{background:rgba(var(--gold-rgb),.15);border-color:var(--gold);color:var(--gold)}
.ep-list{display:flex;flex-direction:column;gap:6px}
.ep-item{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg3);border:1px solid var(--bd);border-radius:var(--rs);cursor:pointer;transition:var(--tr)}
.ep-item:hover,.ep-item.active{border-color:var(--pri);background:rgba(var(--pri-rgb),.05)}
.ep-num{font-size:12px;font-weight:700;color:var(--pri);width:36px;text-align:center;flex-shrink:0}
.ep-info{flex:1;min-width:0}
.ep-title{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ep-scenes{font-size:11px;color:var(--tx3)}
.scene-card{padding:12px;background:var(--bg3);border:1px solid var(--bd);border-radius:var(--rs);margin-bottom:8px}
.scene-card .sc-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.scene-card .sc-num{font-size:11px;color:var(--pri);font-weight:700}
.scene-card .sc-location{font-size:13px;font-weight:600}
.scene-card .sc-desc{font-size:12px;color:var(--tx2);line-height:1.5}
.scene-card .sc-chars{display:flex;gap:4px;margin-top:6px}
.scene-card .sc-char{padding:2px 8px;background:rgba(var(--gold-rgb),.1);border-radius:var(--rs);font-size:11px;color:var(--gold)}

/* ═══ CHARACTER MODULE ═══ */
.char-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:20px}
.char-card{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rl);overflow:hidden;cursor:pointer;transition:var(--tr)}
.char-card:hover{border-color:var(--bd2);transform:translateY(-2px)}
.char-new{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:180px;border-style:dashed;color:var(--tx3)}
.char-new:hover{border-color:var(--pri);color:var(--pri)}
.char-add-icon{font-size:36px;margin-bottom:6px}
.char-portrait-img{width:100%;aspect-ratio:3/4;background:var(--bg3);display:flex;align-items:center;justify-content:center;font-size:48px}
.char-card-name{padding:8px 12px;font-size:13px;font-weight:600;text-align:center}
.char-detail{display:flex;gap:24px;padding:20px;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rl)}
.char-detail-l{width:260px;flex-shrink:0}
.char-portrait{width:100%;aspect-ratio:3/4;background:var(--bg3);border-radius:var(--r);display:flex;align-items:center;justify-content:center;font-size:72px;margin-bottom:12px;overflow:hidden}
.char-portrait img{width:100%;height:100%;object-fit:cover}
.char-expr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.expr-item{text-align:center;padding:8px;background:var(--bg3);border:1px solid var(--bd);border-radius:var(--rs);cursor:pointer;font-size:12px;transition:var(--tr)}
.expr-item:hover{border-color:var(--pri)}
.char-detail-r{flex:1}
.outfit-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.outfit-chip{padding:4px 12px;background:var(--bg3);border:1px solid var(--bd);border-radius:var(--rxxl);font-size:12px}
.consistency-bar{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg3);border-radius:var(--rs)}
.consistency-bar span:first-child{font-size:12px;color:var(--tx2);white-space:nowrap}
.cons-bar{flex:1;height:6px;background:var(--bg);border-radius:3px;overflow:hidden}
.cons-fill{height:100%;background:linear-gradient(90deg,var(--pri),var(--ok));border-radius:3px;transition:width .5s}

/* ═══ SCENE MODULE ═══ */
.scene-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:20px}
.scene-card2{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rl);overflow:hidden;cursor:pointer;transition:var(--tr)}
.scene-card2:hover{border-color:var(--bd2);transform:translateY(-2px)}
.scene-thumb{aspect-ratio:16/9;background:var(--bg3);display:flex;align-items:center;justify-content:center;font-size:40px;overflow:hidden}
.scene-thumb img{width:100%;height:100%;object-fit:cover}
.scene-card2-info{padding:10px 14px}
.scene-card2-name{font-weight:600;font-size:14px;margin-bottom:2px}
.scene-card2-meta{font-size:11px;color:var(--tx3)}
.lighting-options,.time-options{display:flex;flex-wrap:wrap;gap:6px}
.light-opt,.time-opt{padding:6px 12px;background:var(--bg3);border:1px solid var(--bd);border-radius:var(--rs);font-size:12px;cursor:pointer;transition:var(--tr)}
.light-opt:hover,.time-opt:hover,.light-opt.active,.time-opt.active{border-color:var(--gold);background:rgba(var(--gold-rgb),.1);color:var(--gold)}
.prop-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.prop-chip{padding:4px 10px;background:var(--bg3);border:1px solid var(--bd);border-radius:var(--rxxl);font-size:12px;display:flex;align-items:center;gap:4px}
.prop-chip .rm{cursor:pointer;color:var(--err);font-weight:700}

/* ═══ STORYBOARD MODULE ═══ */
.sb-toolbar{display:flex;align-items:center;justify-content:space-between;padding:0 0 16px;gap:12px}
.sb-view-toggle{display:flex;gap:4px}
.sb-view-btn{padding:6px 14px;background:var(--bg3);border:1px solid var(--bd);border-radius:var(--rs);font-size:12px;cursor:pointer;color:var(--tx2);transition:var(--tr)}
.sb-view-btn.active{background:var(--pri);border-color:var(--pri);color:#fff}
.sb-info{font-size:13px;color:var(--tx2);display:flex;gap:16px}
.sb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.shot-card{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r);overflow:hidden;cursor:pointer;transition:var(--tr)}
.shot-card:hover{border-color:var(--bd2);transform:translateY(-2px)}
.shot-card.active{border-color:var(--pri)}
.shot-thumb{aspect-ratio:16/9;background:var(--bg3);display:flex;align-items:center;justify-content:center;font-size:32px;position:relative}
.shot-thumb img{width:100%;height:100%;object-fit:cover}
.shot-badge{position:absolute;top:6px;left:6px;padding:2px 8px;background:rgba(0,0,0,.7);border-radius:var(--rs);font-size:11px;color:#fff}
.shot-card-info{padding:8px 12px}
.shot-card-desc{font-size:12px;color:var(--tx2);line-height:1.4;max-height:42px;overflow:hidden}
.shot-card-meta{display:flex;gap:8px;margin-top:4px;font-size:11px;color:var(--tx3)}
.shot-detail{margin-top:20px;display:flex;gap:20px;padding:20px;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rl)}
.shot-preview{width:320px;aspect-ratio:16/9;background:var(--bg3);border-radius:var(--r);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:48px;overflow:hidden}
.shot-preview img{width:100%;height:100%;object-fit:cover}
.shot-controls{flex:1}
.form-row{display:flex;gap:12px}
.form-row .fg{flex:1}
.transition-options{display:flex;flex-wrap:wrap;gap:6px}
.trans-opt{padding:4px 12px;background:var(--bg3);border:1px solid var(--bd);border-radius:var(--rxxl);font-size:12px;cursor:pointer;transition:var(--tr)}
.trans-opt:hover,.trans-opt.active{border-color:var(--pri);background:rgba(var(--pri-rgb),.1);color:var(--pri)}

/* ═══ PRODUCTION MODULE ═══ */
.prod-controls{display:flex;gap:16px;align-items:center;padding-bottom:16px;border-bottom:1px solid var(--bd);margin-bottom:16px;flex-wrap:wrap}
.prod-controls label{font-size:12px;color:var(--tx3);margin-right:4px}
.prod-progress-bar{position:relative;height:28px;background:var(--bg3);border-radius:var(--r);margin-bottom:16px;overflow:hidden}
.prod-progress-fill{height:100%;background:linear-gradient(90deg,var(--pri),var(--gold));border-radius:var(--r);transition:width .3s}
.prod-progress-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5)}
.prod-shot-list{display:flex;flex-direction:column;gap:8px}
.prod-item{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rs)}
.prod-status{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.prod-status.pending{background:var(--warn)}
.prod-status.running{background:var(--pri);animation:pulse 1.5s infinite}
.prod-status.done{background:var(--ok)}
.prod-status.failed{background:var(--err)}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
.prod-thumb{width:80px;height:45px;background:var(--bg3);border-radius:var(--rs);flex-shrink:0;overflow:hidden;display:flex;align-items:center;justify-content:center}
.prod-thumb img{width:100%;height:100%;object-fit:cover}
.prod-info{flex:1;min-width:0}
.prod-shot-name{font-size:13px;font-weight:600}
.prod-shot-meta{font-size:11px;color:var(--tx3)}
.prod-actions{display:flex;gap:6px}

/* ═══ AUDIO MODULE ═══ */
.voice-library,.music-list,.sfx-library{display:flex;flex-direction:column;gap:6px}
.voice-item{display:flex;align-items:center;gap:10px;padding:10px;background:var(--bg3);border:1px solid var(--bd);border-radius:var(--rs);cursor:pointer;transition:var(--tr)}
.voice-item:hover{border-color:var(--bd2)}
.voice-icon{width:36px;height:36px;border-radius:50%;background:rgba(var(--pri-rgb),.1);display:flex;align-items:center;justify-content:center;font-size:18px}
.music-genre-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.tag{padding:4px 10px;border-radius:var(--rxxl);font-size:11px;background:var(--bg3);border:1px solid var(--bd);cursor:pointer;transition:var(--tr)}
.tag.active{background:var(--pri);border-color:var(--pri);color:#fff}
.audio-timeline{display:flex;flex-direction:column;gap:4px}
.audio-track{display:flex;align-items:center;min-height:48px;background:var(--bg3);border:1px solid var(--bd);border-radius:var(--rs);overflow:hidden}
.track-label{width:80px;padding:8px;font-size:11px;font-weight:600;color:var(--tx2);text-align:center;border-right:1px solid var(--bd);flex-shrink:0}
.track-content{flex:1;padding:6px;min-height:36px;display:flex;align-items:center;gap:4px}

/* ═══ COMPOSE MODULE ═══ */
.compose-preview{display:flex;flex-direction:column;align-items:center;padding:20px;background:#000;border-radius:var(--rl);margin-bottom:16px}
.preview-screen{width:100%;max-width:640px;aspect-ratio:16/9;background:var(--bg3);border-radius:var(--r);display:flex;align-items:center;justify-content:center;margin-bottom:12px;overflow:hidden}
.preview-screen video{width:100%;height:100%;object-fit:contain}
.preview-placeholder{text-align:center;color:var(--tx3)}
.pp-icon{font-size:48px;margin-bottom:8px}
.preview-controls{display:flex;align-items:center;gap:12px}
.play-btn,.prev-btn{background:var(--bg3);border:1px solid var(--bd);border-radius:var(--rs);padding:6px 14px;cursor:pointer;font-size:16px;color:var(--tx);transition:var(--tr)}
.play-btn:hover,.prev-btn:hover{background:var(--bg4)}
.preview-time{font-size:13px;color:var(--tx2);font-family:monospace}
.compose-timeline{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r);overflow-x:auto;margin-bottom:16px}
.timeline-ruler{height:24px;background:var(--bg3);border-bottom:1px solid var(--bd);position:relative}
.tl-track{display:flex;align-items:center;min-height:40px;border-bottom:1px solid var(--bd)}
.tl-label{width:80px;padding:6px 8px;font-size:11px;font-weight:600;color:var(--tx2);text-align:center;border-right:1px solid var(--bd);flex-shrink:0}
.tl-content{flex:1;height:32px;position:relative;margin:4px 0}
.timeline-playhead{position:absolute;top:0;width:2px;height:100%;background:var(--pri);pointer-events:none}
.compose-settings{display:flex;flex-wrap:wrap;gap:16px;padding:16px;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r)}
.cs-group{display:flex;align-items:center;gap:8px}
.cs-group label{font-size:12px;color:var(--tx3);white-space:nowrap}

/* ═══ ASSETS MODULE ═══ */
.asset-tabs{display:flex;gap:6px;margin-bottom:16px}
.asset-tab{padding:6px 14px;border-radius:var(--rxxl);font-size:13px;background:var(--bg3);border:1px solid var(--bd);cursor:pointer;transition:var(--tr)}
.asset-tab.active{background:var(--pri);border-color:var(--pri);color:#fff}
.asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-bottom:16px}
.asset-card{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rs);overflow:hidden;cursor:pointer;transition:var(--tr)}
.asset-card:hover{border-color:var(--bd2);transform:translateY(-2px)}
.asset-thumb{aspect-ratio:1;background:var(--bg3);display:flex;align-items:center;justify-content:center;font-size:32px}
.asset-card-info{padding:6px 10px;font-size:12px}
.asset-stats{display:flex;gap:16px;font-size:12px;color:var(--tx3)}

/* ═══ MARKET ═══ */
.mkt-body{flex:1;overflow-y:auto;padding:24px}
.mkt-body h1{font-size:24px;margin-bottom:16px}
.mkt-tabs{display:flex;gap:8px;margin-bottom:20px}
.mkt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.prod-card{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rl);overflow:hidden;cursor:pointer;transition:var(--tr)}
.prod-card:hover{border-color:var(--bd2);transform:translateY(-4px);box-shadow:var(--shadow)}
.prod-card-thumb{aspect-ratio:3/4;background:var(--bg3);display:flex;align-items:center;justify-content:center;font-size:48px}
.prod-card-info{padding:10px 14px}
.prod-card-title{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prod-card-meta{display:flex;justify-content:space-between;margin-top:4px}
.prod-card-price{font-size:15px;font-weight:800;color:var(--pri)}
.prod-card-sales{font-size:11px;color:var(--tx3)}

/* ═══ USER ═══ */
.usr-body{flex:1;overflow-y:auto;padding:24px}
.usr-header{text-align:center;padding:32px 0;border-bottom:1px solid var(--bd);margin-bottom:24px}
.usr-avatar{width:80px;height:80px;border-radius:50%;background:var(--bg3);border:3px solid var(--gold);display:flex;align-items:center;justify-content:center;font-size:40px;margin:0 auto 12px}
.usr-name{font-size:24px;font-weight:700;margin-bottom:4px}
.usr-level{display:inline-block;padding:4px 14px;background:rgba(var(--gold-rgb),.1);border:1px solid rgba(var(--gold-rgb),.2);border-radius:var(--rxxl);font-size:12px;color:var(--gold)}
.usr-stats{display:flex;gap:32px;justify-content:center;margin-top:16px}
.usr-stats div{text-align:center}
.usr-stats b{display:block;font-size:24px;color:var(--gold)}
.usr-stats span{font-size:12px;color:var(--tx3)}
.usr-menu{display:flex;flex-direction:column;gap:8px}
.usr-menu-item{display:flex;align-items:center;gap:12px;padding:14px 20px;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r);cursor:pointer;transition:var(--tr)}
.usr-menu-item:hover{border-color:var(--bd2);transform:translateX(4px)}
.usr-menu-icon{width:40px;height:40px;border-radius:var(--r);background:var(--bg3);display:flex;align-items:center;justify-content:center;font-size:20px}
.usr-menu-text{flex:1;font-weight:500}
.usr-menu-arrow{color:var(--tx3)}

/* ═══ START OPTIONS ═══ */
.start-opts{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.start-opt{padding:16px;text-align:center;background:var(--bg3);border:2px solid var(--bd);border-radius:var(--rl);cursor:pointer;transition:var(--tr)}
.start-opt:hover{border-color:var(--tx3)}
.start-opt.active{border-color:var(--pri);background:rgba(var(--pri-rgb),.05)}
.so-icon{font-size:28px;margin-bottom:6px}
.so-name{font-size:13px;font-weight:600}

.auth-sw{text-align:center;margin-top:14px;font-size:13px;color:var(--tx3)}

/* ═══ RESPONSIVE ═══ */
@media(max-width:768px){
.l-hero h1{font-size:32px}
.pipe-flow{flex-direction:column;align-items:center}
.pipe-arrow{transform:rotate(90deg)}
.wb-side{width:60px}
.side-item .si-name{display:none}
.split-panel{flex-direction:column}
.split-panel .panel-right{width:100%}
.char-detail{flex-direction:column}
.char-detail-l{width:100%}
.shot-detail{flex-direction:column}
.shot-preview{width:100%}
}
/* ═══ MODAL LARGE ═══ */
.modal-lg{max-width:720px}

/* ═══ SCRIPT AI MODAL ═══ */
.script-ai-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:8px}
.script-ai-mode{padding:16px;background:var(--bg3);border:2px solid var(--bd);border-radius:var(--rl);cursor:pointer;text-align:center;transition:var(--tr)}
.script-ai-mode:hover{border-color:var(--tx3)}
.script-ai-mode.active{border-color:var(--pri);background:rgba(var(--pri-rgb),.05)}
.sam-icon{font-size:28px;margin-bottom:6px}
.sam-name{font-weight:700;font-size:14px;margin-bottom:4px}
.sam-desc{font-size:11px;color:var(--tx3);line-height:1.4}
.ai-progress-bar{height:8px;background:var(--bg3);border-radius:4px;overflow:hidden;margin-bottom:12px}
.ai-progress-fill{height:100%;background:linear-gradient(90deg,var(--pri),var(--gold));border-radius:4px;transition:width .5s}
.ai-progress-steps{display:flex;flex-direction:column;gap:6px}
.ai-step{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--tx2);padding:6px 0}
.ai-step .step-dot{width:20px;height:20px;border-radius:50%;background:var(--bg3);border:2px solid var(--bd);display:flex;align-items:center;justify-content:center;font-size:10px;flex-shrink:0}
.ai-step .step-dot.done{background:var(--ok);border-color:var(--ok);color:#fff}
.ai-step .step-dot.active{border-color:var(--pri);animation:pulse 1.5s infinite}
.ai-step .step-dot.pending{background:var(--bg3)}

/* ═══ SCRIPT EDITOR ═══ */
.script-editor-toolbar{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--bd);margin-bottom:12px}
.script-editor-toolbar .tool-btn{padding:4px 10px;background:var(--bg3);border:1px solid var(--bd);border-radius:var(--rs);font-size:12px;cursor:pointer;color:var(--tx2);transition:var(--tr)}
.script-editor-toolbar .tool-btn:hover{background:var(--bg4);border-color:var(--bd2)}
.script-editor-toolbar .tool-btn.active{background:var(--pri);border-color:var(--pri);color:#fff}
.script-ep-tabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:12px}
.script-ep-tab{padding:6px 14px;background:var(--bg3);border:1px solid var(--bd);border-radius:var(--rs);font-size:12px;cursor:pointer;color:var(--tx2);transition:var(--tr);position:relative}
.script-ep-tab:hover{border-color:var(--bd2)}
.script-ep-tab.active{background:var(--pri);border-color:var(--pri);color:#fff}
.script-ep-tab .ep-close{margin-left:4px;font-size:10px;opacity:.6}
.script-ep-tab .ep-close:hover{opacity:1;color:var(--err)}
.ep-editor{width:100%;min-height:300px;padding:16px;background:var(--bg3);border:1px solid var(--bd);border-radius:var(--r);color:var(--tx);font-size:14px;line-height:1.8;resize:vertical;outline:none;font-family:'Courier New',monospace}
.ep-editor:focus{border-color:var(--pri);box-shadow:0 0 0 3px rgba(var(--pri-rgb),.15)}
.scene-block{padding:12px;margin-bottom:8px;background:var(--bg2);border-left:3px solid var(--pri);border-radius:0 var(--rs) var(--rs) 0}
.scene-block .scene-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.scene-block .scene-title{font-weight:700;font-size:13px;color:var(--gold)}
.scene-block .scene-meta{font-size:11px;color:var(--tx3)}
.dialogue-line{display:flex;gap:8px;padding:6px 0;border-bottom:1px solid rgba(var(--bd),.3);align-items:flex-start}
.dialogue-line .char-name{font-weight:700;font-size:12px;color:var(--pri);min-width:60px;flex-shrink:0}
.dialogue-line .emotion-tag{font-size:10px;padding:2px 6px;background:rgba(var(--gold-rgb),.1);border-radius:var(--rs);color:var(--gold);flex-shrink:0}
.dialogue-line .dialogue-text{font-size:13px;color:var(--tx);line-height:1.5}

/* ═══ CHARACTER MODULE ENHANCED ═══ */
.char-card{position:relative;transition:all .2s}
.char-card[draggable="true"]{cursor:grab}
.char-card[draggable="true"]:active{cursor:grabbing}
.char-card.dragging{opacity:.4;transform:scale(.95)}
.char-card.drag-over{border-color:var(--pri);box-shadow:0 0 0 2px rgba(var(--pri-rgb),.3)}
.char-card .char-order{position:absolute;top:8px;left:8px;width:22px;height:22px;background:rgba(0,0,0,.6);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;z-index:2}
.char-relation-graph{position:relative;padding:20px;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rl);min-height:200px;margin-top:16px}
.relation-node{display:inline-flex;flex-direction:column;align-items:center;padding:10px;background:var(--bg3);border:1px solid var(--bd);border-radius:var(--r);margin:8px;cursor:pointer;transition:var(--tr)}
.relation-node:hover{border-color:var(--pri)}
.relation-node .node-avatar{width:48px;height:48px;border-radius:50%;background:var(--bg4);display:flex;align-items:center;justify-content:center;font-size:24px;margin-bottom:4px;border:2px solid var(--bd)}
.relation-node .node-name{font-size:11px;font-weight:600}
.relation-line{position:absolute;height:2px;background:var(--pri);opacity:.4;transform-origin:left center}
.relation-label{position:absolute;padding:2px 6px;background:rgba(var(--pri-rgb),.15);border-radius:var(--rs);font-size:9px;color:var(--pri);white-space:nowrap}
.char-avatar-upload{width:100%;aspect-ratio:1;background:var(--bg3);border:2px dashed var(--bd);border-radius:var(--r);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:var(--tr);overflow:hidden}
.char-avatar-upload:hover{border-color:var(--pri)}
.char-avatar-upload img{width:100%;height:100%;object-fit:cover}
.char-avatar-upload .upload-hint{font-size:12px;color:var(--tx3);margin-top:4px}

/* ═══ SCENE MODULE ENHANCED ═══ */
.scene-grid.masonry{columns:3;column-gap:12px}
.scene-grid.masonry .scene-card2{break-inside:avoid;margin-bottom:12px}
.scene-card2 .scene-ref-img{width:100%;aspect-ratio:16/9;background:var(--bg3);overflow:hidden;position:relative}
.scene-card2 .scene-ref-img img{width:100%;height:100%;object-fit:cover}
.scene-card2 .scene-overlay{position:absolute;inset:0;background:linear-gradient(transparent,rgba(0,0,0,.7));display:flex;align-items:flex-end;padding:10px;opacity:0;transition:var(--tr)}
.scene-card2:hover .scene-overlay{opacity:1}
.scene-card2 .scene-overlay .scene-actions{display:flex;gap:6px}
.scene-atmosphere-bar{display:flex;gap:6px;align-items:center;padding:6px 0}
.scene-atmosphere-bar .atm-indicator{width:8px;height:8px;border-radius:50%}
.scene-editor-preview{width:100%;aspect-ratio:16/9;background:var(--bg3);border-radius:var(--r);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}
.scene-editor-preview img{width:100%;height:100%;object-fit:cover}
.scene-editor-preview .gen-overlay{position:absolute;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;opacity:0;transition:var(--tr)}
.scene-editor-preview:hover .gen-overlay{opacity:1}

/* ═══ STORYBOARD MODULE ENHANCED ═══ */
.sb-shot-editor{display:flex;flex-direction:column;gap:8px}
.shot-edit-row{display:flex;gap:10px;align-items:flex-start;padding:10px;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r);transition:var(--tr)}
.shot-edit-row.active{border-color:var(--pri)}
.shot-edit-row[draggable="true"]{cursor:grab}
.shot-edit-row[draggable="true"]:active{cursor:grabbing}
.shot-edit-row.dragging{opacity:.4}
.shot-edit-row .shot-handle{padding:4px;cursor:grab;color:var(--tx3);font-size:16px;flex-shrink:0}
.shot-edit-row .shot-num{font-size:11px;font-weight:700;color:var(--gold);min-width:30px;flex-shrink:0}
.shot-edit-row .shot-fields{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.shot-edit-row .shot-fields .fi,.shot-edit-row .shot-fields .ft,.shot-edit-row .shot-fields .fs{padding:6px 10px;font-size:12px}
.shot-edit-row .shot-fields .ft{min-height:40px;resize:none}
.shot-type-badge{padding:3px 8px;border-radius:var(--rs);font-size:10px;font-weight:600;background:rgba(var(--pri-rgb),.1);color:var(--pri);border:1px solid rgba(var(--pri-rgb),.2);white-space:nowrap}
.sb-add-shot{padding:12px;border:2px dashed var(--bd);border-radius:var(--r);text-align:center;cursor:pointer;color:var(--tx3);font-size:13px;transition:var(--tr)}
.sb-add-shot:hover{border-color:var(--pri);color:var(--pri)}

/* ═══ PRODUCTION/ASSETS MODULE ENHANCED ═══ */
.asset-upload-zone{padding:32px;background:var(--bg2);border:2px dashed var(--bd);border-radius:var(--rl);text-align:center;cursor:pointer;transition:var(--tr);margin-bottom:16px}
.asset-upload-zone:hover{border-color:var(--pri)}
.asset-upload-zone.drag-over{border-color:var(--pri);background:rgba(var(--pri-rgb),.05)}
.asset-upload-zone .upload-icon{font-size:40px;margin-bottom:8px}
.asset-upload-zone .upload-text{font-size:14px;color:var(--tx2)}
.asset-upload-zone .upload-hint{font-size:12px;color:var(--tx3);margin-top:4px}
.asset-search-bar{display:flex;gap:8px;margin-bottom:12px}
.asset-search-bar .fi{flex:1}
.asset-card .asset-type-badge{position:absolute;top:6px;right:6px;padding:2px 6px;background:rgba(0,0,0,.7);border-radius:var(--rs);font-size:10px;color:#fff}
.asset-card .asset-actions{position:absolute;bottom:0;left:0;right:0;padding:6px;background:linear-gradient(transparent,rgba(0,0,0,.8));display:flex;gap:4px;opacity:0;transition:var(--tr)}
.asset-card:hover .asset-actions{opacity:1}
.ai-gen-panel{padding:16px;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rl);margin-bottom:16px}
.ai-gen-panel h4{font-size:14px;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.ai-gen-panel .gen-options{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.ai-gen-panel .gen-input-row{display:flex;gap:8px}
.ai-gen-panel .gen-input-row .fi{flex:1}
.gen-status{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg3);border-radius:var(--rs);font-size:12px;margin-top:8px}
.gen-status .gen-spinner{width:14px;height:14px;border:2px solid var(--bd);border-top-color:var(--pri);border-radius:50%;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ═══ AUDIO MODULE ENHANCED ═══ */
.audio-char-assign{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.char-voice-row{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r)}
.char-voice-row .char-info{display:flex;align-items:center;gap:8px;min-width:120px}
.char-voice-row .char-info .mini-avatar{width:32px;height:32px;border-radius:50%;background:var(--bg3);display:flex;align-items:center;justify-content:center;font-size:16px}
.char-voice-row .voice-select{flex:1}
.char-voice-row .voice-preview-btn{padding:6px 12px;background:var(--bg3);border:1px solid var(--bd);border-radius:var(--rs);cursor:pointer;font-size:14px;color:var(--tx);transition:var(--tr)}
.char-voice-row .voice-preview-btn:hover{background:var(--bg4)}
.tts-panel{padding:16px;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rl);margin-bottom:16px}
.tts-panel h4{font-size:14px;margin-bottom:12px}
.tts-line{display:flex;align-items:center;gap:8px;padding:8px;border-bottom:1px solid var(--bd)}
.tts-line:last-child{border-bottom:none}
.tts-line .tts-char{font-weight:600;font-size:12px;min-width:50px;color:var(--pri)}
.tts-line .tts-text{flex:1;font-size:13px;color:var(--tx2)}
.tts-line .tts-status{font-size:11px;color:var(--tx3)}
.tts-line .tts-btn{padding:4px 10px;background:var(--pri);border:none;border-radius:var(--rs);color:#fff;font-size:11px;cursor:pointer}

/* ═══ COMPOSE MODULE ENHANCED ═══ */
.compose-task-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.compose-task{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r);transition:var(--tr)}
.compose-task:hover{border-color:var(--bd2)}
.compose-task .task-ep{font-weight:700;font-size:14px;color:var(--gold);min-width:40px}
.compose-task .task-info{flex:1}
.compose-task .task-info .task-name{font-size:13px;font-weight:600}
.compose-task .task-info .task-meta{font-size:11px;color:var(--tx3)}
.compose-task .task-progress{width:120px}
.compose-task .task-progress .mini-bar{height:6px;background:var(--bg3);border-radius:3px;overflow:hidden}
.compose-task .task-progress .mini-fill{height:100%;background:linear-gradient(90deg,var(--pri),var(--gold));border-radius:3px;transition:width .3s}
.compose-task .task-progress .mini-text{font-size:10px;color:var(--tx3);margin-top:2px}
.compose-task .task-action{display:flex;gap:4px}
.tl-clip{position:absolute;height:100%;background:rgba(var(--pri-rgb),.3);border:1px solid var(--pri);border-radius:3px;display:flex;align-items:center;padding:0 4px;font-size:9px;color:var(--tx);cursor:pointer;overflow:hidden;white-space:nowrap}
.tl-clip.video-clip{background:rgba(var(--pri-rgb),.3);border-color:var(--pri)}
.tl-clip.dialogue-clip{background:rgba(var(--gold-rgb),.3);border-color:var(--gold)}
.tl-clip.music-clip{background:rgba(76,201,240,.2);border-color:var(--ok)}
.tl-clip.sfx-clip{background:rgba(46,204,113,.2);border-color:#2ecc71}
.tl-clip.subtitle-clip{background:rgba(155,89,182,.2);border-color:#9b59b6}

/* ═══ PUBLISH MODULE ENHANCED ═══ */
.publish-platform-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:24px}
.platform-card{padding:16px;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rl);text-align:center;cursor:pointer;transition:var(--tr);position:relative}
.platform-card:hover{border-color:var(--pri);transform:translateY(-2px)}
.platform-card.selected{border-color:var(--pri);background:rgba(var(--pri-rgb),.05)}
.platform-card .platform-icon{font-size:32px;margin-bottom:6px}
.platform-card .platform-name{font-weight:600;font-size:13px}
.platform-card .platform-status{font-size:10px;margin-top:4px}
.platform-card .platform-status.connected{color:var(--ok)}
.platform-card .platform-status.disconnected{color:var(--tx3)}
.publish-queue{display:flex;flex-direction:column;gap:8px}
.publish-queue-item{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r)}
.publish-queue-item .pq-platform{font-size:20px;flex-shrink:0}
.publish-queue-item .pq-info{flex:1}
.publish-queue-item .pq-title{font-size:13px;font-weight:600}
.publish-queue-item .pq-meta{font-size:11px;color:var(--tx3)}
.publish-queue-item .pq-status{padding:4px 10px;border-radius:var(--rxxl);font-size:11px;font-weight:600}
.pq-status.queued{background:rgba(var(--gold-rgb),.1);color:var(--gold)}
.pq-status.publishing{background:rgba(var(--pri-rgb),.1);color:var(--pri);animation:pulse 1.5s infinite}
.pq-status.published{background:rgba(46,204,113,.1);color:#2ecc71}
.pq-status.failed{background:rgba(var(--err),.1);color:var(--err)}
.publish-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}
.publish-stat{text-align:center;padding:16px;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r)}
.publish-stat b{display:block;font-size:20px;color:var(--gold)}
.publish-stat span{font-size:11px;color:var(--tx3)}

/* ═══ DRAGGABLE UTILS ═══ */
.drag-placeholder{border:2px dashed var(--pri);border-radius:var(--r);background:rgba(var(--pri-rgb),.05);transition:all .2s}

/* ═══ RESPONSIVE ADDITIONS ═══ */
@media(max-width:768px){
.script-ai-modes{grid-template-columns:1fr}
.shot-edit-row .shot-fields{grid-template-columns:1fr}
.publish-stats{grid-template-columns:repeat(2,1fr)}
.scene-grid.masonry{columns:1}
}
@media(min-width:769px) and (max-width:1024px){
.scene-grid.masonry{columns:2}
}

/* ═══ MARKETPLACE ═══ */
.mkt-body{flex:1;overflow-y:auto;padding:24px 32px}
.mkt-body::-webkit-scrollbar{width:6px}
.mkt-body::-webkit-scrollbar-thumb{background:var(--bd);border-radius:3px}

.mkt-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:16px}
.mkt-header h1{font-size:28px;font-weight:900}
.mkt-header h1 .grad{background:linear-gradient(135deg,#7c5cfc,#4cc9f0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.mkt-stats{display:flex;gap:20px}
.mkt-stat{text-align:center}
.mkt-stat b{display:block;font-size:24px;font-weight:900;color:var(--gold)}
.mkt-stat span{font-size:12px;color:var(--tx3)}

.mkt-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}
.mkt-search{flex:1;min-width:200px;position:relative}
.mkt-search input{width:100%;padding:10px 14px 10px 38px;background:var(--bg3);border:1px solid var(--bd);border-radius:var(--r);color:var(--tx);font-size:14px;outline:none;transition:var(--tr)}
.mkt-search input:focus{border-color:#7c5cfc;box-shadow:0 0 0 3px rgba(124,92,252,.15)}
.mkt-search::before{content:'🔍';position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:14px;opacity:.5}
.mkt-sort{padding:8px 14px;background:var(--bg3);border:1px solid var(--bd);border-radius:var(--r);color:var(--tx2);font-size:13px;cursor:pointer;appearance:none;outline:none}
.mkt-sort option{background:var(--bg2)}

.mkt-cats{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}
.mkt-cat{display:flex;align-items:center;gap:6px;padding:8px 18px;border-radius:var(--rxxl);background:var(--bg3);border:1px solid var(--bd);color:var(--tx2);font-size:14px;font-weight:600;cursor:pointer;transition:var(--tr);white-space:nowrap}
.mkt-cat:hover{border-color:#7c5cfc;color:var(--tx)}
.mkt-cat.active{background:linear-gradient(135deg,rgba(124,92,252,.2),rgba(76,201,240,.1));border-color:#7c5cfc;color:#b8a4ff}
.mkt-cat .cat-icon{font-size:16px}
.mkt-cat .cat-comm{font-size:11px;color:var(--tx3);margin-left:2px}

.mkt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding-bottom:40px}

.mkt-card{background:linear-gradient(145deg,var(--bg2),var(--bg3));border:1px solid var(--bd);border-radius:var(--rl);overflow:hidden;cursor:pointer;transition:all .25s ease;position:relative}
.mkt-card:hover{border-color:#7c5cfc;transform:translateY(-3px);box-shadow:0 8px 30px rgba(124,92,252,.15)}

.mkt-card-cover{height:140px;display:flex;align-items:center;justify-content:center;font-size:56px;background:linear-gradient(135deg,rgba(124,92,252,.08),rgba(76,201,240,.05));position:relative;overflow:hidden}
.mkt-card-cover::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 70% 30%,rgba(124,92,252,.08),transparent 60%)}
.mkt-card-badge{position:absolute;top:10px;right:10px;padding:3px 10px;border-radius:var(--rxxl);font-size:11px;font-weight:700;backdrop-filter:blur(8px)}
.mkt-card-badge.template{background:rgba(124,92,252,.2);color:#b8a4ff;border:1px solid rgba(124,92,252,.3)}
.mkt-card-badge.avatar{background:rgba(244,162,97,.2);color:var(--gold);border:1px solid rgba(244,162,97,.3)}
.mkt-card-badge.script{background:rgba(76,201,240,.2);color:var(--ok);border:1px solid rgba(76,201,240,.3)}
.mkt-card-badge.tool{background:rgba(247,183,49,.2);color:var(--warn);border:1px solid rgba(247,183,49,.3)}
.mkt-card-badge.tutorial{background:rgba(46,204,113,.2);color:#2ecc71;border:1px solid rgba(46,204,113,.3)}

.mkt-card-info{padding:14px 16px}
.mkt-card-title{font-size:15px;font-weight:700;line-height:1.4;margin-bottom:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mkt-card-desc{font-size:12px;color:var(--tx3);line-height:1.5;margin-bottom:10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mkt-card-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.mkt-card-tag{padding:2px 8px;border-radius:var(--rs);background:var(--bg4);font-size:11px;color:var(--tx3)}
.mkt-card-footer{display:flex;align-items:center;justify-content:space-between;padding-top:10px;border-top:1px solid var(--bd)}
.mkt-card-price{font-size:20px;font-weight:900;color:var(--gold)}
.mkt-card-price small{font-size:12px;font-weight:600;color:var(--tx3);margin-left:2px}
.mkt-card-meta{font-size:12px;color:var(--tx3);display:flex;gap:10px}
.mkt-card-meta span{display:flex;align-items:center;gap:3px}

/* ─── 商品详情弹窗 ─── */
#modal-mkt-detail .modal{max-width:640px}
.mkt-detail-cover{height:200px;display:flex;align-items:center;justify-content:center;font-size:80px;background:linear-gradient(135deg,rgba(124,92,252,.1),rgba(76,201,240,.05));border-radius:var(--rl);margin-bottom:20px;position:relative;overflow:hidden}
.mkt-detail-cover::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 70% 30%,rgba(124,92,252,.1),transparent 60%)}
.mkt-detail-title{font-size:22px;font-weight:900;margin-bottom:8px}
.mkt-detail-seller{display:flex;align-items:center;gap:8px;margin-bottom:16px;font-size:13px;color:var(--tx2)}
.mkt-detail-seller .seller-badge{padding:2px 8px;border-radius:var(--rs);background:rgba(124,92,252,.15);color:#b8a4ff;font-size:11px}
.mkt-detail-desc{font-size:14px;color:var(--tx2);line-height:1.7;margin-bottom:16px;padding:16px;background:var(--bg3);border-radius:var(--r);border:1px solid var(--bd)}
.mkt-detail-tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.mkt-detail-tag{padding:4px 12px;border-radius:var(--rxxl);background:var(--bg4);font-size:12px;color:var(--tx2)}
.mkt-detail-info{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}
.mkt-detail-info-item{padding:12px 16px;background:var(--bg3);border-radius:var(--r);border:1px solid var(--bd)}
.mkt-detail-info-item label{display:block;font-size:11px;color:var(--tx3);margin-bottom:4px}
.mkt-detail-info-item b{font-size:18px;font-weight:800;color:var(--tx)}
.mkt-detail-info-item b.gold{color:var(--gold)}
.mkt-detail-info-item b.comm{color:var(--ok)}
.mkt-detail-actions{display:flex;gap:12px;align-items:center}
.mkt-detail-balance{font-size:13px;color:var(--tx2)}
.mkt-detail-balance b{color:var(--gold);font-weight:800}

/* ─── 上架弹窗 ─── */
#modal-mkt-sell .modal{max-width:560px}
.sell-cat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:4px}
.sell-cat-opt{text-align:center;padding:12px 4px;border-radius:var(--r);border:2px solid var(--bd);cursor:pointer;transition:var(--tr)}
.sell-cat-opt:hover{border-color:#7c5cfc}
.sell-cat-opt.active{border-color:#7c5cfc;background:rgba(124,92,252,.1)}
.sell-cat-opt .sc-icon{font-size:28px;margin-bottom:4px}
.sell-cat-opt .sc-name{font-size:12px;font-weight:600}
.sell-cat-opt .sc-comm{font-size:10px;color:var(--tx3);margin-top:2px}

/* ─── 收入面板 ─── */
.mkt-earn-header{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}
.mkt-earn-card{padding:20px;border-radius:var(--rl);background:linear-gradient(145deg,var(--bg2),var(--bg3));border:1px solid var(--bd)}
.mkt-earn-card label{display:block;font-size:12px;color:var(--tx3);margin-bottom:6px}
.mkt-earn-card b{font-size:28px;font-weight:900}
.mkt-earn-card.earn b{color:var(--gold)}
.mkt-earn-card.comm b{color:var(--ok)}
.mkt-earn-cat-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:24px}
.mkt-earn-cat{padding:14px;border-radius:var(--r);background:var(--bg3);border:1px solid var(--bd)}
.mkt-earn-cat-head{display:flex;align-items:center;gap:6px;margin-bottom:8px;font-size:13px;font-weight:600}
.mkt-earn-cat-row{display:flex;justify-content:space-between;font-size:12px;color:var(--tx3);margin-bottom:2px}

.mkt-recent-list{display:flex;flex-direction:column;gap:8px}
.mkt-recent-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg3);border-radius:var(--r);border:1px solid var(--bd)}
.mkt-recent-item-title{font-size:14px;font-weight:600}
.mkt-recent-item-meta{font-size:12px;color:var(--tx3)}
.mkt-recent-item-price{font-size:16px;font-weight:800;color:var(--gold)}

/* ─── 子导航 ─── */
.mkt-subnav{display:flex;gap:4px;margin-bottom:20px;border-bottom:1px solid var(--bd);padding-bottom:0}
.mkt-subnav-item{padding:10px 20px;font-size:14px;font-weight:600;color:var(--tx3);cursor:pointer;border-bottom:2px solid transparent;transition:var(--tr)}
.mkt-subnav-item:hover{color:var(--tx2)}
.mkt-subnav-item.active{color:#b8a4ff;border-bottom-color:#7c5cfc}

/* ─── 紫蓝渐变按钮 ─── */
.btn-purple{background:linear-gradient(135deg,#7c5cfc,#5b4bdb);color:#fff;border:none}
.btn-purple:hover{background:linear-gradient(135deg,#8d6ffd,#6b5cec);box-shadow:0 4px 20px rgba(124,92,252,.3)}

/* ─── 响应式 ─── */
@media(max-width:768px){
  .mkt-body{padding:16px}
  .mkt-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
  .mkt-stats{gap:12px}
  .mkt-earn-header{grid-template-columns:1fr 1fr}
  .mkt-detail-info{grid-template-columns:1fr}
  .sell-cat-grid{grid-template-columns:repeat(3,1fr)}
  .mkt-header h1{font-size:22px}
}

/* ═══ DRAMA SHOWCASE (Landing Page) ═══ */
.l-dramas{padding:60px 32px;max-width:1200px;margin:0 auto}
.l-dramas h2{font-size:28px;font-weight:800;text-align:center;margin-bottom:40px}
.drama-showcase{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px}
.drama-card{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rl);overflow:hidden;cursor:pointer;transition:var(--tr)}
.drama-card:hover{border-color:var(--pri);transform:translateY(-4px);box-shadow:0 8px 30px rgba(var(--pri-rgb),.15)}
.drama-cover{height:160px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:linear-gradient(135deg,rgba(var(--pri-rgb),.1),rgba(var(--gold-rgb),.05))}
.drama-cover::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 70% 30%,rgba(var(--pri-rgb),.08),transparent 60%)}
.drama-cover-icon{font-size:56px;opacity:.6;z-index:1}
.drama-style-tag{position:absolute;top:10px;left:10px;padding:3px 10px;border-radius:var(--rxxl);font-size:11px;font-weight:700;z-index:2}
.drama-ep-count{position:absolute;top:10px;right:10px;padding:3px 10px;border-radius:var(--rxxl);font-size:11px;font-weight:700;background:rgba(0,0,0,.6);color:#fff;z-index:2}
.drama-info{padding:14px 16px}
.drama-title{font-size:15px;font-weight:700;line-height:1.4;margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.drama-synopsis{font-size:12px;color:var(--tx3);line-height:1.5;margin-bottom:10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.drama-meta{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.drama-genre{font-size:11px;color:var(--pri);font-weight:600}
.drama-views{font-size:11px;color:var(--tx3)}
.drama-tag{padding:2px 8px;border-radius:var(--rs);background:var(--bg4);font-size:11px;color:var(--tx3)}
@media(max-width:768px){
  .drama-showcase{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
  .drama-cover{height:120px}
}
#view-landing{overflow-y:auto;overflow-x:hidden}
