body{margin:0;background:#F7F5F0;font-family:'Noto Sans SC','Helvetica Neue',Helvetica,Arial,sans-serif;color:#26262E;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}
a{color:#1B2A4A}a:hover{color:#B08A3E}
input,select,textarea,button{font-family:inherit}
input:focus,select:focus,textarea:focus{outline:none;border-color:#1B2A4A !important}
.side-nav-item{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:6px;cursor:pointer;font-size:14px;white-space:nowrap;overflow:hidden;color:rgba(255,255,255,.62);background:transparent;user-select:none}
.side-nav-item:hover{color:#fff}
.side-nav-item.active{background:rgba(255,255,255,.13);color:#fff;box-shadow:inset 3px 0 0 #B08A3E}
.topbar-btn{cursor:pointer;background:#fff;color:#52525C;border:1px solid #E0DBCE;padding:7px 14px;border-radius:7px;font-size:12.5px;font-weight:500}
.topbar-btn:hover{background:#F1EEE6;color:#1B2A4A}
.stat-card{background:#fff;border:1px solid #E6E2D8;border-radius:8px;padding:18px 20px;box-shadow:0 1px 2px rgba(27,42,74,.04);transition:border-color .15s,box-shadow .15s}
.stat-card:hover{border-color:#CFC9BA;box-shadow:0 3px 10px rgba(27,42,74,.07)}
.btn-renew{flex:none;cursor:pointer;border:1px solid #B4443C;color:#B4443C;background:#fff;padding:5px 13px;border-radius:6px;font-size:12.5px;font-weight:500}
.btn-renew:hover{background:#B4443C;color:#fff}
.dash-row:hover{background:#FAF8F3}
.btn-primary{border:none;cursor:pointer;background:#1B2A4A;color:#fff;padding:10px 18px;border-radius:7px;font-size:13.5px;font-weight:500}
.btn-primary:hover{background:#22335C}
.btn-ghost{cursor:pointer;background:#fff;border:1px solid #D8D3C6;color:#52525C;padding:9px 20px;border-radius:7px;font-size:13.5px}
.btn-ghost:hover{background:#F1EEE6}
.tr-click{cursor:pointer}
.tr-click:hover{background:#FAF8F3}
.back-link{font-size:13px;color:#8A8A93;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.back-link:hover{color:#1B2A4A}
.fld{width:100%;padding:9px 12px;border:1px solid #D8D3C6;border-radius:6px;font-size:13.5px}
/* 附件区 */
.attach-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #F1EEE6;font-size:13px}
.attach-row:last-child{border-bottom:none}
.attach-dl{font-size:12.5px;color:#1B2A4A;font-weight:500;text-decoration:none;flex:none}
.attach-dl:hover{color:#B08A3E}
.attach-del{font-size:12.5px;color:#B0B0B6;cursor:pointer;flex:none}
.attach-del:hover{color:#B4443C}
.attach-file{font-size:12.5px;color:#52525C}
/* 团队排期日历 */
.cal-nav{cursor:pointer;background:#fff;border:1px solid #E0DBCE;color:#52525C;width:30px;height:30px;border-radius:7px;font-size:15px;line-height:1;display:flex;align-items:center;justify-content:center;padding:0}
.cal-nav:hover{background:#F1EEE6;color:#1B2A4A}
.sched-card{position:relative}
.sched-card .sched-del{position:absolute;top:4px;right:5px}
.sched-del{font-size:11px;color:#B0B0B6;cursor:pointer;line-height:1;padding:2px;opacity:.35;transition:opacity .12s,color .12s;flex:none}
.sched-card:hover .sched-del,.sched-chip:hover .sched-del{opacity:1}
.sched-del:hover{color:#B4443C}
.sched-chip{display:flex;align-items:center;gap:4px;font-size:11px;padding:3px 7px;border-radius:4px;font-weight:500;min-width:0}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes popIn{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
@keyframes toastIn{from{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%,0)}}
/* 统计报表柱状图生长动画 */
@keyframes growV{from{transform:scaleY(0)}to{transform:scaleY(1)}}
