/* BEGIN phase18.css */
/* Phase 18: expert library and project recommendations. */
.expert-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 28px;margin-bottom:18px;border-radius:12px;color:#fff;background:linear-gradient(115deg,#182c52,#166878 58%,#088a78);overflow:hidden}.expert-hero h3{margin:5px 0 8px;font-size:26px;color:#fff}.expert-hero p{max-width:670px;margin:0;color:rgba(255,255,255,.82);line-height:1.7}.expert-hero-stats{display:grid;grid-template-columns:repeat(2,auto);gap:2px 15px;align-items:center;min-width:220px;padding:14px 18px;border:1px solid rgba(255,255,255,.18);border-radius:10px;background:rgba(255,255,255,.09)}.expert-hero-stats b{font-size:26px}.expert-hero-stats span{font-size:12px;color:#d7f1ec}.expert-project-select{display:flex;align-items:center;gap:10px;color:#77889d;font-size:12px}.expert-project-select select{min-width:250px}.expert-filter{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px}.expert-filter input{width:min(390px,100%);padding:10px 12px;border:1px solid #dce6ee;border-radius:7px;outline:0}.expert-filter span{color:#8290a2;font-size:12px}.expert-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.expert-card{display:flex;flex-direction:column;min-height:280px;padding:18px;border:1px solid #e0e9ee;border-radius:10px;background:linear-gradient(180deg,#fff,#f8fcfb);transition:transform .22s ease,box-shadow .22s ease}.expert-card:hover{transform:translateY(-4px);box-shadow:0 15px 30px rgba(25,74,88,.10)}.expert-card-top{display:flex;align-items:center;justify-content:space-between}.expert-avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#dceff3,#e7f9ef);color:#087e76;font-size:17px;font-weight:900}.expert-card h3{margin:18px 0 4px;font-size:19px}.expert-title{margin:0;color:#668098;font-size:13px}.expert-specialty{margin:14px 0 8px;color:#0c766f;font-size:13px;font-weight:800;line-height:1.55}.expert-intro{flex:1;margin:0;color:#74859a;font-size:12px;line-height:1.6}.expert-meta{display:flex;gap:12px;margin:15px 0 12px;color:#b17820;font-size:12px;font-weight:800}.expert-meta span+span{color:#8091a4}.expert-choose{width:100%}.project-expert-panel{grid-column:1/-1}.recommended-experts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.recommend-row{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;padding:12px;border:1px solid #e1ebee;border-radius:9px;background:#fbfefd}.recommend-row strong,.recommend-row small{display:block}.recommend-row small{margin-top:4px;color:#718499;font-size:12px;line-height:1.45}.score-ring{display:grid;place-items:center;width:39px;height:39px;border:2px solid #40b4a3;border-radius:50%;color:#087d75;font-size:12px;font-weight:900}.assigned-experts{display:grid;gap:8px;margin-top:16px;padding-top:15px;border-top:1px solid #e7eef2}.assigned-experts>b{font-size:13px}.assigned-experts>p{margin:0;color:#8795a6;font-size:13px}.assigned-expert{display:flex;align-items:center;gap:9px}.assigned-expert>span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#e5f4f1;color:#087c74;font-weight:900;font-size:12px}.assigned-expert strong,.assigned-expert small{display:block}.assigned-expert small{margin-top:3px;color:#8190a3;font-size:12px}@media(max-width:1050px){.expert-list,.recommended-experts{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.expert-hero,.expert-filter{align-items:flex-start;flex-direction:column}.expert-hero-stats{width:100%}.expert-project-select{align-items:flex-start;flex-direction:column}.expert-project-select select{min-width:0;width:100%}.expert-list,.recommended-experts{grid-template-columns:1fr}.recommend-row{grid-template-columns:42px 1fr}.recommend-row .small{grid-column:1/-1;width:100%}}

/* END phase18.css */
/* BEGIN phase19.css */
/* Phase 19: customer and cash-control surfaces. */
.customer-command,.contract-control{margin-bottom:18px;border-radius:12px;overflow:hidden}.customer-command{display:flex;justify-content:space-between;gap:28px;padding:24px 27px;color:#fff;background:linear-gradient(118deg,#172e50,#156b77 58%,#0c907b)}.customer-command .eyebrow,.contract-control .eyebrow{color:#bfece2}.customer-command h3,.contract-control h3{margin:3px 0 8px;color:inherit;font-size:25px}.customer-command p{max-width:610px;margin:0;color:rgba(255,255,255,.82);line-height:1.7}.customer-command-kpis,.contract-control-kpis{display:grid;grid-template-columns:repeat(2,minmax(115px,1fr));gap:10px;align-content:center;min-width:310px}.customer-command-kpis>div,.contract-control-kpis>div{padding:12px 14px;border:1px solid rgba(255,255,255,.17);border-radius:9px;background:rgba(255,255,255,.10)}.customer-command-kpis b,.contract-control-kpis b{display:block;font-size:22px}.customer-command-kpis span,.contract-control-kpis span{display:block;margin-top:4px;font-size:12px;color:rgba(255,255,255,.78)}.customer-matrix{margin-bottom:18px}.contract-control{padding:25px 26px;background:linear-gradient(120deg,#f0faf7,#f9fcff);border:1px solid #dcebe7}.contract-control-top{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:20px}.contract-control-top>div:first-child{max-width:700px}.contract-control-top p:not(.eyebrow){margin:0;color:#698096;line-height:1.65}.contract-control h3{color:#18334a}.contract-control-kpis{min-width:380px}.contract-control-kpis>div{border-color:#d6e7e3;background:#fff}.contract-control-kpis b{color:#116f6a}.contract-control-kpis span{color:#7d8fa0}.contract-control-kpis .alert{border-color:#f0c092;background:#fff7ee}.contract-control-kpis .alert b{color:#c76820}.plan-create{margin-top:20px;padding-top:18px;border-top:1px solid #e5edf0}.plan-create h4{margin:0 0 13px;color:#20384c}.plan-form{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:12px;align-items:end}.plan-form .field{margin:0}.plan-form .plan-note{grid-column:span 2}.plan-form button{height:40px;white-space:nowrap}.plan-status{min-width:90px}@media(max-width:1050px){.customer-command,.contract-control-top{align-items:flex-start;flex-direction:column}.customer-command-kpis,.contract-control-kpis{width:100%;min-width:0}.plan-form{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.customer-command,.contract-control{padding:18px}.customer-command h3,.contract-control h3{font-size:21px}.customer-command-kpis,.contract-control-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.plan-form{grid-template-columns:1fr}.plan-form .plan-note{grid-column:auto}.plan-form button{width:100%}}

/* END phase19.css */
/* BEGIN phase20.css */
/* Phase 20: customer 360 and search. */
.customer-open-list{margin-top:18px}.customer-open-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.customer-open{display:grid;grid-template-columns:34px 1fr 16px;align-items:center;gap:9px;padding:12px;border:1px solid #e3ecf0;border-radius:8px;background:#fbfefd;text-align:left;color:#1f3549;transition:.2s ease}.customer-open:hover{transform:translateY(-2px);border-color:#8bcfc2;box-shadow:0 10px 22px rgba(17,89,82,.09)}.customer-open>span{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#e3f3ef;color:#087d73;font-weight:900}.customer-open strong,.customer-open small{display:block}.customer-open small{margin-top:4px;color:#7d8fa1;font-size:12px}.customer-open i{color:#0a887a;font-size:24px;font-style:normal}.customer-360{position:relative;margin-bottom:20px;padding:24px;border:1px solid #d4e8e3;border-radius:12px;background:linear-gradient(145deg,#f5fcfa,#fff 55%,#f7fbff);box-shadow:0 14px 32px rgba(24,76,71,.08)}.customer-360-head{display:flex;justify-content:space-between;gap:16px}.customer-360-head h3{margin:7px 0;font-size:27px}.customer-360-head p{margin:0;color:#6f8295}.customer-360-head .small{margin-bottom:13px}.customer-360-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:20px 0}.customer-360-kpis>div{padding:14px;border:1px solid #deebea;border-radius:8px;background:#fff}.customer-360-kpis b{display:block;color:#087d73;font-size:21px}.customer-360-kpis span{display:block;margin-top:5px;color:#7d8fa1;font-size:12px}.customer-360-grid,.customer-related{display:grid;grid-template-columns:1.4fr .9fr;gap:14px;margin-top:14px}.related-row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #edf1f4}.related-row:last-child{border-bottom:0}.related-row strong,.related-row small{display:block}.related-row small{margin-top:5px;color:#7d8fa1;font-size:12px}.erp-overlay{position:fixed;z-index:80;inset:0;display:grid;place-items:start center;padding-top:11vh;background:rgba(13,28,43,.52);backdrop-filter:blur(4px)}.search-dialog{position:relative;width:min(700px,calc(100% - 30px));padding:25px;border-radius:12px;background:#fff;box-shadow:0 28px 80px rgba(0,0,0,.28)}.search-dialog h3{margin:4px 0 18px;font-size:23px}.search-dialog input{width:100%;padding:14px 15px;border:1px solid #b8d7d2;border-radius:8px;outline:0;font-size:15px}.overlay-close{position:absolute;right:15px;top:12px;border:0;background:transparent;color:#6f8194;font-size:28px}.global-search-result{display:grid;gap:8px;max-height:48vh;overflow:auto;margin-top:14px}.search-hit{display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:center;padding:12px;border:1px solid #edf1f3;border-radius:8px;background:#fff;text-align:left;color:#1d344a}.search-hit:hover{background:#f5fcfa;border-color:#a8d9d0}.search-hit strong,.search-hit small{display:block}.search-hit small{margin-top:5px;color:#7c8da0;font-size:12px}@media(max-width:900px){.customer-open-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-360-grid,.customer-related{grid-template-columns:1fr}}@media(max-width:600px){.customer-open-grid,.customer-360-kpis{grid-template-columns:1fr}.customer-360{padding:17px}.customer-360-head{flex-direction:column}.erp-overlay{padding-top:5vh}}

/* END phase20.css */
/* BEGIN phase29.css */
/* Project financial-control center: management-accounting UI, not a statutory ledger. */
.financial-control-center{margin:0 0 22px;border:1px solid #343a36;background:#171a18;color:#f4f1e8;border-radius:10px;overflow:hidden;box-shadow:0 18px 42px rgba(16,18,17,.12)}
.finance-command-head{padding:26px 28px 24px;display:flex;justify-content:space-between;gap:28px;align-items:flex-end;background:linear-gradient(118deg,#1c2520,#151816 68%);border-bottom:1px solid #343a36}
.finance-command-head .eyebrow{margin:0 0 8px;color:#cbb576;letter-spacing:1.1px;font-size:12px}.finance-command-head h3{font-size:24px;line-height:1.2;margin:0 0 8px;color:#fffaf0}.finance-command-head p{margin:0;color:#aeb4ac;max-width:690px;line-height:1.75;font-size:13px}.finance-command-actions{display:flex;gap:10px;flex:none}.finance-command-actions .btn{white-space:nowrap}
.finance-score-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:14px;background:#202521;gap:1px}.finance-score-grid article{background:#171a18;padding:18px 20px;min-height:102px;border-left:2px solid transparent}.finance-score-grid article:nth-child(1){border-color:#bfa15f}.finance-score-grid article:nth-child(2){border-color:#57a893}.finance-score-grid article:nth-child(3){border-color:#c48157}.finance-score-grid article:nth-child(4){border-color:#9d91d8}.finance-score-grid article:nth-child(5){border-color:#7e8c98}.finance-score-grid span{display:block;color:#9fa79e;font-size:12px}.finance-score-grid strong{display:block;font-size:25px;line-height:1.1;margin:11px 0 8px;color:#f7f4ec;letter-spacing:.1px}.finance-score-grid small{font-size:11px;color:#839087}
.finance-entry{margin:18px 22px;border:1px solid #363b37;background:#202522;border-radius:8px}.finance-entry summary{list-style:none;cursor:pointer;padding:14px 16px;color:#e7e3d8;font-weight:700}.finance-entry summary::-webkit-details-marker{display:none}.finance-entry summary span{display:inline-grid;width:22px;height:22px;place-items:center;margin-right:8px;background:#c6ad69;color:#1d1d19;border-radius:50%;font-size:17px;vertical-align:middle}.finance-entry[open] summary{border-bottom:1px solid #363b37}.finance-entry-form{padding:18px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.finance-entry-form label{display:block;color:#aeb5ac;font-size:12px}.finance-entry-form input,.finance-entry-form select{display:block;box-sizing:border-box;width:100%;margin-top:7px;border:1px solid #414943;border-radius:5px;background:#151816;color:#ece8dd;min-height:37px;padding:7px 9px;outline:none}.finance-entry-form input:focus,.finance-entry-form select:focus{border-color:#c5ad68;box-shadow:0 0 0 3px rgba(197,173,104,.12)}.finance-entry-form .entry-note{grid-column:span 3}.finance-entry-form .btn{align-self:end;min-height:37px}
.finance-analysis-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:14px;padding:4px 22px 18px}.finance-panel,.finance-project-table{background:#f6f4ee;color:#1b211d;border-radius:8px;border:1px solid #e0ddd3;padding:18px}.finance-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.finance-panel-head span{font-size:11px;color:#7b806f}.finance-panel-head h4{margin:3px 0 0;color:#1b211d;font-size:17px}.finance-panel-head>small{font-size:11px;color:#7c817a;white-space:nowrap}.cost-row{display:grid;grid-template-columns:150px 1fr auto;gap:13px;align-items:center;padding:10px 0;border-top:1px solid #e8e5dd}.cost-row strong{font-size:13px;color:#29332c}.cost-row small{display:block;margin-top:3px;color:#92958b;font-size:11px}.cost-bar{height:7px;overflow:hidden;background:#e3e4dc;border-radius:9px}.cost-bar b{height:100%;display:block;border-radius:9px;background:#767262}.cost-row>strong:last-child{font-size:12px;color:#4d514a}.finance-insight{display:flex;justify-content:space-between;align-items:baseline;padding:14px 0;border-top:1px solid #e8e5dd}.finance-insight b{font-size:21px;color:#252d26}.finance-insight span{font-size:12px;color:#858a82}.finance-panel p{font-size:12px;line-height:1.75;color:#70766d;margin:10px 0 0}.finance-project-table{margin:0 22px 24px;padding:18px}.finance-project-table .table{min-width:980px}.owner-dot{display:inline-grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#e5e8df;color:#667269;margin-right:7px;font-size:12px;font-weight:700}.profit{color:#126c58}.profit.negative{color:#b24e42}.finance-progress{height:7px;min-width:100px;border-radius:7px;background:#e4e5dc;overflow:hidden;margin-bottom:5px}.finance-progress b{display:block;height:100%;background:#678d82;border-radius:7px}.finance-project-table td small{color:#82877f}.finance-risk{display:inline-block;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700;margin-bottom:4px}.finance-risk.normal{background:#e1f0e9;color:#167457}.finance-risk.watch{background:#f7ecd5;color:#9b651b}.finance-risk.danger{background:#f8e0dd;color:#b5483f}.finance-risk.muted{background:#eaebe7;color:#737970}.phase29-toast{position:fixed;z-index:9999;right:26px;bottom:28px;background:#171a18;color:#f8f5ec;border:1px solid #c4aa63;border-radius:7px;padding:13px 17px;box-shadow:0 14px 34px rgba(0,0,0,.25);font-size:13px;animation:phase29-in .25s ease both}@keyframes phase29-in{from{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}
@media(max-width:1180px){.finance-score-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.finance-entry-form{grid-template-columns:repeat(3,minmax(0,1fr))}.finance-entry-form .entry-note{grid-column:span 2}}@media(max-width:760px){.finance-command-head,.finance-analysis-grid{display:block}.finance-command-actions{margin-top:16px}.finance-score-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-entry-form{grid-template-columns:1fr}.finance-entry-form .entry-note{grid-column:auto}.finance-analysis-grid{padding:4px 12px 12px}.finance-analysis-grid .finance-panel+ .finance-panel{margin-top:12px}.finance-project-table,.finance-entry{margin-left:12px;margin-right:12px}.finance-command-head{padding:20px}.cost-row{grid-template-columns:1fr auto}.cost-bar{display:none}}

/* END phase29.css */

/* Workflow, permission and seal management. */
.workflow-admin-tabs{display:flex;gap:8px;margin:16px 0}.workflow-admin-tabs button{padding:10px 16px;border:1px solid #cfe3df;border-radius:10px;background:#fff;color:#31566a;font-weight:800;cursor:pointer}.workflow-admin-tabs button.active{border-color:#078a7a;background:#e4f6f1;color:#087d73}.workflow-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px}.workflow-toolbar strong,.workflow-toolbar small{display:block}.workflow-toolbar small{margin-top:4px;color:#718797}.workflow-disabled{opacity:.66}.workflow-rule-head .actions{display:flex;flex-wrap:wrap;gap:7px}.workflow-cc{margin-top:14px;padding-top:12px;border-top:1px solid #e2edeb;color:#6d8391;font-size:13px}.workflow-cc strong{color:#31566a}.permission-grid,.cc-picker{display:flex;flex-wrap:wrap;gap:9px;margin:12px 0 18px}.permission-grid label,.cc-picker label,.checkbox-field{display:flex!important;align-items:center;gap:7px;padding:8px 11px;border:1px solid #d8e7e4;border-radius:9px;background:#f8fcfb}.permission-grid input,.cc-picker input,.checkbox-field input{width:auto!important}.permission-summary{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}.permission-summary span{padding:6px 9px;border-radius:999px;background:#edf5f3;color:#55707e;font-size:12px}.rule-node-row{grid-template-columns:32px minmax(150px,1fr) minmax(180px,1fr) auto!important}.seal-form-section,.seal-flow-card{margin:16px 0;padding:16px;border:1px solid #d2e7e2;border-radius:12px;background:#f8fcfb}.flow-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.flow-section-title span{color:#718797;font-size:12px}.seal-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.seal-detail-grid span{padding:10px;border-radius:8px;background:#fff;color:#78909e;font-size:12px}.seal-detail-grid strong{display:block;margin-top:4px;color:#263f50;font-size:14px}.seal-purpose{margin:11px 0 0;color:#385567}.seal-execution-actions{margin-top:12px}.flow-ccs{display:flex;gap:10px;margin:14px 0;padding:11px 13px;border-radius:9px;background:#f0f6f5;color:#5f7886}.hidden{display:none!important}
@media(max-width:860px){.workflow-toolbar,.flow-section-title{align-items:flex-start;flex-direction:column}.seal-detail-grid{grid-template-columns:1fr}.rule-node-row{grid-template-columns:28px 1fr!important}.rule-node-row select,.rule-node-row button{grid-column:2}}
