/* Shared layout for both roles, including account administration. */
body{font-family:var(--body);font-size:16px;font-synthesis:style}
.app-shell{padding-top:0!important}.demo-bar{display:none}.sidebar{top:0!important;width:258px;padding:24px 18px;position:fixed;left:0;bottom:0;overflow-y:auto;background:#fff;border-right:1px solid var(--line);z-index:60;display:flex;flex-direction:column}
.workspace,.portal-workspace{margin-left:258px;min-width:0}.topbar{top:0!important;height:78px;padding:0 32px}.content,.portal-workspace main{max-width:1500px;padding:30px 32px 50px;margin:0 auto;min-width:0}
.side-brand{margin:0 12px 20px}.side-brand .primary-logo{width:122px;height:auto}.side-title{font-family:var(--head);font-size:15px;letter-spacing:.08em;margin:0 12px}.side-subtitle{margin:7px 12px 24px;font-size:11px;color:var(--muted)}
.side-nav{display:flex;flex-direction:column;gap:4px}.nav-item{font-family:var(--body);font-size:15px;line-height:1.3;width:100%;min-height:41px;padding:10px 12px;border:0;border-radius:7px;display:flex;gap:10px;align-items:center;text-align:left;color:var(--ink);background:transparent;text-decoration:none;cursor:pointer}.nav-item:hover{background:var(--sand13)}.nav-item.active{background:#eee8dd;font-weight:700}.nav-item.active:before{display:none}.nav-item:disabled{opacity:.46;cursor:not-allowed}.nav-item:disabled::after{display:none}.nav-item small{display:block;font-size:11px;margin-top:3px;color:var(--muted);font-weight:400}.nav-number{border:1px solid var(--line);width:26px;height:26px;flex:0 0 26px;border-radius:50%;display:grid;place-items:center;font-size:12px}.nav-step.current .nav-number{background:var(--ink);color:white;border-color:var(--ink)}.nav-step.done .nav-number{background:var(--sand35)}.nav-lock{margin-left:auto}.nav-section-title{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:18px 12px 10px}.nav-substeps{margin-left:36px}.nav-substeps .nav-item{min-height:30px;font-size:13px;padding:6px 8px}.nav-permanent{border-top:1px solid var(--line);margin-top:20px;padding-top:4px}
.portal-workspace>header{height:78px;position:sticky;top:0;padding:0 32px;background:var(--canvas);border-bottom:1px solid var(--line);z-index:40;display:flex;align-items:center;justify-content:space-between;gap:18px}.portal-workspace>header .brand{display:none}.portal-workspace .portal-footer{margin:0 32px}.portal-workspace .customer-panel{max-width:1150px;margin:0 auto}.portal-project-switch{max-width:290px;font:700 15px var(--body);border:1px solid var(--line);border-radius:6px;padding:9px;background:white}
.portal-workspace h1,.portal-workspace h2{font-family:var(--head)}.portal-workspace .card{margin-top:22px}.portal-workspace .fields,.portal-workspace .form-grid{gap:18px 24px}.portal-workspace details{margin:20px 0}.portal-workspace summary{cursor:pointer;font-size:18px}.portal-workspace .stepper,.workflow-steps{display:none}.step-context{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:18px 22px;background:var(--sand13);border:1px solid var(--line);border-radius:10px;margin-bottom:24px}.step-context strong{display:block;font-size:18px}.step-context p{margin:6px 0;font-size:15px}.step-context .btn,.step-context button{flex-shrink:0}.flow-links,.actions,.pill-row,.report-actions,.analysis-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.card-pad>.btn+.btn,.card-pad>button+button{margin-left:12px}.btn,.portal-workspace button{font-family:var(--body)}.page-header{gap:24px}.page-header p{font-size:16px}.small{font-size:14px}.field>span,.field label{font-size:14px}.field input,.field select,.field textarea{font-family:var(--body);font-size:16px}.field small{font-size:13px}
.flow-board{display:flex!important;overflow-x:auto;gap:16px;align-items:stretch;padding-bottom:18px;scrollbar-width:auto;scrollbar-color:#b7a385 #eee8df;scroll-snap-type:x proximity}.flow-column{flex:0 0 275px;min-width:275px;max-width:275px;scroll-snap-align:start}.flow-column>header{position:static}.flow-card h3{font-family:var(--body);font-size:17px}.flow-card p,.flow-card-task{font-size:14px}.flow-board:focus-visible{outline:2px solid var(--focus)}
.eq-scroll{max-height:65vh;overflow:auto;border:1px solid var(--line);border-radius:8px}.eq{border-collapse:separate;border-spacing:0;width:100%}.eq thead th{position:sticky;top:0;background:#eee8dd;z-index:2;text-align:left;padding:10px 14px;font-size:13px}.eq td{padding:7px 14px;border-top:1px solid var(--line);font-size:15px;vertical-align:middle}.eq td:last-child{width:145px}.eq small{font-size:12px;color:var(--muted)}.eq select{padding:6px 8px;min-height:34px;font:14px var(--body);width:130px}.eq-product-link{display:inline-flex;gap:5px;font-weight:700;color:#705d40;font-size:13px;margin-left:9px}.eq-controls{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;margin:18px 0}.eq-controls label{display:flex;align-items:center;gap:8px}.eq-controls input{accent-color:#aa977a}.eq-controls select{font:16px var(--body);max-width:100%}.eq-note{display:block;margin-top:4px}.eq-group-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.pdf-inline-preview{overflow:auto;width:100%;height:65vh;border:1px solid var(--line);border-radius:8px;background:#eee}.readonly-note{padding:15px 18px;background:var(--sand13);border-radius:8px;margin:18px 0}.project-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.project-facts dt{color:var(--muted);font-size:13px}.project-facts dd{margin:4px 0;overflow-wrap:anywhere}.analysis-unit-summary{width:100%;border-collapse:collapse}.analysis-unit-summary th,.analysis-unit-summary td{padding:10px;text-align:left;border-bottom:1px solid var(--line)}.mobile-nav-toggle{display:none}
@media(max-width:1050px){.sidebar{width:236px}.workspace,.portal-workspace{margin-left:236px}.content,.portal-workspace main{padding:24px}.topbar,.portal-workspace>header{padding:0 24px}.flow-column{flex-basis:260px;min-width:260px;max-width:260px}}
@media(max-width:800px){.sidebar{transform:translateX(-100%);transition:transform .18s;width:266px}.sidebar.open{transform:translateX(0)}.workspace,.portal-workspace{margin-left:0}.mobile-nav-toggle,.menu-btn{display:inline-flex!important;align-items:center;gap:8px;border:1px solid var(--line);border-radius:6px;background:white;padding:9px;font:14px var(--body)}.content,.portal-workspace main{padding:22px 16px}.topbar,.portal-workspace>header{padding:0 16px;height:auto;min-height:70px;flex-wrap:wrap;gap:10px}.portal-project-switch{max-width:210px}.step-context{flex-direction:column;gap:10px}.project-facts{grid-template-columns:1fr}.header-right{font-size:12px;overflow-wrap:anywhere}.modal-backdrop{padding:12px}.modal{max-height:calc(100dvh - 24px)}.modal.wide{height:calc(100dvh - 24px)}.modal-body{padding:20px 16px}.eq td,.eq thead th{padding:8px}.eq td:last-child{width:110px}.eq select{width:100px}.flow-links>.btn{flex:1 1 180px}.nav-item{min-height:43px}.mobile-overlay.visible{display:block;position:fixed;inset:0;background:#34353255;z-index:55}}
@media(prefers-reduced-motion:reduce){.sidebar{transition:none}}
/* Orientation and controls: the selected page is independent of project progress. */
.nav-general,.nav-substeps{display:flex;flex-direction:column;gap:5px}.side-nav .nav-item{border:1px solid #e3ddd3;background:#faf8f5;justify-content:flex-start;color:#46483f}.side-nav .nav-item:hover:not(:disabled){border-color:#b3a187;background:#f0e9df}.side-nav .nav-item.active{border-color:#887456;background:#e7dcc9;box-shadow:inset 3px 0 #887456;color:#282c23}.side-nav .nav-item:disabled{opacity:1;color:#96968e;background:#f7f6f3;border-color:#e9e6e0}.nav-item:disabled small{color:#96968e}.nav-item:focus-visible{outline:2px solid #756145;outline-offset:2px}.nav-step.current{border-color:#bbaa90}.nav-substeps{margin:1px 0 7px 20px;padding-left:10px;border-left:1px solid #ddd3c3}.nav-substeps .nav-item{font-size:13px;min-height:35px}.nav-item small{line-height:1.3}.nav-number{font-variant-numeric:tabular-nums}
.account-identity{text-align:right;line-height:1.4;min-width:0}.account-identity strong{display:block;font-size:14px;font-weight:600;overflow-wrap:anywhere}.account-identity span{font-size:12px;color:var(--muted)}.top-actions{gap:14px}.topbar .save-state{max-width:140px;white-space:normal}.topbar .avatar{display:none}.page-header h1{font-size:30px}.page-header .eyebrow{letter-spacing:.1em}.portal-workspace .customer-panel>h1{font-size:30px;margin:8px 0 24px}.section-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 24px;border:0}.section-tabs .tab{display:flex;align-items:center;gap:10px;border:1px solid #ded5c6;border-radius:8px;background:#fff;padding:12px 16px;color:var(--ink);font:600 15px var(--body);text-decoration:none;min-height:44px}.section-tabs .tab:after{display:none}.section-tabs .tab span{font-size:12px;color:var(--muted)}.section-tabs .tab.active{background:#e7dcc9;border-color:#887456}.section-tabs .tab:focus-visible{outline:2px solid #887456;outline-offset:3px}.intake-topic[hidden]{display:none!important}.intake-topic h2{margin:0 0 18px;font-size:22px}.intake-topic>p{margin-bottom:18px}.intake-topic .customer-form{margin-top:18px}
.dashboard-toolbar{display:flex;gap:20px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-bottom:22px}.dashboard-toolbar .section-tabs{margin:0}.dashboard-toolbar>span{font-size:14px;color:var(--muted)}.dashboard-filters.flow-filters{grid-template-columns:minmax(200px,2fr) repeat(3,minmax(125px,1fr));gap:18px;margin-bottom:18px}.dashboard-table{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:10px}.dashboard-table table{width:100%;min-width:720px;border-collapse:collapse}.dashboard-table td,.dashboard-table th{padding:16px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;font-size:15px}.dashboard-table th{font-size:13px;background:#f3eee6}.dashboard-table td small{display:block;font-size:14px;color:var(--muted);margin-top:5px}.dashboard-table tbody tr:hover{background:#faf8f4}.flow-column.is-empty{flex:0 0 142px;min-width:142px;max-width:142px;background:#f8f6f2;border-style:dashed}.flow-column.is-empty header{align-items:flex-start}.flow-column.is-empty h2{font-family:var(--body);font-size:14px;overflow-wrap:normal;line-height:1.4}.flow-column.is-empty .flow-empty{font-size:12px;padding:16px 0;color:#88877f}.flow-column .flow-card:last-child{margin-bottom:0}
/* Shared label tracks keep controls aligned even when a label spans several lines. */
.form-grid,.fields{align-items:start}.form-grid>.field:not(.check),.fields>.field:not(.check),.conditional-fields>.field:not(.check){min-width:0}.field>span:first-child{line-height:1.45}.field input:not([type=checkbox]),.field select{min-height:45px;width:100%}.field>small,.field>.hint,.field>.field-error{line-height:1.45}
@supports(grid-template-rows:subgrid){.form-grid:has(>.field),.fields:has(>.field),.conditional-fields:has(>.field){row-gap:8px}.form-grid>.field:not(.check):has(>input,>select,>textarea),.fields>.field:not(.check):has(>input,>select,>textarea),.conditional-fields>.field:not(.check):has(>input,>select,>textarea){display:grid;grid-row:span 3;grid-template-rows:subgrid;align-items:start;padding-bottom:14px;gap:8px}.field>input,.field>select,.field>textarea{grid-row:2}.field>small,.field>.hint,.field>.field-error{grid-row:3}.field>span:first-child{align-self:end}}
.contract-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;list-style:none;counter-reset:contract;padding:0;margin:24px 0}.contract-steps>li{counter-increment:contract;border:1px solid var(--line);border-radius:9px;padding:18px;background:#faf8f5}.contract-steps>li:before{content:counter(contract,decimal-leading-zero);display:block;color:#887456;font-size:13px;margin-bottom:10px}.contract-steps strong{display:block;font-size:17px}.contract-steps p{font-size:15px;margin:8px 0 0}.contract-upload{border:1px solid #c4b498;border-radius:10px;background:#faf7f2;padding:22px;margin-top:24px}.contract-upload .field{margin:18px 0}.contract-upload .check{display:flex;gap:8px;align-items:flex-start;font-size:15px}.contract-upload button{margin-top:16px}.signature-status{border-left:4px solid #98805c;background:#f3eee6;padding:18px 22px;margin:22px 0}.signature-status p{margin-top:8px}.contract-preview-dialog{width:min(1080px,94vw);height:90dvh;max-width:none;border:1px solid var(--line);border-radius:12px;padding:20px;background:#f6f3ee}.contract-preview-dialog::backdrop{background:#2228}.contract-preview-dialog header{position:static;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 0 16px;background:transparent}.contract-preview-pages{height:calc(100% - 70px);overflow:auto}.contract-preview-pages canvas{display:block;max-width:100%;height:auto;margin:0 auto 18px;background:white;box-shadow:0 2px 12px #0001}.signature-review-check{display:flex;gap:10px;align-items:flex-start;margin:20px 0}.signature-review-check input{margin-top:5px}
@media(max-width:1100px){.dashboard-filters.flow-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.top-actions .save-state{display:none}.project-switch select{max-width:200px}}
@media(max-width:800px){.account-identity strong{font-size:12px}.account-identity span{font-size:11px}.top-actions{margin-left:auto}.topbar{padding-block:12px}.topbar-logo{display:none!important}.contract-steps{grid-template-columns:1fr}.section-tabs .tab{flex:1 1 180px;text-align:left}.view-toggle .tab{flex:0 1 auto}.dashboard-filters.flow-filters{grid-template-columns:1fr 1fr}.flow-column.is-empty{flex-basis:130px;min-width:130px;max-width:130px}.portal-workspace .customer-panel>h1,.page-header h1{font-size:26px}.contract-preview-dialog{padding:14px}.contract-preview-dialog h2{font-size:18px}.signature-review-check{font-size:14px}}
@media(max-width:520px){.dashboard-filters.flow-filters{grid-template-columns:1fr}.account-identity{max-width:180px}.top-actions .btn[data-signout]{display:none}}
.field>.field-meta{grid-row:3;display:flex;flex-direction:column;gap:5px;font-weight:400;font-size:13px;line-height:1.45}.field-meta small{font-size:13px}.form-grid>.check,.fields>.check{align-self:center}.field>span:first-child:only-child{align-self:auto}
@supports not(grid-template-rows:subgrid){.form-grid>.field>span:first-child,.fields>.field>span:first-child{min-height:2.9em;display:flex;align-items:flex-end}}
