
:root{--ink:#183d37;--green:#2c6355;--paper:#f4f5ef;--line:#dce2d8}*{box-sizing:border-box}body{margin:0;background:var(--paper);font:15px/1.6 system-ui;color:var(--ink)}header{background:white;border-bottom:1px solid var(--line);padding:18px 5%;display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap}.brand{font-size:23px;font-weight:750;letter-spacing:-1px}.brand small{display:block;font-size:10px;letter-spacing:3px;font-weight:500}button,a.button{border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);padding:10px 16px;font:inherit;cursor:pointer;text-decoration:none}button.active,.primary{background:var(--ink);color:white}main{max-width:980px;margin:auto;padding:36px 22px 70px}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:2px;font-weight:700;color:#688072}h1{font-size:clamp(30px,5vw,48px);line-height:1.12;letter-spacing:-1.6px;margin:12px 0}h2{font-size:25px;letter-spacing:-.5px;margin:0}h3{margin:0;font-size:18px}.muted{color:#728078}.intro{padding:18px 0 28px}.notice{padding:10px 16px;background:#e8ece0;border-radius:8px;font-size:12px;margin-bottom:28px}.card{background:white;border:1px solid var(--line);border-radius:16px;padding:28px;margin-bottom:22px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{font-size:12px;color:#748175}.value{font-size:15px;color:var(--ink);margin-top:3px}.sectionhead{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}.pill{font-size:12px;background:#e8f0e7;color:var(--green);padding:5px 10px;border-radius:20px}.stage{padding:17px 0;border-top:1px solid var(--line)}.stage.current{border:1px solid #b9d0bb;background:#f4f8f0;border-radius:12px;padding:20px;margin:12px 0}.stagehead{display:flex;align-items:center;justify-content:space-between;gap:14px}.stagehead strong{font-size:17px}.bar{height:6px;background:#dfe6dc;border-radius:4px;margin:14px 0;overflow:hidden}.bar span{display:block;height:100%;background:var(--green)}.tasks{display:grid;gap:8px;margin-top:15px}.task{display:flex;gap:10px;align-items:center;font-size:14px}.dot{width:20px;height:20px;border-radius:50%;border:1px solid #b7c6b7;display:inline-grid;place-items:center;font-size:12px}.done{background:var(--green);color:white}.doc{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 0;border-top:1px solid var(--line)}.doc:first-child{border:0}.doc p{margin:4px 0;font-size:12px;color:#6c7e70}.docicon{background:#f1f3ec;padding:11px;border-radius:9px;font-size:11px;font-weight:700}.docleft{display:flex;gap:14px;align-items:center}.budgetrow{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);gap:20px}.total{background:var(--ink);color:white;padding:25px;border-radius:12px;margin-top:20px;display:flex;justify-content:space-between;align-items:center}.total strong{font-size:32px;letter-spacing:-1px}.small{font-size:12px}.office{display:none}label{display:block;font-size:12px;margin:12px 0 5px}input,select,textarea{font:inherit;width:100%;padding:11px;border:1px solid #cad6ca;border-radius:7px;background:white;color:var(--ink)}input[type=checkbox]{width:auto;accent-color:var(--green)}.checks label{font-size:14px;display:flex;gap:10px;align-items:center}.footer{text-align:center;font-size:12px;color:#7d8a7e;margin-top:30px}details summary{cursor:pointer}.status{font-size:13px;margin-top:12px;color:var(--green)}@media(max-width:600px){.card{padding:20px}.grid{grid-template-columns:1fr}.doc{align-items:flex-start}.docicon{display:none}.total{display:block}.total strong{display:block}.sectionhead{align-items:flex-start}header{padding:15px 22px}}
.pill{flex-shrink:0;white-space:nowrap}.model-label,#currentPill{display:flex;flex-direction:column;line-height:1.5;border-radius:10px;padding:8px 14px;min-width:115px}.model-label strong,#currentPill strong{font-size:14px}.document-label{font-size:12px;color:#728078;white-space:nowrap}.address-row{grid-column:1/-1}.doc-group{font-size:15px;margin:22px 0 5px}.doc-group:first-child{margin-top:0}.document-item{border-bottom:1px solid var(--line)}.document-item .doc{border:0}.doc-actions{display:flex;flex-direction:column;gap:8px;flex-shrink:0}.doc-actions button{font-size:12px;padding:8px 12px}.approval-label{color:var(--green)}.approved-tag{font-size:12px;color:var(--green);text-align:center}.revision-history{font-size:12px;padding:0 0 16px}.revision-history summary{color:var(--green);text-decoration:underline;min-height:30px}.revision-history .doc{padding:12px;background:#f6f7f1;border-radius:8px;margin-top:8px}dialog{border:1px solid var(--line);border-radius:16px;padding:28px;max-width:460px;width:calc(100% - 32px);color:var(--ink)}dialog::backdrop{background:#183d3780}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}dialog .task{align-items:flex-start;gap:12px}dialog input[type=checkbox]{margin-top:5px;flex-shrink:0}@media(max-width:600px){.document-label{white-space:normal;text-align:right;max-width:90px}.doc{flex-wrap:wrap}.docleft{width:100%}.doc-actions{flex-direction:row}.revision-history .doc{flex-wrap:nowrap}.sectionhead h2{font-size:23px}}  .task-group-title{font-weight:650;font-size:14px;margin:12px 0 4px}.tasks .nested-task,.checks .nested-task{margin-left:28px;padding-left:12px;border-left:2px solid var(--line)}.planning-note{font-size:12px;line-height:1.6;margin:2px 0 8px 30px;padding:10px 12px;border-radius:7px;background:#edf1e8;color:#5c7060}.dot{flex-shrink:0}.task{align-items:flex-start} .document-dropdown{border:1px solid var(--line);border-radius:10px;margin-top:18px;background:#f8f9f4}.document-dropdown>summary{display:flex;align-items:center;gap:12px;padding:16px;font-size:15px;font-weight:650;list-style:none}.document-dropdown>summary::-webkit-details-marker{display:none}.document-dropdown>summary:before{content:"▸";color:var(--green)}.document-dropdown[open]>summary:before{content:"▾"}.dropdown-count{margin-left:auto;font-size:12px;font-weight:400;color:#728078;white-space:nowrap}.dropdown-body{padding:0 16px 12px;background:white;border-radius:0 0 10px 10px}.document-dropdown[open]>summary{border-bottom:1px solid var(--line)} .overall-sticky{position:sticky;top:0;z-index:20;background:rgba(244,245,239,.97);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}.overall-inner{max-width:980px;margin:auto;padding:10px 22px 12px}.overall-label{display:flex;justify-content:space-between;align-items:center;font-size:12px;gap:12px;margin-bottom:7px}.overall-label strong{font-size:15px}.overall-count{color:#728078;margin-left:9px;font-size:11px}.overall-track{height:5px;border-radius:4px;background:#dfe6dc;overflow:hidden}.overall-track span{display:block;height:100%;background:var(--green);transition:width .25s}@media(max-width:430px){.overall-count{display:block;margin-left:0}}  .stage-payment{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-top:12px;padding:12px;background:#edf1e7;border-radius:8px;font-size:12px}.stage-payment span{display:block;color:#6c7e70;margin-top:3px}.stage-payment>strong{white-space:nowrap}.labour-schedule{font-size:12px;margin:12px 0}.labour-schedule summary{color:var(--green)}  .planned-date{font-size:12px;color:#728078;margin-top:6px} .extra-cost-section{border-top:1px solid var(--line);margin-top:22px;padding-top:20px}.extra-cost-row{display:grid;grid-template-columns:2fr 1fr auto;gap:12px;align-items:end;margin-bottom:14px}.extra-remove{font-size:12px;margin-bottom:2px;padding:11px 12px}.stage-payment{display:block;background:none;padding:0;border-radius:0;font-size:11px;font-weight:400;line-height:1.6;color:#7d877f;margin:8px 0 12px}.payment-note{font-size:11px;color:#7d877f;margin:8px 0}.labour-schedule{font-size:11px;color:#7d877f;margin:8px 0}.labour-schedule summary{color:#7d877f}.labour-schedule .budgetrow{border:0;padding:7px 0;font-size:11px}.labour-schedule strong{font-weight:400}@media(max-width:600px){.extra-cost-row{grid-template-columns:1fr 110px}.extra-remove{grid-column:1/-1;justify-self:start;padding:6px 10px}}  .fee-ledger{border-top:1px solid var(--line);margin-top:22px;padding-top:20px} .audit-table{overflow:auto}.audit-table table{width:100%;border-collapse:collapse;font-size:12px}.audit-table th,.audit-table td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line)}.audit-table th{font-weight:600;color:#728078}.audit-table td:nth-child(n+2){white-space:nowrap} .weights-editor{font-size:12px;margin:18px 0}.weight-row{display:grid;grid-template-columns:1fr 75px 16px;align-items:center;gap:10px;margin:10px 0}.weight-row label{margin:0}.weight-row input{padding:7px}

.hero{min-height:260px;border-radius:18px;background:linear-gradient(125deg,#183d37,#688477);background-size:cover;background-position:center;position:relative;overflow:hidden;margin:0 0 26px;display:flex;align-items:flex-end}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(13,36,30,.85),rgba(13,36,30,.06))}.hero-content{position:relative;color:white;padding:28px}.hero-content .eyebrow{color:#d6e6d7}.hero-content h1{font-size:38px;margin:10px 0}.hero-content p{margin:8px 0;font-size:13px}.portalnav{display:flex;gap:8px;flex-wrap:wrap}.topnav{position:sticky;top:0;z-index:30;background:white;border-bottom:1px solid var(--line);padding:12px 4%;display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}.topnav .brand{font-size:22px}.topnav button{font-size:13px;padding:8px 12px}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:18px 0}.portfolio{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.metric{background:white;border:1px solid var(--line);border-radius:14px;padding:20px}.metric strong{display:block;font-size:30px}.projecttable{width:100%;border-collapse:collapse;font-size:13px}.projecttable th,.projecttable td{text-align:left;padding:14px 9px;border-bottom:1px solid var(--line);vertical-align:top}.projecttable th{font-size:11px;color:#728078;text-transform:uppercase;letter-spacing:1px}.projecttable button,.projecttable a.button{font-size:12px;line-height:1.6;padding:7px 10px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}.tablewrap{overflow:auto}.mini-bar{height:5px;min-width:90px;margin-top:7px;background:#e2e8dc;border-radius:5px}.mini-bar span{display:block;height:100%;background:var(--green);border-radius:5px}.overdue{color:#a35032}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.deadline-card{background:white;border:1px solid var(--line);border-radius:14px;padding:23px}.deadline-card .task{font-size:12px;margin:8px 0}.taskweight{margin-left:auto;font-size:11px;color:#879289;white-space:nowrap}.definitionrow{display:grid;grid-template-columns:1.8fr 1fr 70px auto;gap:10px;margin:10px 0;align-items:center}.definitionrow input{padding:8px;font-size:12px}.definitionrow button{padding:8px;font-size:12px}.stage-config{margin-bottom:24px;padding-top:18px;border-top:1px solid var(--line)}.stage-config .sectionhead{margin-bottom:12px}.stage-config .pill.invalid{color:#9d3e27;background:#f8ece5}.btn-small{font-size:12px;padding:7px 10px}.message{padding:12px 16px;border-radius:8px;margin-bottom:20px;background:#e8eee1;font-size:13px}.message.error{background:#f5e6e0;color:#853c2b}.globalnote{font-size:11px;color:#7d877f}.checkrow{display:flex;gap:12px;align-items:flex-start;margin:10px 0}.checkrow input{width:auto;accent-color:var(--green);margin-top:5px}.checkrow label{margin:0;font-size:14px}.login-card{max-width:480px;margin:60px auto}.settings-box{max-width:980px}.form-actions{display:flex;gap:10px;align-items:center;margin-top:20px;flex-wrap:wrap}.mutedbutton{background:transparent}.archive-doc{background:#f8f9f4;border-radius:8px;padding:10px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.loading{padding:70px;text-align:center}.empty{padding:25px;text-align:center;color:#728078}.office-badge{font-size:11px;background:#e9eee2;padding:5px 8px;border-radius:20px}.fullwidth{grid-column:1/-1}main{max-width:1100px}.overall-sticky{top:0}.site-footer{font-size:12px;text-align:center;color:#7d877f;padding:28px}dialog{max-height:90vh;overflow:auto}a{color:var(--green)}.definitionrow .weightinput{max-width:75px}.stage-payment{font-weight:400}.doc-actions a{font-size:12px;padding:8px 12px}.house-setting{display:grid;grid-template-columns:120px 1fr;gap:12px;align-items:center;margin:10px 0}.status-list p{border-bottom:1px solid var(--line);padding:10px 0;font-size:12px}.hero-fallback-label{font-size:11px;color:#d8e5dc}
@media(max-width:750px){.portfolio{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}.definitionrow{grid-template-columns:1fr 70px}.definitionrow .groupinput{grid-column:1/-1}.contact-grid{grid-template-columns:1fr}.topnav{position:static}.hero{min-height:220px}.hero-content h1{font-size:30px}.hero-content{padding:22px}.projecttable{min-width:650px}.house-setting{grid-template-columns:1fr}.card{padding:20px}}

/* The project bar alone remains pinned; navigation scrolls away. */
.topnav{position:static}

.next-tasks-cell{min-width:240px;max-width:330px}.next-tasks-list{list-style:none;counter-reset:nexttask;display:grid;gap:7px;margin:0;padding:0}.next-tasks-list li{counter-increment:nexttask;display:flex;align-items:flex-start;gap:10px;background:#edf4e9;border-left:3px solid #5c896a;border-radius:7px;padding:10px 12px;font-size:14px;font-weight:550;line-height:1.45}.next-tasks-list li::before{content:counter(nexttask);flex-shrink:0;font-size:11px;color:#56745f;border:1px solid #c9d8c4;background:white;width:18px;height:18px;display:grid;place-items:center;border-radius:50%;margin-top:1px}.stage-clear{font-size:13px;color:#54745d;margin:0;padding:10px;background:#f2f6ed;border-radius:7px}@media(max-width:750px){.projecttable{display:block;min-width:0}.projecttable thead{display:none}.projecttable tbody{display:block}.projecttable tr{display:block;border:1px solid var(--line);border-radius:12px;padding:15px;margin:12px 0}.projecttable td{display:block;border:0;padding:7px 0}.projecttable td[data-label]::before{content:attr(data-label);display:block;color:#728078;font-size:10px;text-transform:uppercase;letter-spacing:1px;margin-bottom:5px}.next-tasks-cell{min-width:0;max-width:none}.projecttable td .toolbar{margin:5px 0}.tablewrap{overflow:visible}}

.project-progress-row{padding:15px 0;border-bottom:1px solid var(--line)}.project-progress-row:last-of-type{border:0}.progress-project-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:9px;font-size:14px}.progress-project-head>span{font-size:12px;color:#728078;white-space:nowrap}.stage-progress-track{display:grid;grid-template-columns:repeat(5,1fr);gap:3px;border-radius:8px;overflow:hidden;height:28px}.stage-progress-segment{position:relative;background:#e9eee4;overflow:hidden}.stage-progress-fill{position:absolute;inset:0 auto 0 0;height:100%;transition:width .2s}.stage-progress-number{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;background:rgba(255,255,255,.85);color:#3a5445;width:18px;height:18px;font-size:10px;font-weight:650;border-radius:50%}.progress-legend{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:22px;font-size:11px;color:#607567}.progress-legend>span{display:flex;align-items:center;gap:6px}.progress-legend i{display:inline-block;width:9px;height:9px;border-radius:2px;flex-shrink:0}@media(max-width:750px){.progress-project-head{align-items:flex-start}.progress-project-head strong{font-size:13px}}

.customer-stage-track{height:10px;gap:2px;border-radius:5px}.customer-progress-legend{margin-top:6px;gap:5px 12px;font-size:10px}.customer-progress-legend i{width:7px;height:7px}.overall-inner{max-width:1100px}.customer-stage-track .stage-progress-segment{background:#e4eadf}

.portal-guide h2{font-size:27px;line-height:1.2}.portal-guide p{font-size:14px;line-height:1.65}.guide-key-points{padding:4px 15px;background:#f1f5eb;border-radius:10px;margin:18px 0}.guide-link{display:block;padding:12px;background:#edf2e6;border-radius:8px;font-size:13px;overflow-wrap:anywhere}.guide-instructions{border-top:1px solid var(--line);padding:14px 0;margin-top:10px;font-size:13px}.guide-instructions summary{font-weight:650}.guide-instructions ol{padding-left:22px;margin-bottom:0}.guide-instructions li{padding:4px 0}.portal-guide .form-actions button{width:100%}@media(max-width:750px){html,body{max-width:100%;overflow-x:clip}main{width:100%;min-width:0;padding:26px 16px}.card{min-width:0}.projecttable,.projecttable tbody,.projecttable tr,.projecttable td{width:100%;min-width:0;max-width:100%;box-sizing:border-box}.projecttable td{overflow-wrap:anywhere}.next-tasks-list li span,.progress-project-head strong{min-width:0;overflow-wrap:anywhere}.projecttable .toolbar{flex-wrap:wrap}.portfolio{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{min-width:0}.portalnav{max-width:100%}}

.topnav button,.topnav a.button{font-size:13px;font-weight:400;line-height:1.6;padding:8px 12px;font-family:inherit;display:inline-flex;align-items:center;text-decoration:none}

.stage-config{border:1px solid var(--line);border-radius:10px;margin:12px 0;padding:0;overflow:hidden}.stage-config>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;font-size:15px;font-weight:650;background:#f6f8f1;list-style:none}.stage-config>summary::-webkit-details-marker{display:none}.stage-config>summary:before{content:"▸";color:var(--green)}.stage-config[open]>summary:before{content:"▾"}.stage-summary-name{margin-right:auto}.stage-config-body{padding:0 16px 16px}.office-users-box>summary{display:flex;align-items:center;justify-content:space-between;gap:15px;cursor:pointer;list-style:none}.office-users-box>summary::-webkit-details-marker{display:none}.staff-email-log{font-size:12px;margin-top:20px}.staff-email-log p{padding:8px 0;border-bottom:1px solid var(--line)}.office-users-box .toolbar{margin:0}.office-users-box .doc{flex-wrap:wrap}.office-users-box .toolbar button{font-size:12px;padding:7px 10px}.sync-notice button{font-size:12px;padding:5px 8px;margin-left:10px}

.deadline-urgency{display:block;color:#a12f32;font-size:.8rem;font-weight:700;margin-top:4px}.next-tasks-list li.task-due-soon,.task.task-due-soon{background:#fff0ed;border-color:#dcaaa3}.task-due-soon .deadline-urgency{font-size:.75rem}

#mhcp-app.client-portal .overall-sticky{position:fixed;inset:0 0 auto 0;z-index:100;width:100%;box-shadow:0 2px 8px rgba(24,61,55,.08)}#mhcp-app.client-portal .topnav{position:relative}.progress-slot{height:96px}.task-order-controls{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.task-order-controls button{font-size:11px;padding:7px 9px}.definitionrow{grid-template-columns:minmax(180px,1.6fr) minmax(110px,1fr) 70px minmax(180px,1fr)}@media(max-width:750px){.definitionrow{grid-template-columns:minmax(0,1fr) 70px}.definitionrow .task-order-controls{grid-column:1/-1;justify-content:flex-start}.progress-slot{height:110px}}

.document-superseded{background:#f0f1ee;color:#858b85}.document-superseded .doc{color:#858b85}.document-superseded a.button{background:#e9ece7;color:#7b837b}.superseded-label{font-size:11px;text-transform:uppercase;letter-spacing:.5px}.supersede-control{display:flex;gap:7px;align-items:center;font-size:12px;margin:4px 0}.supersede-control input{width:auto;margin:0}

.superseded-documents>summary{color:#858b85;background:#eef0eb}.superseded-documents{margin-bottom:24px}

.fee-ledger .budgetrow{display:grid;grid-template-columns:minmax(0,1.6fr) auto minmax(120px,.8fr);gap:18px;align-items:center}.fee-override-field label{font-size:11px;margin:0 0 4px}.fee-override-field input{width:100%;padding:8px;font-size:13px}#fee-preview-status.error{color:#a12f32}@media(max-width:750px){.fee-ledger .budgetrow{grid-template-columns:minmax(0,1fr) auto;gap:10px}.fee-override-field{grid-column:1/-1;max-width:220px}}

.cash-payment{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto auto;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);align-items:center}.cash-payment span{display:block}.cash-subtotal{margin-top:12px}.payment-received{display:flex;align-items:center;gap:8px;margin-top:10px!important}.payment-received input{width:auto}.cash-month h2{font-size:21px}@media(max-width:750px){.cash-payment{grid-template-columns:minmax(0,1fr) auto;gap:8px}.cash-payment>div{grid-column:1/-1}.cash-payment button{font-size:12px;padding:7px 10px}}

/* Clearer separation and stronger titles for office projects. */
.projecttable{border-collapse:separate;border-spacing:0 10px}
.projecttable tbody tr{background:#fff}
.projecttable tbody td{border-top:1px solid #000;border-bottom:1px solid #000;padding:18px 12px}
.projecttable tbody td:first-child{border-left:1px solid #000;border-radius:12px 0 0 12px}
.projecttable tbody td:last-child{border-right:1px solid #000;border-radius:0 12px 12px 0}
.projecttable td[data-label="Project"]>strong{font-size:14px;line-height:1.6;display:inline-block;margin-bottom:0}
.project-progress-row,.project-progress-row:last-of-type{background:#fff;border:1px solid #000;border-radius:14px;padding:18px;margin:12px 0}
.progress-project-head strong{font-size:14px;line-height:1.35}
.project-progress-overview h2{font-size:18px;line-height:1.35}
@media(max-width:750px){.progress-project-head strong{font-size:13px}}
.deadline-card{background:#fff;border:1px solid #000}.deadline-card h3{font-size:20px;line-height:1.35}
@media(max-width:750px){.projecttable tbody tr{border:1px solid #000;padding:18px;margin:14px 0}.projecttable tbody td,.projecttable tbody td:first-child,.projecttable tbody td:last-child{border:0;border-radius:0;padding:7px 0}.projecttable td[data-label="Project"]>strong{font-size:20px}}

/* Superseded files remain clearly marked and fully readable/downloadable. */
.document-superseded{background:#f3f3ef;color:var(--ink);border:1px solid #d4dcd4;border-left:4px solid #899b8d;border-radius:8px;padding:0 14px;margin:10px 0}
.document-superseded .doc{color:var(--ink)}
.document-superseded .doc p{color:#52645c}
.document-superseded a.button{background:#fff;color:#183d37;border-color:#738b7d}
.document-superseded a.button:hover,.document-superseded a.button:focus-visible{background:#e8f0e7;color:#183d37;border-color:#2c6355}
.superseded-label{display:inline-block;background:#e5eae2;color:#405549;padding:2px 6px;border-radius:4px;font-weight:700}
.superseded-documents>summary{color:#183d37;background:#eef0eb}
.superseded-documents .dropdown-count{color:#52645c}

/* Cost confirmation and direct project navigation. */
.cost-input{display:flex;align-items:flex-end;gap:10px}.cost-input>div{flex:1;min-width:0}.cost-tbc{display:flex;align-items:center;gap:6px;white-space:nowrap;font-size:12px;margin:0 0 12px}.cost-tbc input{width:auto;margin:0}.extra-cost-row{grid-template-columns:minmax(0,2fr) minmax(90px,1fr) auto auto}.fee-override-field .cost-tbc{margin:0 0 8px}.project-title-link{color:inherit;text-decoration:none}.project-title-link:hover{text-decoration:underline}.project-title-link:focus-visible{outline:2px solid var(--green);outline-offset:3px}.grid>.fullwidth{grid-column:1/-1}@media(max-width:600px){.extra-cost-row{grid-template-columns:minmax(0,1fr) 110px}.extra-cost-row .cost-tbc{grid-column:1;margin:0}.extra-cost-row .extra-remove{grid-column:2;justify-self:end}}

/* Compact forecast totals on phones; desktop typography is unchanged. */
@media(max-width:600px){.cashflow-metrics .metric{padding:16px 12px}.cashflow-metrics .metric strong{font-size:clamp(14px,3.9vw,22px);line-height:1.3;letter-spacing:-.4px;white-space:nowrap}}

/* Clear stage divisions and compact extra-cost controls on phones. */
.task-overdue{font-size:12px;color:#858b85;font-weight:400}
.extra-cost-row{grid-template-columns:minmax(0,2fr) minmax(90px,1fr) auto auto auto}
@media(max-width:600px){#mhcp-app.client-portal .stage{border-top:2px solid #a7b4a8}#mhcp-app.client-portal .stage.current{border:2px solid #a7b4a8}.extra-cost-row{grid-template-columns:minmax(0,1fr) 110px}.extra-cost-row .extra-supply-label{grid-column:1/-1;white-space:normal}.extra-cost-row .extra-remove{grid-column:2}.budgetrow>strong{flex-shrink:0}.budgetrow{gap:12px}.budgetrow>span{min-width:0}}

.push-prompt{border-color:#9db7a2;background:#edf3e8}.push-prompt h2{font-size:21px;line-height:1.3}.push-prompt .form-actions{gap:8px}

/* 1.0.28: keep document controls within phone cards. */
.document-action-mobile{display:none}
@media(max-width:750px){
 .document-item,.document-item .doc,.document-item .doc>div{min-width:0;max-width:100%}
 .document-item .doc{display:flex;flex-direction:column;align-items:stretch}
 .document-item .doc>div:first-child{overflow-wrap:anywhere}
 .document-item .doc-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 6px;width:100%;flex-shrink:1}
 .document-item .doc-actions>button,.document-item .doc-actions>a.button{font-size:12px;padding:9px 3px;text-align:center;white-space:nowrap;min-width:0}
 .document-action-desktop{display:none}
 .document-action-mobile{display:inline}
 .document-item .doc-actions>.supersede-control{grid-column:1/-1;min-height:40px;margin:0;justify-self:start}
 .document-item .doc-actions>.small{grid-column:1/-1}
}

/* 1.0.29: client document actions and response notes on portrait phones. */
@media(max-width:750px){
 .document-item .doc-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
 .document-item .doc-actions.doc-actions-manage{grid-template-columns:repeat(4,minmax(0,1fr))}
 .document-item .doc-actions>.document-response-note{grid-column:1/-1;display:block;width:100%;min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.5;margin-top:2px}
 .document-item .doc-actions>button[data-action="respond"]{grid-column:1/-1;white-space:normal}
}

/* VAT is a display annotation; saved prices remain unchanged. */
.vat-suffix{display:inline-block;font-size:0.65em;font-weight:400;white-space:nowrap;margin-left:0.35em;vertical-align:baseline}

/* Clear separation between the progress introduction and heading. */
.project-progress-heading .eyebrow{margin-bottom:16px}

/* Keep document category labels on one line on phones. */
@media(max-width:600px){.category-documents>summary>span:first-of-type{white-space:nowrap}.category-documents>summary{gap:8px}.category-documents>summary .dropdown-count{white-space:normal;text-align:right}}

.project-header-upload{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.project-header-preview{display:block;width:100%;max-width:520px;aspect-ratio:16/7;object-fit:cover;border-radius:10px;margin-top:12px}.project-header-upload input[type=file]{max-width:100%;font-size:13px}

.keeping-in-touch{font-size:13px;color:#617368}.keeping-in-touch>summary{font-weight:600;cursor:pointer}.keeping-in-touch p{margin:12px 0}.portal-social{text-align:center;font-size:12px;color:#728078;margin:24px 0}.portal-social>a{font-weight:650}.portal-social p{margin-top:6px}.consultant-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.consultant-project-card{display:flex;flex-direction:column;gap:10px;color:inherit;text-decoration:none;margin:0}.consultant-project-card>strong{font-size:21px}.consultant-project-card .button{align-self:flex-start}.cad-request-button{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;color:#b32632;padding:7px 9px;min-height:36px}.cad-request-button svg{height:19px;width:19px}.cad-request-button:disabled{opacity:.5}@media(max-width:600px){.consultant-project-grid{grid-template-columns:1fr}.cad-request-button{padding:8px}.keeping-in-touch a{overflow-wrap:anywhere}}

.document-item .doc-actions.doc-actions-cad{display:grid;grid-template-columns:minmax(75px,1fr) minmax(60px,1fr) 48px;gap:6px;align-items:center}.doc-actions-cad .cad-request-button{justify-content:center;padding:6px 3px}.doc-actions-cad .cad-request-button svg{width:15px;height:18px}.doc-actions-cad .cad-request-button span{font-size:9px}@media(max-width:750px){.document-item .doc-actions.doc-actions-cad{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 48px}.document-item .doc-actions.doc-actions-cad>button{white-space:normal}}

.office-project-section>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;list-style:none}.office-project-section>summary::-webkit-details-marker{display:none}.office-project-section>summary h2{margin:0}.office-project-section>summary:after{content:"+";font-size:24px;font-weight:400}.office-project-section[open]>summary:after{content:"−"}.office-project-body{padding-top:24px}.document-subsection+.document-subsection,.budget-review{margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}

.general-summary-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65;margin-bottom:0}

.summary-updated{margin:0 0 12px}

.dashboard-summary{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5;margin:24px 0 0}

.deadline-card{display:flex;flex-direction:column}.deadline-card>.deadline-card-actions{margin-top:auto;padding-top:20px;justify-content:flex-start;align-self:flex-start}

.partner-contact-name{display:block}.partner-contact-role{margin:0;line-height:1.55}.partner-contact-details{margin-top:1em;line-height:1.55}.partner-contact-details>div{margin:0;overflow-wrap:anywhere}

.invoice-paid{color:#278044;font-size:.75em;font-weight:400;white-space:nowrap}.invoice-paid-control{display:flex;align-items:center;gap:6px;font-size:.85rem}

.cost-note-editor{width:100%;grid-column:1/-1;margin-top:10px}.cost-note-editor textarea{width:100%;box-sizing:border-box}.cost-note-entry,.cost-note-show{display:flex;align-items:flex-start;gap:8px;font-size:.82rem;font-weight:400}.cost-note-entry input,.cost-note-show input{width:auto;flex:none;margin-top:4px}.cost-note-entry small{display:block;color:var(--muted,#738078)}.cost-note-history{margin:10px 0}.cost-narratives{font-size:.8rem;color:#737e77;padding:0 0 10px;line-height:1.5}.cost-narratives p{margin:4px 0}.cost-input .cost-note-editor{font-size:.85rem}.budget-line{min-width:0}
.cost-input{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end}.cost-input>.cost-note-editor{grid-column:1/-1;min-width:0}.cost-note-entry span{min-width:0;overflow-wrap:anywhere}.cost-narratives{overflow-wrap:anywhere}

.cost-note-history-entry{border-bottom:1px solid var(--line);padding:8px 0}.cost-note-history-entry p{margin:4px 0}.contingency-visibility{grid-column:1/-1}

.pending-note-delete>p{opacity:.55;text-decoration:line-through}.cost-note-delete-status{margin-left:8px}

.project-paused-label{display:block;font-size:14px;font-weight:800;letter-spacing:1px;color:#7b3d21;background:#fff0d6;border:2px solid #c89147;border-radius:6px;padding:7px 12px;margin:8px 0 12px;max-width:max-content}.hero .project-paused-label{color:#3d2717}.paused-projects{margin-top:36px}.site-location-arrow{display:inline-block;font-size:1.1em;font-weight:700;margin-left:4px}.site-location-link{overflow-wrap:anywhere}.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Soft green navigation and project-register controls. */
.portalnav button:not(.primary):not(.active),.portalnav a.button,.projecttable button:not(.primary):not(.active),.projecttable a.button{background:#eaf0e5;border-color:#c5d2bf;color:var(--ink)}
.portalnav button:not(.primary):not(.active):hover,.portalnav a.button:hover,.projecttable button:not(.primary):not(.active):hover,.projecttable a.button:hover{background:#dce8d5;border-color:#a8bba0}
.portalnav button.primary,.portalnav button.active,.projecttable button.primary,.projecttable button.active{background:var(--ink);color:white}
.portalnav button:focus-visible,.portalnav a.button:focus-visible,.projecttable button:focus-visible,.projecttable a.button:focus-visible{outline:2px solid var(--green);outline-offset:3px}

.consultant-project-card{border:1px solid #000;border-radius:16px;padding:24px;min-width:0;gap:10px}.consultant-project-card .sectionhead{align-items:flex-start;margin:0;gap:14px}.consultant-project-card h3{margin:0;overflow-wrap:anywhere}.consultant-project-card .sectionhead>strong{flex:none;font-size:18px}.consultant-project-card .partner-client-name,.consultant-project-card .partner-site-address{margin:0;overflow-wrap:anywhere}.consultant-project-card .bar{width:100%;margin:8px 0;flex:none}.consultant-project-card h4{margin:12px 0 0}.partner-upcoming-tasks{display:grid;gap:10px}.partner-upcoming-tasks .task{align-items:flex-start}.partner-upcoming-tasks .dot{flex:none}.consultant-project-card .deadline-card-actions{margin-top:auto;padding-top:18px}.consultant-project-grid+.project-progress-overview{margin-top:26px}@media(max-width:600px){.consultant-project-card{padding:20px}.consultant-project-card .sectionhead>strong{font-size:16px}}
/* Match partner actions to the office register's contrasting controls. */
.consultant-project-card .deadline-card-actions button,#partnerDocumentsSection a.button[href^="mailto:"]{background:#eaf0e5;border-color:#c5d2bf;color:var(--ink)}
.consultant-project-card .deadline-card-actions button:hover,#partnerDocumentsSection a.button[href^="mailto:"]:hover{background:#dce8d5;border-color:#a8bba0}
.consultant-project-card .deadline-card-actions button:focus-visible,#partnerDocumentsSection a.button[href^="mailto:"]:focus-visible{outline:2px solid var(--green);outline-offset:3px}

.project-hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0}.hero:before{z-index:1;pointer-events:none}.hero-content{z-index:2}

/* Clear separation between the client contact heading and assigned names. */
.architect-contacts > .contact-grid{margin-top:24px}

.preliminary-option{margin-top:18px;padding:16px;border:1px solid #dce3d9;border-radius:12px;background:#f6f8f2}.preliminary-body{padding-top:12px}.preliminary-body[hidden]{display:none}.preliminary-task{display:grid;grid-template-columns:20px 52px minmax(0,1fr);align-items:center;gap:8px;margin:10px 0}.preliminary-task input[type=checkbox]{width:auto}.preliminary-task label{margin:0}

.partner-access{border:1px solid #dce3d9;border-radius:10px;padding:14px;margin:18px 0}.partner-access legend{font-weight:650}.partner-access-choices[hidden]{display:none}

.partner-site-start{font-size:13px;font-weight:400;line-height:1.5;letter-spacing:normal;color:#7a867e;margin-left:.35em}.consultant-project-card.partner-project-paused h3 .project-title-link{color:#52605a}.consultant-project-card>.project-paused-label{margin-top:14px}

.anticipated-profit>.small{display:block;margin-top:6px}.aligned-progress-overview{margin-top:28px}.aligned-chart-scroll{overflow-x:auto;padding-bottom:8px}.aligned-chart{width:100%;min-width:0}.aligned-chart-axis{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:12px;margin-bottom:14px;color:#728078;font-size:12px}.aligned-chart-axis>strong{text-align:center;color:#365b48;font-weight:650}.aligned-chart-axis>span:last-child{text-align:right}.aligned-chart-rows{position:relative}.aligned-chart-rows:before{content:"";position:absolute;left:50%;top:0;bottom:0;border-left:2px dashed #779784;z-index:2;pointer-events:none}.aligned-project-row{position:relative;border-top:1px solid var(--line);padding:16px 0}.aligned-project-row .progress-project-head{position:relative;z-index:3;background:#fff;padding:3px 0}.aligned-track-space{position:relative;padding:5px 0}.aligned-stage-track{height:30px;gap:0}.aligned-stage-track .stage-progress-segment{box-shadow:inset -2px 0 0 #fff}.aligned-current-marker{position:absolute;left:50%;top:0;bottom:0;width:2px;background:#365b48;z-index:4;pointer-events:none}.aligned-project-row>.project-paused-label{position:relative;z-index:3}.aligned-chart-scroll:focus-visible{outline:2px solid var(--green);outline-offset:3px}

#drawingFolderField[hidden],#editDrawingFolderField[hidden]{display:none}.drawing-folder{margin:12px 0}.drawing-folder>.dropdown-body{padding-top:12px}

.supporting-folder{margin:12px 0}.supporting-folder>.dropdown-body{padding-top:12px}

.cad-delete-button{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;padding:8px;flex-shrink:0}.cad-delete-button:hover{color:#963e35;background:#f8efed}

/* Fit complete aligned programmes on phones without changing their shared scale. */
.aligned-project-row .progress-project-head>div{min-width:0}
.aligned-project-row .project-title-link{white-space:normal;overflow-wrap:anywhere}
.aligned-stage-track{min-width:0}
.aligned-stage-track .stage-progress-segment{min-width:0}
@media(max-width:750px){
 .aligned-progress-overview h2{font-size:21px;line-height:1.2}
 .aligned-progress-overview .eyebrow{font-size:9px;letter-spacing:1.4px}
 .aligned-progress-overview>p{font-size:11px;line-height:1.5}
 .aligned-chart-axis{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:4px;font-size:9px;line-height:1.35}
 .aligned-chart-axis .small{font-size:9px}
 .aligned-project-row .progress-project-head{gap:6px;flex-wrap:wrap;align-items:flex-start}
 .aligned-project-row .progress-project-head strong{font-size:11px;line-height:1.4}
 .aligned-project-row .progress-project-head>div{flex:1 1 160px}
 .aligned-project-row .progress-project-head>span{font-size:9px}
 .aligned-stage-track{height:24px}
 .aligned-stage-track .stage-progress-number{width:min(14px,100%);height:14px;font-size:8px}
 .aligned-progress-overview .progress-legend{font-size:9px;gap:7px 12px}
 .aligned-project-row>.project-paused-label{font-size:9px}
}

/* Horizon: contain the full scale and resist theme typography overrides. */
#mhcp-app .aligned-progress-overview{min-width:0;max-width:100%;overflow-wrap:anywhere}
#mhcp-app .aligned-chart-scroll,#mhcp-app .aligned-chart,#mhcp-app .aligned-chart-rows,#mhcp-app .aligned-project-row,#mhcp-app .aligned-track-space{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
#mhcp-app .aligned-chart-scroll{overflow:visible}
#mhcp-app .aligned-track-space{position:relative;height:30px;padding:0;margin:0}
#mhcp-app .aligned-stage-track{position:absolute;top:5px;height:20px;min-width:0;max-width:50%;margin:0;padding:0;gap:0;box-sizing:border-box}
#mhcp-app .aligned-stage-track .stage-progress-segment{min-width:0;min-height:0;margin:0;padding:0}
#mhcp-app .aligned-project-row .progress-project-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;margin:0 0 6px;padding:3px 0}
#mhcp-app .aligned-project-row .progress-project-head>div{min-width:0}
#mhcp-app .aligned-chart-axis,#mhcp-app .aligned-chart-axis strong,#mhcp-app .aligned-chart-axis span,#mhcp-app .aligned-project-row .progress-project-head,#mhcp-app .aligned-project-row .progress-project-head strong,#mhcp-app .aligned-project-row .progress-project-head span,#mhcp-app .aligned-project-row .project-title-link,#mhcp-app .aligned-project-row>.project-paused-label,#mhcp-app .aligned-progress-overview .progress-legend,#mhcp-app .aligned-progress-overview .progress-legend span{font-size:9px;line-height:1.4;letter-spacing:normal}
#mhcp-app .aligned-project-row .project-title-link{display:inline;white-space:normal;overflow-wrap:anywhere}
#mhcp-app .aligned-chart-axis{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
#mhcp-app .aligned-stage-track .stage-progress-number{width:min(12px,100%);height:12px;min-width:0;font-size:8px;line-height:12px}
#mhcp-app .aligned-current-marker{top:0;bottom:0}
#mhcp-app .notification-guide table{width:100%;border-collapse:collapse;font-size:12px}
#mhcp-app .notification-guide td,#mhcp-app .notification-guide th{text-align:left;vertical-align:top;padding:8px;border-bottom:1px solid var(--line)}

.notification-rule{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid var(--line)}.notification-rule>div:first-child{flex:1}.notification-rule p{margin:5px 0 0}.notification-channels{display:flex;gap:18px;align-items:center;flex-wrap:wrap;min-width:210px}.notification-choice{display:flex;align-items:center;gap:8px;margin:0;cursor:pointer}.notification-choice input{width:auto;margin:0;flex-shrink:0}.notification-guide h3{margin-top:24px}@media(max-width:600px){.notification-rule{align-items:flex-start;flex-direction:column;gap:10px}.notification-channels{min-width:0}.notification-choice{min-height:36px}}

/* Give the partner email action its own layout box and clear vertical spacing. */
#partnerDocumentsSection .partner-general-documents>a.button[href^="mailto:"]{display:flex;align-items:center;justify-content:center;width:fit-content;max-width:100%;box-sizing:border-box;margin:14px 0;line-height:1.6;white-space:normal;overflow-wrap:anywhere}

/* Consistent disclosure headings: no native or custom triangle arrows. */
#mhcp-app details>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;cursor:pointer}
#mhcp-app details>summary::-webkit-details-marker{display:none}
#mhcp-app details>summary::marker{content:""}
#mhcp-app details>summary::before{content:none}
#mhcp-app details>summary::after{content:"+";flex-shrink:0;margin-left:auto;font-size:22px;line-height:1;font-weight:400;color:var(--green)}
#mhcp-app details[open]>summary::after{content:"−"}
#mhcp-app details>summary>h2{margin:0;min-width:0}

#mhcp-app .stage-config>summary .stage-summary-name{flex:1;min-width:0;margin-right:0}#mhcp-app .stage-config>summary .weight-total{margin-left:auto;flex-shrink:0;white-space:nowrap}#mhcp-app .stage-config>summary::after{margin-left:0}

#mhcp-app .category-documents>summary .document-category-label{flex:1;min-width:0;white-space:normal}#mhcp-app .category-documents>summary .document-summary-counts{display:flex;justify-content:flex-end;align-items:center;gap:14px;margin-left:auto;flex-wrap:wrap;text-align:right;min-width:0}#mhcp-app .category-documents>summary .dropdown-count{margin:0;white-space:normal}#mhcp-app .approval-pending-count{font-size:12px;font-weight:600;color:#a14f47}#mhcp-app .category-documents>summary::after,#mhcp-app .drawing-folder>summary::after,#mhcp-app .supporting-folder>summary::after{margin-left:0}#mhcp-app .drawing-folder>summary>span:first-child,#mhcp-app .supporting-folder>summary>span:first-child{flex:1;min-width:0}#mhcp-app .drawing-folder>summary .dropdown-count,#mhcp-app .supporting-folder>summary .dropdown-count{margin-left:auto;text-align:right}@media(max-width:600px){#mhcp-app .category-documents>summary{gap:10px}#mhcp-app .category-documents>summary .document-summary-counts{flex-direction:column;align-items:flex-end;gap:4px;max-width:52%}}

/* Small, accessible account deletion control in the user registries. */
#mhcp-app .portal-user-delete-button{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;padding:8px;flex-shrink:0}
#mhcp-app .portal-user-delete-button:hover{color:#963e35;background:#f8efed}

/* v1.0.97 — calendar-based office programme */
#mhcp-app.office-programme-view main{max-width:none;padding:24px 32px 64px}.office-programme{--op-label:300px}.office-programme .intro{padding-top:0}.office-programme h1{font-size:38px}.op-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:0 0 20px}.op-metrics>div{background:white;border:1px solid var(--line);padding:16px 20px;border-radius:10px}.op-metrics span{display:block;font-size:12px;color:#65786f}.op-metrics strong{font-size:28px}.op-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:12px}.op-controls label{margin:0;min-width:155px;flex:1}.op-controls input,.op-controls select{padding:8px;font-size:13px;height:40px}.op-controls button{padding:9px 12px;font-size:12px;height:40px}.op-scroll{background:white;border:1px solid #cbd8d0;border-radius:12px;overflow:auto;max-height:74vh;position:relative;margin:18px 0 24px;isolation:isolate;overscroll-behavior:contain}.op-scroll:focus-visible{outline:2px solid var(--green)}.op-chart{min-width:1000px;position:relative}.op-row{display:grid;grid-template-columns:var(--op-label) minmax(0,1fr);position:relative;margin:0;list-style:none;border-bottom:1px solid #e3e9e4;min-height:40px}.op-label{position:sticky;left:0;z-index:4;background:#fff;padding:12px 14px;border-right:1px solid #cbd8d0;font-size:12px;line-height:1.4;overflow-wrap:anywhere}.op-label strong{font-size:14px}.op-label small{display:block;font-size:11px;font-weight:400;color:#65776d;margin-top:3px;line-height:1.35}.op-lane{position:relative;min-width:0;background-image:linear-gradient(to right,rgba(43,82,67,.10) 1px,transparent 1px);background-size:var(--week-size) 100%}.op-axis{position:sticky;top:0;background:#f1f5ef;z-index:9;min-height:68px}.op-axis .op-label{background:#f1f5ef}.op-week-labels{display:grid;grid-template-columns:repeat(var(--weeks),minmax(0,1fr));padding-top:12px;height:100%;font-size:10px;line-height:1.2}.op-week-labels>span{white-space:nowrap;overflow:visible;padding-left:3px}.op-today-label{position:absolute;bottom:3px;background:#c04d37;color:white;padding:0 5px;font-size:10px;transform:translateX(-50%);z-index:3}.op-chart-body{position:relative}.op-guides{pointer-events:none;position:absolute;top:0;bottom:0;left:var(--op-label);right:0;z-index:3}.op-today{position:absolute;top:0;bottom:0;width:2px;background:#c04d37}.op-year{position:absolute;top:0;bottom:0;border-left:2px dashed #5b7166;pointer-events:none}.op-year b{position:absolute;top:28px;left:5px;font-size:10px;white-space:nowrap;background:#f1f5ef;padding:1px 4px;font-weight:600}.op-guides .op-year b{display:none}.op-project{margin:0;border:0;border-radius:0}.op-project>summary::-webkit-details-marker{display:none}.op-project>summary .op-label{padding-left:30px;background:#f8faf6}.op-project>summary .op-label:before{content:'▸';position:absolute;left:12px;top:13px;font-size:15px}.op-project[open]>summary .op-label:before{content:'▾'}.op-project>summary:hover .op-label{background:#edf3e9}.op-project>summary .op-lane{min-height:102px}.op-bar{position:absolute;top:22px;height:25px;border-radius:4px;background:var(--stage-colour);color:white;overflow:hidden;white-space:nowrap;z-index:1;min-width:2px;font-size:10px;line-height:25px;padding:0 5px}.op-bar>span{display:block;overflow:hidden;text-overflow:ellipsis}.op-complete{opacity:.3}.op-marker{position:absolute;top:49px;bottom:8px;border-left:1px solid;z-index:2;font-size:9px;white-space:nowrap;pointer-events:auto}.op-marker:before{position:absolute;top:-7px;left:-5px;font-size:12px}.op-marker span{position:absolute;top:13px;left:5px;max-width:90px;overflow:hidden}.op-deadline{color:#ab4b35}.op-deadline:before{content:'◆'}.op-site{color:#224c84;top:68px;bottom:5px}.op-site:before{content:'▲'}.op-site span{top:5px}.op-stage-row .op-label{background:#edf3ed;padding:8px 14px}.op-stage-row .op-lane{background-color:#f5f8f2}.op-stage-row .op-bar{top:11px;height:21px;line-height:21px}.op-task-row .op-label{padding:9px 14px 9px 30px;font-size:11px}.op-task-row .op-bar{top:12px;height:20px;line-height:20px;opacity:.8}.op-overdue{background:repeating-linear-gradient(135deg,#a34e38,#a34e38 6px,#c77b62 6px,#c77b62 12px)}.op-paused .op-label{color:#899489}.op-paused .op-bar{background:#a4aea7;opacity:.4}.op-project-link{position:sticky;left:0;width:calc(100vw - 100px);max-width:100%;padding:10px 14px;background:#f5f8f1;border-bottom:1px solid var(--line);z-index:4}.op-project-link button{font-size:11px;padding:6px 10px}.op-unscheduled{display:block;font-size:11px;color:#a05137;padding:12px}.op-load-row{min-height:100px;position:sticky;bottom:0;z-index:8;background:#eff4ed;border-top:2px solid #708c79}.op-load-row .op-label{background:#eff4ed;display:flex;flex-direction:column;justify-content:center}.op-week-loads{height:100px;display:grid;grid-template-columns:repeat(var(--weeks),minmax(0,1fr));align-items:stretch}.op-week-loads button{position:relative;min-width:0;padding:0;border:0;border-right:1px solid #d9e3d6;border-radius:0;background:transparent;height:100%;overflow:hidden}.op-week-loads button:hover,.op-week-loads button:focus-visible{background:#dce8d8;outline:2px solid #285d4a;outline-offset:-2px}.op-week-loads i{display:block;position:absolute;bottom:0;left:12%;width:76%;background:#bdd3b4;min-height:2px}.op-week-loads .op-high i{background:#e6b39b}.op-week-loads b{position:relative;font-size:10px;z-index:1;background:#ffffffe0;padding:2px;writing-mode:vertical-rl;transform:rotate(180deg)}.op-week-detail h2,.office-programme details.card h2{font-size:21px}.office-programme details.card summary h2{display:inline}.op-factors{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.op-factors input{font-size:13px;padding:8px}.op-agenda{display:flex;align-items:center;gap:18px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.op-agenda>div{flex:1}.op-agenda small{display:block;color:#738076}.op-agenda>b{white-space:nowrap}.op-agenda button{font-size:12px}.op-week-detail{scroll-margin:20px}@media(max-width:800px){#mhcp-app.office-programme-view main{padding:20px 14px}.op-metrics{grid-template-columns:repeat(2,1fr)}.op-metrics strong{font-size:23px}.office-programme{--op-label:230px}.op-chart{min-width:1000px}.op-scroll{max-height:72vh}.op-controls label{min-width:140px}.op-controls{gap:8px}.op-project-link{width:90vw}}
.op-weight-stage{margin:14px 0;border:1px solid var(--line);border-radius:9px;padding:14px}.op-weight-stage>summary{display:flex;justify-content:space-between;gap:15px;font-size:13px}.op-weight-stage summary span{font-size:12px;white-space:nowrap}.op-weight-head,.op-weight-task{display:grid;grid-template-columns:minmax(200px,1fr) 90px 100px 115px;gap:14px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);font-size:12px}.op-weight-head{font-size:11px;color:#6d7d70}.op-weight-task label{margin:0;font-size:12px}.op-weight-task small{display:block;color:#718074}.op-weight-task input{padding:7px;font-size:12px}.op-profile-total{font-weight:650}.op-invalid{color:#a3462a;font-weight:700}@media(max-width:800px){.op-weight-stage{overflow:auto}.op-weight-head,.op-weight-task{min-width:600px}}
.op-lane:after{content:'';position:absolute;inset:0;pointer-events:none;z-index:2;background-image:linear-gradient(to right,rgba(30,65,50,.09) 1px,transparent 1px);background-size:var(--week-size) 100%}.op-axis .op-lane:after,.op-load-row .op-lane:after{display:none}
#mhcp-app .op-project>summary.op-row{display:grid;grid-template-columns:var(--op-label) minmax(0,1fr);gap:0;align-items:stretch;justify-content:normal}#mhcp-app .op-project>summary.op-row:after{content:none}.op-week-loads button:empty{background:transparent}
.op-week-loads b:empty{display:none}
@media(min-width:801px){.op-chart{min-width:900px}}

/* v1.0.98 — compact meeting view and page-level vertical scrolling */
.office-programme{--op-label:290px}.op-scroll{max-height:none;overflow-x:auto;overflow-y:hidden}.op-axis{position:relative;top:auto}.op-load-row{position:relative;bottom:auto}.op-project>summary .op-lane{min-height:70px}.op-project>summary .op-label{padding:8px 10px 8px 27px}.op-project-heading{display:flex;align-items:baseline;gap:7px;line-height:1.25}.op-project-heading strong{font-size:12px;font-weight:650;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-width:0}.op-job-reference{font-size:9px;white-space:nowrap;color:#75827a}.op-project-dates{display:flex;flex-wrap:wrap;gap:2px 9px;margin-top:4px;font-size:10px;line-height:1.3;color:#728078}.op-project-dates b{font-weight:500;color:#496357}.op-project>summary .op-bar{top:12px;height:23px;line-height:21px}.op-bar[data-action="op-stage"]{text-align:left;font-family:inherit;border:1px solid transparent;padding:0 4px;cursor:pointer}.op-bar[data-action="op-stage"]:hover{filter:brightness(.9);outline:1px solid #183d37;outline-offset:1px}.op-bar[data-action="op-stage"]:focus-visible{outline:3px solid #183d37;outline-offset:2px;z-index:5}.op-project>summary .op-marker{top:37px;bottom:5px}.op-project>summary .op-marker span{top:7px;font-size:8px}.op-project>summary .op-site{top:48px;bottom:3px}.op-project>summary .op-site span{top:4px}.op-stage-detail{scroll-margin:18px}.op-stage-detail h2{font-size:22px}.op-stage-detail .sectionhead{margin-bottom:12px}.op-task-table-scroll{overflow-x:auto}.op-task-table{border-collapse:collapse;width:100%;min-width:680px;font-size:12px;text-align:left}.op-task-table th{font-size:11px;line-height:1.4}.op-task-table th,.op-task-table td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}.op-task-table thead,.op-task-table tfoot{background:#f1f5ee}.op-task-table td small{display:block;color:#728078}.op-task-table td:first-child{width:40%}.op-paused-group{background:#f0f1ee;border:0;border-bottom:1px solid #cbd2ca;margin:0}.op-paused-group>summary{padding:7px 14px;color:#7b847d;font-size:11px;min-height:32px}.op-paused-group>summary>span{font-size:10px;font-weight:400;margin-left:10px}.op-paused-group .op-project>summary .op-label{background:#f1f2ef}.op-paused-group .op-project-link{background:#f1f2ef}.op-controls{gap:8px}.op-metrics>div{padding:12px 16px}.op-metrics strong{font-size:25px}.office-programme .intro{padding-bottom:18px}.op-project-link{position:relative;width:auto}.op-stage-row .op-label{padding:6px 12px}.op-task-row .op-label{padding:6px 12px 6px 27px}@media(min-width:801px){.op-chart{min-width:0}}@media(max-width:800px){.office-programme{--op-label:230px}.op-scroll{max-height:none}.op-project-dates{gap:2px 5px}.op-stage-detail .sectionhead{flex-wrap:wrap}.op-paused-group>summary>span{display:none}}
.op-axis .op-lane{overflow:hidden}.op-project>summary .op-lane{overflow:hidden}

/* v1.0.99 — fixed 0–50 intensity scale, cold-to-hot colours and monthly heat strip */
.op-intensity-key{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:16px 0 8px;padding:12px 15px;background:white;border:1px solid var(--line);border-radius:9px;font-size:12px}.op-intensity-key>small{color:#6d7d73;font-size:10px}.op-heat-legend{display:flex;justify-content:space-between;gap:24px;width:300px;max-width:100%;position:relative;padding-top:13px;font-size:10px}.op-heat-legend:before{content:'';position:absolute;left:0;right:0;top:0;height:7px;border-radius:5px;background:linear-gradient(to right,hsl(240 78% 45%),hsl(180 78% 45%),hsl(120 78% 45%),hsl(60 78% 45%),hsl(0 78% 45%))}.op-week-loads i{min-height:0}.op-month-row{min-height:76px;background:#f4f6f1;border-top:1px solid #cbd8d0}.op-month-row .op-label{background:#f4f6f1;display:flex;flex-direction:column;justify-content:center}.op-months{position:relative;height:76px}.op-month{position:absolute;top:0;bottom:0;border-top:7px solid var(--heat);border-right:2px solid white;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;padding:3px}.op-month>strong{font-size:11px;font-weight:550;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.op-month>b{font-size:18px;line-height:1.5;color:#183d37;white-space:nowrap}.op-month>b>small{font-size:10px;font-weight:400}.op-month-row .op-lane:after{display:none}@media(max-width:800px){.op-intensity-key{gap:8px}.op-intensity-key>strong{width:100%}.op-month>b{font-size:15px}}

/* v1.0.100 — council decision milestones, separate from production tasks */
.approval-milestone{display:flex;gap:12px;align-items:center;padding:13px 18px;margin:8px 0 18px;border-left:3px solid #7699b8;background:#f1f6fa;border-radius:0 9px 9px 0}.approval-milestone input{width:auto;flex-shrink:0;accent-color:#345f81}.approval-milestone strong,.approval-milestone span,.approval-milestone small{display:block}.approval-milestone strong{font-size:13px}.approval-milestone span{font-size:12px;margin-top:2px}.approval-milestone small{font-size:10px;color:#788790;margin-top:3px}.approval-received{border-left-color:#517c5d;background:#f1f6ee}.approval-editor{border:1px solid #c9d9e4;border-left:3px solid #7699b8;border-radius:8px;padding:15px 18px;margin:18px 0 24px}.approval-editor legend{font-size:14px;font-weight:650;padding:0 6px}.approval-editor input[readonly]{background:#f1f5f6;color:#75828a}.approval-editor input:disabled{background:#f3f4f1;color:#8a928c}.approval-warning p{font-size:12px;margin:7px 0}.op-approval-dates{font-size:9px;color:#607e94;line-height:1.3;margin-top:3px}.op-approval-dates b{color:#a55b29}.approval-review-note{padding:9px 12px;background:#fff6e8;border-radius:7px}.op-planning-approval{color:#436997!important;top:37px!important;bottom:5px!important}.op-warrant-approval{color:#8060a2!important;top:50px!important;bottom:3px!important}.op-planning-approval:before,.op-warrant-approval:before{content:'●';font-size:10px}.op-planning-approval span,.op-warrant-approval span{font-weight:650;font-size:8px!important;top:4px!important}
.deadline-card .approval-milestone{padding:8px 10px;margin:7px 0;gap:9px}.deadline-card .approval-milestone strong{font-size:11px}.deadline-card .approval-milestone span{font-size:10px}.deadline-card .approval-milestone small{font-size:9px}

/* v1.0.101 — lighter intensity strips and administrator monthly billing */
.op-month-row{min-height:51px}.op-month-row .op-label{padding:7px 14px}.op-months{height:50px}.op-month{border-top-width:5px;padding:2px}.op-month>strong{font-size:10px;line-height:1.3}.op-month>b{font-size:15px;line-height:1.4}.op-month>b>small{font-size:9px}.op-week-loads{position:relative}.op-week-loads i{left:21.5%;width:57%}.op-intensity-curve{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:2}.op-intensity-curve path{fill:none;stroke:#3d5f75;stroke-opacity:.3;stroke-width:1.6;vector-effect:non-scaling-stroke;stroke-linecap:round}.op-billing-row{background:#edf1ed;min-height:53px;border-top:1px solid #bccbbf}.op-billing-row .op-label{background:#edf1ed;padding:7px 14px;display:flex;justify-content:center;flex-direction:column}.op-billing-months{position:relative;height:52px}.op-billing-month{position:absolute;inset:0 auto 0 auto;border:0;border-right:2px solid white;background:#f4f6f0;border-radius:0;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:3px;color:#183d37;min-width:0;overflow:hidden}.op-billing-month>strong{font-size:9px;font-weight:400;line-height:1.3}.op-billing-month>b{font-size:13px;font-weight:650;line-height:1.5;white-space:nowrap}.op-billing-month>small{font-size:8px;line-height:1.2}.op-billing-month:hover,.op-billing-month:focus-visible{background:#e0eadc;outline:2px solid #527c65;outline-offset:-2px}.op-billing-row .op-lane:after{display:none}.op-billing-error{display:block;font-size:11px;padding:12px}.op-billing-row .op-label small{font-size:10px}#op-billing-detail{scroll-margin:18px}#op-billing-detail h2{font-size:23px}

/* v1.0.103 — uncapped fixed workload scores and visible capacity threshold */
.op-capacity-line{position:absolute;left:0;right:0;z-index:3;border-top:1px dashed #9c6058;pointer-events:none}.op-capacity-line>b{position:absolute;right:5px;top:-15px;font-size:9px;font-weight:500;line-height:1.3;color:#985449;background:#f4f7efeb;padding:0 3px}.op-over-capacity i:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(135deg,transparent,transparent 5px,#ffffff65 5px,#ffffff65 8px)}.op-week-loads .op-over-capacity>b{color:#a2392c;font-weight:750}.op-capacity-alert{color:#ad3d2d!important}.op-month-over{border-bottom:3px solid #b9352b}.op-month-over>b{color:#a2392c}.op-intensity-key>strong{white-space:nowrap}
.op-capacity-line>b{writing-mode:horizontal-tb;transform:none;display:block;white-space:nowrap}

/* v1.0.104 — fixed 0–60 weekly plot, 50% taller, capacity at five-sixths */
.op-load-row{min-height:150px}.op-week-loads{height:150px}.op-beyond-axis:after{content:'↑';position:absolute;left:50%;top:2px;transform:translateX(-50%);font-size:13px;font-weight:750;line-height:1;background:#ffffffdf;color:#a2392d;padding:1px 3px;border-radius:3px;z-index:4;pointer-events:none}

/* v1.0.105 — project picker and shared week-based capacity calibration */
.op-controls label:first-child{flex:1.4;min-width:220px}.op-controls select[data-op=project]{max-width:100%;text-overflow:ellipsis}.op-calibration{border:1px solid #c9d8ca;background:#eef4e9;border-radius:10px;padding:13px 15px;margin:16px 0 10px}.op-calibration-heading{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;font-size:12px}.op-calibration-heading span{font-size:11px;color:#6c7e70}.op-calibration form{display:grid;grid-template-columns:minmax(160px,1.2fr) minmax(100px,1fr) minmax(110px,1fr) auto;gap:10px;align-items:end}.op-calibration label{margin:9px 0 0;font-size:11px}.op-calibration input{padding:7px 9px;font-size:13px;height:36px}.op-calibration button{height:36px;padding:7px 13px;font-size:12px}.op-calibration p.small{font-size:10px;margin:8px 0 0;line-height:1.45}#office-calibration-status{grid-column:1/-1;font-size:11px;margin:0}#office-calibration-status:empty{display:none}@media(max-width:800px){.op-calibration form{grid-template-columns:repeat(2,minmax(0,1fr))}.op-calibration button{height:auto;min-height:36px}.op-controls label:first-child{min-width:150px}}

/* Office summary and programme key. */
@media(min-width:801px){.op-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}}
.op-programme-key{margin:12px 0 8px;font-size:12px}.op-programme-key>.progress-legend{margin-top:7px}
/* Open partner projects from anywhere on their tile. */
.consultant-project-card{position:relative;transition:background-color .15s,border-color .15s}
.consultant-project-card .project-title-link:after{content:'';position:absolute;inset:0;z-index:1;border-radius:16px;cursor:pointer}
.consultant-project-card:hover,.consultant-project-card:focus-within{background:#f3f7ef;border-color:var(--green)}
.consultant-project-card .project-title-link:focus-visible{outline:none}
.consultant-project-card .project-title-link:focus-visible:after{outline:3px solid var(--green);outline-offset:3px}
.consultant-project-card .deadline-card-actions button{position:relative;z-index:2}
/* Partner programme uses the shared calendar without office metrics. */
.pg-summary{display:flex;align-items:center;gap:36px;padding:15px 20px;margin-bottom:18px;border:1px solid var(--line);border-radius:10px;background:#fff}.pg-summary span{display:block;font-size:12px;color:#65786f}.pg-summary strong{font-size:28px}.pg-summary .pg-paused-count{border-left:1px solid var(--line);padding-left:30px;color:#7b847d}.pg-summary .pg-paused-count strong{font-size:21px}.pg-desktop-note{margin-top:10px}.partner-gantt .op-stage-row .op-label button{font-size:10px;padding:3px 7px;margin-top:4px}.partner-gantt .op-bar[data-action="pg-stage"]{text-align:left;font-family:inherit;border:1px solid transparent;padding:0 4px;cursor:pointer}.partner-gantt .op-bar[data-action="pg-stage"]:hover{filter:brightness(.9);outline:1px solid #183d37;outline-offset:1px}.partner-gantt .op-bar[data-action="pg-stage"]:focus-visible{outline:3px solid #183d37;outline-offset:2px;z-index:5}
.programme-stage-editor{margin:14px 0;border:1px solid var(--line);border-radius:9px;padding:0}.programme-stage-editor>summary{padding:13px 15px;cursor:pointer}.programme-stage-editor>summary h3{display:inline;font-size:17px;margin:0}.programme-stage-body{padding:3px 15px 16px}.op-edit-target{background:#edf4e7;outline:2px solid #91ae7b;outline-offset:3px;scroll-margin:40px}.op-task-table a[data-action="op-edit-task"]{color:var(--green);font-weight:600;text-decoration:underline;text-underline-offset:3px}

/* Calibration is a separate white panel beside the chart results. */
.office-programme>.op-calibration{background:#fff;border-color:var(--line);padding:18px 20px;margin:0 0 24px;border-radius:12px}
.client-gantt .cg-date-note{padding:12px 15px;margin:0;border-bottom:1px solid var(--line);background:#f5f8f1}.client-gantt .op-bar{cursor:default}

/* A fourteen-row viewport with a pinned date axis, for clients only. */
.client-gantt .op-scroll{max-height:684px;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-gutter:stable}.client-gantt .op-axis{position:sticky;top:0;z-index:10}

/* Annual holiday shading follows calendar dates in every Gantt view. */
.op-holiday{position:absolute;top:0;bottom:0;pointer-events:none;background-color:rgba(98,108,103,.055);background-image:repeating-linear-gradient(45deg,rgba(80,91,85,.10) 0,rgba(80,91,85,.10) 1px,transparent 1px,transparent 7px),repeating-linear-gradient(-45deg,rgba(80,91,85,.08) 0,rgba(80,91,85,.08) 1px,transparent 1px,transparent 7px);border-left:1px solid rgba(80,91,85,.16);border-right:1px solid rgba(80,91,85,.16)}.op-axis .op-holiday{z-index:0}.op-axis .op-week-labels{position:relative;z-index:1}

/* Fold each stage independently without hiding its programme bar. */
.office-programme .gantt-stage-header>.op-label{padding-right:36px}.office-programme .gantt-stage-header>.op-label>.gantt-stage-toggle{position:absolute;right:6px;top:5px;width:24px;height:24px;min-height:24px;padding:0;margin:0;border:1px solid #becbc1;border-radius:5px;background:#fff;color:#315947;font-size:18px;line-height:20px;text-align:center;z-index:5}.office-programme .gantt-stage-toggle:hover{background:#e5eddf}.office-programme .gantt-stage-toggle:focus-visible{outline:2px solid var(--green);outline-offset:2px}.office-programme .gantt-stage-tasks[hidden]{display:none}

/* Client navigation and overall progress remain together on both customer pages. */
#mhcp-app.client-header-view .client-fixed-header{position:fixed;top:0;left:0;right:0;z-index:100;background:#fff;box-shadow:0 2px 9px rgba(24,61,55,.10)}
#mhcp-app.client-header-view .client-fixed-header .topnav{position:static}
#mhcp-app.client-header-view .client-fixed-header .overall-sticky{position:static;inset:auto;z-index:auto;width:100%;box-shadow:none}
.client-fixed-header .progress-slot{display:none}.client-header-slot{height:170px}
#mhcp-app.client-header-view main [id]{scroll-margin-top:calc(var(--mhcp-client-header-height,170px) + 20px)}
@media(max-width:750px){#mhcp-app.client-header-view .client-fixed-header .topnav{padding:10px 14px;gap:8px}.client-fixed-header .topnav button,.client-fixed-header .topnav a.button{padding:6px 8px;font-size:11px}.client-fixed-header .overall-inner{padding:8px 14px 10px}.client-fixed-header .overall-label{font-size:11px;margin-bottom:5px}.client-fixed-header .customer-progress-legend{gap:3px 9px;font-size:9px}}

/* Admin and staff calendars pin dates over a fifteen-row scrolling body. */
.office-calendar .op-scroll{max-height:728px;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-gutter:stable}.office-calendar .op-axis{position:sticky;top:0;z-index:10}

/* Direct access to the client programme beside its progress heading. */
.project-progress-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.project-progress-title button{font-size:12px;padding:7px 11px;white-space:nowrap}
@media(max-width:600px){.project-progress-heading{flex-wrap:wrap}.project-progress-title{gap:10px}}

.project-email-control .sectionhead{flex-wrap:wrap;margin-bottom:14px}.project-email-control h2{font-size:18px}

/* Appointment programmes and invoice status, v1.0.119 */
.op-practice-heading{position:relative;z-index:2;background:#e7ece5;padding:12px 16px;font-weight:700;border-block:1px solid #cbd5ca}
.architecture-stage .toolbar{align-items:center;flex-wrap:wrap}.architecture-stage label{display:block}.architecture-stage input{max-width:100%}.architecture-stage h3{overflow-wrap:anywhere}
.invoice-status{display:inline-block;font-size:12px;font-weight:700;line-height:1.4;padding:4px 9px;border-radius:6px;margin:4px 0 4px 8px}.invoice-status.invoice-paid{color:#205b38;background:#e4f3e8}.invoice-status.invoice-overdue{color:#a71f24;background:#fde8e9;border:1px solid #e4a0a3}.invoice-overdue-control{display:flex;align-items:center;gap:6px;color:#a71f24;font-weight:650}.invoice-overdue-control input{width:auto}

/* v1.0.121: quiet, independent council assessment lanes. */
.council-bar{--council-rgb:82,124,101;position:absolute;display:block;top:5px;height:8px;border:1px solid rgba(var(--council-rgb),.42);border-radius:2px;background-color:rgba(var(--council-rgb),.075);background-image:repeating-linear-gradient(45deg,transparent 0 3px,rgba(var(--council-rgb),.23) 3px 4px),repeating-linear-gradient(-45deg,transparent 0 3px,rgba(var(--council-rgb),.23) 3px 4px);z-index:3;box-sizing:border-box}
.council-warrant{--council-rgb:84,127,161}.council-received{opacity:.7}
#mhcp-app .op-project>summary .council-track,.council-track{min-height:18px;height:18px}.council-stage-row{min-height:18px;border-bottom:1px solid #edf0eb}.council-stage-row>.op-label,#mhcp-app .op-project>summary>.council-summary-label{font-size:9px;line-height:14px;font-weight:400;color:#748279;padding:2px 10px 2px 27px;min-height:18px;background:#fafbf8}
.op-project[open]>summary>.council-summary-label,.op-project[open]>summary>.council-summary-track{display:none}
.council-legend{display:flex;align-items:center;flex-wrap:wrap;gap:5px 16px;font-size:10px;color:#728078;margin:6px 0}.council-legend>span{display:inline-flex;gap:6px;align-items:center}.council-legend .council-bar{position:static;width:32px;height:8px;flex-shrink:0}.council-legend small{font-size:10px}

/* v1.0.124: linked overdue invoice alerts across client sections and office summaries. */
#mhcp-app .overdue-invoice-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex-shrink:0;max-width:100%;padding:6px 11px;border:1px solid #dc9a9e;border-radius:7px;background:#fde8e9;color:#a71f24;font-size:14px;font-weight:700;line-height:1.4;text-decoration:none;white-space:nowrap;letter-spacing:0;text-transform:none;cursor:pointer}
#mhcp-app .overdue-invoice-link svg{width:19px;height:19px;flex:none}.overdue-invoice-link:hover{background:#fbd7da}.overdue-invoice-link:focus-visible{outline:3px solid #a71f24;outline-offset:3px}.overdue-invoice-count{border-radius:10px;padding:0 5px;background:#a71f24;color:#fff;font-size:11px}
.overdue-heading-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 14px}.overdue-heading-row>.overdue-invoice-link{margin-left:auto}.overdue-heading-row h2{min-width:0}.general-summary>.overdue-heading-row{margin-bottom:10px}.project-overdue-flag:not(:empty){margin-top:9px}.deadline-card .sectionhead .overdue-invoice-link{margin:7px 0;display:flex;width:max-content}.deadline-card .sectionhead .overdue-invoice-link+span{display:block}
.overdue-invoice-target{outline:2px solid #d27c83;outline-offset:5px;border-radius:5px;background:#fff9f9;scroll-margin-top:calc(var(--mhcp-client-header-height,170px) + 20px)}
@media(max-width:600px){#mhcp-app .overdue-invoice-link{font-size:13px;padding:6px 9px}.overdue-heading-row>.overdue-invoice-link{margin-left:0}.overdue-heading-row h2{overflow-wrap:anywhere}.keeping-in-touch>summary.overdue-heading-row{gap:10px}}

/* Office programme preferences and direct client navigation. */
#mhcp-app .op-client-view-link{display:inline-flex;align-items:center;justify-content:center;flex:none;width:26px;height:26px;border:1px solid #cbd8d0;border-radius:5px;color:#285d4a;background:white;text-decoration:none;vertical-align:middle}
#mhcp-app .op-client-view-link:hover{background:#e4eee5}
#mhcp-app .op-client-view-link:focus-visible{outline:2px solid #285d4a;outline-offset:2px}
.op-saved-preference{display:block;font-size:10px;font-weight:400;color:#65786f;margin-top:3px}
.op-controls label:has([data-op="visibleRows"]){position:relative;padding-bottom:17px;margin-bottom:-17px}

/* Shared default for Microhomes and LH Architecture client/partner views. */
#mhcp-app .gantt-open-button{background:#dcecf8;border:1px solid #8db5d3;color:#214e71;font-weight:650;padding:9px 14px;border-radius:7px;box-shadow:0 1px 2px #214e7114}
#mhcp-app .gantt-open-button:hover{background:#c8e0f2;border-color:#618fb3}
#mhcp-app .gantt-open-button:focus-visible{outline:3px solid #396f99;outline-offset:3px}

/* v1.0.125: compact council tracks at the PA / WA marker height. */
#mhcp-app .op-project>summary .council-summary-track{position:absolute;left:0;right:0;height:8px;min-height:0;pointer-events:none;z-index:2}
#mhcp-app .op-project>summary .council-summary-planning{top:36px}
#mhcp-app .op-project>summary .council-summary-warrant{top:48px}
#mhcp-app .op-project>summary .council-summary-track .council-bar{top:0;pointer-events:auto}
#mhcp-app .op-project[open]>summary .council-summary-track{display:none}
#mhcp-app .op-planning-approval{top:40px!important;color:#527c65!important}
#mhcp-app .op-warrant-approval{top:52px!important;color:#547fa1!important}
#mhcp-app .op-planning-approval:before,#mhcp-app .op-warrant-approval:before{top:-4px;left:-4px;width:8px;height:8px;line-height:8px;font-size:8px}
#mhcp-app .op-planning-approval span,#mhcp-app .op-warrant-approval span{top:-5px!important;background:#ffffffdf;padding:0 2px}
#mhcp-app .council-stage-row{height:10px;min-height:10px;border-bottom:0}
#mhcp-app .council-stage-row>.op-label{padding:0;min-height:10px;height:10px}
#mhcp-app .council-stage-row .council-track{height:10px;min-height:10px}
#mhcp-app .council-stage-row .council-bar{top:1px}

/* v1.0.126: clear client actions for outstanding document approvals. */
#mhcp-app .project-action-alerts{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-left:auto;max-width:100%}
#mhcp-app .approval-document-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;max-width:100%;padding:6px 11px;border:1px solid #d5ad54;border-radius:7px;background:#fff1cd;color:#754e08;font-size:14px;font-weight:700;line-height:1.4;text-decoration:none;letter-spacing:0;text-transform:none;cursor:pointer}
#mhcp-app .approval-document-link svg{width:19px;height:19px;flex:none}
#mhcp-app .approval-document-link:hover{background:#ffe6a7}
#mhcp-app .approval-document-link:focus-visible{outline:3px solid #946407;outline-offset:3px}
.approval-document-count{border-radius:10px;padding:0 5px;background:#80590e;color:white;font-size:11px}
.approval-document-target{outline:2px solid #b17b1c;outline-offset:5px;border-radius:5px;background:#fff9e9;scroll-margin-top:calc(var(--mhcp-client-header-height,200px) + 20px)}
@media(max-width:600px){#mhcp-app .project-action-alerts{justify-content:flex-start;margin-left:0;width:100%}#mhcp-app .approval-document-link{font-size:13px;padding:6px 9px}}

/* v1.0.128: compact office approval actions and counts. */
#mhcp-app .office-project-alerts{display:flex;gap:7px;align-items:flex-start;max-width:100%}
#mhcp-app .register-action-alerts{flex-direction:column}
#mhcp-app .progress-action-alerts{flex-direction:row;flex-wrap:wrap;margin:8px 0}
#mhcp-app .office-project-alerts:empty{display:none;margin:0}
#mhcp-app .deadline-card .sectionhead .office-project-alerts .overdue-invoice-link{margin:0;display:inline-flex}
#mhcp-app .approval-document-compact{white-space:nowrap}
#mhcp-app .approval-count-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;min-width:20px;height:20px;padding:0 4px;border-radius:999px;line-height:1;font-size:12px}
/* Compact Gantt shortcut: approximately 24px rather than 40px tall. */
#mhcp-app .gantt-open-button{padding:2px 14px;line-height:18px;min-height:0;height:auto}
/* Tightened fixed progress summary: closer labels and a 7px stage track. */
#mhcp-app .overall-inner{padding:6px 22px}
#mhcp-app .overall-label{margin-bottom:3px;line-height:20px}
#mhcp-app .customer-stage-track{height:7px}
#mhcp-app .customer-progress-legend{margin-top:3px;gap:3px 12px}
@media(max-width:750px){#mhcp-app .client-fixed-header .overall-inner{padding:4px 14px 5px}#mhcp-app .client-fixed-header .overall-label{margin-bottom:3px;line-height:18px}#mhcp-app .client-fixed-header .customer-progress-legend{gap:2px 9px}}

/* v1.0.130: document headings, metadata and inset action highlights. */
#mhcp-app .document-item>.doc{align-items:flex-start}
#mhcp-app .document-details{flex:1;min-width:0;overflow-wrap:anywhere}
#mhcp-app .document-heading{display:flex;align-items:center;flex-wrap:wrap;gap:7px 10px;line-height:1.4}
#mhcp-app .document-heading .document-title{min-width:0;font-size:15px;overflow-wrap:anywhere}
#mhcp-app .document-heading .invoice-status{margin:0;flex:none;font-size:12px;line-height:1.4;padding:3px 8px}
#mhcp-app .document-meta{display:flex;flex-direction:column;gap:3px;margin:8px 0 0;font-size:12px;line-height:1.5}
#mhcp-app .document-item.overdue-invoice-target,#mhcp-app .document-item.approval-document-target{outline:none;border:1px solid;border-radius:10px;padding:14px;margin:12px 0;box-shadow:0 0 0 1px #ffffff}
#mhcp-app .document-item.overdue-invoice-target{border-color:#d27c83;background:#fff9f9}
#mhcp-app .document-item.approval-document-target{border-color:#b17b1c;background:#fff9e9}
#mhcp-app .document-item.overdue-invoice-target>.doc,#mhcp-app .document-item.approval-document-target>.doc{padding:0}
@media(max-width:750px){#mhcp-app .document-item>.doc{align-items:stretch}#mhcp-app .document-heading{gap:6px 8px}#mhcp-app .document-item.overdue-invoice-target,#mhcp-app .document-item.approval-document-target{padding:12px}}
#mhcp-app .document-dates{display:flex;flex-wrap:wrap;gap:3px 12px}
#mhcp-app .document-dates>span{white-space:nowrap}

/* Supporting documents without a stage folder sit directly below the folders. */
#mhcp-app .supporting-unfiled-documents{margin-top:14px}
#mhcp-app .supporting-unfiled-documents:first-child{margin-top:0}
/* v1.0.134: consistent document disclosure rows and aligned loose documents. */
#mhcp-app .category-documents{margin-top:14px}
#mhcp-app .category-documents>summary,#mhcp-app .drawing-folder>summary,#mhcp-app .supporting-folder>summary{display:grid;grid-template-columns:minmax(0,1fr) auto 20px;align-items:center;gap:10px;line-height:1.4}
#mhcp-app .category-documents>summary{padding:13px 14px;font-size:14px}
#mhcp-app .drawing-folder>summary,#mhcp-app .supporting-folder>summary{padding:11px 14px;font-size:13px}
#mhcp-app .category-documents>summary>.document-category-label,#mhcp-app .drawing-folder>summary>span:first-child,#mhcp-app .supporting-folder>summary>span:first-child{display:block;min-width:0;max-width:100%;color:var(--ink);opacity:1;white-space:normal;overflow-wrap:anywhere;font-weight:650;margin:0}
#mhcp-app .category-documents>summary>.document-summary-counts{max-width:180px;margin:0;gap:4px 10px}
#mhcp-app .drawing-folder>summary>.dropdown-count,#mhcp-app .supporting-folder>summary>.dropdown-count{font-size:11px;line-height:1.4;margin:0;max-width:100px;white-space:normal}
#mhcp-app .category-documents>summary::after,#mhcp-app .drawing-folder>summary::after,#mhcp-app .supporting-folder>summary::after{margin:0;text-align:center;font-size:20px}
#mhcp-app .supporting-unfiled-documents{margin-top:12px}
#mhcp-app .supporting-unfiled-documents>.document-item{margin:10px 0 0;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fff}
#mhcp-app .supporting-unfiled-documents>.document-item:first-child{margin-top:0}
#mhcp-app .supporting-unfiled-documents>.document-item>.doc{padding:0}
#mhcp-app .supporting-unfiled-documents>.document-item.overdue-invoice-target{border-color:#d27c83;background:#fff9f9}
#mhcp-app .supporting-unfiled-documents>.document-item.approval-document-target{border-color:#b17b1c;background:#fff9e9}
@media(max-width:600px){#mhcp-app .category-documents>summary,#mhcp-app .drawing-folder>summary,#mhcp-app .supporting-folder>summary{gap:8px}#mhcp-app .category-documents>summary>.document-summary-counts{max-width:110px}#mhcp-app .category-documents>summary .approval-pending-count{font-size:11px}}

/* Independent review / acknowledgement alerts. */
#mhcp-app .review-document-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;max-width:100%;padding:6px 11px;border:1px solid #8db5d3;border-radius:7px;background:#dcecf8;color:#214e71;font-size:14px;font-weight:700;line-height:1.4;text-decoration:none;letter-spacing:0;text-transform:none;cursor:pointer}
#mhcp-app .review-document-link svg{width:19px;height:19px;flex:none}
#mhcp-app .review-document-link:hover{background:#c8e0f2}
#mhcp-app .review-document-link:focus-visible{outline:3px solid #396f99;outline-offset:3px}
.review-document-count{border-radius:10px;padding:0 5px;background:#396f99;color:white;font-size:11px}
.review-document-target{outline:2px solid #618fb3;outline-offset:5px;border-radius:5px;background:#f0f7fc;scroll-margin-top:calc(var(--mhcp-client-header-height,200px) + 20px)}

#mhcp-app .review-document-compact{white-space:nowrap}
#mhcp-app .review-count-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;min-width:20px;height:20px;padding:0 4px;border-radius:999px;line-height:1;font-size:12px}
#mhcp-app .document-item.review-document-target{outline:none;border:1px solid #618fb3;border-radius:10px;padding:14px;margin:12px 0;background:#f0f7fc}
#mhcp-app .document-item.review-document-target>.doc{padding:0}
#mhcp-app .review-pending-count{font-size:12px;font-weight:600;color:#396f99}
#mhcp-app .office-project-alerts .overdue-invoice-link,#mhcp-app .office-project-alerts .approval-document-compact,#mhcp-app .office-project-alerts .review-document-compact{font-size:12px;padding:5px 8px;gap:6px}
#mhcp-app .office-project-alerts .overdue-invoice-link svg{width:16px;height:16px}
#mhcp-app .office-project-alerts .approval-count-icon,#mhcp-app .office-project-alerts .review-count-icon{min-width:18px;height:18px;font-size:11px}
@media(max-width:600px){#mhcp-app .review-document-link{font-size:13px;padding:6px 9px}#mhcp-app .review-pending-count{font-size:11px}}

/* Apple Reminders — project tile corner control, including mobile register cards. */
#mhcp-app .projecttable td[data-label="Project"]{position:relative;padding-right:54px}
#mhcp-app .apple-sync-icon{position:absolute;right:8px;top:10px;width:40px;height:40px;padding:6px;display:grid;place-items:center;border:1px solid #d5ded2;border-radius:50%;background:#f3f6ee;color:#183d37;cursor:pointer;z-index:1}
#mhcp-app .apple-sync-icon:hover{background:#e3ecdc;border-color:#688477}
#mhcp-app .apple-sync-icon:focus-visible{outline:3px solid #63894d;outline-offset:3px}
@media(max-width:750px){#mhcp-app .projecttable td[data-label="Project"]{padding-right:48px}#mhcp-app .apple-sync-icon{top:0;right:0;width:44px;height:44px}}

/* v1.0.140: calendar actions available on desktop and phone, scoped to each project. */
#mhcp-app .project-calendar-subscribe,#mhcp-app .project-reminders-sync{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:5px 10px;border:1px solid #8db5d3;border-radius:7px;background:#dcecf8;color:#214e71;font-size:12px;font-weight:650;line-height:1.4;white-space:normal;cursor:pointer;position:relative;z-index:2}
#mhcp-app .project-reminders-sync{background:#eaf0e5;border-color:#bacdb4;color:#183d37}
#mhcp-app .project-calendar-subscribe:hover{background:#c8e0f2;border-color:#618fb3}
#mhcp-app .project-calendar-subscribe:focus-visible,#mhcp-app .project-reminders-sync:focus-visible{outline:3px solid #396f99;outline-offset:3px}
#mhcp-app .project-tile-calendar-actions{display:flex;justify-content:flex-start;align-items:center;flex-wrap:wrap;gap:8px;margin-top:14px}
#mhcp-app .project-calendar-progress{display:flex;flex:none;flex-direction:column;align-items:flex-end;gap:7px;position:relative;z-index:2}
#mhcp-app .project-calendar-progress>strong{font-size:18px;line-height:1.4}
#mhcp-app .deadline-card .sectionhead{align-items:flex-start}
#mhcp-app .deadline-card .sectionhead>div:first-child{min-width:0;overflow-wrap:anywhere}
#mhcp-app .hero>.hero-calendar-subscribe{position:absolute;top:14px;right:14px;z-index:3;background:#fff;color:#214e71;box-shadow:0 1px 8px #183d3733}
#mhcp-app .hero:has(>.hero-calendar-subscribe){padding-top:64px}
#mhcp-app .projecttable td[data-label="Project"]{padding-right:14px}
@media(max-width:750px){
 #mhcp-app .project-calendar-subscribe,#mhcp-app .project-reminders-sync{min-height:36px;padding:7px 10px}
 #mhcp-app .hero>.hero-calendar-subscribe{top:12px;right:12px;min-height:40px}
 #mhcp-app .project-calendar-progress{gap:5px}
 #mhcp-app .project-calendar-progress>strong{font-size:16px}
 #mhcp-app .project-tile-calendar-actions{width:100%;justify-content:flex-start}
 #mhcp-app .projecttable td[data-label="Project"]{padding-right:0}
}
#mhcp-app .mobile-progress-subscribe{display:none}
#mhcp-app .projecttable .toolbar>.project-tile-calendar-actions{margin-top:0}
@media(max-width:750px){
 #mhcp-app .office-calendar-card .project-calendar-progress>.project-calendar-subscribe{display:none}
 #mhcp-app .office-calendar-card .deadline-card-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
 #mhcp-app .mobile-progress-subscribe{display:inline-flex;margin-left:auto}
 #mhcp-app .project-progress-row>.project-tile-calendar-actions{justify-content:flex-end}
}

/* v1.0.141: compact, equal-size project controls; softer interaction buttons. */
#mhcp-app .projecttable .project-manage-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;align-items:stretch;width:300px;max-width:100%;margin:0}
#mhcp-app .projecttable .project-manage-buttons>.project-tile-calendar-actions{display:contents}
#mhcp-app .projecttable .project-manage-buttons button,#mhcp-app .projecttable .project-manage-buttons a.button{display:flex;align-items:center;justify-content:center;width:100%;min-width:0;height:38px;min-height:38px;margin:0;padding:4px 7px;font-size:12px;font-weight:500;line-height:1.2;text-align:center;white-space:normal;border-radius:7px;box-sizing:border-box}
#mhcp-app .projecttable .project-manage-buttons .project-reminders-sync,#mhcp-app .projecttable .project-manage-buttons .project-calendar-subscribe{background:#f5f8f1;border-color:#d9e2d3;color:#52654b}
#mhcp-app .projecttable .project-manage-buttons .project-reminders-sync:hover,#mhcp-app .projecttable .project-manage-buttons .project-calendar-subscribe:hover{background:#edf3e6;border-color:#b9cbb0;color:#183d37}
@media(max-width:750px){#mhcp-app .projecttable .project-manage-buttons{width:100%;margin:5px 0;gap:6px}}

/* v1.0.143: matching project progress action heights on all screen sizes. */
#mhcp-app .project-progress-title>.gantt-open-button,
#mhcp-app .project-progress-title>.project-calendar-subscribe{
 display:inline-flex;align-items:center;justify-content:center;
 box-sizing:border-box;height:36px;min-height:36px;
 padding:7px 14px;font-size:12px;font-weight:650;line-height:20px;
 margin:0;vertical-align:middle;white-space:nowrap;
}

/* v1.0.146: subscriptions in programme rows and progress comparisons. */
#mhcp-app .op-project-heading>.programme-calendar-subscribe{grid-column:1 / -1;justify-self:start;margin-top:4px;height:28px;min-height:28px;padding:3px 10px;font-size:12px;line-height:20px;box-sizing:border-box}
#mhcp-app .comparison-calendar-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}

/* v1.0.148: fit the Projects register without horizontal scrolling. */
#mhcp-app .projecttable{table-layout:fixed;width:100%;min-width:0;max-width:100%}
#mhcp-app .projecttable th,#mhcp-app .projecttable td{min-width:0;overflow-wrap:anywhere;box-sizing:border-box}
#mhcp-app .projecttable th:nth-child(1){width:22%}
#mhcp-app .projecttable th:nth-child(2){width:12%}
#mhcp-app .projecttable th:nth-child(3){width:23%}
#mhcp-app .projecttable th:nth-child(4){width:8%}
#mhcp-app .projecttable th:nth-child(5){width:13%}
#mhcp-app .projecttable th:nth-child(6){width:22%}
#mhcp-app .projecttable .next-tasks-cell{min-width:0;max-width:none}
#mhcp-app .projecttable .project-manage-buttons{width:100%;min-width:0;max-width:100%}
#mhcp-app .projecttable .next-tasks-list li{min-width:0;padding:8px;gap:6px}
#mhcp-app .projecttable .next-tasks-list li>span{min-width:0;overflow-wrap:anywhere}
@media(max-width:1100px){
 #mhcp-app .projecttable,#mhcp-app .projecttable tbody{display:block;width:100%;min-width:0;max-width:100%}
 #mhcp-app .projecttable thead{display:none}
 #mhcp-app .projecttable tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px;width:100%;min-width:0;max-width:100%;box-sizing:border-box;border:1px solid #000;border-radius:12px;padding:18px;margin:14px 0}
 #mhcp-app .projecttable tbody td,#mhcp-app .projecttable tbody td:first-child,#mhcp-app .projecttable tbody td:last-child{display:block;width:100%;min-width:0;max-width:100%;border:0;border-radius:0;padding:7px 0}
 #mhcp-app .projecttable td[data-label]::before{content:attr(data-label);display:block;color:#728078;font-size:10px;text-transform:uppercase;letter-spacing:1px;margin-bottom:5px}
 #mhcp-app .projecttable td[data-label="Project"],#mhcp-app .projecttable td[data-label="Next tasks"],#mhcp-app .projecttable td[data-label="Manage"]{grid-column:1 / -1}
 #mhcp-app .projecttable td[data-label="Project"]{padding-right:0}
}
@media(max-width:750px){#mhcp-app .projecttable tbody tr{grid-template-columns:minmax(0,1fr)}}

/* v1.0.150: compact office project headings, dates, then individual tasks. */
#mhcp-app .office-calendar .op-project:not([open])>summary .op-project-dates,
#mhcp-app .office-calendar .op-project:not([open])>summary .op-approval-dates{display:none}
#mhcp-app .office-calendar .op-project:not([open])>summary .op-lane{min-height:48px}
#mhcp-app .office-calendar .op-project:not([open])>summary .op-lane>:not(.op-bar):not(.council-summary-track){display:none}
#mhcp-app .office-calendar .op-project:not([open])>summary .op-label{padding-top:10px;padding-bottom:10px}
#mhcp-app .office-calendar .op-project-heading{align-items:center;flex-wrap:wrap}
#mhcp-app .office-calendar .op-project-heading strong{flex:1 1 120px}
#mhcp-app .office-calendar .op-job-reference{font-size:10px}
#mhcp-app .office-calendar .op-project-tasks{margin:0;border:0;border-radius:0;padding:0}
#mhcp-app .office-calendar .op-project-tasks>summary{cursor:pointer;list-style:none}
#mhcp-app .office-calendar .op-project-tasks>summary::-webkit-details-marker{display:none}
#mhcp-app .office-calendar .op-project-tasks>summary .op-label{background:#edf3ed;padding-left:30px}
#mhcp-app .office-calendar .op-project-tasks>summary .op-label:before{content:'▸';position:absolute;left:12px;top:13px}
#mhcp-app .office-calendar .op-project-tasks[open]>summary .op-label:before{content:'▾'}
#mhcp-app .office-calendar .op-project-tasks>summary .op-lane{background-color:#f5f8f2}

/* Match full-size office toolbar Subscribe to adjacent standard controls. */
#mhcp-app .toolbar>.project-calendar-subscribe:not(.calendar-compact),#mhcp-app .project-office-toolbar>.desktop-project-controls>.project-calendar-subscribe:not(.calendar-compact){background:white;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:10px 16px;font:inherit;line-height:inherit;min-height:0;height:auto;box-sizing:border-box;box-shadow:none}
#mhcp-app .toolbar>.project-calendar-subscribe:not(.calendar-compact):hover,#mhcp-app .project-office-toolbar>.desktop-project-controls>.project-calendar-subscribe:not(.calendar-compact):hover{background:white;border-color:var(--line);color:var(--ink)}

/* v1.0.151: keep compact Gantt bars and use a second inline disclosure arrow. */
#mhcp-app .office-calendar .op-project-task-arrow{position:absolute;left:7px;top:38px;display:inline-flex;align-items:center;justify-content:center;width:22px;height:24px;min-height:0;margin:0;padding:0;border:0;border-radius:4px;background:transparent;color:var(--green);font:inherit;font-size:16px;line-height:1;cursor:pointer;box-shadow:none}
#mhcp-app .office-calendar .op-project:not([open])>summary .op-project-task-arrow{display:none}
#mhcp-app .office-calendar .op-project-task-arrow:hover{background:#dce8d5}
#mhcp-app .office-calendar .op-project-task-arrow:focus-visible{outline:2px solid var(--green);outline-offset:1px}
#mhcp-app .office-calendar .op-project-tasks>summary{display:none}
#mhcp-app .office-calendar .op-project:not([open])>summary .op-lane>.op-bar{display:block;top:12px;height:23px;line-height:21px}

/* v1.0.152: council assessment hatching stays beside the project bars in every disclosure state. */
#mhcp-app .office-calendar .op-project>summary .op-lane>.council-summary-track{display:block;position:absolute;left:0;right:0;height:8px;min-height:0}
#mhcp-app .office-calendar .op-project>summary .op-lane>.council-summary-planning{top:36px}
#mhcp-app .office-calendar .op-project>summary .op-lane>.council-summary-warrant{top:48px}
#mhcp-app .office-calendar .op-project:not([open])>summary .op-lane{min-height:60px}

/* v1.0.153: desktop office review - register proportions and shared controls. */
#mhcp-app.project-register-view main{max-width:1400px}
#mhcp-app .projecttable th:nth-child(1){width:18%}
#mhcp-app .projecttable th:nth-child(2){width:11%}
#mhcp-app .projecttable th:nth-child(3){width:22%}
#mhcp-app .projecttable th:nth-child(4){width:9%}
#mhcp-app .projecttable th:nth-child(5){width:13%}
#mhcp-app .projecttable th:nth-child(6){width:27%}
#mhcp-app .projecttable .mini-bar{width:100%;min-width:0;max-width:100%;overflow:hidden}
#mhcp-app .projecttable .project-manage-buttons button,#mhcp-app .projecttable .project-manage-buttons a.button{white-space:nowrap;padding:4px 5px}
#mhcp-app .projecttable .project-manage-buttons .project-reminders-sync,#mhcp-app .projecttable .project-manage-buttons .project-calendar-subscribe{background:#dcecf8;border-color:#8db5d3;color:#214e71}
#mhcp-app .projecttable .project-manage-buttons .project-reminders-sync:hover,#mhcp-app .projecttable .project-manage-buttons .project-calendar-subscribe:hover{background:#c8e0f2;border-color:#618fb3;color:#214e71}
#mhcp-app .paused-project-divider{display:block;border:0;border-top:1px solid #dce2d8;border-radius:0;margin:26px 0 0;padding:16px 0 0}
#mhcp-app .paused-project-divider>summary{cursor:pointer;font-weight:650;margin-bottom:14px;padding:5px 0}
#mhcp-app .settings-review-panel>summary,#mhcp-app details.card[data-section="partner-contacts"]>summary{cursor:pointer}
#mhcp-app .settings-panel-body{padding-top:18px}
#mhcp-app .partner-contact-card{min-width:0;padding:10px 0}
#mhcp-app .partner-contact-card .task{font-size:12px;margin-top:12px}
#mhcp-app .partner-action-badge{padding:5px 9px;font-size:12px;line-height:1.4;border-radius:6px;font-weight:650}
#mhcp-app .partner-action-badge.approval-required{background:#fff0cf;border-color:#d3ac61;color:#715515}
#mhcp-app .partner-action-badge.review-required{background:#e2effa;border-color:#8db5d3;color:#214e71}
#mhcp-app .partner-cover-alerts{position:absolute;top:65px;right:14px;z-index:4;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px;max-width:90%}
#mhcp-app .partner-project-alerts{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0}
#mhcp-app .partner-file-row{scroll-margin-top:190px;flex-wrap:wrap}
#mhcp-app .partner-file-row>.toolbar{margin:6px 0}
#mhcp-app .partner-gantt .intro{padding-bottom:10px}
#mhcp-app .partner-gantt .intro h1{margin:6px 0}
#mhcp-app .partner-gantt .intro p{margin:6px 0}
#mhcp-app .partner-gantt .op-programme-key{margin-top:20px}
#mhcp-app .partner-gantt .op-controls{margin-bottom:6px}
#mhcp-app .audit-table{overflow-x:auto}
#mhcp-app [data-action="delete-budget-review"]{font-size:16px;padding:3px 7px;margin-left:auto;line-height:1.2;flex:none}
@media(min-width:1101px) and (max-width:1250px){#mhcp-app .projecttable .project-manage-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:750px){#mhcp-app .partner-cover-alerts{top:62px;right:12px}#mhcp-app .partner-gantt .op-controls{gap:8px}}

/* v1.0.154: one partner project page with two programme comparisons. */
#mhcp-app .partner-programme-switch{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:18px 0 12px}
#mhcp-app .partner-programme-switch button{font-size:13px;padding:8px 12px}

/* Compact account notifications. */
.portal-bell{position:relative;display:inline-flex;align-items:center;flex:0 0 auto}
.portalnav .portal-bell-button{position:relative;width:40px;height:40px;min-height:40px;padding:8px;border:0;border-radius:50%;background:transparent;color:var(--ink,#183d37);display:inline-flex;align-items:center;justify-content:center;box-shadow:none}
.portalnav .portal-bell-button:hover,.portalnav .portal-bell-button[aria-expanded="true"]{background:#eaf0e7}
.portal-bell-button svg{width:23px;height:23px}
.portal-bell-dot{position:absolute;top:5px;right:5px;width:9px;height:9px;background:#cb3947;border:2px solid #fff;border-radius:50%}
.portal-notification-panel{position:absolute;top:calc(100% + 10px);right:0;width:350px;max-width:calc(100vw - 32px);background:#fff;border:1px solid #d8e0d6;border-radius:12px;box-shadow:0 8px 30px #183d3726;z-index:1000;overflow:hidden;text-align:left}
.portal-notification-heading{padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #e6ebe4}
.portalnav .portal-notification-heading button{padding:0;background:transparent;border:0;min-height:0;font-size:12px;color:#285b7a;text-decoration:underline}
.portal-notification-items{max-height:min(420px,65vh);overflow-y:auto;overscroll-behavior:contain}
.portalnav .portal-notification-item{display:block;width:100%;height:auto;min-height:0;border:0;border-bottom:1px solid #edf0eb;border-radius:0;padding:13px 16px;background:#fff;text-align:left;white-space:normal;line-height:1.4;font-weight:400}
.portalnav .portal-notification-item.is-unread{background:#f0f6fa}
.portalnav .portal-notification-item:hover{background:#e6f0f6}
.portal-notification-item strong,.portal-notification-item span,.portal-notification-item small{display:block}
.portal-notification-item strong{font-size:14px}.portal-notification-item span{font-size:13px}.portal-notification-item small{font-size:12px;color:#697b72}
.portal-notification-empty{padding:18px 16px;margin:0;font-size:14px}
@media(max-width:700px){.portal-bell{position:static}.portalnav{position:relative}.portal-notification-panel{left:0;right:auto;top:100%;width:min(350px,calc(100vw - 32px))}}

/* Phone office programme: freeze every part of the left column horizontally. */
@media(max-width:800px),(max-width:1000px) and (pointer:coarse){
 #mhcp-app .office-calendar .op-practice-heading{padding:0;z-index:4}
 #mhcp-app .office-calendar .op-practice-label{display:block;position:sticky;left:0;width:var(--op-label);box-sizing:border-box;padding:12px 16px;background:#e7ece5;border-right:1px solid #cbd8d0;overflow-wrap:anywhere}
 #mhcp-app .office-calendar .op-paused-group>summary{position:sticky;left:0;width:var(--op-label);box-sizing:border-box;background:#f0f1ee;z-index:4;border-right:1px solid #cbd8d0;overflow-wrap:anywhere}
 #mhcp-app .office-calendar .op-row>.op-label{position:sticky;left:0;z-index:4}
 #mhcp-app .office-calendar .op-axis>.op-label{z-index:11}
}

/* Phone header: account bell beside the brand, above the navigation buttons. */
@media(max-width:800px),(max-width:1000px) and (pointer:coarse){
 #mhcp-app .topnav,#mhcp-app.client-header-view .client-fixed-header .topnav{position:relative}
 #mhcp-app .topnav>.brand{width:100%;box-sizing:border-box;padding-right:48px}
 #mhcp-app .topnav>.portalnav{position:static;width:100%}
 #mhcp-app .topnav .portal-bell{position:absolute;top:7px;right:10px}
 #mhcp-app .topnav .portal-bell-button{width:40px;height:40px;min-height:40px;padding:8px}
 #mhcp-app .topnav .portal-notification-panel{top:calc(100% + 8px);left:auto;right:0;max-width:calc(100vw - 28px)}
}

/* Phone Back navigation shares the first menu instead of a separate content row. */
#mhcp-app .portal-back-mobile{display:none}
@media(max-width:800px),(max-width:1000px) and (pointer:coarse){
 #mhcp-app .portalnav .portal-back-mobile{display:inline-flex}
 #mhcp-app .portal-back-original{display:none}
 #mhcp-app .toolbar:has(>.portal-back-original:only-child){display:none}
}

/* Phone office Gantt: reference first; grow the aligned column only for open details. */
@media(max-width:800px),(max-width:1000px) and (pointer:coarse){
 #mhcp-app .office-calendar{--op-label:112px}
 #mhcp-app .office-calendar:has(.op-chart-body>.op-project[open]),
 #mhcp-app .office-calendar:has(.op-paused-group[open] .op-project[open]){--op-label:clamp(165px,48vw,220px)}
 #mhcp-app .office-calendar .op-project-heading{gap:5px}
 #mhcp-app .office-calendar .op-project-heading>.op-job-reference{order:-2;flex:1 1 100%;font-size:12px;line-height:22px;font-weight:650;color:var(--ink);white-space:normal;overflow-wrap:anywhere}
 #mhcp-app .office-calendar .op-project:not([open])>summary .op-project-heading>strong,
 #mhcp-app .office-calendar .op-project:not([open])>summary .op-client-view-link{display:none}
 #mhcp-app .office-calendar .op-project[open]>summary .op-project-heading>strong{flex:1 1 90px;-webkit-line-clamp:unset;display:block;overflow:visible}
 #mhcp-app .office-calendar .op-project[open]>summary .op-project-dates{display:flex;flex-direction:column;align-items:flex-start;gap:3px}
 #mhcp-app .office-calendar .op-project>summary .op-label{padding-right:8px}
 #mhcp-app .office-calendar .op-axis>.op-label{padding:9px 8px;font-size:10px}
 #mhcp-app .office-calendar:not(:has(.op-chart-body>.op-project[open])):not(:has(.op-paused-group[open] .op-project[open])) .op-axis>.op-label>small{display:none}
 #mhcp-app .office-calendar .op-practice-label{padding:10px 8px;font-size:12px}
 #mhcp-app .office-calendar .op-paused-group>summary{padding:8px;font-size:10px}
 #mhcp-app .office-calendar .op-stage-row>.op-label{font-size:11px}
}

.nav-label-phone{display:none}
@media(max-width:800px),(max-width:1000px) and (pointer:coarse){
 #mhcp-app .office-topnav .nav-label-desktop{display:none}
 #mhcp-app .office-topnav .nav-label-phone{display:inline}
 #mhcp-app .office-topnav>.portalnav>button,#mhcp-app .office-topnav>.portalnav>a.button{display:inline-flex;align-items:center;justify-content:center;min-width:0;min-height:32px;margin:0;padding:5px 2px;font-size:10px;line-height:1.15;white-space:normal;overflow-wrap:anywhere;text-align:center}
 #mhcp-app .office-topnav .portal-back-mobile{order:-1}
 #mhcp-app #op-week-detail{scroll-margin-top:calc(var(--mhcp-client-header-height,200px) + 12px)}
}

/* Phone programme controls: aligned two-column filters and one action row. */
.office-legend-phone{display:none}
.op-chart-actions{display:contents}
@media(max-width:800px),(max-width:1000px) and (pointer:coarse){
 #mhcp-app .office-calendar>.op-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:start}
 #mhcp-app .office-calendar>.op-controls>label,#mhcp-app .office-calendar>.op-controls>label:first-child{display:flex;flex-direction:column;min-width:0;margin:0;padding:0;font-size:11px;line-height:16px;align-self:start}
 #mhcp-app .office-calendar>.op-controls select{width:100%;min-width:0;max-width:100%;margin-top:4px;height:36px;font-size:12px}
 #mhcp-app .office-calendar>.op-controls .op-saved-preference{position:static;display:block;line-height:14px;font-size:9px}
 #mhcp-app .office-calendar>.op-controls>.op-chart-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
 #mhcp-app .office-calendar .op-chart-actions>button{width:100%;min-width:0;height:36px;min-height:36px;padding:4px 2px;font-size:10px;line-height:1.15;white-space:normal}
 #mhcp-app .office-calendar>.office-legend-desktop{display:none}
 #mhcp-app .office-calendar>.office-legend-phone{display:block;margin:0 0 14px}
 #mhcp-app .office-calendar>.office-legend-phone .op-intensity-key{margin-top:0}
}

@media(max-width:800px),(max-width:1000px) and (pointer:coarse){
 #mhcp-app .office-calendar .office-reminders-desktop{display:none}
 #mhcp-app .office-calendar .op-chart-actions .nav-label-desktop{display:none}
 #mhcp-app .office-calendar .op-chart-actions .nav-label-phone{display:inline}
}

/* Phone project pages: independently sized full-width menu rows and compact actions. */
.office-nav-row,.desktop-project-controls{display:contents}
.phone-project-controls{display:none}
@media(max-width:800px),(max-width:1000px) and (pointer:coarse){
 #mhcp-app .office-topnav>.portalnav{display:flex;flex-direction:column;gap:5px;align-items:stretch}
 #mhcp-app .office-topnav .office-nav-row{display:flex;width:100%;gap:5px;align-items:stretch}
 #mhcp-app .office-topnav .office-nav-row>button,#mhcp-app .office-topnav .office-nav-row>a.button{display:inline-flex;align-items:center;justify-content:center;flex:1 1 auto;min-width:0;min-height:32px;padding:5px 3px;margin:0;font-size:10px;line-height:1.15;white-space:normal;overflow-wrap:normal;text-align:center}
 #mhcp-app .office-topnav .office-nav-row>[data-action="push-settings"]{flex:1.4 0 auto;white-space:nowrap}
 #mhcp-app .project-phone-toolbar>.desktop-project-controls{display:none}
 #mhcp-app .project-phone-toolbar>.phone-project-controls{display:contents}
 #mhcp-app .project-phone-toolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:8px 0 12px;align-items:stretch}
 #mhcp-app .project-phone-toolbar .phone-project-controls>button,#mhcp-app .project-phone-toolbar .phone-project-controls>a.button{display:flex;align-items:center;justify-content:center;width:100%;min-width:0;height:28px;min-height:28px;box-sizing:border-box;padding:3px 5px;font:inherit;font-size:11px;line-height:1.1;text-align:center;white-space:normal;margin:0}
 #mhcp-app .project-office-toolbar .phone-project-controls>button,#mhcp-app .project-office-toolbar .phone-project-controls>a.button{height:26px;min-height:26px;font-size:10px;padding:2px 4px}
 #mhcp-app .project-partners-toolbar .phone-project-controls>button{grid-column:span 2}
}

@media(max-width:800px),(max-width:1000px) and (pointer:coarse){
 #mhcp-app .project-partner-return-toolbar>button{min-height:28px;padding:4px 8px;font-size:11px;line-height:1.1}
}

/* Individual-project Your Gantt: match the phone office programme disclosures. */
@media(max-width:800px),(max-width:1000px) and (pointer:coarse){
 #mhcp-app .phone-office-project-gantt{--op-label:112px}
 #mhcp-app .phone-office-project-gantt:has(.op-project[open]){--op-label:clamp(165px,48vw,220px)}
 #mhcp-app .phone-office-project-gantt .op-project-heading{flex-wrap:wrap;gap:5px}
 #mhcp-app .phone-office-project-gantt .op-job-reference{order:-1;flex:1 1 100%;font-size:12px;line-height:22px;font-weight:650;color:var(--ink);white-space:normal;overflow-wrap:anywhere}
 #mhcp-app .phone-office-project-gantt .op-project:not([open])>summary .op-project-heading>strong,
 #mhcp-app .phone-office-project-gantt .op-project:not([open])>summary .op-project-dates,
 #mhcp-app .phone-office-project-gantt .op-project:not([open])>summary .op-approval-dates{display:none}
 #mhcp-app .phone-office-project-gantt .op-project[open]>summary .op-project-heading>strong{flex:1 1 100%;display:block;-webkit-line-clamp:unset;overflow:visible}
 #mhcp-app .phone-office-project-gantt .op-project[open]>summary .op-project-dates{display:flex;flex-direction:column;align-items:flex-start;gap:3px}
 #mhcp-app .phone-office-project-gantt .op-project>summary .op-label{padding:10px 8px 10px 27px}
 #mhcp-app .phone-office-project-gantt .op-project:not([open])>summary .op-lane{min-height:48px}
 #mhcp-app .phone-office-project-gantt .op-project:not([open])>summary .op-lane>:not(.op-bar):not(.council-summary-track){display:none}
 #mhcp-app .phone-office-project-gantt .phone-pg-stage-arrow{position:absolute;left:7px;top:38px;display:inline-flex;align-items:center;justify-content:center;width:22px;height:24px;min-height:0;margin:0;padding:0;border:0;border-radius:4px;background:transparent;color:var(--green);font:inherit;font-size:16px;line-height:1;cursor:pointer;box-shadow:none}
 #mhcp-app .phone-office-project-gantt .op-project:not([open])>summary .phone-pg-stage-arrow{display:none}
 #mhcp-app .phone-office-project-gantt .phone-pg-stage-arrow:hover{background:#dce8d5}
 #mhcp-app .phone-office-project-gantt .phone-pg-stage-arrow:focus-visible{outline:2px solid var(--green);outline-offset:1px}
 #mhcp-app .phone-office-project-gantt .phone-pg-stages{border:0;border-radius:0;padding:0;margin:0;background:transparent}
 #mhcp-app .phone-office-project-gantt .phone-pg-stages>summary{display:none}
 #mhcp-app .phone-office-project-gantt .op-axis>.op-label{padding:9px 8px;font-size:10px}
 #mhcp-app .phone-office-project-gantt:not(:has(.op-project[open])) .op-axis>.op-label>small{display:none}
}

/* Keep the individual phone Gantt footer outside the horizontally scrolling chart. */
@media(max-width:800px),(max-width:1000px) and (pointer:coarse){
 #mhcp-app .phone-office-project-gantt .phone-gantt-footer{position:relative;width:100%;max-width:100%;box-sizing:border-box;margin:-10px 0 12px;padding:0 2px;white-space:normal;overflow-wrap:anywhere}
 #mhcp-app .phone-office-project-gantt .phone-gantt-footer .cg-date-note{width:100%;max-width:100%;box-sizing:border-box;margin:6px 0;padding:0;white-space:normal;line-height:1.5;font-size:11px}
 #mhcp-app .phone-office-project-gantt>.op-programme-key{max-width:100%;box-sizing:border-box}
}

/* v1.0.169: taller phone opening summary with visible approval waiting periods. */
@media(max-width:800px),(max-width:1000px) and (pointer:coarse){
 #mhcp-app .phone-office-project-gantt .op-project:not([open])>summary .op-lane{min-height:106px}
 #mhcp-app .phone-office-project-gantt .op-project>summary .op-lane>.council-summary-track{display:block;position:absolute;left:0;right:0;height:12px;min-height:0}
 #mhcp-app .phone-office-project-gantt .op-project>summary .op-lane>.council-summary-planning{top:46px}
 #mhcp-app .phone-office-project-gantt .op-project>summary .op-lane>.council-summary-warrant{top:70px}
 #mhcp-app .phone-office-project-gantt .op-project>summary .council-summary-track .council-bar{height:12px;top:0}
}

/* Notification dismissal is private to each office login; unpaid invoices stay active. */
.portal-notification-row{position:relative;display:flex;align-items:stretch;border-bottom:1px solid #edf0eb}
.portalnav .portal-notification-row .portal-notification-item{flex:1;min-width:0;border-bottom:0;padding-right:48px}
.portalnav .notification-dismiss{position:absolute;right:6px;top:8px;display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:36px;width:36px;height:36px;padding:8px;border:0;border-radius:6px;background:transparent;color:#697b72;box-shadow:none}
.portalnav .notification-dismiss:hover{background:#f8e8e3;color:#983e2e}
.portalnav .notification-dismiss:focus-visible{outline:2px solid var(--green);outline-offset:1px}
.portal-notification-item .notification-read-status{margin-top:4px;font-size:11px;font-weight:600}

/* v1.0.173: desktop Office programme controls, separate from the phone rules. */
@media(min-width:1001px),(min-width:801px) and (pointer:fine),(min-width:801px) and (pointer:none){
 #mhcp-app .office-calendar .office-reminders-desktop{display:none}
 #mhcp-app .office-calendar>.op-controls{align-items:flex-start}
 #mhcp-app .office-calendar>.op-controls>label{display:flex;flex-direction:column;align-self:flex-start;margin:0;padding:0;font-size:12px;line-height:18px}
 #mhcp-app .office-calendar>.op-controls select{margin:4px 0 0;height:40px}
 #mhcp-app .office-calendar>.op-controls .op-saved-preference{position:static;margin-top:3px;line-height:14px}
 #mhcp-app .office-calendar>.op-controls>.op-chart-actions{display:flex;flex-wrap:wrap;gap:8px;align-self:flex-start;margin-top:22px}
}

/* Compact cash-flow graph shares the monthly forecast data. */
.cashflow-chart{padding:20px 20px 12px}
.cashflow-chart h2{font-size:19px}
.cashflow-chart .sectionhead{margin-bottom:4px}
.cashflow-chart-scroll{max-width:100%;min-width:0;overflow:hidden}
.cashflow-chart svg{display:block;width:100%;height:auto}
.cashflow-grid{stroke:#dce5df;stroke-width:1}
.cashflow-month-grid{stroke:#eaf0ec}
.cashflow-axis{fill:#728078;font:12px system-ui}
.cashflow-month-total{fill:#345c50;font:600 12px system-ui}
.cashflow-line{fill:none;stroke:#2c6355;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.cashflow-point{fill:#fff;stroke:#2c6355;stroke-width:2}
.cashflow-point-hit{fill:transparent;stroke:none}
.cashflow-point-link:focus .cashflow-point,.cashflow-point-link:hover .cashflow-point{fill:#2c6355;stroke-width:4}
.cashflow-chart .cashflow-chart-note{font-size:11px;line-height:1.5;margin:4px 0 0}
.cash-month{scroll-margin-top:190px}
@media(max-width:800px),(max-width:1000px) and (pointer:coarse){
 .cashflow-chart svg{min-width:0}
 .cashflow-chart{padding:16px 12px 12px}
}

.cashflow-chart-legend{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:12px}
.cashflow-chart-legend span{display:inline-flex;align-items:center;gap:7px}
.cashflow-chart-legend span:before{content:'';display:block;width:22px;border-top:3px solid #2c6355}
.cashflow-chart-legend .cashflow-key-architecture:before{border-top-color:#527fa7;border-top-style:dashed}
.cashflow-series-architecture .cashflow-line{stroke:#527fa7;stroke-dasharray:6 4}
.cashflow-series-architecture .cashflow-point{stroke:#527fa7}
.cashflow-series-architecture .cashflow-point-link:focus .cashflow-point,.cashflow-series-architecture .cashflow-point-link:hover .cashflow-point{fill:#527fa7}
.cashflow-chart .sectionhead{flex-wrap:wrap;gap:8px 16px}

/* v1.0.178: keep the four project-register summary cards together on desktop. */
@media(min-width:1001px),(min-width:801px) and (pointer:fine),(min-width:801px) and (pointer:none){
 #mhcp-app.project-register-view main>.portfolio{grid-template-columns:repeat(4,minmax(0,1fr))}
}
/* v1.0.181: new client overview cards; existing programme chart layout is unchanged. */
.client-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.client-overview-tile{display:flex;flex-direction:column;align-items:flex-start;border:1px solid #dce4dc;border-radius:12px;background:#fff;padding:22px;min-width:0;overflow-wrap:anywhere}.client-overview-tile h3{margin:14px 0 10px}.client-overview-tile p{margin:0 0 14px}.client-tile-future{background:#f7f9f3}.client-tile-meta{margin-top:auto}.client-overview-tile button{margin-top:16px;max-width:100%;white-space:normal}.client-action-narrative{white-space:pre-wrap}.client-future-heading{margin-top:26px}.client-action-history{margin-top:22px}.client-action-history p{border-bottom:1px solid #dce4dc;padding:12px 0;white-space:pre-wrap}.client-tile-amount{font-size:28px;margin:10px 0}.client-overdue-tile{display:flex;justify-content:space-between;align-items:center;gap:16px;border:1px solid #e6bfb5;background:#fff2ed;border-radius:10px;padding:18px;margin-bottom:16px}.client-overdue-tile p{margin:5px 0}.client-issued-invoice{border-top:1px solid #dce4dc;padding-top:15px;margin-top:15px;width:100%}.client-action-editor{margin:6px 0 14px 28px}.client-action-editor .client-action-switch{font-size:12px;color:#506854}.client-action-fields{border-left:3px solid #bac9ad;background:#f3f6ef;padding:15px;margin-top:10px}.client-action-fields[hidden],.invoice-override-field[hidden],.invoice-metadata-fields[hidden]{display:none!important}.client-action-fields label,.invoice-date-editor label,.invoice-metadata-fields label{font-size:13px}.invoice-date-editor{padding:12px 0;border-top:1px solid #e1e7dd}.invoice-metadata-fields{margin:15px 0;padding:16px;border:1px solid #dce4dc;border-radius:8px}.client-overview-empty{padding:16px;background:#f2f6eb;border-radius:8px}.cashflow-chart-scroll svg{display:block;min-width:0;max-width:100%;width:100%;height:auto}.cashflow-period-control button[aria-pressed="true"]{background:#183d37;color:white}
@media(max-width:800px),(max-width:1000px) and (pointer:coarse){.client-overview-grid{grid-template-columns:1fr}.client-overview-tile{padding:18px}.client-overdue-tile{align-items:flex-start;flex-direction:column}.client-action-editor{margin-left:0}.client-action-fields .grid,.invoice-metadata-fields .grid{grid-template-columns:1fr}.cashflow-period-control{display:flex;flex-wrap:wrap;gap:8px}.client-overview-tile button{min-height:40px}}

/* v1.0.182: compact current and future client actions. */
.client-actions-section .client-overview-grid{gap:12px}
.client-actions-section .client-overview-tile{padding:16px;border-radius:10px}
.client-actions-section .client-overview-tile .pill{font-size:10px;line-height:1.4;padding:4px 8px}
.client-actions-section .client-overview-tile h3{font-size:16px;line-height:1.3;margin:10px 0 7px}
.client-actions-section .client-action-narrative{font-size:13px;line-height:1.5;margin:0 0 10px}
.client-actions-section .client-tile-meta{font-size:11px;line-height:1.5}
.client-actions-section .client-overview-tile button{font-size:12px;line-height:1.4;padding:8px 12px;margin-top:12px;min-height:40px}
.client-actions-section .client-future-heading{margin-top:20px}
@media(max-width:800px),(max-width:1000px) and (pointer:coarse){
.client-actions-section .client-overview-tile{padding:14px}
.client-actions-section .client-overview-grid{gap:10px}
.client-actions-section .client-overview-tile button{min-height:44px}
}

/* v1.0.183: matching compact fee tiles and clearer tile surfaces. */
.client-payments-section .client-overview-grid{gap:12px}
.client-payments-section .client-overview-tile{padding:16px;border-radius:10px;font-size:13px;line-height:1.5}
.client-payments-section .client-overview-tile .pill{font-size:10px;line-height:1.4;padding:4px 8px}
.client-payments-section .client-overview-tile h3{font-size:16px;line-height:1.3;margin:10px 0 7px}
.client-payments-section .client-overview-tile p{font-size:13px;line-height:1.5;margin:0 0 10px}
.client-payments-section .small{font-size:11px;line-height:1.5}
.client-payments-section .client-tile-amount{font-size:22px;line-height:1.25;margin:5px 0 8px}
.client-payments-section button{font-size:12px;line-height:1.4;padding:8px 12px;min-height:40px}
.client-payments-section .client-overview-tile button{margin-top:12px}
.client-payments-section .client-issued-invoice{font-size:12px;line-height:1.5;padding-top:10px;margin-top:10px}
.client-payments-section .client-issued-invoice p{font-size:11px;margin:4px 0 0}
.client-payments-section .client-overdue-tile{padding:14px;gap:12px;font-size:13px;line-height:1.5;margin-bottom:12px}
.client-payments-section .client-overdue-tile p{margin:4px 0}
.client-actions-section .client-overview-tile,.client-payments-section .client-overview-tile{background:#eef1ee;border-color:#cbd3ce}
.client-actions-section .client-tile-future,.client-payments-section .client-tile-future{background:#f5f6f3;border-color:#d4dad4}
@media(max-width:800px),(max-width:1000px) and (pointer:coarse){
.client-payments-section .client-overview-tile{padding:14px}
.client-payments-section .client-overview-grid{gap:10px}
.client-payments-section button{min-height:44px}
}

/* v1.0.184: show three future actions initially; retain the rest in a disclosure. */
.client-actions-section .client-future-more{margin-top:12px}
.client-actions-section .client-future-more>summary{font-size:12px;line-height:1.4;padding:10px 12px;min-height:44px;border:1px solid #cbd3ce;border-radius:8px;background:#f5f6f3;cursor:pointer;width:fit-content;max-width:100%}
.client-future-more .future-more-hide{display:none}
.client-future-more[open] .future-more-show{display:none}
.client-future-more[open] .future-more-hide{display:inline}
.client-future-more>.client-overview-grid{margin-top:12px}

/* v1.0.188: respect hidden agreed/automatic fee editors. */
.agreed-stage-fees[hidden],.automatic-fee-ledger[hidden]{display:none!important}
.microhomes-fee-settings{margin:18px 0;padding:16px;border:1px solid #cbd3ce;border-radius:10px;background:#f5f6f3}

/* v1.0.189: responsive curved cash flow charts; no horizontal scrolling. */
.cashflow-chart{min-width:0;max-width:100%}
.cashflow-chart .cashflow-axis{font-size:11px}
.cashflow-chart a:focus-visible circle,.cashflow-chart a:hover circle{fill:currentColor;stroke-width:2.5}

/* v1.0.190: prominent live approval/review counts in all badge sizes. */
#mhcp-app .approval-document-count,#mhcp-app .review-document-count{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:22px;height:22px;padding:0 5px;font-size:12px;font-weight:750;line-height:1;font-variant-numeric:tabular-nums;border-radius:999px}
#mhcp-app .office-project-alerts .approval-document-count,#mhcp-app .office-project-alerts .review-document-count{min-width:20px;height:20px;font-size:11px}

/* v1.0.191: compact expandable future actions; current actions retain their full cards. */
.client-actions-section .client-future-grid{align-items:start}
.client-actions-section .client-future-tab{display:block;padding:0;background:#fafbf9;border-color:#e0e5df;border-radius:9px}
.client-actions-section .client-future-tab>summary{display:grid;grid-template-columns:minmax(0,1fr) 18px;gap:5px 8px;align-items:center;min-height:44px;padding:10px 12px;list-style:none;cursor:pointer}
.client-future-tab>summary::-webkit-details-marker{display:none}
.client-future-tab>summary::marker{content:''}
.client-actions-section .client-future-tab>summary .pill{grid-column:1;justify-self:start;background:#f0f2ee;color:#748176;font-size:9px;line-height:1.3;padding:2px 6px}
.client-actions-section .client-future-tab>summary h3{grid-column:1;margin:0;font-size:13px;line-height:1.35;font-weight:650;color:#53675d}
.client-future-tab>summary::after{content:'+';grid-column:2;grid-row:1 / span 2;align-self:center;font-size:19px;line-height:1;color:#829084;text-align:center}
.client-future-tab[open]>summary::after{content:'−'}
.client-future-tab>summary:focus-visible{outline:2px solid #688072;outline-offset:2px;border-radius:9px}
.client-actions-section .client-future-tab-body{padding:10px 12px 12px;border-top:1px solid #e5e9e2}
.client-actions-section .client-future-tab-body .client-action-narrative{font-size:12px;line-height:1.5;margin:0 0 8px}
.client-actions-section .client-future-tab-body .client-tile-meta{font-size:11px}
.client-actions-section .client-future-tab-body button{margin-top:10px}

/* v1.0.192: all future tabs visible, consistent closed height and restored grey surface. */
.client-actions-section .client-future-tab{background:#f5f6f3;border-color:#d4dad4}
.client-actions-section .client-future-tab>summary{grid-template-columns:minmax(0,1fr) 18px;grid-template-rows:auto minmax(2.7em,auto);align-content:center;min-height:82px;gap:5px 8px;padding:10px 12px;box-sizing:border-box}
.client-actions-section .client-future-tab>summary .pill{grid-column:1;grid-row:1;background:#e8f0e7;color:var(--green)}
.client-actions-section .client-future-tab>summary h3{grid-column:1;grid-row:2;align-self:start;min-height:2.7em;margin:0;font-size:13px;line-height:1.35;color:var(--ink)}
.client-actions-section .client-future-tab>summary::after{grid-column:2;grid-row:1 / span 2}

/* v1.0.193: future action summaries are approximately 40% shorter (82px to 49px). */
.client-actions-section .client-future-tab>summary{display:grid;grid-template-columns:minmax(0,78px) minmax(0,1fr) 18px;grid-template-rows:minmax(33.8px,auto);align-items:center;min-height:49px;gap:0 8px;padding:7px 10px}
.client-actions-section .client-future-tab>summary .pill{grid-column:1;grid-row:1;align-self:center;max-width:78px;white-space:normal}
.client-actions-section .client-future-tab>summary h3{grid-column:2;grid-row:1;align-self:center;min-height:2.6em;line-height:1.3}
.client-actions-section .client-future-tab>summary::after{grid-column:3;grid-row:1}

/* v1.0.195: future-action titles remain secondary to current actions. */
.client-actions-section .client-future-tab>summary h3{font-weight:400}

/* v1.0.197: collapse the complete future-actions group from its heading. */
.client-actions-section .client-future-section{margin-top:20px}
.client-actions-section .client-future-section>.client-future-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;margin:0;padding:6px 0;list-style:none;cursor:pointer}
.client-future-section>.client-future-heading::-webkit-details-marker{display:none}
.client-future-section>.client-future-heading::marker{content:''}
.client-future-section>.client-future-heading:focus-visible{outline:2px solid #688072;outline-offset:3px;border-radius:4px}
.client-future-section-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:28px;color:var(--ink);font-size:20px;line-height:1}
.client-future-section-icon::after{content:'▸'}
.client-future-section[open]>.client-future-heading .client-future-section-icon::after{content:'−'}
.client-future-section>.client-future-grid{margin-top:12px}

/* v1.0.198: construction builder payments stay visible below the supply payment. */
.builder-stage-payments{margin:12px 0}
.builder-stage-payment{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;margin:8px 0;font-size:11px;line-height:1.6;color:#7d877f;font-weight:400}
.builder-stage-payment>strong{font-size:inherit;font-weight:400;color:inherit;white-space:nowrap}
.builder-stage-payment>.small.muted{font-size:inherit;color:inherit}
.builder-interim-payments{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.builder-interim-payments>h4{margin:0 0 8px;font-size:11px;font-weight:400;line-height:1.6;color:#7d877f}

/* Project-only task additions: standard stage definitions are retained. */
#mhcp-app .project-extra-editor{margin-top:16px;border-top:1px solid #d8dfda;padding-top:12px}
#mhcp-app .project-extra-task{display:grid;grid-template-columns:minmax(0,1fr) 155px auto;gap:10px;align-items:end;margin-bottom:12px}
#mhcp-app .project-extra-task input{width:100%;min-width:0}
@media(max-width:800px),(max-width:1000px) and (pointer:coarse){#mhcp-app .project-extra-task{grid-template-columns:minmax(0,1fr) 110px}#mhcp-app .project-extra-task>label:first-child{grid-column:1/-1}#mhcp-app .project-extra-task button{min-height:44px}}

/* Insertion points for additional tasks inside an individual project. */
#mhcp-app .extra-task-position-label{grid-column:1/3;min-width:0}#mhcp-app .extra-task-position{width:100%;min-width:0;max-width:100%}#mhcp-app .extra-task-order-buttons{display:flex;gap:6px;flex-wrap:wrap}#mhcp-app .extra-task-order-buttons button{min-height:44px;min-width:44px}
@media(max-width:800px),(max-width:1000px) and (pointer:coarse){#mhcp-app .extra-task-position-label,#mhcp-app .extra-task-order-buttons{grid-column:1/-1}}

/* Office-only editing disclosures use the existing plus/minus pattern. */
#mhcp-app .client-action-disclosure{margin-top:8px;min-width:0}#mhcp-app .client-action-disclosure>summary{min-height:44px;font-size:12px;overflow-wrap:anywhere}#mhcp-app .client-action-disclosure[hidden]{display:none}#mhcp-app .client-action-disclosure .client-action-fields{margin-top:10px}

#mhcp-app .loading-thanks{margin:1.5em 0 0;font:inherit;color:inherit}

/* v1.0.210: constrain the native phone date field to its grid cell. */
@media(max-width:800px),(max-width:1000px) and (pointer:coarse){
 .office-programme>.op-calibration form{grid-template-columns:repeat(2,minmax(0,1fr))}
 .office-programme>.op-calibration label{min-width:0}
 .office-programme>.op-calibration input[name=calibrationWeek]{box-sizing:border-box;display:block;width:100%;min-width:0;max-width:100%;height:36px;min-height:0;appearance:none;-webkit-appearance:none}
}

/* v1.0.212: disclosure fill belongs to the heading, not expanded documents. */
#mhcp-app .document-dropdown{background:#fff}
#mhcp-app .document-dropdown>summary{background:#f8f9f4;border-radius:9px}
#mhcp-app .document-dropdown[open]>summary{border-radius:9px 9px 0 0}
#mhcp-app .document-dropdown>.dropdown-body{display:flow-root;background:#fff;border-radius:0 0 9px 9px}
#mhcp-app .superseded-documents>summary{background:#eef0eb}

/* v1.0.213: optional supply payment dates retain the existing schedule columns. */
.fee-override-field label[for^="supplyPaymentDate"]{margin-top:12px}
.fee-override-field input[type=date]{box-sizing:border-box;min-width:0;max-width:100%;appearance:none;-webkit-appearance:none}
.fee-override-field p.small{font-size:11px;line-height:1.45;margin:6px 0 0}

/* v1.0.218: brand links use the existing header dimensions. */
#mhcp-app a.portal-brand-home{display:block;color:inherit;text-decoration:none;background:transparent;border:0;padding:0;border-radius:0}
#mhcp-app a.portal-brand-home:focus-visible{outline:2px solid var(--green);outline-offset:5px;border-radius:3px}

/* v1.0.219: visible project email-suspension status in office registers. */
#mhcp-app button.project-email-suspended-badge{display:inline-flex;align-items:center;max-width:100%;white-space:normal;text-align:left;background:#fff1d6;border:1px solid #d99b38;color:#714712;border-radius:7px;font-size:11px;line-height:1.35;font-weight:650;padding:6px 9px}
#mhcp-app button.project-email-suspended-badge:focus-visible{outline:2px solid #714712;outline-offset:2px}

/* v1.0.222: align the visible wordmark, excluding the source image's white margins. */
.portal-lha-wordmark{display:block;position:relative;width:219px;max-width:100%;aspect-ratio:380/46;overflow:hidden;margin:0 0 3px;line-height:1}
.portal-lha-wordmark>.portal-lha-logo{display:block;position:absolute;width:115.263158%;max-width:none;height:auto;left:-5.526316%;top:-80.434783%;margin:0;padding:0;border:0}
@media(max-width:800px),(max-width:1000px) and (pointer:coarse){.portal-lha-wordmark{width:190px}}

/* v1.0.223: show only the supplied Microhomes lettering above the rule. */
.portal-microhomes-wordmark{display:block;position:relative;width:219px;max-width:100%;aspect-ratio:1590/223;overflow:hidden;margin:0 0 3px;line-height:1}
.portal-microhomes-wordmark>.portal-microhomes-logo{display:block;position:absolute;width:128.805031%;max-width:none;height:auto;left:-13.207547%;top:-343.049327%;margin:0;padding:0;border:0}
@media(max-width:800px),(max-width:1000px) and (pointer:coarse){.portal-microhomes-wordmark{width:190px}}
