:root{--red:#ff2442;--red-dark:#d91c38;--ink:#172033;--muted:#71809a;--line:#e8ecf3;--soft:#f6f7fa;--green:#17a673;--amber:#dc8500;--shadow:0 14px 40px rgba(31,45,76,.08)}
.material-view-button{border:1px solid #bdd7ff;border-radius:7px;background:#eef5ff;color:#2868bb;padding:6px 10px;font-size:12px;font-weight:650;cursor:pointer}.visual-evidence{display:block;margin-top:6px;padding:6px 8px;background:#f3f6fa;border-radius:6px;color:#52617a;white-space:pre-wrap}.cut-result-groups{display:grid;gap:12px;margin-bottom:22px}.work-cut-group{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.work-group-summary{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:15px 17px}.work-group-summary span:first-child{min-width:0;flex:1}.work-group-summary strong,.work-group-summary small{display:block}.work-group-summary small{color:var(--muted);word-break:break-all}.work-clip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px;padding:0 15px 15px}.work-clip-grid:empty{display:none}.work-clip-card{border:1px solid var(--line);border-radius:10px;overflow:hidden}.work-clip-card video{width:100%;aspect-ratio:16/9;background:#05070c;display:block}.work-clip-card>div{padding:9px}.work-clip-card span,.work-clip-card strong{display:block}.work-clip-card span{font-size:11px;color:var(--muted)}.work-clip-card strong{margin-top:4px}.sample-group-title{margin:8px 0 13px}
.material-row-retrying{background:#f4f0ff;border-left:4px solid #7956c8}.material-status.retrying{color:#6945ba!important}.material-actions{display:flex;gap:7px;flex-wrap:wrap}.material-retry-button{justify-self:start;border:1px solid #c9b9ee;border-radius:7px;background:#f4f0ff;color:#6945ba;padding:6px 10px;font-size:12px;font-weight:650;cursor:pointer}
.material-row-complete{background:#f0fbf7;border-left:4px solid var(--green)}.material-row-partial{background:#fff9ec;border-left:4px solid var(--amber)}.material-row-error{background:#fff1f3;border-left:4px solid #c62946}.material-row-cut-complete{background:#eef5ff;border-left:4px solid #3478d4}.material-row-running{background:#f1f7ff;border-left:4px solid #5a8ed6}.material-row-queued,.material-row-pending{border-left:4px solid #cbd3df}.material-result{display:grid;gap:5px}.material-status.complete{color:var(--green)!important}.material-status.partial{color:var(--amber)!important}.material-status.error{color:#c62946!important}.material-status.cut-complete{color:#2868bb!important}.failure-reason{display:block!important;color:#a71932!important;line-height:1.35}.cut-output{display:block!important;color:#2868bb!important;word-break:break-all}.material-cut-button{justify-self:start;border:0;border-radius:7px;background:var(--red);color:#fff;padding:6px 10px;font-size:12px;font-weight:650;cursor:pointer}
.clip-select{display:flex;align-items:center;gap:7px;padding:10px 13px 0;color:#52617a;font-size:12px;font-weight:650}.clip-select input{width:15px;height:15px;accent-color:var(--red)}
.library-panel{margin-bottom:14px}.directory-bar{display:flex;gap:10px;margin-top:16px}.directory-bar input{flex:1;min-width:0;border:1px solid var(--line);border-radius:9px;padding:10px 12px;color:var(--ink)}.scan-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}.scan-summary div{padding:12px;background:var(--soft);border-radius:10px}.scan-summary span,.scan-summary strong{display:block}.scan-summary span{color:var(--muted);font-size:11px}.scan-summary strong{font-size:19px;margin-top:3px}.material-list{margin-top:12px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.material-row{display:grid;grid-template-columns:minmax(240px,2fr) repeat(3,minmax(80px,.6fr)) minmax(170px,1fr);gap:12px;align-items:center;padding:11px 13px;border-bottom:1px solid var(--line)}.material-row:last-child{border-bottom:0}.material-row small{display:block;color:var(--muted);word-break:break-all}.material-row>span{color:#52617a}.material-status{color:var(--green)!important;font-weight:650}.material-status.pending{color:var(--amber)!important}.empty-state.compact{padding:25px}
.recognition-status{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding:10px 12px;background:var(--soft);border-radius:9px;color:#52617a}.recognition-status small{width:100%;margin-left:17px;color:var(--muted);word-break:break-all}.status-dot{width:9px;height:9px;border-radius:50%;background:#9ba7b8}.status-dot.running{background:var(--amber);box-shadow:0 0 0 4px #fff0d5}.status-dot.done{background:var(--green)}.status-dot.error{background:#bd1d39}
*{box-sizing:border-box}body{margin:0;background:#f7f8fb;color:var(--ink);font:14px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif}button,input,textarea,select{font:inherit}button,a{transition:.18s ease}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:224px;padding:22px 16px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:10}.brand{display:flex;gap:11px;align-items:center;padding:0 7px 25px;text-decoration:none;color:var(--ink)}.brand-mark{width:38px;height:38px;border-radius:12px;background:var(--red);color:#fff;display:grid;place-items:center;font-weight:800;font-size:19px;box-shadow:0 8px 18px rgba(255,36,66,.25)}.brand strong,.brand small{display:block}.brand small{font-size:10px;color:var(--muted);letter-spacing:.08em}.sidebar nav{display:grid;gap:5px}.nav-item{display:flex;gap:11px;align-items:center;width:100%;border:0;background:transparent;color:#52617a;padding:11px 12px;border-radius:10px;text-align:left;cursor:pointer}.nav-item span{width:20px;text-align:center;font-size:17px}.nav-item:hover{background:#faf1f3;color:var(--red)}.nav-item.active{background:#fff0f2;color:var(--red);font-weight:650}.sidebar-foot{margin-top:auto;border:1px solid var(--line);border-radius:12px;padding:12px;color:#52617a;font-size:12px}.sidebar-foot small{display:block;color:var(--muted);margin:5px 0 0 17px}.online-dot{display:inline-block;width:8px;height:8px;background:var(--green);border-radius:50%;margin-right:7px}.main{margin-left:224px;padding:24px 30px 70px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.topbar h1{font-size:25px;margin:2px 0 0}.eyebrow,.section-kicker{margin:0;color:var(--red);font-size:11px;font-weight:750;letter-spacing:.1em}.top-actions,.panel-actions,.hero-actions,.modal-actions{display:flex;align-items:center;gap:9px}.status-pill{border-radius:999px;padding:6px 11px;background:#fff4df;color:#956000;font-size:12px;font-weight:650}.status-pill.completed{background:#e9f9f3;color:#117957}.status-pill.awaiting_review{background:#fff0f2;color:#bd1d39}.view{display:none}.view.active{display:block}.hero-card,.panel,.metrics article{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.hero-card{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 26px;background:linear-gradient(120deg,#fff 55%,#fff3f5)}.hero-card h2{font-size:24px;margin:5px 0}.hero-card p{margin:0;color:var(--muted);word-break:break-all}.primary,.secondary,.ghost,.button{border-radius:9px;padding:9px 14px;text-decoration:none;cursor:pointer;border:1px solid transparent;font-weight:600;display:inline-flex;align-items:center;justify-content:center}.primary{background:var(--red);color:#fff;box-shadow:0 7px 18px rgba(255,36,66,.18)}.primary:hover{background:var(--red-dark)}.primary:disabled{opacity:.45;cursor:not-allowed}.secondary{background:#fff;color:var(--ink);border-color:var(--line)}.secondary:hover,.ghost:hover{border-color:#ffc1cb;color:var(--red)}.ghost{background:transparent;color:#65738b;border-color:transparent}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin:14px 0}.metrics article{padding:17px}.metrics span,.metrics small{display:block;color:var(--muted)}.metrics strong{display:block;margin:5px 0;font-size:24px}.panel{padding:20px}.panel h2,.page-section-head h2{margin:3px 0 0;font-size:20px}.panel-head,.page-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.subtle{color:var(--muted);margin:3px 0}.workflow-panel{margin-bottom:14px}.workflow{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-top:18px}.workflow-step{position:relative;padding:14px 11px;background:var(--soft);border:1px solid var(--line);border-radius:12px}.workflow-step b,.workflow-step span{display:block}.workflow-step b{font-size:12px;color:#52617a}.workflow-step span{margin-top:6px;font-weight:650}.workflow-step.done{border-color:#c6ebdd;background:#f0fbf7}.workflow-step.done b{color:var(--green)}.workflow-step.active{border-color:#ffc3cd;background:#fff4f6}.workflow-step.active b{color:var(--red)}.dashboard-grid,.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.config-list{margin:16px 0 0}.config-list div,.setting-row{display:flex;justify-content:space-between;gap:20px;padding:11px 0;border-bottom:1px solid var(--line)}.config-list dt{color:var(--muted)}.config-list dd{margin:0;font-weight:650;text-align:right}.check-list{margin:14px 0 0;padding:0;list-style:none}.check-list li{padding:8px 0 8px 25px;position:relative}.check-list li:before{content:'✓';position:absolute;left:0;color:var(--green);font-weight:800}.timeline-layout{display:grid;grid-template-columns:minmax(330px,38%) 1fr;gap:14px;align-items:start}.sticky-player{position:sticky;top:18px}.sticky-player video{width:100%;aspect-ratio:16/9;background:#080b12;border-radius:12px;margin-top:14px}.player-help{color:var(--muted);font-size:12px;margin-top:9px}.timeline-panel{min-width:0}.table-wrap{overflow:auto;margin-top:14px;border:1px solid var(--line);border-radius:12px}table{width:100%;min-width:940px;border-collapse:collapse}th,td{padding:10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{background:var(--soft);font-size:11px;color:var(--muted);position:sticky;top:0;z-index:1}tr:last-child td{border-bottom:0}td input,td textarea,td select{width:100%;border:1px solid var(--line);border-radius:7px;padding:7px;background:#fff;color:var(--ink)}td input{min-width:76px}td textarea{min-width:250px;min-height:58px;resize:vertical}.row-play{border:0;background:#fff0f2;color:var(--red);border-radius:8px;padding:6px 9px;cursor:pointer}.evidence{max-width:190px;color:var(--muted);font-size:12px}.kind-tag{display:inline-block;border-radius:999px;padding:3px 8px;background:#eef2f7;color:#52617a;font-size:11px}.kind-tag.dialogue{background:#fff0f2;color:#c21d3b}.page-section-head{margin-bottom:16px}.clip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px}.clip-card{background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden;box-shadow:var(--shadow)}.clip-card video{display:block;width:100%;aspect-ratio:16/9;background:#05070c}.clip-body{padding:14px}.clip-head{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:12px}.clip-body h3{margin:9px 0 5px;font-size:15px;min-height:46px}.clip-meta{display:flex;gap:6px;flex-wrap:wrap}.clip-meta span{border:1px solid var(--line);border-radius:999px;padding:3px 7px;color:#65738b;font-size:11px}.empty-state{text-align:center;background:#fff;border:1px dashed #cdd5e2;border-radius:16px;padding:65px 20px}.hidden{display:none!important}.log-list{margin-top:14px;display:grid;gap:8px}.log-entry{display:grid;grid-template-columns:85px 100px 1fr;gap:10px;padding:10px 12px;background:var(--soft);border-radius:9px}.log-entry time,.log-entry span{color:var(--muted)}.settings-grid{grid-template-columns:repeat(2,1fr)}.notice{margin:15px 0 0;padding:12px;background:#fff8e9;border-left:3px solid var(--amber);color:#795526;border-radius:7px}.modal-backdrop{position:fixed;inset:0;background:rgba(13,19,32,.55);display:grid;place-items:center;padding:20px;z-index:30}.modal{position:relative;width:min(520px,100%);background:#fff;border-radius:18px;padding:26px;box-shadow:0 30px 80px rgba(10,18,35,.28)}.modal h2{font-size:24px;margin:6px 0}.modal p{color:var(--muted)}.modal-close{position:absolute;right:16px;top:12px;border:0;background:transparent;font-size:25px;color:var(--muted);cursor:pointer}.confirm-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:17px 0}.confirm-summary div{background:var(--soft);border-radius:10px;padding:11px}.confirm-summary span,.confirm-summary strong{display:block}.confirm-summary span{font-size:11px;color:var(--muted)}.confirm-check{display:flex;gap:9px;align-items:flex-start;margin:16px 0}.modal-actions{justify-content:flex-end}.toast{position:fixed;right:24px;bottom:24px;background:#172033;color:#fff;padding:12px 16px;border-radius:10px;box-shadow:var(--shadow);z-index:40}.toast.error{background:#a71932}@media(max-width:1100px){.workflow{grid-template-columns:repeat(3,1fr)}.timeline-layout{grid-template-columns:1fr}.sticky-player{position:relative;top:auto}.metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.sidebar{position:static;width:auto;height:auto}.app-shell{display:block}.sidebar nav{grid-template-columns:repeat(5,1fr);overflow:auto}.nav-item{justify-content:center;font-size:0}.nav-item span{font-size:18px}.sidebar-foot{display:none}.main{margin-left:0;padding:18px}.topbar,.hero-card,.panel-head,.page-section-head{align-items:flex-start;flex-direction:column}.metrics,.dashboard-grid,.settings-grid{grid-template-columns:1fr}.workflow{grid-template-columns:1fr}.hero-actions,.panel-actions{width:100%;flex-wrap:wrap}.hero-actions button,.panel-actions button{flex:1}.confirm-summary{grid-template-columns:1fr}}
/* 2026-08-02 切割完成跳转交互：查看切割结果按钮 + 卡片/分组闪光特效 */
.material-view-button.view-cut-button{border-color:#b8e3d0;background:#e9f9f3;color:#0e8a5f}
.material-row-flash{animation:material-flash .9s ease}
@keyframes material-flash{0%{background:#fff6c9;box-shadow:0 0 0 3px rgba(255,196,0,.6)}45%{background:#ffe9a8;box-shadow:0 0 0 5px rgba(255,150,0,.4)}100%{background:transparent;box-shadow:0 0 0 0 rgba(255,196,0,0)}}
.cut-group-flash{animation:group-flash 1.1s ease}
@keyframes group-flash{0%{border-color:#ffd166;box-shadow:0 0 0 4px rgba(255,196,0,.55),var(--shadow)}50%{border-color:#ff9f1c;box-shadow:0 0 0 9px rgba(255,150,0,.28),var(--shadow)}100%{border-color:var(--line);box-shadow:var(--shadow)}}
.work-cut-group{scroll-margin-top:16px}
#clip-grid{scroll-margin-top:16px}
/* 2026-08-02 批量切割：素材多选 + 一键切割 */
.cut-bulk-bar{display:flex;align-items:center;gap:14px;padding:10px 13px;border-bottom:1px solid var(--line);background:var(--soft);flex-wrap:wrap}
.cut-bulk-bar .subtle{margin:0}
.cut-select-all{display:flex;align-items:center;gap:7px;font-weight:650;color:#52617a;cursor:pointer}
.cut-select-all input{width:16px;height:16px;accent-color:var(--red);cursor:pointer}
.cut-select{display:flex;align-items:center;justify-content:center;min-width:18px;cursor:pointer}
.cut-select input{width:16px;height:16px;accent-color:var(--red);cursor:pointer}
.material-row{grid-template-columns:auto minmax(240px,2fr) repeat(3,minmax(80px,.6fr)) minmax(170px,1fr)}
.material-row.selected{background:#fff4f6!important;border-left-color:var(--red)!important;box-shadow:inset 0 0 0 1px #ffc1cb}
.material-row.selected .material-status.cut-complete{color:var(--red)!important}
.bulk-cut-button{padding:7px 14px;font-size:12px}
/* 2026-08-02 系统设置·识别执行 + 任务日志完善 */
.setting-actions{display:flex;align-items:center;gap:9px;margin-top:12px}
.setting-actions input{flex:1;min-width:0;border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.log-entry.warn{background:#fff9ec;border-left:3px solid var(--amber)}
.log-entry.error{background:#fff1f3;border-left:3px solid #c62946}
.log-entry.local{opacity:.72}
.log-entry span{font-weight:650}
.log-entry.warn span{color:var(--amber)}
.log-entry.error span{color:#c62946}
/* 2026-08-02 系统负载监控 */
.load-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}
.load-row:last-of-type{border-bottom:0}
.load-row span{min-width:86px;color:var(--muted)}
.load-row strong{min-width:64px;text-align:right;font-variant-numeric:tabular-nums}
.load-bar{flex:1;height:8px;border-radius:999px;background:var(--soft);overflow:hidden}
.load-bar i{display:block;height:100%;width:0;border-radius:999px;background:var(--green);transition:width .6s ease}
.load-bar i.mid{background:var(--amber)}
.load-bar i.high{background:#c62946}
/* 2026-08-02 识别线程滑块 */
.setting-actions input[type="range"]{flex:1;min-width:0;accent-color:var(--red);cursor:pointer}
.setting-actions #settings-workers-value{min-width:22px;text-align:center;font-size:16px;font-weight:750;font-variant-numeric:tabular-nums}
/* 2026-08-02 素材进度条 */
.material-progress{display:block;height:4px;border-radius:999px;background:var(--soft);overflow:hidden;margin-top:4px}
.material-progress i{display:block;height:100%;background:var(--red);border-radius:999px;transition:width .6s ease}
