:root{--bg:#f4f6f3;--paper:#fff;--ink:#17231d;--muted:#748078;--line:#e1e7e2;--green:#176b4d;--green2:#e5f3eb;--amber:#a66a16;--amber2:#fff3d9;--red:#b54b45;--red2:#fdebea;--shadow:0 16px 40px rgba(20,49,34,.12)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}button,input,select,textarea{font:inherit}.hidden{display:none!important}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#315846,#11261d 55%);padding:20px}.login-card{width:min(420px,100%);background:#fff;border-radius:18px;padding:34px;box-shadow:var(--shadow);display:grid;gap:17px}.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:8px}.login-brand>span,.brand>span{width:44px;height:44px;border-radius:13px;background:#d9a853;color:#17231d;display:grid;place-items:center;font-weight:800;font-size:20px}.login-brand h1{font-size:24px;margin:0}.login-brand p{margin:4px 0 0;color:var(--muted);font-size:13px}.login-card label,.field{font-size:13px;display:grid;gap:7px}.login-card input,.field input,.field select,.field textarea{border:1px solid #d7dfda;border-radius:9px;padding:11px;background:#fff}.primary,.secondary,.mini{border-radius:9px;padding:10px 15px;cursor:pointer}.primary{border:0;background:var(--green);color:#fff;font-weight:650}.primary:hover{background:#105a40}.secondary{border:1px solid var(--line);background:#fff;color:var(--ink)}.mini{padding:6px 10px;border:1px solid var(--line);background:#fff;font-size:12px}.error{color:var(--red);font-size:13px;min-height:18px}.app-shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:#12251d;color:#fff;padding:25px 18px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;padding:0 8px 27px}.brand b,.brand small,.user-box b,.user-box small{display:block}.brand small,.user-box small{font-size:11px;color:#91a69a;margin-top:3px}.sidebar nav{display:grid;gap:6px}.nav-item{border:0;background:transparent;color:#a3b3ab;text-align:left;padding:12px 14px;border-radius:10px;cursor:pointer}.nav-item:hover,.nav-item.active{background:#254236;color:#fff}.nav-item i{font-style:normal;display:inline-block;width:27px}.user-box{margin-top:auto;border-top:1px solid #30473c;padding:18px 7px 0;display:flex;align-items:center;gap:10px}.avatar{width:35px;height:35px;border-radius:50%;background:#d9a853;color:#17231d;display:grid;place-items:center;font-weight:700}main{min-width:0;padding:30px 36px 50px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}header h1{font-size:28px;margin:0 0 5px}header p{margin:0;color:var(--muted);font-size:13px}.grid{display:grid;gap:16px}.stats{grid-template-columns:repeat(4,1fr);margin-bottom:17px}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:0 2px 10px rgba(20,49,34,.025)}.stat-label{font-size:13px;color:var(--muted)}.stat-value{font-size:26px;font-weight:750;margin:10px 0 5px}.stat-note{font-size:12px;color:var(--green)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.card h2{font-size:17px;margin:0 0 16px}.project-grid{grid-template-columns:repeat(2,1fr)}.project{border-left:4px solid var(--green)}.project.urgent{border-left-color:var(--red)}.project h2{margin:8px 0 5px}.project p{font-size:12px;color:var(--muted);margin:0}.project-meta{display:flex;justify-content:space-between;gap:10px;margin-top:16px;font-size:12px}.tag{display:inline-block;border-radius:18px;padding:4px 8px;background:var(--green2);color:var(--green);font-size:11px}.tag.wait{background:var(--amber2);color:var(--amber)}.tag.return{background:var(--red2);color:var(--red)}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-weight:500;color:var(--muted);padding:10px;border-bottom:1px solid var(--line)}td{padding:12px 10px;border-bottom:1px solid #edf0ed}tr:last-child td{border-bottom:0}.table-wrap{overflow:auto}.empty{text-align:center;color:var(--muted);padding:45px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field.full{grid-column:1/-1}.field textarea{min-height:82px;resize:vertical}.actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.modal-wrap{position:fixed;inset:0;background:rgba(10,23,17,.45);display:grid;place-items:center;padding:18px;z-index:10}.modal{position:relative;background:#fff;border-radius:16px;width:min(640px,100%);max-height:90vh;overflow:auto;padding:27px;box-shadow:var(--shadow)}.close{position:absolute;right:14px;top:10px;border:0;background:none;font-size:27px;color:var(--muted);cursor:pointer}.modal h2{margin:0 0 6px}.modal>div>p{font-size:13px;color:var(--muted)}.summary{background:#f5f8f6;border-radius:10px;padding:14px;margin:14px 0;font-size:13px;line-height:1.7}.toast{position:fixed;right:25px;bottom:25px;background:#163d2e;color:#fff;border-radius:10px;padding:12px 17px;opacity:0;transform:translateY(8px);transition:.2s;pointer-events:none;z-index:20}.toast.show{opacity:1;transform:none}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:14px}.toolbar select{padding:9px;border:1px solid var(--line);border-radius:9px;background:#fff}.warning{background:var(--amber2);color:#69420d;border-radius:10px;padding:12px 14px;font-size:13px;margin-bottom:16px}
@media(max-width:900px){.app-shell{grid-template-columns:76px 1fr}.sidebar{padding:20px 9px}.brand div,.user-box div:not(.avatar),.nav-item span{display:none}.nav-item{text-align:center}.stats,.project-grid{grid-template-columns:1fr 1fr}main{padding:24px 19px}}
@media(max-width:620px){.app-shell{display:block}.sidebar{position:static;height:auto;flex-direction:row;align-items:center}.brand{padding:0}.brand div{display:none}.sidebar nav{display:flex;margin-left:auto}.nav-item{padding:9px}.nav-item:nth-child(n+5){display:none}.user-box{display:none}.stats,.project-grid,.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}header h1{font-size:23px}}
.row-actions{display:flex;gap:6px;white-space:nowrap}.mini.danger{color:var(--red);border-color:#efcfcc}.subtle{font-size:12px;color:var(--muted)}
.nav-item[draggable=true]{user-select:none}.nav-item[draggable=true]:active{cursor:grabbing;opacity:.75}.gantt{min-width:680px;overflow:auto}.gantt-scale{display:flex;justify-content:space-between;margin:0 0 10px 170px;color:var(--muted);font-size:11px}.gantt-row{display:grid;grid-template-columns:160px 1fr;align-items:center;gap:10px;margin:8px 0}.gantt-label{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-label small{color:var(--muted)}.gantt-track{height:24px;border-radius:7px;background:repeating-linear-gradient(90deg,#f3f6f4 0,#f3f6f4 9.8%,#e3e9e5 10%);position:relative;overflow:hidden}.gantt-bar{position:absolute;top:4px;height:16px;border-radius:6px;background:#b9d6c9;overflow:hidden}.gantt-bar i{display:block;height:100%;background:var(--green)}.gantt-bar.late{background:#f1c9c4}.gantt-bar.late i{background:var(--red)}.gantt-today{position:absolute;top:0;bottom:0;width:2px;background:#d9a853;z-index:2}
.gantt-bar{cursor:grab;touch-action:none;user-select:none}.gantt-bar.dragging{cursor:grabbing;box-shadow:0 0 0 2px rgba(217,168,83,.45);z-index:4}.gantt-handle{position:absolute;top:0;bottom:0;width:8px;background:rgba(255,255,255,.72);z-index:3;cursor:ew-resize}.gantt-handle.left{left:0}.gantt-handle.right{right:0}.gantt-row{grid-template-columns:245px 1fr}.gantt-scale{margin-left:255px}
.gantt-plan-bar{outline:1px solid rgba(0,0,0,.08)}.gantt-plan-bar:hover{box-shadow:0 0 0 2px rgba(217,168,83,.38)}
.login-brand{display:block}.login-brand>img{display:block;width:100%;max-width:310px;height:auto;background:#fff;border:1px solid #e5e5e5;border-radius:10px;padding:8px;margin-bottom:15px}.brand{display:block}.brand>img{display:block;width:100%;height:auto;background:#fff;border-radius:9px;padding:6px;margin-bottom:11px}.avatar{overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.avatar-settings{display:flex;align-items:center;gap:16px;margin:18px 0}.avatar-preview{width:82px;height:82px;border-radius:50%;background:#d9a853;display:grid;place-items:center;overflow:hidden;font-size:28px;font-weight:700}.avatar-preview img{width:100%;height:100%;object-fit:cover}.avatar-upload input{display:none}
.stat-link{cursor:pointer;transition:transform .15s,border-color .15s}.stat-link:hover{transform:translateY(-2px);border-color:#9dbbad}
.asset-folder-row,.asset-review-row{display:flex;align-items:center;gap:8px;margin:7px 0}.asset-folder-row input{flex:1}.asset-folder-block{margin:0 0 14px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#faf9f6}.asset-upload-zone{margin-top:8px}.asset-drop-zone{border:1.5px dashed #c8c3ba;border-radius:9px;padding:16px 14px;text-align:center;background:#fff;transition:border-color .15s,background .15s}.asset-drop-zone.dragover{border-color:#315846;background:#f3faf6}.asset-drop-zone p{margin:0;font-size:13px;color:#444}.asset-upload-link{color:#315846;text-decoration:underline;cursor:pointer;font-weight:650}.upload-file-list{margin:10px 0 0;padding:0;list-style:none;text-align:left;font-size:12px;color:#555}.upload-file-list li{padding:4px 0;border-bottom:1px solid #eee}.upload-status{display:block;margin-top:8px;font-size:12px;color:#666}.asset-review-row{justify-content:space-between;background:#fff;padding:7px 9px;border-radius:8px}.asset-review-row span{overflow-wrap:anywhere}.media-list{display:grid;gap:8px}.media-item{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;border:1px solid var(--line);border-radius:9px;background:#fff;padding:11px 13px;color:var(--ink);text-decoration:none;text-align:left;cursor:pointer}.media-item:hover{border-color:#9dbbad;background:#f7faf8}.media-item small{color:var(--muted);white-space:nowrap}
.media-preview{display:block;width:100%;max-height:68vh;background:#000;border-radius:10px;margin-top:14px}.media-preview.image{object-fit:contain;background:#f3f3f3}.media-audio{width:100%;margin-top:20px}.media-text-preview{max-height:68vh;overflow:auto;background:#f7f7f4;border:1px solid var(--line);border-radius:10px;padding:12px 14px;white-space:pre-wrap;word-break:break-word;font:13px/1.55 ui-monospace,Menlo,monospace;margin-top:14px}
.status-select{border:1px solid var(--line);border-radius:8px;padding:6px 8px;background:#fff}
.participant-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:7px}.participant-row{display:grid;grid-template-columns:auto 1fr 90px;align-items:center;gap:7px;border:1px solid var(--line);border-radius:9px;padding:8px}.participant-row input[type=number]{padding:7px}.warning-text{color:var(--amber)}
@media(max-width:620px){.participant-grid{grid-template-columns:1fr}}
.clickable-row{cursor:pointer}.clickable-row:hover{background:#f3f8f5}.manual-bind-row{display:grid;grid-template-columns:110px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.manual-bind-row select{min-width:0;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff}.plan-complete-tag{margin-left:6px}
@media(max-width:620px){.manual-bind-row{grid-template-columns:1fr}}

/* v2.5 · 慈爱传媒影视工业视觉系统 */
:root{--bg:#f3f2ee;--paper:#fff;--ink:#171717;--muted:#76736e;--line:#ddd9d2;--green:#16805a;--green2:#e2f1e9;--amber:#b57815;--amber2:#fff0cf;--red:#ef2d2d;--red2:#fde5e5;--shadow:0 18px 55px rgba(0,0,0,.13)}
body{background:var(--bg);color:var(--ink)}
.app-shell{grid-template-columns:244px 1fr}.sidebar{background:#101010;padding:22px 17px;border-right:1px solid #242424}.brand{padding:0 5px 24px;margin-bottom:5px}.brand>img{background:#fff;border:0;border-radius:8px;padding:8px;margin-bottom:0}.brand div{display:none}.sidebar nav{gap:3px;overflow-y:auto;padding-right:2px}.nav-item{position:relative;color:#929292;padding:11px 13px;border-radius:8px;font-size:13px;transition:.16s}.nav-item:hover{background:#1c1c1c;color:#fff}.nav-item.active{background:#252525;color:#fff}.nav-item.active:before{content:"";position:absolute;left:0;top:50%;width:3px;height:22px;border-radius:2px;background:var(--red);transform:translateY(-50%)}.nav-item i{width:23px;color:#c7c7c7}.user-box{border-top:1px solid #292929;padding:18px 7px 0}.user-box small{color:#777}.avatar{background:#fff;color:#111;border:2px solid #333}
main{padding:27px 32px 48px}header{margin-bottom:22px;border-bottom:1px solid var(--line);padding-bottom:18px}header h1{font-size:27px;letter-spacing:-.4px}header h1:before{content:"KINDNESS MEDIA · AIGC STUDIO";display:block;color:var(--red);font-size:9px;letter-spacing:2.2px;margin-bottom:6px;font-weight:800}header p{color:var(--muted)}
.card{border-color:var(--line);border-radius:12px;padding:18px;box-shadow:0 2px 8px rgba(0,0,0,.025)}.card h2{font-size:15px;letter-spacing:.1px}.stats{gap:12px}.stats>.card{position:relative;overflow:hidden}.stats>.card:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:#202020}.stats>.card:nth-child(2):after{background:var(--amber)}.stats>.card:nth-child(3):after{background:var(--green)}.stats>.card:nth-child(4):after{background:var(--red)}.stat-label{font-size:11px;letter-spacing:.3px}.stat-value{font-size:25px;color:#111}.stat-note{color:var(--red);font-size:11px}.stat-link:hover{border-color:#aaa;transform:translateY(-2px)}
.project-grid{gap:12px}.project{position:relative;overflow:hidden;background:#171717;color:#fff;border:0;border-left:0;min-height:150px;cursor:pointer;transition:.18s}.project:after{content:"";position:absolute;right:-32px;bottom:-42px;width:125px;height:125px;border:21px solid #242424;border-radius:50%;pointer-events:none}.project:hover{transform:translateY(-2px);background:#1d1d1d}.project.urgent{border-left:0;box-shadow:inset 3px 0 0 var(--red)}.project h2{position:relative;z-index:1;font-size:18px;margin:12px 0 7px}.project p{position:relative;z-index:1;color:#8e8e8e}.project-meta{position:relative;z-index:1;margin-top:22px;border-top:1px solid #303030;padding-top:12px}.project .tag{position:relative;z-index:1;background:#292929;color:#bbb}.project .tag.return{background:var(--red);color:#fff}
.primary{background:#161616;border:1px solid #161616;border-radius:7px}.primary:hover{background:var(--red);border-color:var(--red)}.secondary,.mini{border-color:#d7d3cc;border-radius:7px}.secondary:hover,.mini:hover{border-color:#999;background:#f8f7f3}.mini.danger{color:var(--red);border-color:#f0caca}.tag{border-radius:4px;padding:4px 7px;font-weight:650;letter-spacing:.2px}.tag.wait{background:var(--amber2);color:var(--amber)}.tag.return{background:var(--red2);color:#c52121}
.table-wrap{border-radius:12px}table{font-size:12px}th{font-size:10px;letter-spacing:.5px;text-transform:uppercase;background:#f8f7f3;color:#7e7a74;padding:11px 10px}td{border-color:#ece9e3;padding:12px 10px}tbody tr{transition:background .12s}tbody tr:hover{background:#faf9f6}.task-progress{width:95px;height:3px;background:#dedbd5;border-radius:3px;margin-top:7px;overflow:hidden}.task-progress i{display:block;height:100%;background:var(--red)}.today-task-card{margin-bottom:18px}.today-task-card .card-head{margin-bottom:12px}
.gantt{padding-top:2px}.gantt-track{height:26px;background:repeating-linear-gradient(90deg,#f6f4ef 0,#f6f4ef 9.75%,#ddd9d2 10%);border-radius:5px}.gantt-bar{top:5px;height:16px;border-radius:3px;background:#242424}.gantt-bar i{background:var(--red)}.gantt-bar.late{background:#f0c9c9}.gantt-bar.late i{background:#b81f1f}.gantt-today{background:var(--red)}.gantt-handle{background:rgba(255,255,255,.45)}
.login-page{background:radial-gradient(circle at 18% 8%,#303030,#0c0c0c 58%)}.login-card{border-radius:13px;padding:32px;border-top:3px solid var(--red)}.login-brand>img{border-color:#e2ded7}.login-brand h1{color:#111}.login-card input,.field input,.field select,.field textarea{border-color:#d8d4cd;border-radius:7px}.login-card input:focus,.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid rgba(239,45,45,.13);border-color:#999}.modal-wrap{background:rgba(0,0,0,.62);backdrop-filter:blur(2px)}.modal{border-radius:12px;border-top:3px solid var(--red)}.summary{background:#f4f3ef}.warning{border-radius:7px}.toast{background:#171717;border-left:3px solid var(--red)}
.shot-code-row{display:flex;align-items:center;gap:8px;margin:7px 0}.shot-code-row input{flex:1}.add-row-button{margin-top:4px}.field small{color:var(--muted);line-height:1.5}.clickable-row:hover{background:#f3f1ec}
@media(max-width:900px){.app-shell{grid-template-columns:78px 1fr}.brand{padding:0 4px 18px}.brand>img{padding:4px}.nav-item{padding:11px;text-align:center}.nav-item i{width:auto}.sidebar{padding:17px 9px}main{padding:24px 19px}}
@media(max-width:620px){.app-shell{display:block}.sidebar{position:sticky;top:0;z-index:8;height:auto;padding:9px 10px;flex-direction:row}.brand{display:none}.sidebar nav{display:flex;overflow-x:auto;margin:0;width:100%;gap:4px}.nav-item{min-width:43px}.nav-item.active:before{left:50%;top:auto;bottom:0;width:22px;height:2px;transform:translateX(-50%)}.user-box{display:none}main{padding:18px 13px}header{align-items:flex-start}header h1{font-size:22px}.stats,.project-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.modal{padding:23px 17px}.today-task-card{overflow:auto}}

/* v2.5.1 · 暖石墨配色与海报项目卡 */
.sidebar{background:#252728;border-right-color:#343738}.nav-item{color:#b0b3b3}.nav-item:hover{background:#303334}.nav-item.active{background:#393c3d}.user-box{border-top-color:#3c3f40}.login-page{background:radial-gradient(circle at 18% 8%,#585957,#292b2c 58%,#222425)}
.section-title{font-size:15px;margin:20px 0 12px;letter-spacing:.3px}.team-today-card{margin-bottom:18px}.poster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.poster-card.project{display:grid;grid-template-columns:42% 58%;min-height:218px;padding:0;background:#fff;color:var(--ink);border:1px solid var(--line);box-shadow:none}.poster-card.project:after{display:none}.poster-card.project:hover{background:#fff;border-color:#bdb8b0}.poster-card.project.completed{background:#edf5f0;border-color:#a9cdb9;box-shadow:inset 4px 0 0 var(--green)}.poster-card.project.urgent:not(.completed){box-shadow:inset 4px 0 0 var(--red)}.poster-media,.team-cover{position:relative;min-height:218px;background:#d8d6d1;overflow:hidden}.poster-media img,.team-cover img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.88) contrast(1.02)}.poster-media:after,.team-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.32));pointer-events:none}.poster-body{padding:18px;min-width:0;display:flex;flex-direction:column}.poster-card.project h2{font-size:18px;color:#171717;margin:10px 0 7px}.poster-card.project p{color:var(--muted)}.poster-card.project .project-meta{color:#222;border-top:1px solid var(--line);margin-top:auto}.poster-card.project.completed .project-meta{border-top-color:#cfe2d7}.project-type{font-size:9px;letter-spacing:1px;color:#888;text-transform:uppercase}.next-node{margin-top:10px!important}.project-status{position:absolute;z-index:2;left:10px;top:10px;padding:5px 8px;border-radius:4px;color:#fff;font-size:10px;font-weight:750;letter-spacing:.4px}.project-status.active{background:rgba(36,38,39,.86)}.project-status.done{background:var(--green)}.cover-actions{position:absolute;z-index:3;left:9px;right:9px;bottom:9px;display:flex;gap:6px;opacity:0;transition:.16s}.poster-media:hover .cover-actions,.team-cover:hover .cover-actions{opacity:1}.cover-actions .mini{background:rgba(255,255,255,.94);border-color:transparent}.cover-actions label input{display:none}.cover-placeholder{height:100%;min-height:inherit;display:grid;place-items:center;align-content:center;gap:8px;color:#777;background:linear-gradient(135deg,#e6e4df,#c8c6c0)}.cover-placeholder span{font-size:34px;color:#9a9893}.cover-placeholder small{font-size:10px;letter-spacing:1px}.poster-card.completed .cover-placeholder{background:linear-gradient(135deg,#dbe9e0,#bfd7c9)}
.team-poster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.team-card{padding:0;overflow:hidden}.team-cover{min-height:170px;height:170px}.team-body{padding:17px}.team-body h2{margin-bottom:7px}.team-body>p{font-size:12px;color:var(--muted);margin:0 0 12px}.team-members{display:flex;flex-wrap:wrap;gap:6px;margin:11px 0 15px}.team-members span{background:#efede8;border-radius:4px;padding:5px 8px;font-size:11px}.contribution-project{margin-bottom:14px}.contribution-project .card-head{margin-bottom:12px}.contribution-groups+.contribution-groups{margin-top:24px}
@media(max-width:980px){.poster-card.project{grid-template-columns:1fr}.poster-media{min-height:180px;height:180px}.poster-grid,.team-poster-grid{grid-template-columns:1fr}.cover-actions{opacity:1}}

/* v2.5.2 · 项目优先的总览布局 */
.overview-layout{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(300px,.75fr);gap:15px;align-items:start}.project-matrix-panel{min-width:0}.overview-section-head{display:flex;align-items:center;justify-content:space-between;margin:2px 0 12px}.overview-section-head h2{font-size:16px;margin:0}.overview-section-head .primary{padding:8px 12px;font-size:12px}.overview-layout .poster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-layout .poster-card.project{grid-template-columns:1fr;min-height:300px}.overview-layout .poster-media{height:158px;min-height:158px}.overview-layout .poster-body{min-height:142px}
.poster-card.project.dragging{opacity:.42;cursor:grabbing}.poster-card.project .project-drag-handle{position:absolute;top:10px;left:10px;z-index:6;background:rgba(255,255,255,.92);box-shadow:0 1px 4px rgba(0,0,0,.12);cursor:grab;touch-action:none;user-select:none;-webkit-user-drag:element;opacity:0;pointer-events:none;transition:opacity .15s ease}.poster-card.project .poster-media:hover .project-drag-handle,.poster-card.project.dragging .project-drag-handle{opacity:1;pointer-events:auto}.poster-card.project .project-drag-handle:active{cursor:grabbing}.poster-card.project{background:#3a3c3d;color:#fff;border-color:#4b4d4e}.poster-card.project:hover{background:#414344;border-color:#5a5d5e}.poster-card.project.completed{background:#355448;border-color:#4f7967;box-shadow:inset 4px 0 0 #80c5a5}.poster-card.project h2{color:#fff}.poster-card.project p,.poster-card.project .project-type{color:#b8b9b7}.poster-card.project .project-meta{color:#fff;border-top-color:#565859}.poster-card.project.completed .project-meta{border-top-color:#547565}.poster-body{background:linear-gradient(145deg,rgba(255,255,255,.025),transparent)}
.clapper-cover{position:relative;overflow:hidden;background:#2f3132!important;color:#fff!important}.clapper-stripes{position:absolute;left:0;right:0;top:0;height:38px;background:repeating-linear-gradient(135deg,#e7e5df 0,#e7e5df 28px,#242627 29px,#242627 56px);border-bottom:5px solid #181919}.clapper-mark{font-size:19px;line-height:1.08;letter-spacing:2px;font-weight:850;margin-top:31px;text-align:left;width:74%;color:#f3f1eb}.clapper-lines{width:74%;display:grid;gap:8px;margin-top:13px}.clapper-lines i{display:block;height:1px;background:#777b7c}.clapper-cover small{position:absolute;left:13%;bottom:14px;color:#aaa;letter-spacing:1.4px}.poster-card.completed .clapper-cover{background:#29443a!important}.poster-card.completed .clapper-lines i{background:#668578}
.compact-tasks{padding:16px;max-height:650px;display:flex;flex-direction:column;position:sticky;top:20px}.compact-task-list{display:grid;gap:8px;overflow-y:auto;min-height:0;padding-right:3px}.compact-task{background:#f1efea;border-left:3px solid #4a4d4e;border-radius:7px;padding:11px}.compact-task:hover{background:#ebe8e1}.compact-task-top{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--muted)}.compact-task-top b{color:var(--red);font-size:12px}.compact-task h3{font-size:12px;margin:7px 0 5px}.compact-task p{font-size:10px;color:var(--muted);margin:0}.compact-task small{display:block;color:var(--muted);font-size:9px;margin-top:5px}.compact-task .task-progress{width:100%;margin-top:8px}.compact-task .overdue{color:var(--red);font-weight:700}.compact-all{border:0;border-top:1px solid var(--line);background:#fff;color:var(--red);font-size:11px;padding:12px 0 0;margin-top:10px;text-align:left;cursor:pointer}
.team-card{display:grid;grid-template-columns:minmax(0,1fr) 220px;min-height:190px}.team-cover{grid-column:2;grid-row:1;height:auto;min-height:190px}.team-body{grid-column:1;grid-row:1;padding:19px}.team-cover .clapper-stripes{height:30px}.team-cover .clapper-mark{font-size:15px;margin-top:24px}.team-cover .clapper-lines{gap:6px}.team-cover .clapper-cover small{bottom:10px}
@media(max-width:1180px){.overview-layout{grid-template-columns:1fr}.compact-tasks{position:static;max-height:430px}.overview-layout .poster-card.project{grid-template-columns:38% 62%;min-height:215px}.overview-layout .poster-media{height:auto;min-height:215px}.overview-layout .poster-body{min-height:215px}}
@media(max-width:780px){.overview-layout .poster-grid{grid-template-columns:1fr}.overview-layout .poster-card.project{grid-template-columns:1fr}.overview-layout .poster-media{height:170px;min-height:170px}.overview-layout .poster-body{min-height:145px}.team-card{grid-template-columns:1fr}.team-cover{grid-column:1;grid-row:1;height:150px;min-height:150px}.team-body{grid-column:1;grid-row:2}.compact-tasks{max-height:480px}}

/* v2.5.3 · 对齐、侧栏退出与手动裁切 */
.user-box{gap:9px}.user-meta{flex:1;min-width:0}.user-meta b,.user-meta small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-logout{border:1px solid #505354;background:#333637;color:#ddd;border-radius:6px;padding:6px 8px;font-size:10px;cursor:pointer}.sidebar-logout:hover{background:var(--red);border-color:var(--red);color:#fff}.overview-layout>.compact-tasks{margin-top:54px}.overview-layout .poster-media{width:100%;height:auto;min-height:0;aspect-ratio:16/9}.poster-media img{object-fit:cover}.team-card{grid-template-columns:minmax(0,1fr) 280px;align-items:center}.team-cover{width:100%;height:auto;min-height:0;aspect-ratio:16/9;align-self:center}.team-cover img{object-fit:cover}.crop-stage{position:relative;width:100%;aspect-ratio:16/9;background:#2d2f30;border-radius:8px;overflow:hidden;touch-action:none}.crop-stage canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}.crop-stage canvas:active{cursor:grabbing}.crop-safe{position:absolute;inset:5%;border:1px dashed rgba(255,255,255,.6);pointer-events:none;box-shadow:0 0 0 999px rgba(0,0,0,.06)}.crop-zoom{display:grid;grid-template-columns:48px 1fr;gap:10px;align-items:center;margin-top:14px;font-size:12px}.crop-zoom input{width:100%}
@media(max-width:1180px){.overview-layout>.compact-tasks{margin-top:0}}
@media(max-width:900px){.sidebar-logout{width:36px;overflow:hidden;color:transparent;position:relative}.sidebar-logout:after{content:"↪";position:absolute;inset:0;display:grid;place-items:center;color:#ddd;font-size:16px}}
@media(max-width:780px){.team-card{grid-template-columns:1fr}.team-cover{grid-column:1;grid-row:1;aspect-ratio:16/9}.team-body{grid-column:1;grid-row:2}}

/* v2.5.3 · 竖版项目海报 */
.poster-card.project,.overview-layout .poster-card.project{grid-template-columns:34% 66%;min-height:245px;background:#e7e3dc;color:var(--ink);border-color:#d2ccc2}.poster-card.project:hover,.overview-layout .poster-card.project:hover{background:#edeae4;border-color:#bdb5a9}.poster-card.project.completed,.overview-layout .poster-card.project.completed{background:#dfece4;border-color:#a8c7b5;box-shadow:inset 4px 0 0 var(--green)}.poster-card.project h2,.overview-layout .poster-card.project h2{color:#171717}.poster-card.project p,.poster-card.project .project-type,.overview-layout .poster-card.project p,.overview-layout .poster-card.project .project-type{color:#74716b}.poster-card.project .project-meta,.overview-layout .poster-card.project .project-meta{color:#222;border-top-color:#cbc5bb}.poster-card.project.completed .project-meta{border-top-color:#bdd5c6}.poster-media,.overview-layout .poster-media{width:100%;height:auto;min-height:0;aspect-ratio:2/3;align-self:start}.poster-media img{object-fit:cover}.poster-body,.overview-layout .poster-body{min-height:245px;padding:17px}.crop-stage.portrait{width:min(360px,100%);aspect-ratio:2/3;margin:0 auto}.crop-stage.portrait canvas{width:100%;height:100%}
@media(max-width:1180px){.overview-layout .poster-card.project{grid-template-columns:30% 70%;min-height:250px}.overview-layout .poster-media{min-height:0}.overview-layout .poster-body{min-height:250px}}
@media(max-width:780px){.poster-card.project,.overview-layout .poster-card.project{grid-template-columns:34% 66%;min-height:190px}.poster-media,.overview-layout .poster-media{height:auto;min-height:0;aspect-ratio:2/3}.poster-body,.overview-layout .poster-body{min-height:190px;padding:14px}.poster-card.project h2{font-size:15px}}

/* v2.5.4 · 项目状态徽章 */
.poster-card.project>.project-status{left:auto;right:12px;top:12px;padding:7px 11px 7px 10px;border-radius:16px;color:#fff;font-size:11px;font-weight:800;letter-spacing:.4px;border:1px solid rgba(255,255,255,.45);box-shadow:0 5px 16px rgba(0,0,0,.18);z-index:5}.poster-card.project>.project-status:before{content:"";display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:#fff;vertical-align:1px}.poster-card.project>.project-status.active{background:#e83232}.poster-card.project>.project-status.done{background:#16805a}

/* v2.6 · 项目化生产管理细化 */
.stats>.card{padding:12px 16px;min-height:92px}.stat-value{font-size:22px;margin:5px 0}.project-group-list{display:grid;gap:15px}.grouped-table{padding:0;overflow:auto}.grouped-table .card-head{padding:14px 16px 9px;position:sticky;left:0}.grouped-table table{min-width:900px}.submission-table th:nth-child(2),.submission-table td:nth-child(2){min-width:95px;white-space:nowrap}.submission-table th:nth-child(3),.submission-table td:nth-child(3){min-width:110px;white-space:nowrap}.submission-table th:nth-child(4),.submission-table td:nth-child(4){min-width:160px}.drag-handle{display:inline-grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:6px;color:#777;cursor:grab;font-weight:900;letter-spacing:-2px}.drag-handle:active{cursor:grabbing}tr.dragging{opacity:.38;background:#fff0cf}.duration-input{display:grid;grid-template-columns:1fr 1fr;gap:8px}.direct-cost-list{display:grid;gap:7px;margin-top:13px}.direct-cost-list>div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 11px;background:#f5f3ee;border-radius:7px;font-size:12px}.direct-cost-list b{white-space:nowrap}.team-card{background:#e7e3dc;border-color:#d2ccc2}.gantt-row{grid-template-columns:minmax(250px,34%) 1fr;min-height:62px;align-items:center}.gantt-label{display:grid;gap:3px;padding-right:12px}.gantt-label small{display:block}.gantt-label em{font-style:normal;color:#777;font-size:10px;line-height:1.35}.gantt-track{height:34px}.gantt-bar{top:6px;height:22px;background:#777}.gantt-bar i{background:#4b4b4b}.gantt-bar.late{background:#f0b8b8}.gantt-bar.late i{background:#e52c2c}.plan-table td{padding-top:15px;padding-bottom:15px}.plan-delayed{background:#fff2f2}.plan-delayed:hover{background:#ffe8e8}.plan-complete-tag{margin-left:7px;background:#dfeee6;color:#116a49}
@media(max-width:780px){.stats>.card{min-height:82px}.gantt-row{grid-template-columns:1fr;gap:7px}.gantt-track{width:100%}.direct-cost-list>div{align-items:flex-start;flex-direction:column}}

/* v2.6.1 · 紧凑统计、互斥计量与日志 */
.compact-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.compact-stats>.compact-stat,.stats>.card,.stats>.card:nth-child(2){min-height:70px;padding:11px 14px;background:#fff;border-color:var(--line);display:flex;align-items:center;justify-content:space-between;gap:14px}.stats>.card:nth-child(2) .stat-label,.stats>.card:nth-child(2) .stat-value{color:inherit}.compact-stat:after,.stats>.card:nth-child(2):after{background:#d5d0c7}.compact-stat .stat-copy{min-width:0}.compact-stat .stat-label{font-size:14px;color:#2a2a2a;font-weight:750;letter-spacing:0}.compact-stat .stat-note{font-size:10px;color:#8a867f;margin-top:6px}.compact-stat .stat-value{font-size:23px;margin:0;white-space:nowrap}.metric-disabled{opacity:.42}.metric-disabled input{background:#e8e6e1!important;cursor:not-allowed}.proxy-entry{background:#e83232;border-color:#e83232}.proxy-entry:hover{background:#bd2020;border-color:#bd2020}.audit-toolbar{flex-wrap:wrap}.audit-toolbar label{display:flex;align-items:center;gap:8px;font-size:12px}.audit-table table{min-width:900px}.audit-table td:first-child{white-space:nowrap}.audit-table code{font-size:10px;color:#666;white-space:normal;overflow-wrap:anywhere}.audit-table td:nth-child(2),.audit-table td:nth-child(3){white-space:nowrap}
@media(max-width:900px){.compact-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.compact-stats{grid-template-columns:1fr}.compact-stats>.compact-stat{min-height:62px}}

/* v2.6.3 · 甘特图状态色与只读权限 */
.gantt-bar.complete,.gantt-bar.complete i{background:#16805a}.gantt-bar.complete{box-shadow:0 0 0 1px rgba(22,128,90,.2)}.gantt-bar.late,.gantt-bar.late i{background:#e83232}.gantt-bar:not(.complete):not(.late){background:#aaa69f}.gantt-bar:not(.complete):not(.late) i{background:#62605c}.gantt.read-only .gantt-bar{cursor:default;pointer-events:none}.gantt.read-only .gantt-handle{display:none}
.pending-edit-button{margin-left:7px;white-space:nowrap}

/* v2.6.6 · 独立素材核验页与镜头匹配 */
.media-standalone .app-shell{grid-template-columns:1fr}.media-standalone .sidebar{display:none}.media-standalone main{max-width:1500px;width:100%;margin:0 auto}.media-shot-hint{display:flex;align-items:center;flex-wrap:wrap;gap:7px;background:#fff8e9;border:1px solid #e2b75f;border-radius:9px;padding:11px 13px;margin-bottom:13px;font-size:12px}.media-shot-hint span{background:#202223;color:#fff;border-radius:5px;padding:4px 7px}.media-shot-hint em{margin-left:auto;color:#86601f;font-style:normal}.media-item.submitted-shot-file{background:#e5f3eb;border:2px solid #16805a;box-shadow:0 3px 12px rgba(22,128,90,.12)}.media-item.submitted-shot-file:hover{background:#daeee3;border-color:#0f6a49}.shot-match-badge{display:inline-block;background:#16805a;color:#fff;border-radius:4px;padding:3px 6px;margin-left:8px;font-size:10px}.media-standalone .media-list{padding:13px}

/* v2.6.8 · 登录居中、字号优化、甘特图进度色 */
.login-brand{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:4px}
.login-brand>img{margin:0 auto 16px}
.login-brand h1{font-size:26px;margin:0;color:#111}
.login-brand p{margin:10px 0 0;color:var(--muted);font-size:15px}
body{font-size:15px}
.mini{font-size:13px}
table{font-size:13px}
th{font-size:11px}
.subtle,.stat-note,.field small,.project p,.project-meta,.login-card label,.field,.modal>div>p,.summary,.error,.audit-toolbar label{font-size:14px}
.stat-label{font-size:12px}
header p{font-size:14px}
.nav-item{font-size:14px}
.brand small,.user-box small,.sidebar-logout,.tag,.gantt-label em,.compact-task-top,.compact-task h3,.compact-task p,.compact-task small,.team-body>p,.team-members span,.project-type,.audit-table code{font-size:12px}
.gantt-bar.complete,.gantt-bar.complete i{background:#16805a}
.gantt-bar:not(.complete):not(.late){background:#dbeafe}
.gantt-bar:not(.complete):not(.late) i{background:#2563eb}
.gantt-bar.late{background:#fecaca}
.gantt-bar.late i{background:#e83232}

/* v2.6.9 · 甘特图按任务分行 */
.gantt-plan-row .gantt-label b{font-size:14px}
.gantt-plan-row .gantt-plan-bar{opacity:.72}
.gantt-task-row .gantt-label{padding-left:16px;border-left:3px solid #d8d4cd}
.gantt-track-wrap{display:grid;gap:3px;min-width:0}
.gantt-track-dates{position:relative;height:17px;font-size:10px;line-height:17px;color:#555}
.gantt-date-start,.gantt-date-end{position:absolute;top:0;white-space:nowrap;font-weight:700;letter-spacing:.2px}
.gantt-date-start{transform:translateX(0)}
.gantt-date-end{transform:translateX(-100%)}
.gantt-track-badges{display:flex;flex-wrap:wrap;gap:4px;min-height:18px;align-items:center}
.gantt-badge{display:inline-block;font-size:10px;line-height:1;padding:3px 7px;border-radius:4px;font-weight:750;letter-spacing:.15px}
.gantt-badge.overdue{background:var(--red2);color:#c52121}
.gantt-badge.extended{background:var(--amber2);color:#9a5f08}
.gantt-badge.reextend{background:#ffd8d8;color:#9f1010;border:1px solid #f0a0a0}
.gantt-badge.overdue-ext{background:#ffecec;color:#b81f1f;border:1px dashed #e58a8a}
.gantt-badge.status-delay{background:#f3f0e8;color:#666}
.gantt-deadline-origin{position:absolute;top:0;bottom:0;width:0;border-left:2px dashed #b57815;z-index:2;pointer-events:none}
.gantt-deadline-origin-label{position:absolute;top:-17px;left:0;transform:translateX(-50%);font-size:9px;color:#b57815;font-weight:700;white-space:nowrap;background:rgba(255,255,255,.88);padding:0 3px;border-radius:3px}
.gantt-plan-row .gantt-track,.gantt-task-row .gantt-track{margin-top:0}
.gantt-row{min-height:72px;align-items:start}
.gantt-row .gantt-label{padding-top:4px}
.gantt-task-drag-handle{display:inline-grid;margin-right:4px;width:22px;height:22px;font-size:10px;vertical-align:middle;flex-shrink:0}
.gantt-task-row.dragging{opacity:.45}
.gantt-task-row .gantt-label b{font-size:13px;font-weight:650}
.gantt-task-row .gantt-track{height:22px}
.gantt-task-row .gantt-bar{top:4px;height:14px;cursor:grab;touch-action:none;user-select:none}
.gantt-task-row .gantt-bar.dragging{cursor:grabbing}
.gantt.read-only .gantt-task-bar{cursor:default;pointer-events:none}
.gantt-task-empty .gantt-label small{color:var(--muted)}
.gantt-task-empty .gantt-track{height:18px;opacity:.55}
.gantt-toggle{margin-right:6px;padding:2px 8px;font-size:11px;vertical-align:middle;flex-shrink:0}
.gantt-task-row.hidden,.gantt-task-empty.hidden{display:none}
.submission-day-list{display:grid;gap:14px}
.submission-day-group{border:1px solid #e2b75f;border-radius:10px;overflow:hidden;background:#fff}
.submission-day-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;background:linear-gradient(90deg,#fff8e9,#fff);border-bottom:1px solid #e2b75f;cursor:pointer;user-select:none}
.submission-day-head.collapsed{border-bottom:none}
.submission-day-title{display:flex;align-items:center;gap:8px}
.submission-day-title h2{margin:0;font-size:18px;color:#9b5e00}
.submission-day-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.submission-day-meta .day-total{font-size:20px;font-weight:850;color:#c87800}
.submission-day-body{display:grid;gap:12px;padding:12px}
.submission-day-body .grouped-table{border:1px solid var(--line);border-radius:8px}
.toolbar button.secondary.active{background:#f0f4f2;border-color:#315846;color:#1a3d2c;font-weight:650}
.toolbar button.secondary.active:hover{background:#e6eee9;border-color:#264a36}
.media-stats-card{margin-top:16px}.media-stats-card .card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}.media-stats-card h3{margin:0 0 10px;font-size:14px}.media-stats-hint{margin:0 0 12px}.media-stats-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:12px}.media-stats-grid>.card{min-height:78px;padding:12px 14px}.media-stats-tables{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.scene-duration-input,.seedance-rate-input{width:82px;border:1px solid var(--line);border-radius:6px;padding:6px 8px;background:#fff}.scene-duration-cell{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.scene-duration-hint{color:var(--muted);font-size:11px}.scene-ratio{display:inline-block;border-radius:5px;padding:3px 7px;background:#f3f2ee;color:#555}.scene-ratio-good{background:var(--green2);color:var(--green)}.scene-ratio-high{background:var(--red2);color:var(--red)}.cost-lines,.cost-head{display:grid;grid-template-columns:minmax(120px,1.3fr) minmax(92px,.9fr) minmax(82px,.8fr);gap:4px 10px;align-items:center;white-space:nowrap}.cost-lines b,.cost-head b{font-weight:650;text-align:right}.cost-head{color:var(--muted);font-weight:500}.cost-head>span:first-child{grid-column:1/-1}.cost-head .point-total{color:var(--green)}.cost-head .money-total{color:var(--red)}.seedance-setting-card{box-shadow:none;margin:10px 0}.seedance-setting-card .card-head{margin-bottom:12px}.seedance-model-list{display:grid;gap:12px}.seedance-cost-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.mini-stats{display:flex;flex-wrap:wrap;gap:7px 12px;margin:0 0 10px;font-size:12px;color:#555}.danger-text{color:var(--red)}
@media(max-width:980px){.media-stats-grid{grid-template-columns:repeat(2,1fr)}.media-stats-tables,.seedance-cost-grid{grid-template-columns:1fr}}

/* v2.7.1 · 已完成项目归档与小组分区 */
.project-archived-title{margin-top:22px;color:#5a7a68}.grouped-table.project-group-archived,.contribution-project.project-group-archived{background:#f6faf7;border-color:#cfe0d6}.card-head.project-group-archived h2{color:#3f6d57}.project-row-archived td{background:#f6faf7}.team-project-sections{display:grid;gap:18px;margin-top:8px}.team-project-section .overview-section-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px}.team-project-section .overview-section-head h2{margin:0;font-size:17px}.team-project-section.archived .overview-section-head h2{color:#5a7a68}.team-card{position:relative}.team-card .team-drag-handle{position:absolute;top:10px;left:10px;z-index:6}.team-card.dragging{opacity:.42}.project-media-section{margin-top:24px;padding-top:8px;border-top:1px solid var(--line)}.project-media-section .media-stats-card{margin-top:0}.project-tasks-card .card-head .mini.primary{margin-left:auto}

/* v2.7.2 · 分镜提示词工作台 */
.storyboard-mode{overflow:hidden;background:#1f1f22}
.storyboard-mode .app-shell{display:block;min-height:100vh}
.storyboard-mode .sidebar,.storyboard-mode header{display:none}
.storyboard-mode main{height:100vh;padding:0;background:#1f1f22}
.storyboard-mode #content{height:100vh}
.storyboard-fullscreen{position:relative;height:100vh;background:#1f1f22}
.storyboard-fullscreen iframe{display:block;width:100%;height:100%;border:0;background:#1f1f22}
.storyboard-return-zone{position:fixed;z-index:30;left:24px;top:20px;width:230px;height:58px}
.storyboard-back{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:8px;background:var(--red);color:#fff;padding:0 12px;font-size:18px;font-weight:800;box-shadow:0 10px 22px rgba(0,0,0,.18);cursor:pointer;opacity:0;transform:none;pointer-events:none;transition:.16s}
.storyboard-return-zone:hover .storyboard-back{opacity:1;transform:none;pointer-events:auto}
.storyboard-back:hover{background:var(--red);border-color:var(--red)}

/* v2.7.3 · 项目 NAS 资产库 */
.project-asset-browser{margin:0 0 16px}.project-asset-browser .card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.project-asset-browser h2{margin:0}.asset-browser-path{margin:4px 0 0}.asset-browser-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:12px}.asset-browser-item{display:grid;grid-template-columns:74px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:92px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);text-align:left}.asset-view-list .asset-browser-list{grid-template-columns:1fr;gap:6px}.asset-view-list .asset-browser-item{grid-template-columns:42px minmax(0,1fr) auto;min-height:54px;padding:8px 10px}.asset-view-list .asset-browser-item.folder.with-select{grid-template-columns:auto 42px minmax(0,1fr) auto}.asset-view-list .asset-thumb{width:42px;height:34px;font-size:18px}.asset-view-list .asset-browser-main b{-webkit-line-clamp:1;font-size:13px}.asset-view-list .asset-browser-main small{margin-top:2px}.asset-view-toggle{display:inline-flex;gap:4px;padding:3px;border:1px solid var(--line);border-radius:9px;background:#fff}.asset-view-toggle .primary{padding:6px 10px}.asset-browser-item.folder{cursor:pointer}.asset-browser-item.folder.with-select{grid-template-columns:auto 74px minmax(0,1fr) auto}.asset-browser-item:hover{border-color:#f0a6a6;background:#fff8f8}.asset-folder-select{display:grid;place-items:center;align-self:stretch;padding:0 2px;cursor:pointer}.asset-folder-select input{width:18px;height:18px;accent-color:var(--red)}.asset-thumb{width:74px;height:58px;border-radius:6px;background:#f3f4f6;border:1px solid var(--line);display:grid;place-items:center;overflow:hidden;font-size:28px;flex-shrink:0}.asset-thumb.image-thumb{padding:0;cursor:pointer}.asset-thumb.image-thumb img{display:block;width:100%;height:100%;object-fit:cover}.asset-browser-main{min-width:0;border:0;background:transparent;padding:0;text-align:left;color:inherit;cursor:pointer}.asset-browser-main b{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;line-height:1.45;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.asset-browser-main small{display:block;margin-top:6px;color:var(--muted);font-size:11px;line-height:1.35}.asset-browser-actions{display:flex;flex-direction:column;gap:6px;align-items:stretch}.asset-browser-actions .mini{text-align:center;text-decoration:none}.asset-browser-arrow{font-size:12px;color:var(--red);font-weight:800}.media-download-link{display:inline-flex;align-items:center;text-decoration:none}
.asset-favorites{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-2px 0 12px;padding:10px 12px;border:1px solid #f1c0c0;border-radius:8px;background:#fff7f7}.asset-favorites>b{font-size:12px;color:var(--red);margin-right:2px}.asset-favorite-chip{display:inline-flex;align-items:center;max-width:360px;border:1px solid #efd1d1;border-radius:999px;background:#fff;overflow:hidden}.asset-favorite-chip button{border:0;background:transparent;padding:6px 9px;font-size:12px;color:#3b2a2a;cursor:pointer;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asset-favorite-chip button:hover{background:#fff0f0}.asset-favorite-remove{color:var(--red)!important;border-left:1px solid #f1d6d6!important;font-weight:800}
.modal:has(.media-preview){width:min(1280px,96vw);padding:24px}.modal:has(.media-preview.image){width:min(1440px,97vw)}.modal:has(.media-preview) .media-preview{max-height:78vh}.media-preview-nav{display:flex;align-items:center;justify-content:center;gap:12px;margin:12px 0 0}.media-preview-nav span{font-weight:800;color:var(--muted);min-width:72px;text-align:center}
.modal:has(.resolution-employee-modal-table),.modal:has(.seedance-model-list){width:min(1500px,98vw);padding:24px}.resolution-employee-modal-table table{min-width:1180px}.resolution-employee-modal-table th,.resolution-employee-modal-table td{white-space:nowrap;vertical-align:top}.resolution-employee-modal-table .cost-lines{min-width:320px}.project-section-collapsed table{display:none}.project-section-collapsed{padding-bottom:14px}.project-section-collapsed .card-head{margin-bottom:0}
.pdf-preview{height:78vh;border:1px solid var(--line);background:#f6f6f6}.modal:has(.office-preview){width:min(1280px,96vw);padding:24px}.office-preview{max-height:74vh;overflow:auto;border:1px solid var(--line);border-radius:10px;background:#fbfbfa;padding:18px;margin-top:14px}.office-preview p{margin:0 0 10px;line-height:1.75}.office-preview h3{margin:0 0 10px;font-size:15px}.office-preview table{background:#fff}.office-preview td{min-width:110px;max-width:360px;vertical-align:top;word-break:break-word;border:1px solid #ececec;padding:7px 9px}
@media(max-width:760px){.asset-browser-list{grid-template-columns:1fr}.asset-browser-item{grid-template-columns:62px minmax(0,1fr);align-items:start}.asset-browser-item.folder.with-select{grid-template-columns:auto 62px minmax(0,1fr)}.asset-thumb{width:62px;height:50px}.asset-browser-actions{grid-column:1/-1;flex-direction:row}.asset-browser-item.folder .asset-browser-actions{grid-column:1/-1}.asset-browser-arrow{display:none}}

/* v2.7.4 · 小组查看两列与资产库路径拆分 */
.team-project-section .team-sort-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;align-items:stretch}
.team-project-section .team-sort-grid .team-card{display:grid!important;grid-template-columns:minmax(0,1fr) 180px!important;min-height:152px!important}
.team-project-section .team-sort-grid .team-cover{grid-column:2!important;grid-row:1!important;min-height:0!important;height:100%!important;aspect-ratio:16/9!important;align-self:stretch!important}
.team-project-section .team-sort-grid .team-cover img{width:100%!important;height:100%!important;object-fit:cover!important}
.team-project-section .team-sort-grid .team-body{grid-column:1!important;grid-row:1!important;min-height:152px!important;padding:16px!important}
.team-project-section .team-sort-grid .team-members{margin-bottom:0}
@media(max-width:760px){.team-project-section .team-sort-grid{grid-template-columns:1fr!important}.team-project-section .team-sort-grid .team-card{grid-template-columns:1fr!important}.team-project-section .team-sort-grid .team-cover{grid-column:1!important;grid-row:1!important;height:auto!important;aspect-ratio:16/9!important}.team-project-section .team-sort-grid .team-body{grid-column:1!important;grid-row:2!important}}

/* v2.7.8 · 项目终止状态 */
.poster-card.project>.project-status.terminated{background:#6b7280}
.poster-card.project.terminated{background:#e5e7eb;border-color:#c4c8cf;box-shadow:inset 4px 0 0 #6b7280}
.poster-card.project.terminated h2{color:#30343a}
.poster-card.project.terminated p,.poster-card.project.terminated .project-type{color:#6b7280}
.poster-card.project.terminated .project-meta{color:#30343a;border-top-color:#c4c8cf}
.project-terminated-tag{background:#eceff3!important;color:#4b5563!important}
.team-project-section.terminated .overview-section-head h2{color:#4b5563}

/* v2.7.9 · AI平台充值项目优先视图 */
.compute-top-card{cursor:pointer}
.compute-top-card:hover{border-color:#16805a;background:#f6faf7}
.compute-total-amount{display:inline-block;color:#16805a;font-size:15px}
.compute-project-table>tbody>.compute-project-row>td{vertical-align:top}
.compute-project-row .gantt-toggle{margin-right:4px}
.compute-detail-wrap>td{background:#f7faf8;padding:0 12px 14px 42px!important}
.compute-detail-wrap table{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.compute-detail-row td{font-size:12px;background:#fff}
.compute-category-card.collapsed{padding-bottom:16px}

/* v2.7.10 · 管理员模块开关 */
.settings-module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.settings-module-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:#fff}
.settings-module-row span{display:grid;gap:4px}
.settings-module-row small{color:var(--muted);font-size:12px}
.settings-module-row input{width:20px;height:20px;accent-color:var(--green)}
@media(max-width:760px){.settings-module-grid{grid-template-columns:1fr}}

/* 产出关键影响因素 */
.impact-factor-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.impact-factor-option{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:flex-start;border:1px solid var(--line);border-radius:8px;padding:11px 12px;background:#fff;cursor:pointer}
.impact-factor-option:hover{border-color:#f0a6a6;background:#fff8f8}
.impact-factor-option input{margin-top:3px;accent-color:var(--red)}
.impact-factor-option span{display:grid;gap:3px}
.impact-factor-option b{font-size:13px}
.impact-factor-option small{font-size:12px;color:var(--muted);line-height:1.45}
.impact-day-summary{font-size:12px;color:var(--muted)}
@media(max-width:760px){.impact-factor-options{grid-template-columns:1fr}}

/* v2.7.36 · 分镜资产预览确认后下载 */
.plan-breakdown-field{align-self:start}
.plan-breakdown-toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#f8f7f3;margin-bottom:10px}
.plan-breakdown-toolbar span{font-size:12px;color:var(--muted)}
.plan-breakdown-list{display:grid;gap:10px;margin-top:2px}
.plan-breakdown-item{border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px}
.plan-breakdown-main,.plan-breakdown-detail{display:flex;align-items:center;gap:8px}
.plan-breakdown-main{margin-bottom:8px}
.plan-breakdown-main input,.plan-breakdown-detail input{flex:1;min-width:0}
.plan-breakdown-main input[type=date],.plan-breakdown-detail input[type=date]{flex:0 0 146px}
.plan-breakdown-details{display:grid;gap:7px;margin:0 0 8px 18px}
.plan-breakdown-preview{display:grid;gap:3px;margin-top:6px;color:var(--muted);max-width:420px}
.plan-breakdown-preview small{line-height:1.45;word-break:break-word}
.plan-breakdown-preview b{color:#333}
.plan-breakdown-preview span{color:#8a6a24}
.gantt-breakdown-row{min-height:48px}
.gantt-breakdown-row .gantt-label{padding-left:34px}
.gantt-breakdown-detail .gantt-label{padding-left:58px}
.gantt-breakdown-row .gantt-label b{font-weight:650;color:#4f4a42}
.gantt-breakdown-row .gantt-label small{color:#8a867f}
.gantt-breakdown-bar{top:10px;height:14px;background:#d9a853;border-radius:5px}
.gantt-breakdown-bar.detail{height:10px;top:12px;background:#8ea7a0}
.gantt-breakdown-bar.late{background:#e8aaa6}
.gantt-breakdown-unset .gantt-label b{color:#777}
.gantt-track-empty{height:34px;display:flex;align-items:center;padding-left:12px;border:1px dashed #d8d4cd;border-radius:7px;background:#faf9f6;color:#9a9287;font-size:12px}
@media(max-width:760px){.plan-breakdown-main,.plan-breakdown-detail{display:grid;grid-template-columns:1fr}.plan-breakdown-main input[type=date],.plan-breakdown-detail input[type=date]{flex:auto}.plan-breakdown-details{margin-left:0}.gantt-breakdown-row .gantt-label,.gantt-breakdown-detail .gantt-label{padding-left:12px}}
