/* Client portal — UI-6 (v19.4). Outcome-focused, calm and responsive. */
.client-breadcrumb{display:flex;align-items:center;gap:8px;margin-bottom:var(--ui-space-lg);font-size:var(--type-label);color:var(--cds-text-secondary)}
.client-breadcrumb a{text-decoration:none}.client-preview,.client-flash{margin-bottom:var(--ui-space-lg)}.client-preview__label{color:var(--cds-attention);letter-spacing:.08em;font-weight:600}
.client-engagement-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ui-space-xl);margin-bottom:var(--ui-space-xl)}
.client-engagement-header h1{font-size:28px;font-weight:600;margin:4px 0 6px;line-height:1.2}.client-engagement-meta{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--cds-text-secondary);font-size:13px}.client-engagement-meta span+span::before{content:'·';margin-right:16px;color:var(--cds-border-strong)}
.client-progress{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:var(--ui-space-xl);background:var(--cds-layer);border:1px solid var(--cds-border-subtle);border-radius:var(--ui-panel-radius);overflow:hidden}
.client-progress__step{position:relative;display:flex;gap:10px;align-items:center;min-height:62px;padding:10px 14px;border-left:1px solid var(--cds-border-subtle);color:var(--cds-text-secondary)}.client-progress__step:first-child{border-left:0}.client-progress__step strong{display:block;font-size:13px}.client-progress__step small{display:block;font-size:12px;color:var(--cds-text-helper);margin-top:2px}.client-progress__marker{display:grid;place-items:center;width:24px;height:24px;flex:0 0 24px;border:1px solid var(--cds-border-strong);border-radius:50%;font-size:12px;font-weight:600}.client-progress__step.is-complete .client-progress__marker{background:var(--cds-support-success);border-color:var(--cds-support-success);color:#fff}.client-progress__step.is-current{background:var(--cds-tag-blue-bg);color:var(--cds-text-primary);box-shadow:inset 0 -3px var(--cds-interactive)}.client-progress__step.is-current .client-progress__marker{border:3px solid var(--cds-interactive);color:var(--cds-interactive)}
.client-tabs{display:flex;align-items:flex-end;gap:0;border-bottom:1px solid var(--cds-border-subtle);overflow-x:auto;scrollbar-width:thin}.client-tab{display:inline-flex;align-items:center;gap:6px;min-height:46px;padding:0 15px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--cds-text-secondary);font-size:14px;white-space:nowrap}.client-tab:hover{background:var(--cds-tag-blue-bg);color:var(--cds-text-primary)}.client-tab.is-active{border-bottom-color:var(--cds-interactive);color:var(--cds-text-primary);font-weight:600}.client-tab--utility{margin-left:auto}.client-tab--utility+.client-tab--utility{margin-left:0}.client-tab__count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--cds-layer-accent);font-size:12px}.client-tab__count.is-hot{background:var(--cds-tag-red-bg);color:var(--cds-tag-red-text)}
.client-tabpane{padding-top:var(--ui-space-xl)}.client-primary{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(250px,.75fr);gap:var(--ui-space-xl);padding:var(--ui-space-xl);background:var(--cds-layer);border:1px solid var(--cds-border-subtle);border-left:4px solid var(--cds-interactive);border-radius:var(--ui-panel-radius);box-shadow:var(--cds-shadow)}.client-primary--action{border-left-color:var(--cds-attention)}.client-primary--delivery,.client-primary--complete{border-left-color:var(--cds-support-success)}.client-primary__body h2{font-size:24px;line-height:1.25;margin:5px 0 8px}.client-primary__body>p{max-width:68ch;color:var(--cds-text-secondary)}.client-primary__action{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:10px}.client-kicker{display:block;font-family:var(--mono);font-size:12px;line-height:16px;letter-spacing:.1em;color:var(--cds-text-secondary)}
.client-inline-scope{margin:14px 0 0;padding-left:18px;color:var(--cds-text-secondary);font-size:13px}.client-inline-scope li+li{margin-top:4px}.client-quote-actions>.ui-button{width:100%}.client-approval summary{list-style:none;width:100%}.client-approval summary::-webkit-details-marker{display:none}.client-approval[open] summary{display:none}.client-approval form{display:grid;gap:12px;padding:14px;border:1px solid var(--cds-border-subtle);border-radius:var(--ui-control-radius);background:var(--cds-background)}.client-check{display:flex;align-items:flex-start;gap:10px;font-size:13px;color:var(--cds-text-secondary)}.client-check input{margin-top:3px;accent-color:var(--cds-interactive)}.client-optional{font-weight:400;color:var(--cds-text-helper)}
.client-delivery-list{display:grid;gap:8px;margin-top:16px}.client-delivery-file{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--cds-border-subtle);border-radius:var(--ui-control-radius);text-decoration:none;color:var(--cds-text-primary);background:var(--cds-background)}.client-delivery-file:hover{background:var(--cds-tag-blue-bg);color:var(--cds-text-primary)}.client-delivery-file strong,.client-delivery-file small{display:block}.client-delivery-file small{font-size:12px;color:var(--cds-text-secondary);margin-top:2px}.client-acceptance-form{display:grid;gap:12px}
.client-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ui-space-lg);margin-top:var(--ui-space-lg)}.client-summary-card{display:flex;flex-direction:column;align-items:flex-start;min-height:178px;padding:var(--ui-space-lg);background:var(--cds-layer);border:1px solid var(--cds-border-subtle);border-radius:var(--ui-panel-radius)}.client-summary-card h3{font-size:16px;margin:8px 0 4px}.client-summary-card p{color:var(--cds-text-secondary);font-size:13px;flex:1}.client-summary-card .ui-button{margin-top:14px}
.client-update{display:flex;justify-content:space-between;align-items:center;gap:var(--ui-space-lg);margin-top:var(--ui-space-lg);padding:var(--ui-space-lg);border:1px solid var(--cds-border-subtle);border-radius:var(--ui-panel-radius);background:var(--cds-layer)}.client-update h3{font-size:14px;margin:5px 0 1px}.client-update p{font-size:12px;color:var(--cds-text-helper)}
.client-disclosure{margin-top:var(--ui-space-lg);border:1px solid var(--cds-border-subtle);border-radius:var(--ui-panel-radius);background:var(--cds-layer)}.client-disclosure>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 16px;cursor:pointer;list-style:none}.client-disclosure>summary::-webkit-details-marker{display:none}.client-disclosure>summary span:first-child{display:grid}.client-disclosure>summary small{font-size:12px;color:var(--cds-text-secondary);font-weight:400;margin-top:2px}.client-disclosure>summary span:last-child{font-size:12px;color:var(--cds-link)}.client-disclosure[open]>summary{border-bottom:1px solid var(--cds-border-subtle)}.client-disclosure[open]>summary span:last-child{font-size:0}.client-disclosure[open]>summary span:last-child::after{content:'Hide';font-size:12px}.client-disclosure__body{padding:var(--ui-space-lg);color:var(--cds-text-secondary);font-size:13px}.client-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.client-detail-row{padding:12px 0;border-top:1px solid var(--cds-border-subtle)}.client-detail-row:first-child{border-top:0}.client-detail-row strong,.client-detail-row small{display:block}.client-detail-row small{color:var(--cds-text-helper);margin-top:2px}.client-detail-row p{margin-top:5px}
.client-section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--ui-space-lg);margin-bottom:var(--ui-space-lg)}.client-section-heading h2{font-size:22px;margin:4px 0}.client-section-heading p{color:var(--cds-text-secondary);max-width:66ch}.client-section-heading--compact{margin-bottom:12px}.client-section-heading--compact h3{font-size:17px;margin-top:4px}
.client-contract-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ui-space-md);margin-bottom:var(--ui-space-lg)}.client-metric{padding:14px;background:var(--cds-layer);border:1px solid var(--cds-border-subtle);border-radius:var(--ui-control-radius)}.client-metric span,.client-metric strong,.client-metric small{display:block}.client-metric span{font-size:12px;color:var(--cds-text-secondary)}.client-metric strong{font-size:18px;margin-top:4px}.client-metric small{font-size:12px;color:var(--cds-text-helper);margin-top:3px}.client-contract-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--ui-space-lg);margin-bottom:var(--ui-space-lg)}.client-panel{padding:var(--ui-space-lg);background:var(--cds-layer);border:1px solid var(--cds-border-subtle);border-radius:var(--ui-panel-radius);margin-bottom:var(--ui-space-lg)}.client-panel--attention{border-left:4px solid var(--cds-attention)}.client-panel h3{font-size:17px;margin:5px 0 10px}.client-panel h4{font-size:13px;margin:14px 0 6px}.client-list{padding-left:18px;color:var(--cds-text-secondary);font-size:13px}.client-list li+li{margin-top:6px}.client-decision{padding:14px 0;border-top:1px solid var(--cds-border-subtle)}.client-decision:first-of-type{border-top:0}.client-decision__header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.client-decision__header h4{font-size:14px;margin:0}.client-decision__header p{font-size:13px;color:var(--cds-text-secondary);margin-top:4px}.client-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.client-helper{font-size:12px;color:var(--cds-text-helper)}
.client-requirements{display:grid}.client-requirement{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--cds-border-subtle)}.client-requirement:first-child{border-top:0}.client-requirement strong,.client-requirement small{display:block}.client-requirement small{font-size:12px;color:var(--cds-text-helper);margin-top:2px}.client-file-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:8px;background:var(--cds-tag-blue-bg);color:var(--cds-brand);font:600 12px/1 var(--mono)}.client-file-icon.is-neutral{background:var(--cds-tag-gray-bg);color:var(--cds-text-secondary)}
.client-document-group{margin-bottom:var(--ui-space-xl)}.client-document-group>h3{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--cds-text-secondary);margin-bottom:8px}.client-document-list{background:var(--cds-layer);border:1px solid var(--cds-border-subtle);border-radius:var(--ui-panel-radius);overflow:hidden}.client-document{display:grid;grid-template-columns:38px minmax(0,1fr) auto auto;align-items:center;gap:12px;min-height:68px;padding:12px 14px;border-top:1px solid var(--cds-border-subtle);text-decoration:none;color:var(--cds-text-primary)}.client-document:first-child{border-top:0}.client-document:hover{background:var(--cds-tag-blue-bg);color:var(--cds-text-primary)}.client-document__body strong,.client-document__body small{display:block}.client-document__body small{font-size:12px;color:var(--cds-text-helper);margin-top:2px}.client-document__action{font-size:13px;color:var(--cds-link);font-weight:500}.client-revision{padding:8px 0;border-top:1px solid var(--cds-border-subtle)}.client-revision:first-child{border-top:0}.client-revision>summary{cursor:pointer;font-weight:600}.client-revision>div{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:8px 0;font-size:12px}
.client-thread{display:grid;gap:12px;max-width:780px}.client-message{max-width:76%;padding:14px 16px;border-radius:var(--ui-panel-radius);background:var(--cds-layer);border:1px solid var(--cds-border-subtle)}.client-message.is-client{justify-self:end;background:var(--cds-tag-blue-bg)}.client-message__meta{font-size:12px;color:var(--cds-text-helper);margin-bottom:4px}.client-message p{white-space:pre-wrap}.client-message-form{max-width:780px;margin-top:var(--ui-space-xl);padding:var(--ui-space-lg);background:var(--cds-layer);border:1px solid var(--cds-border-subtle);border-radius:var(--ui-panel-radius)}
.client-timeline{background:var(--cds-layer);border:1px solid var(--cds-border-subtle);border-radius:var(--ui-panel-radius);padding:0 var(--ui-space-lg)}.client-timeline article{display:grid;grid-template-columns:164px minmax(0,1fr);gap:18px;padding:16px 0;border-top:1px solid var(--cds-border-subtle)}.client-timeline article:first-child{border-top:0}.client-timeline time{font-size:12px;color:var(--cds-text-helper)}.client-timeline strong{font-size:13px}.client-timeline p{font-size:13px;color:var(--cds-text-secondary);margin-top:2px}
.client-upload{padding:var(--ui-space-xl);text-align:center;border:1px dashed var(--cds-border-strong);border-radius:var(--ui-panel-radius);background:var(--cds-layer)}.client-upload h3{font-size:17px}.client-upload>p{max-width:58ch;margin:7px auto 18px;color:var(--cds-text-secondary)}.client-upload form{max-width:480px;margin:0 auto}.client-upload .field{text-align:left}
/* Engagement list and cross-engagement documents */
.client-page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--ui-space-lg);margin-bottom:var(--ui-space-xl)}.client-page-header h1{font-size:28px;font-weight:600;margin:4px 0}.client-page-header p{color:var(--cds-text-secondary);max-width:62ch}.client-list-section{margin-top:var(--ui-space-xl)}.client-list-section__title{font-family:var(--mono);font-size:12px;letter-spacing:.09em;color:var(--cds-text-secondary);margin-bottom:8px}.client-engagement-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:18px;margin-bottom:10px;background:var(--cds-layer);border:1px solid var(--cds-border-subtle);border-radius:var(--ui-panel-radius);text-decoration:none;color:var(--cds-text-primary)}.client-engagement-card:hover{background:var(--cds-tag-blue-bg);color:var(--cds-text-primary)}.client-engagement-card h2{font-size:16px;margin:2px 0 5px}.client-engagement-card p{font-size:13px;color:var(--cds-text-secondary)}.client-engagement-card__next{margin-top:11px;padding-top:10px;border-top:1px solid var(--cds-border-subtle);font-size:13px}.client-engagement-card__meta{text-align:right;display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:10px;font-size:12px;color:var(--cds-text-helper)}.client-empty{padding:54px 28px;text-align:center;background:var(--cds-layer);border:1px dashed var(--cds-border-strong);border-radius:var(--ui-panel-radius)}.client-empty h2{font-size:21px;margin:8px 0}.client-empty p{max-width:52ch;margin:0 auto;color:var(--cds-text-secondary)}.client-how{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ui-space-md);margin-top:var(--ui-space-lg)}.client-how div{padding:14px;background:var(--cds-layer);border:1px solid var(--cds-border-subtle);border-radius:var(--ui-control-radius)}.client-how strong,.client-how span{display:block}.client-how span{font-size:12px;color:var(--cds-text-secondary);margin-top:3px}
@media(max-width:900px){.client-primary{grid-template-columns:1fr}.client-overview-grid{grid-template-columns:1fr 1fr}.client-contract-grid{grid-template-columns:1fr}.client-progress__step{padding:10px}.client-progress__step small{display:none}.client-tab--utility{margin-left:0}}
@media(max-width:700px){.client-engagement-header,.client-page-header,.client-section-heading{align-items:stretch;flex-direction:column}.client-progress{grid-template-columns:repeat(5,1fr)}.client-progress__step{display:grid;justify-items:center;text-align:center;gap:5px;padding:9px 4px}.client-progress__step strong{font-size:12px}.client-progress__step span:last-child small{display:none}.client-tabs{margin-inline:-16px;padding-inline:8px}.client-overview-grid,.client-contract-summary,.client-how{grid-template-columns:1fr}.client-document{grid-template-columns:38px minmax(0,1fr) auto}.client-document>.ui-status{grid-column:2}.client-document__action{grid-column:3;grid-row:1/3}.client-requirement{grid-template-columns:38px minmax(0,1fr)}.client-requirement>.ui-status{grid-column:2}.client-timeline article{grid-template-columns:1fr;gap:4px}.client-message{max-width:92%}.client-engagement-card{grid-template-columns:1fr}.client-engagement-card__meta{text-align:left;align-items:flex-start}.client-revision>div{grid-template-columns:auto minmax(0,1fr)}.client-revision>div>:nth-child(n+3){grid-column:2}.client-primary__body h2{font-size:21px}}
@media(max-width:460px){.client-progress__step strong{font-size:12px}.client-progress__marker{width:22px;height:22px}.client-primary{padding:18px}.client-delivery-file{grid-template-columns:34px minmax(0,1fr)}.client-delivery-file>.ui-status{grid-column:2}.client-actions>.ui-button,.client-primary__action>.ui-button,.client-quote-actions>.ui-button{width:100%}.client-document__action{display:none}.client-document{grid-template-columns:34px minmax(0,1fr)}.client-document>.ui-status{grid-column:2}}


/* UI-8 accessibility and reflow. */
.client-progress{list-style:none;padding:0}.client-progress__step{margin:0}.client-tab[aria-selected="true"]{text-decoration:underline;text-decoration-color:var(--cds-interactive)}
.client-tabpane{scroll-margin-top:72px}.client-document,.client-delivery-file,.client-engagement-card{min-width:0}.client-document strong,.client-delivery-file strong{overflow-wrap:anywhere}
@media(max-width:560px){.client-progress{display:flex;overflow-x:auto;scroll-snap-type:x proximity}.client-progress__step{min-width:132px;scroll-snap-align:start}.client-tabs{scroll-snap-type:x proximity}.client-tab{scroll-snap-align:start}.client-primary__action form,.client-primary__action details{width:100%}.client-check{align-items:flex-start}.client-check input{margin-top:2px}}
@media(prefers-contrast:more){.client-primary,.client-document,.client-requirement,.client-engagement-card,.client-panel{border-color:var(--cds-border-strong)}}

/* ============ v19.7.5 client-page and native-control polish ============ */
.client-page{color-scheme:light;overflow-x:hidden}
.client-page main{min-width:0}
.client-page .field :is(input,select,textarea){color:var(--cds-text-primary)}
.client-page .field input[type="file"]{background:var(--cds-layer)}
.client-engagement-card,.client-document,.client-delivery-file{transition:border-color .12s,background-color .12s}
.client-engagement-card:hover,.client-document:hover,.client-delivery-file:hover{border-color:var(--cds-border-strong)}
.client-engagement-card:focus-visible,.client-document:focus-visible,.client-delivery-file:focus-visible{outline-offset:3px}
.client-engagement-card__next{line-height:1.5}
.client-primary__action form{min-width:0}
.client-preview .ui-button{align-self:start}
.preview-lock form{opacity:.55}.preview-lock form :is(input,textarea,select,button){cursor:not-allowed!important}
.client-intake-actions{display:flex;gap:10px;align-items:center;margin-top:var(--sp-4);flex-wrap:wrap}
.client-intake-back,.client-intake-submit{display:none}
.client-intake-help{margin-left:auto}
.istep-dot{width:8px;height:8px;border-radius:50%;background:var(--cds-border-subtle)}
.istep-dot.on{background:var(--cds-attention)}
.ihelp{font-size:var(--type-label);color:var(--cds-text-helper);margin-top:4px}
.client-login-choice{border-left:4px solid var(--cds-attention)}
.client-login-status--warning{border-left:4px solid var(--cds-attention)}
.client-login-status--success{border-left:4px solid var(--cds-support-success)}
.client-login-actions{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.client-portal-benefits{background:var(--cds-background);box-shadow:none}
.client-portal-benefits h2{font-size:13px;margin-bottom:8px}.client-portal-benefits ul{display:grid;gap:6px;padding-left:20px;color:var(--cds-text-secondary)}.client-portal-benefits p{font-size:12px;color:var(--cds-text-helper);margin-top:12px}
.client-new-header{margin-bottom:18px}.client-new-header h1{font-size:24px;margin:2px 0 4px}.client-new-header p{color:var(--cds-text-secondary)}
@media(max-width:720px){
  .client-page main{padding-top:24px}
  .client-breadcrumb{margin-bottom:14px}
  .client-engagement-header>.ui-button,.client-page-header>.ui-button{width:100%}
  .client-tabs{position:relative;margin-inline:-16px;padding-inline:16px;background:var(--cds-background)}
  .client-tab{flex:0 0 auto}
  .client-primary__action{min-width:0}
}
@media(max-width:640px){.lookgrid{grid-template-columns:1fr!important}.client-intake-actions{display:grid}.client-intake-actions .ui-button,.client-intake-actions .btn{width:100%}.client-intake-help{margin-left:0}.client-login-actions{display:grid}.client-login-actions>*{width:100%}}
@media(max-width:420px){
  .client-empty{padding:36px 18px}.client-panel,.client-message-form{padding:18px}
  .client-document,.client-delivery-file{padding-inline:10px}.client-document__body small{line-height:1.45}
}
.client-login-status__title{font-size:15px;line-height:1.4;margin:0 0 6px;font-weight:600}
.client-login-status__detail{font-size:14px;color:var(--cds-text-secondary)}
.client-login-status__help{font-size:13px;color:var(--cds-text-helper);margin-top:10px}
.client-login-actions form{margin:0}
.client-login-actions .ui-button{max-width:100%;white-space:normal;text-align:center}
.client-login-form{max-width:100%}
/* Sign-in is a single-task page: centre it instead of stranding it in the wide column. */
.client-auth{max-width:560px;margin:0 auto;padding-block:8px}
.client-portal-benefits li{font-size:13.5px;line-height:1.5}
.client-breadcrumb{font-size:13px;margin-bottom:12px}
.client-new-header p:last-child{max-width:70ch;font-size:13.5px}
.client-new-card{max-width:760px}
.client-new-card .choice-control strong{font-weight:600;color:var(--cds-text-primary)}
.client-new-card .choice-control span{color:var(--cds-text-secondary);line-height:1.45}
.client-empty__actions{margin-top:20px}
.client-empty__followup{margin-top:16px!important;font-size:12px}
@media(max-width:640px){.client-login-form .ui-button,.client-new-card>.ui-button,.client-new-card form>.ui-button{width:100%}}

/* ============ v19.7.6 client fidelity correction ============ */
.client-tab[aria-selected="true"]{text-decoration:none}
.client-tab.is-active{background:var(--cds-layer);box-shadow:inset 0 -3px var(--cds-interactive);border-bottom-color:transparent}
.client-tab__count{margin-left:1px}
.client-thread,.client-message-form{width:100%;max-width:none}
.client-thread>.ui-empty-state{min-height:92px;display:grid;place-content:center;gap:5px}
.client-message-form textarea{min-height:112px;line-height:1.5}
@media(max-width:700px){.client-tab.is-active{box-shadow:inset 0 -3px var(--cds-interactive)}}
