/* 剧管家 · 团队协作（网页版与桌面版共用，全部限定在 .tm 内） */
.t-webbody{margin:0;background:#F3F5F9;color:#0E1A2B;font-family:"Microsoft YaHei UI","Microsoft YaHei","PingFang SC","Segoe UI",system-ui,sans-serif;font-size:13.5px;-webkit-font-smoothing:antialiased}
.t-webbody #teamRoot{min-height:100vh}
.tm{--tb:#0070CF;--tb2:#0A4FA8;--tl:#E7EBF1;--tt2:#4F5E73;--tt3:#8A97A8;--tok:#12A37F;--terr:#DC3B3B;color:#0E1A2B;font-size:13.5px}
.tm *{box-sizing:border-box}
.tm h2{font-size:19px;margin:0}
.tm h3{font-size:16px;margin:0 0 10px}
.tm h4{font-size:14px;margin:0 0 8px}
.tm p{margin:0}
.t-i{width:16px;height:16px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.t-muted{color:var(--tt3)}
.t-muted.sm,.tm small{font-size:12px}
.t-red{color:var(--terr)}
.t-ok{color:var(--tok);font-size:12px}
.t-grow{flex:1}
.num{font-variant-numeric:tabular-nums}

/* 按钮、输入 */
.t-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 14px;border-radius:9px;border:1px solid var(--tl);background:#fff;color:#0E1A2B;font:inherit;font-size:13px;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s}
.t-btn:hover{border-color:#B9C6D8;background:#F7F9FC}
.t-btn:disabled{opacity:.45;cursor:not-allowed}
.t-btn.sm{height:28px;padding:0 10px;font-size:12.5px;border-radius:7px}
.t-btn.primary{background:linear-gradient(135deg,#00A9D6,#0070CF);border-color:transparent;color:#fff;font-weight:600}
.t-btn.primary:hover{filter:brightness(1.06)}
.t-btn.warn{border-color:#F2B8B8;color:#C0392B}
.t-btn.danger{background:#DC3B3B;border-color:#DC3B3B;color:#fff}
.t-btn.danger.ghost{background:#fff;color:#C0392B;border-color:#F2C4C4}
.t-btn.ghost{background:transparent}
.t-btn.block{display:flex;width:100%;margin-top:10px}
.t-link{background:none;border:none;color:var(--tb);cursor:pointer;font:inherit;padding:0}
.tm input,.tm select,.tm textarea,.t-dlg input,.t-dlg select,.t-dlg textarea{font:inherit;font-size:13.5px;color:#0E1A2B;border:1px solid #D7DEE8;border-radius:8px;background:#fff;padding:7px 10px;outline:none}
.tm input:focus,.tm select:focus,.tm textarea:focus,.t-dlg input:focus,.t-dlg textarea:focus,.t-dlg select:focus{border-color:var(--tb);box-shadow:0 0 0 3px rgba(0,112,207,.12)}
.tm select{padding:5px 8px;height:30px}
.t-f{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--tt2);font-weight:600;margin-top:12px}
.t-f input,.t-f textarea,.t-f select{width:100%;font-weight:400}
.t-two{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.t-err{color:var(--terr);font-size:12.5px;min-height:18px;margin-top:10px}
.t-card{background:#fff;border:1px solid var(--tl);border-radius:14px;padding:18px 20px;box-shadow:0 1px 2px rgba(16,32,64,.04)}
.t-pad0{padding:0;overflow:hidden}

/* 登录 */
.t-auth{min-height:100vh;display:grid;place-items:center;padding:30px;background:radial-gradient(circle at 20% 10%,rgba(0,194,222,.12),transparent 40%),radial-gradient(circle at 90% 90%,rgba(0,112,207,.12),transparent 45%)}
.page .t-auth{min-height:calc(100vh - 150px)}
.t-auth-c{width:380px;padding:30px 30px 24px}
.t-auth-c.wide{width:520px}
.t-auth-c h2{margin-bottom:6px}
.t-auth-c .t-muted{font-size:12.5px;line-height:1.6}
.t-auth-c p.sm{margin-top:12px;text-align:center}
.t-logo{width:42px;height:42px;border-radius:50%;background:conic-gradient(from 200deg,#00C2DE,#0070CF,#00C2DE);box-shadow:inset 0 0 0 7px rgba(255,255,255,.35);margin-bottom:14px}

/* 顶栏 */
.t-head{display:flex;align-items:center;gap:16px;padding:12px 22px;background:#fff;border-bottom:1px solid var(--tl);position:sticky;top:0;z-index:5}
.t-brand{display:flex;flex-direction:column;line-height:1.2}
.t-brand b{font-size:15px}
.t-brand span{font-size:11.5px;color:var(--tt3)}
.t-nav{display:flex;gap:4px;margin-left:12px}
.t-nav button{border:none;background:none;height:32px;padding:0 12px;border-radius:8px;cursor:pointer;color:var(--tt2);font:inherit;font-size:13px}
.t-nav button.on{background:#EAF3FD;color:var(--tb2);font-weight:700}
.t-me{display:flex;align-items:center;gap:8px;font-size:13px}
.t-me small{color:var(--tt3);font-size:11.5px;background:#F0F3F8;padding:1px 7px;border-radius:9px}
.t-av{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#00C2DE,#0070CF);color:#fff;font-style:normal;font-size:11px;display:grid;place-items:center;font-weight:700}
.t-body{padding:20px 22px 40px;max-width:1400px;margin:0 auto}
.t-titlebar{display:flex;align-items:flex-end;gap:12px;margin-bottom:16px}
.t-titlebar p{margin-top:4px;font-size:12.5px;max-width:720px;line-height:1.6}
.t-empty{padding:46px 20px;text-align:center;color:var(--tt3);line-height:1.8}
.t-empty b{display:block;color:#3A4A60;font-size:14px}
.t-empty.sm{padding:22px 12px;font-size:12.5px}

/* 项目卡片 */
.t-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.t-pc{background:#fff;border:1px solid var(--tl);border-radius:14px;padding:16px 18px;cursor:pointer;transition:border-color .12s,box-shadow .12s}
.t-pc:hover{border-color:#9CC5EE;box-shadow:0 6px 18px rgba(10,60,130,.08)}
.t-pc-h{display:flex;align-items:center;gap:8px}
.t-pc-h b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}
.t-badge{font-size:11.5px;color:#B33A1A;background:#FDEDE7;padding:2px 8px;border-radius:9px;white-space:nowrap}
.t-pc-m{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--tt2);margin-top:6px}
.t-pc-m em{color:var(--tt3)}
.t-bar{display:flex;height:8px;border-radius:4px;overflow:hidden;background:#EEF1F6;margin-top:12px;gap:1px}
.t-bar i{display:block;min-width:4px}
.t-pc-s{display:flex;flex-wrap:wrap;gap:3px 12px;font-size:11.5px;color:var(--tt2);margin-top:8px}
.t-pc-s i{display:inline-block;width:7px;height:7px;border-radius:2px;margin-right:4px}
.t-pc-f{font-size:11.5px;color:var(--tt3);margin-top:10px}

/* 项目页 */
.t-crumb{font-size:12.5px;color:var(--tt3);margin-bottom:10px}
.t-ph{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;margin-bottom:14px}
.t-intro{font-size:12.5px;color:var(--tt2);line-height:1.7;margin-top:8px;max-width:760px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.t-ph-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;font-size:13px}
.t-lbl{width:44px;color:var(--tt3);font-size:12px;flex:none}
.t-tag{display:inline-flex;align-items:center;gap:5px;background:#F2F5F9;border-radius:8px;padding:3px 8px;font-size:12.5px}
.t-tag small{color:var(--tt3);font-size:11px}
.t-tag button{border:none;background:none;color:var(--tt3);cursor:pointer;font-size:14px;padding:0 0 0 2px}
.t-tag .t-i{width:13px;height:13px}
.t-acts{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.t-acts.col{flex-direction:column;align-items:stretch;margin-top:14px}
.t-fbar{display:flex;flex-wrap:wrap;gap:6px;padding:12px 16px;border-bottom:1px solid var(--tl)}
.t-fbar button{height:26px;padding:0 11px;border-radius:13px;border:1px solid var(--tl);background:#fff;font:inherit;font-size:12px;color:var(--tt2);cursor:pointer}
.t-fbar button.on{background:#0E1A2B;border-color:#0E1A2B;color:#fff}
.t-table{width:100%;border-collapse:collapse;font-size:13px}
.t-table th{text-align:left;font-weight:600;color:var(--tt3);font-size:12px;padding:10px 14px;background:#FAFBFD;border-bottom:1px solid var(--tl)}
.t-table td{padding:9px 14px;border-bottom:1px solid #F0F3F7;vertical-align:middle}
.t-table td small{display:block;color:var(--tt3)}
.t-table tr.dim td{opacity:.5}
.t-table tbody tr:hover{background:#FAFCFF}
.t-st{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--c);background:color-mix(in srgb,var(--c) 12%,#fff);padding:2px 9px;border-radius:10px;white-space:nowrap}
.t-st::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--c)}
.t-roles{margin-top:14px}
.t-roles dl{display:grid;grid-template-columns:110px 1fr;gap:6px 12px;margin:0;font-size:12.5px;line-height:1.6}
.t-roles dt{font-weight:700}
.t-roles dd{margin:0;color:var(--tt2)}

/* 对话框、提示 */
.t-mask{position:fixed;inset:0;background:rgba(10,20,35,.45);display:grid;place-items:center;z-index:200}
.t-dlg{background:#fff;border-radius:14px;width:min(480px,92vw);padding:22px 22px 16px;box-shadow:0 20px 60px rgba(0,0,0,.3);color:#0E1A2B;font-size:13.5px;max-height:88vh;display:flex;flex-direction:column}
.t-dlg-b{overflow:auto;line-height:1.65}
.t-dlg-b p{margin:0 0 6px}
.t-dlg-f{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
.t-dlg .t-btn{height:34px}
.t-ul{margin:6px 0 0;padding-left:18px;font-size:12.5px;color:#4F5E73}
.t-pw{display:flex;align-items:center;gap:10px;margin:10px 0;background:#F2F6FB;border-radius:10px;padding:12px 14px}
.t-pw code{font-size:20px;letter-spacing:2px;font-weight:700;flex:1}
.t-toasts{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:8px;z-index:300}
.t-toast{background:#fff;border-left:4px solid #2D7FE0;box-shadow:0 8px 28px rgba(10,30,70,.2);padding:10px 14px;border-radius:8px;font-size:13px;max-width:360px}
.t-toast.ok{border-color:#12A37F}.t-toast.err{border-color:#DC3B3B}.t-toast.warn{border-color:#E08A0B}
.t-log{display:flex;flex-direction:column;gap:2px;font-size:12.5px}
.t-log.big{max-height:60vh;overflow:auto}
.t-ev{display:grid;grid-template-columns:10px 1fr;gap:10px;padding:8px 4px;border-bottom:1px dashed #E6EBF2;line-height:1.55}
.t-ev>i{width:8px;height:8px;border-radius:50%;margin-top:6px}
.t-ev small{display:block;color:var(--tt3);font-size:11px}
.t-evs{font-size:12px;color:var(--tt2)}

/* 上传面板 */
.t-ups{position:fixed;right:18px;bottom:18px;width:320px;background:#fff;border:1px solid var(--tl);border-radius:12px;box-shadow:0 12px 36px rgba(10,30,70,.2);z-index:150;font-size:12.5px;overflow:hidden}
.t-ups .h{display:flex;align-items:center;padding:9px 12px;border-bottom:1px solid var(--tl)}
.t-ups .h button{border:none;background:none;color:var(--tb);cursor:pointer;font:inherit;font-size:12px}
.t-ups .u{padding:8px 12px;border-bottom:1px solid #F2F4F8}
.t-ups .n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.t-ups .bar{height:5px;background:#EEF1F6;border-radius:3px;margin:5px 0 3px;overflow:hidden}
.t-ups .bar i{display:block;height:100%;background:linear-gradient(90deg,#00C2DE,#0070CF);transition:width .2s}
.t-ups .u.done .bar i{background:#12A37F}
.t-ups .u.error{color:#B42318}
.t-ups .u.error .bar i{background:#DC3B3B}
.t-ups small{color:var(--tt3)}

/* 审片室（深色） */
.t-room{position:fixed;inset:0;z-index:60;background:#0A0F17;color:#D9E2EE;display:grid;grid-template-rows:56px minmax(0,1fr)}
.t-rtop{display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid #1B2533;background:#0D141F}
.t-rt{display:flex;flex-direction:column;min-width:0}
.t-rt b{color:#fff;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.t-rt span{font-size:12px;color:#7C8BA1;display:flex;align-items:center;gap:8px}
.t-room .t-btn{background:#162131;border-color:#253246;color:#D9E2EE}
.t-room .t-btn:hover{background:#1C2A3E;border-color:#36506F}
.t-room .t-btn.primary{background:linear-gradient(135deg,#00A9D6,#0070CF);border:none;color:#fff}
.t-room .t-btn.warn{border-color:#7A3434;color:#FF9C92}
.t-room select{background:#121B28;border-color:#253246;color:#D9E2EE;height:30px}
.t-room .t-st{background:color-mix(in srgb,var(--c) 22%,#0D141F)}
.t-rmain{display:grid;grid-template-columns:320px minmax(0,1fr) 360px;min-height:0}
.t-rdoc,.t-rside{background:#0D141F;display:flex;flex-direction:column;min-height:0;min-width:0}
.t-rdoc{border-right:1px solid #1B2533}
.t-rside{border-left:1px solid #1B2533}
.t-rtabs{display:flex;gap:4px;padding:10px 12px 0}
.t-rtabs button{flex:1;height:32px;border:none;border-radius:8px 8px 0 0;background:transparent;color:#7C8BA1;cursor:pointer;font:inherit;font-size:12.5px}
.t-rtabs button.on{background:#121C2A;color:#fff;font-weight:700}
.t-rtabs button b{background:#E08A0B;color:#fff;border-radius:8px;font-size:11px;padding:0 6px;margin-left:4px}
.t-room .t-dq{margin:10px 12px 6px;background:#0D141F;border-color:#253246;color:#D9E2EE;height:30px;font-size:12.5px}
.t-dbody{overflow:auto;flex:1;padding:4px 8px 24px;background:#121C2A}
.t-dbody p{font-size:13.5px;line-height:1.7;color:#C9D5E4;padding:4px 10px;border-radius:7px;border-left:3px solid transparent;cursor:pointer;margin:0}
.t-dbody p:hover{background:#18253A}
.t-dbody p b{color:#8CC8FF;font-weight:600}
.t-dbody p.dir{color:#7C8BA1;font-size:12.5px}
.t-dbody .now{background:#1B3355!important;border-left-color:#3D8FE0;color:#fff}
.t-cue{display:grid;grid-template-columns:48px 1fr;gap:6px;padding:6px 8px;border-radius:7px;border-left:3px solid transparent;cursor:pointer}
.t-cue:hover{background:#18253A}
.t-cue span{font-size:11px;color:#6E7F98;padding-top:3px}
.t-cue p{padding:0}
.t-room .t-empty{color:#7C8BA1}.t-room .t-empty b{color:#D9E2EE}
.t-rcenter{display:grid;grid-template-rows:minmax(0,1fr) auto auto;min-height:0;min-width:0}
.t-stage{position:relative;display:grid;place-items:center;min-height:0;overflow:hidden;background:radial-gradient(circle at 50% 40%,#111A27,#06090E)}
.t-vw{position:relative;line-height:0}
.t-vw video{display:block;max-width:calc(100vw - 720px);max-height:calc(100vh - 56px - 120px);background:#000}
.t-wait{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:#9DB0CB;line-height:1.9;padding:20px;background:rgba(6,9,14,.6)}
.t-draw{position:absolute;inset:0;cursor:crosshair;display:none}
.t-draw.on{display:block}
.t-rect{position:absolute;border:2px solid #FF3B30;box-shadow:0 0 0 9999px rgba(0,0,0,.35);pointer-events:none}
.t-show{position:absolute;border:2px solid #FF3B30;border-radius:2px;pointer-events:none}
.t-show.new{border-style:dashed}
.t-show em{position:absolute;left:-2px;top:-22px;background:#FF3B30;color:#fff;font-style:normal;font-size:11px;line-height:1;padding:4px 6px;border-radius:4px 4px 4px 0;white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis}
.t-hint{position:absolute;top:14px;left:50%;transform:translateX(-50%);background:rgba(255,59,48,.92);color:#fff;font-size:12.5px;padding:6px 14px;border-radius:16px;display:none}
.t-hint.on{display:block}
.t-ctrl{display:flex;align-items:center;gap:8px;padding:10px 16px 0;border-top:1px solid #1B2533;background:#0D141F}
.t-ib{width:34px;height:30px;border-radius:8px;border:1px solid #253246;background:#162131;color:#D9E2EE;display:grid;place-items:center;cursor:pointer;font-size:16px}
.t-tc{font-variant-numeric:tabular-nums;color:#fff;min-width:120px}
.t-tc small{color:#7C8BA1}
.t-io{font-size:12px;color:#F6C26A}
.t-track{position:relative;height:40px;padding:0 16px;background:#0D141F;cursor:pointer;user-select:none}
.t-track .rail{position:absolute;left:16px;right:16px;top:22px;height:6px;border-radius:3px;background:#1E2A3B}
.t-track .played{position:absolute;left:16px;top:22px;height:6px;border-radius:3px;background:linear-gradient(90deg,#00C2DE,#0A86D2);max-width:calc(100% - 32px)}
.t-track #tMarks{position:absolute;left:16px;right:16px;top:0;bottom:0}
.t-track .head{position:absolute;top:16px;width:12px;height:18px;margin-left:10px;border-radius:4px;background:#fff;box-shadow:0 1px 6px rgba(0,0,0,.5);pointer-events:none}
.t-track .nt{position:absolute;top:2px;height:14px;min-width:4px;border-radius:3px;background:#F2A93B;cursor:pointer}
.t-track .nt.done{background:#3E7D69}
.t-track .nt.on{outline:2px solid #fff}
.t-track .io{position:absolute;top:18px;height:14px;background:rgba(246,194,106,.25);border-left:2px solid #F6C26A;border-right:2px solid #F6C26A;pointer-events:none}
.t-nf{display:flex;align-items:center;gap:6px;padding:10px 12px;background:#121C2A;border-bottom:1px solid #1B2533}
.t-nf button{height:24px;padding:0 9px;border-radius:12px;border:1px solid #253246;background:transparent;color:#9DB0CB;font:inherit;font-size:11.5px;cursor:pointer}
.t-nf button.on{background:#D9E2EE;color:#0D141F;border-color:#D9E2EE}
.t-notes,.t-rside .t-log{flex:1;overflow:auto;padding:10px 12px;display:flex;flex-direction:column;gap:10px;background:#121C2A}
.t-rside .t-ev{border-bottom-color:#1E2B3D}
.t-rside .t-ev small,.t-rside .t-evs{color:#7C8BA1}
.t-note{background:#0F1825;border:1px solid #1E2B3D;border-radius:12px;overflow:hidden;cursor:pointer;flex:none}
.t-note:hover{border-color:#36506F}
.t-note.on{border-color:#3D8FE0;box-shadow:0 0 0 1px #3D8FE0}
.t-note.done{opacity:.6}
.t-note .im{position:relative;background:#000;line-height:0}
.t-note .im img{width:100%;max-height:170px;object-fit:contain}
.t-note .tm,.t-note .vv,.t-ntm{position:absolute;left:8px;top:8px;font-size:11.5px;font-weight:700;color:#fff;background:rgba(10,110,210,.9);padding:2px 7px;border-radius:6px;line-height:1.5}
.t-ntm{position:static;display:inline-block;margin:10px 0 0 11px}
.t-note .vv{left:auto;right:8px;background:rgba(80,90,110,.9)}
.t-note .tx{padding:9px 11px 4px;font-size:12.5px;line-height:1.65;color:#E6EDF6;white-space:pre-wrap;word-break:break-word}
.t-note .ft{display:flex;align-items:center;gap:6px;padding:4px 8px 8px 11px;font-size:11px;color:#6E7F98}
.t-note .ft small{margin-left:4px;font-size:10.5px;color:#8CC8FF}
.t-note .ft button{border:none;background:none;color:#8EA3C2;cursor:pointer;font:inherit;font-size:11px}
.t-note .ft button:hover{color:#fff}
.t-note .ft label{display:flex;align-items:center;gap:4px;cursor:pointer;color:#9DB0CB}
.t-compose{border-top:1px solid #1B2533;padding:10px 12px 12px;background:#0D141F}
.t-ci{display:flex;align-items:center;gap:8px;font-size:12px;color:#7C8BA1;flex-wrap:wrap}
.t-ci b{color:#fff;background:#162131;border-radius:6px;padding:2px 8px;font-weight:600}
.t-ci button{border:none;background:none;color:#8EA3C2;cursor:pointer;font-size:14px}
.t-ci .bx{color:#FF8A80}
.t-compose textarea{width:100%;height:70px;margin-top:8px;background:#121B28;border-color:#253246;color:#E6EDF6;resize:vertical}
.t-crow{display:flex;align-items:center;gap:8px;margin-top:8px}
@media (max-width:1280px){.t-rmain{grid-template-columns:260px minmax(0,1fr) 320px}.t-vw video{max-width:calc(100vw - 600px)}}
@media (max-width:900px){.t-ph{grid-template-columns:1fr}.t-two{grid-template-columns:1fr}.t-rmain{grid-template-columns:1fr}.t-rdoc,.t-rside{display:none}.t-vw video{max-width:100vw}}
.t-table td.t-acts{display:table-cell;text-align:right;white-space:nowrap}
.t-table td.t-acts .t-btn{margin-left:6px}
