:root{--brand-deep: #07130f;--brand-green: #0b5f3a;--brand-mint: #8df5b6;--brand-cream: #f4f1e9}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,PingFang SC,Microsoft YaHei,Segoe UI,sans-serif;background:#f5f7f6}.page{padding:20px 24px}.page-title{font-size:20px;font-weight:600;color:#17251d;margin:0}.page-sub{color:#7a8a80;font-size:13px;margin:4px 0 0}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid-detail{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media(max-width:768px){.page{padding:12px}.page-title{font-size:18px}.grid-2,.grid-3,.grid-detail{grid-template-columns:1fr}.ant-table-wrapper .ant-table{overflow-x:auto}}.bar-row{display:flex;align-items:center;gap:10px;margin:7px 0;font-size:12.5px}.bar-row .bar-label{width:64px;color:#52655b;flex:none}.bar-row .bar-track{flex:1;height:10px;background:#edf2ef;border-radius:8px;overflow:hidden}.bar-row .bar-fill{display:block;height:100%;border-radius:8px;background:#0b5f3a}.bar-row .bar-num{width:30px;text-align:right;font-weight:600;color:#17251d}.kanban{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px}.kanban-col{flex:0 0 230px;background:#f2f5f3;border-radius:8px;padding:10px}.kanban-col h4{margin:2px 4px 10px;font-size:13px;color:#33443b;display:flex;justify-content:space-between}.kanban-card{background:#fff;border:1px solid #e3eae6;border-radius:8px;padding:10px 12px;margin-bottom:8px;cursor:pointer;transition:box-shadow .15s}.kanban-card:hover{box-shadow:0 2px 10px #0b5f3a24}.kanban-card b{font-size:13.5px;color:#17251d}.kanban-card .ksub{display:block;color:#8a9a90;font-size:11.5px;margin-top:2px}.kanban-card .kmeta{display:flex;justify-content:space-between;color:#7a8a80;font-size:11.5px;margin-top:6px}.todo-item{display:flex;align-items:center;gap:12px;padding:11px 14px;border:1px solid #e3eae6;border-radius:10px;margin-bottom:9px;cursor:pointer;background:#fff}.todo-item:hover{border-color:#0b5f3a66}.todo-item .tico{width:34px;height:34px;border-radius:9px;background:#e8f3ee;color:#0b5f3a;display:grid;place-items:center;font-size:16px;flex:none}.todo-item .ttx{flex:1}.todo-item .ttx b{display:block;font-size:13.5px;color:#17251d}.todo-item .ttx small{color:#8a9a90}.todo-item .tn{font-weight:700;color:#0b5f3a;font-size:15px}.compare-diff-row td{background:#fdf1f0!important}.contract-side-total{background:#f0f7f3;border-radius:8px;padding:12px 14px;margin:10px 0}.contract-side-total small{color:#6b7d72;display:block}.contract-side-total b{font-size:22px;color:#0b5f3a}.login-bg{height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#07130f,#0b5f3a 62%,#128a55)}
