.month-grid{min-width:1180px}
.month-grid th:nth-child(1),.month-grid td:nth-child(1){width:82px}
.month-grid th:nth-child(2),.month-grid td:nth-child(2),
.month-grid th:nth-child(3),.month-grid td:nth-child(3){width:128px;text-align:right}
.month-grid th:nth-child(4),.month-grid td:nth-child(4),
.month-grid th:nth-child(5),.month-grid td:nth-child(5),
.month-grid th:nth-child(6),.month-grid td:nth-child(6),
.month-grid th:nth-child(7),.month-grid td:nth-child(7){width:104px;text-align:right}
.month-grid th:nth-child(8),.month-grid td:nth-child(8){width:112px;text-align:left}
.month-grid th:nth-child(9),.month-grid td:nth-child(9){width:82px;text-align:center}
.month-grid th:nth-child(10),.month-grid td:nth-child(10){width:104px;text-align:center}
.month-grid .cell.editable{border-radius:5px}
/* 月预测表单工具条 */
.table-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 20px;background:#FAFCFE;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line)}
.toolbar-field{display:flex;align-items:center;gap:7px}
.toolbar-field span{font-size:12px;color:var(--ink-3);font-weight:700}
.toolbar-count{margin-left:auto;font-size:12px;color:var(--ink-3);font-weight:700}

/* 编辑原因弹层 */
.reason-pop{position:fixed;z-index:80;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 40px rgba(12,26,43,.2);padding:14px;width:264px;display:none}
.reason-pop.open{display:block}
.reason-pop .rp-t{font-size:12.5px;font-weight:700;margin-bottom:8px;display:flex;align-items:center;gap:6px}
.reason-pop select{width:100%;border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:12.5px;font-weight:600;margin-bottom:8px}
.reason-pop .rp-warn{background:var(--red-soft);color:var(--red);font-size:11.5px;font-weight:600;padding:8px 10px;border-radius:8px;margin-bottom:8px;display:none;align-items:flex-start;gap:6px}
.reason-pop .rp-warn.show{display:flex}
.reason-pop label.ack{display:flex;gap:7px;font-size:11.5px;color:var(--ink-2);margin-bottom:10px;cursor:pointer;font-weight:600}
.reason-pop .rp-btns{display:flex;gap:8px;justify-content:flex-end}
.cell.pending-approval{background:var(--red-soft)!important;color:var(--red)!important}
.cell.pending-approval::after{background:var(--red)!important}

/* 草稿 / 已保存 状态 */
.pill.d{background:#E7EEF8;color:#3A5A85}
.cell.draft{background:var(--flame-soft)!important;color:#0E7FAD!important;box-shadow:inset 0 0 0 1.5px var(--flame);border-radius:4px}
.dirty-bar{display:none;align-items:center;gap:10px;padding:10px 20px;background:#EFF6FC;border-bottom:1px solid var(--line);font-size:12.5px;color:var(--primary);font-weight:600}
.dirty-bar.show{display:flex}
.dirty-bar .db-actions{margin-left:auto;display:flex;gap:8px}
.dirty-bar button{padding:5px 12px;font-size:12px}
#saveEdits.pulse{box-shadow:0 0 0 0 rgba(31,155,209,.5);animation:pulse 1.6s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(31,155,209,.45)}70%{box-shadow:0 0 0 7px rgba(31,155,209,0)}100%{box-shadow:0 0 0 0 rgba(31,155,209,0)}}
@keyframes spin{to{transform:rotate(360deg)}}
