.project-management-page{--project-blue:#4f6ef7;--project-purple:#7058ee;--project-green:#18a979;--project-orange:#e99125;--project-red:#df5361;display:none;gap:16px}
.project-management-page.active{display:block}
.project-page-head{margin-bottom:14px}
.project-page-tabs{margin-bottom:12px}
.project-filterbar{position:relative;z-index:8;margin-bottom:10px}
.project-filterbar>label{min-width:148px}
.project-filterbar select{min-width:148px;height:38px;padding:0 34px 0 12px;color:#475467;background:#fff;border:1px solid #dfe4ee;border-radius:9px;font-size:13px;font-weight:650;outline:none}
.project-filterbar select:focus{border-color:#6d63ee;box-shadow:0 0 0 3px rgba(109,99,238,.1)}
.project-semantics-strip{display:flex;align-items:center;gap:8px;margin:0 0 15px;padding:10px 14px;color:#667085;background:linear-gradient(90deg,#f8f9ff,#f7fbff);border:1px solid #e4e8f2;border-radius:11px;font-size:12px}
.project-semantics-strip>i{color:#655be9;font-size:14px}.project-semantics-strip strong{color:#344054}.project-semantics-strip em{width:1px;height:16px;margin:0 4px;background:#d9deea}
.project-kpi-section{margin-bottom:16px;padding:20px;background:#fff;border:1px solid #e3e7ef;border-radius:14px;box-shadow:0 5px 20px rgba(31,42,68,.045)}
.project-kpi-section.snapshot{background:linear-gradient(135deg,#fff 0%,#fbfcff 100%)}
.project-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:15px}
.project-section-heading>div:first-child>span{display:inline-block;margin-bottom:3px;color:#6a5ce8;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.project-kpi-section.snapshot .project-section-heading>div:first-child>span{color:#df5361}
.project-section-heading h2{margin:0;color:#17233c;font-size:18px}.project-section-heading p{margin:4px 0 0;color:#8490a6;font-size:12px}
.project-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.project-risk-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
.project-tab-kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}
.project-kpi{position:relative;display:flex;align-items:center;gap:12px;min-width:0;min-height:112px;padding:17px;text-align:left;background:linear-gradient(145deg,#fff,#fafbff);border:1px solid #e5e8f1;border-radius:13px;box-shadow:0 3px 12px rgba(31,42,68,.035);transition:.18s ease}
button.project-kpi{width:100%;color:inherit;cursor:pointer;font:inherit}
button.project-kpi:hover{border-color:#c9c5f7;box-shadow:0 8px 22px rgba(70,61,160,.1);transform:translateY(-2px)}
.project-kpi-icon{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;color:var(--project-purple);background:#eeebff;border-radius:12px;font-size:19px}
.project-kpi.blue .project-kpi-icon{color:var(--project-blue);background:#eaf0ff}.project-kpi.green .project-kpi-icon{color:var(--project-green);background:#e8f8f2}.project-kpi.orange .project-kpi-icon{color:var(--project-orange);background:#fff4e5}.project-kpi.red .project-kpi-icon{color:var(--project-red);background:#fff0f1}.project-kpi.cyan .project-kpi-icon{color:#1999b8;background:#e8f8fc}
.project-kpi-copy{display:block;min-width:0}.project-kpi-copy small{display:block;color:#61708c;font-size:12px;font-weight:750}.project-kpi-copy strong{display:block;margin:3px 0 4px;color:#192641;font-size:27px;line-height:1;font-weight:850}.project-kpi-copy em{display:block;overflow:hidden;color:#98a2b3;font-size:11px;font-style:normal;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.project-kpi-link{position:absolute;right:11px;top:11px;color:#b0b8c8;font-size:12px}
.project-overview-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:16px;margin-bottom:16px}
.project-overview-grid>.octal-card{min-height:365px}
.project-node-list{padding:4px 20px 18px}.project-node-list>p{margin:14px 0 0;color:#98a2b3;font-size:11px}
.project-node-row{display:grid;grid-template-columns:25px minmax(0,1fr) 58px;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #eff1f6}
.project-node-row>span{display:grid;place-items:center;width:22px;height:22px;color:#747fa0;background:#f0f2f8;border-radius:6px;font-size:10px;font-weight:800}
.project-node-row>div{min-width:0}.project-node-row strong{display:block;margin-bottom:5px;overflow:hidden;color:#344054;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.project-node-row i{display:block;width:var(--node-width);height:5px;background:linear-gradient(90deg,#675cf0,#58a5f5);border-radius:5px}
.project-node-row>em{color:#596780;font-size:11px;font-style:normal;text-align:right}
.project-risk-actions{display:grid;gap:9px;padding:6px 18px 18px}.project-risk-actions>button{display:grid;grid-template-columns:38px minmax(0,1fr) 20px;align-items:center;gap:11px;width:100%;padding:12px;text-align:left;background:#fafbfe;border:1px solid #e7eaf1;border-radius:11px;cursor:pointer}.project-risk-actions>button:hover{border-color:#c9c5f7;background:#f8f7ff}.project-risk-actions>button>span{display:grid;place-items:center;width:34px;height:28px;color:#675cf0;background:#eeebff;border-radius:7px;font-size:10px;font-weight:850}.project-risk-actions>button.critical>span{color:#d94352;background:#ffe9eb}.project-risk-actions>button.warning>span{color:#d47b14;background:#fff1dc}.project-risk-actions strong,.project-risk-actions small{display:block}.project-risk-actions strong{color:#344054;font-size:12px}.project-risk-actions small{margin-top:3px;color:#98a2b3;font-size:11px;line-height:1.35}.project-risk-actions>button>i{color:#a4adbd}.project-risk-clear{display:grid;justify-items:center;padding:50px 12px;color:#667085;text-align:center}.project-risk-clear i{margin-bottom:10px;color:#18a979;font-size:34px}.project-risk-clear strong{font-size:14px}.project-risk-clear span{margin-top:5px;font-size:11px}
.project-table-card{margin-bottom:16px}.project-table{min-width:1120px}.project-table th{white-space:nowrap}.project-table td:first-child{min-width:150px}.project-table-metric{min-width:34px;padding:4px 8px;color:#5b50df;background:#f2f0ff;border:1px solid #ded9ff;border-radius:7px;font:inherit;font-weight:750;cursor:pointer}.project-table-metric:hover{color:#fff;background:#655ae9;border-color:#655ae9}
.project-quality-explain{display:flex;align-items:flex-start;gap:13px;margin-bottom:16px;padding:17px 20px;background:linear-gradient(90deg,#f3fbf8,#fafcff)}.project-quality-explain>div:first-child{display:grid;place-items:center;width:39px;height:39px;color:#139b70;background:#e0f6ef;border-radius:11px;font-size:18px}.project-quality-explain strong{display:block;color:#344054;font-size:13px}.project-quality-explain p{margin:5px 0 0;color:#7a879d;font-size:12px;line-height:1.55}
.project-status-pill{display:inline-flex;padding:5px 8px;color:#667085;background:#f1f3f7;border-radius:7px;font-size:11px;font-weight:750}.project-status-pill.danger{color:#c73c4b;background:#ffecee}.project-status-pill.warning{color:#c57210;background:#fff1dc}
#reportDetailModal .project-detail-table{min-width:1720px}.project-detail-table td>strong,.project-detail-table td>small{display:block}.project-detail-table td>small{margin-top:4px;color:#98a2b3;font-size:11px}.project-detail-progress{display:flex;align-items:center;gap:8px}.project-detail-progress>span{display:block;width:72px;height:6px;overflow:hidden;background:#e9edf4;border-radius:6px}.project-detail-progress>span i{display:block;height:100%;background:linear-gradient(90deg,#675cf0,#41b88d);border-radius:6px}.project-detail-progress strong{color:#45516a;font-size:11px}
@media(max-width:1380px){.project-kpi-grid,.project-tab-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.project-risk-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.project-filterbar>label,.project-filterbar select{min-width:132px}}
@media(max-width:1050px){.project-overview-grid{grid-template-columns:1fr}.project-overview-grid>.octal-card{min-height:0}.project-kpi-grid,.project-tab-kpis,.project-risk-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.project-semantics-strip{align-items:flex-start;flex-wrap:wrap}.project-semantics-strip em{display:none}}
@media(max-width:640px){.project-kpi-grid,.project-tab-kpis,.project-risk-kpis{grid-template-columns:1fr}.project-section-heading{align-items:flex-start;flex-direction:column}.project-page-tabs{grid-template-columns:1fr}.project-kpi{min-height:96px}.project-overview-grid{display:block}.project-overview-grid>.octal-card{margin-bottom:14px}}
.project-payment-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
.project-board-receipts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:2px}.project-board-receipts>div{min-width:0;padding:13px 15px;background:#fbfcff;border:1px solid #e9ecf4;border-radius:11px}.project-board-receipts>div span{display:block;color:#7a879d;font-size:11px;font-weight:750}.project-board-receipts>div strong{display:block;margin-top:5px;overflow:hidden;color:#1c2b4d;font-size:17px;font-weight:850;text-overflow:ellipsis;white-space:nowrap}
.project-stage-card{margin-bottom:16px}.project-stage-board{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:10px;padding:4px 20px 20px}.project-stage-board>button{position:relative;display:flex;flex-direction:column;align-items:center;gap:7px;min-width:0;padding:15px 8px 12px;background:linear-gradient(160deg,#f8f7ff,#f4f6fc);border:1px solid #e6e8f2;border-radius:12px;cursor:pointer;transition:.16s ease}.project-stage-board>button:hover{border-color:#beb7f6;box-shadow:0 7px 18px rgba(90,80,220,.12);transform:translateY(-2px)}.project-stage-board>button>span{display:block;overflow:hidden;width:100%;color:#4d5a75;font-size:12px;font-weight:750;text-align:center;text-overflow:ellipsis;white-space:nowrap}.project-stage-board>button>strong{color:#5b50df;font-size:23px;font-weight:850}.project-stage-board>button>em{position:absolute;top:8px;right:9px;color:#b4bccd;font-size:10px;font-style:normal}.project-stage-board>p{grid-column:1/-1;margin:10px 0 0;color:#98a2b3;font-size:11px;text-align:center}
.report-search-control{display:flex;align-items:center;gap:7px;min-width:240px;padding:0 11px;background:#fff;border:1px solid #dfe4ee;border-radius:9px}.report-search-control i{color:#98a2b3;font-size:13px}.report-search-control input{width:100%;padding:8px 0;background:transparent;border:0;outline:0;font-size:12px;color:#344054}.report-search-control:focus-within{border-color:#a9a0f3;box-shadow:0 0 0 3px rgba(103,92,240,.12)}
.project-pay-pill{display:inline-flex;padding:4px 8px;color:#667085;background:#f1f3f7;border-radius:7px;font-size:11px;font-weight:750}.project-pay-pill.ok{color:#14815d;background:#e2f6ee}.project-pay-pill.due{color:#c57210;background:#fff1dc}.project-pay-pill.none{color:#98a2b3;background:#f4f6f9}
@media(max-width:1380px){.project-stage-board{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:1050px){.project-board-receipts{grid-template-columns:repeat(3,minmax(0,1fr))}.project-payment-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.project-stage-board{grid-template-columns:repeat(3,minmax(0,1fr))}.report-search-control{min-width:180px}}
@media(max-width:640px){.project-board-receipts{grid-template-columns:1fr}.project-stage-board{grid-template-columns:repeat(2,minmax(0,1fr))}}
