@font-face{font-family:Raleway;src:url('/vendor/pdfmake/Raleway-Regular.ttf') format('truetype');font-weight:400 600;font-display:swap}
@font-face{font-family:Raleway;src:url('/vendor/pdfmake/Raleway-Bold.ttf') format('truetype');font-weight:650 900;font-display:swap}
body{font-size:18px;line-height:1.65}button,.btn,.button,.portal-workspace button,.auth-actions button{font-size:16px;line-height:1.45;min-height:44px}input,select,textarea{font-size:17px}.small,small,.field small,.auth-help,.auth-card>p,.remember,.auth-message,.intake-finish p,.account-identity span,.step-context small{font-size:15px;line-height:1.6}.field>span,.field label,.field,.form-subtitle{font-size:16px}.field input,.field select,.field textarea{font-size:17px}.auth-intro>p,.auth-note p,.page-header p,.step-context p{font-size:18px;line-height:1.7}.auth-intro>p,.auth-note{max-width:460px}.auth-intro h1{font-size:clamp(30px,3vw,42px)}.header-right{font-size:15px}body>header #identity{font-family:var(--head);font-size:15px;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--line);border-radius:6px;background:var(--paper);padding:9px 14px}.side-brand{margin:0 12px 20px}.side-brand img{display:block;margin-left:-7px}.nav-item{font-size:16px}.nav-item small,.side-subtitle,.nav-section-title{font-size:12px}.nav-substeps .nav-item{font-size:14px}.account-identity strong{font-size:15px}.field{align-self:stretch}.form-grid,.fields{align-items:stretch}.form-grid>.field,.fields>.field{display:flex;flex-direction:column}.form-grid>.field>span:first-child,.fields>.field>span:first-child{min-height:3.1em;display:flex;align-items:flex-end;padding-bottom:8px}.readonly-field{position:relative;cursor:help}.readonly-field input,.readonly-field textarea,.readonly-field select{pointer-events:none;background:#edece8!important;color:#72746d!important;opacity:1!important}.readonly-field:focus-visible{outline:2px solid var(--focus);outline-offset:4px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.nord-umlaut{display:inline;white-space:nowrap}.nord-vowel{display:inline-block;position:relative;font:inherit;line-height:inherit}.nord-vowel::before,.nord-vowel::after{content:'';position:absolute;width:.09em;height:.09em;background:currentColor;top:.05em;border-radius:50%;left:27%}.nord-vowel::after{left:auto;right:27%}
.busy-dialog{width:min(460px,calc(100vw - 40px));padding:32px;border:1px solid var(--line);border-radius:14px;background:var(--paper);color:var(--ink);box-shadow:0 20px 80px #24231b33;font:18px/1.6 var(--body)}.busy-dialog h2{font:25px/1.4 var(--head)}.busy-dialog::backdrop{background:#34353266;backdrop-filter:blur(2px)}.busy-dialog .bheaven-load-track{height:6px;margin:24px 0}.busy-dialog .small{color:var(--muted)}.object-progress{display:grid;gap:16px;margin:20px 0}.object-progress article{padding:20px;border:1px solid #dacebd;border-radius:10px;background:#faf8f4}.object-progress header{display:flex;position:static;background:transparent;min-height:0;padding:0;justify-content:space-between;align-items:center;gap:16px;border:0}.object-progress h3{font-family:var(--body);font-size:20px;margin:0}.object-progress strong{font-size:28px;font-variant-numeric:tabular-nums;white-space:nowrap}.object-progress progress{appearance:none;width:100%;height:10px;border:0;border-radius:8px;overflow:hidden;background:#e7e1d6;display:block;margin:12px 0}.object-progress progress::-webkit-progress-bar{background:#e7e1d6}.object-progress progress::-webkit-progress-value{background:#897559;border-radius:8px}.object-progress progress::-moz-progress-bar{background:#897559}.object-progress p{font-size:15px;margin:0;color:var(--muted)}.project-progress-compact{display:flex;gap:12px;align-items:center;font-size:15px}.project-progress-compact progress{width:110px;accent-color:#897559}.legal-footer{display:flex;flex-wrap:wrap;gap:12px 24px;font:14px/1.6 var(--body);padding:24px 32px;border-top:1px solid var(--line);margin-top:24px;color:var(--muted);letter-spacing:0}.legal-footer a{color:inherit;text-underline-offset:4px}.legal-footer button{font:inherit;padding:0;min-height:0;border:0;background:transparent;text-decoration:underline;color:inherit;cursor:pointer}.workspace~.legal-footer{margin-left:258px}.legal-page{max-width:850px;margin:0 auto;padding:36px 24px 60px}.legal-page h1{font:34px/1.4 var(--head)}.legal-page h2{font:24px/1.4 var(--head);margin-top:32px}.legal-page a{color:#66523a}.legal-page section{margin:24px 0}.consent-panel{font-size:16px;line-height:1.65;max-width:720px;max-height:85dvh;overflow:auto}.consent-panel strong{font-size:18px}.consent-panel button{font-size:16px;min-height:44px}.consent-choice{display:flex;align-items:flex-start;gap:12px;margin:12px 0}.consent-choice input{width:20px;height:20px;flex:0 0 20px;margin-top:4px;accent-color:#897559}.consent-choice small{display:block}.consent-actions{gap:12px}.consent-actions button{flex:1 1 170px;background:#f7f4f0;border:1px solid #ac9e86}.privacy-toggle{position:static;font-size:14px}.share-result input{width:100%;font-size:16px;padding:12px;border:1px solid var(--line);border-radius:7px}.share-list{margin-top:24px}.share-list li{padding:12px 0;border-bottom:1px solid var(--line)}
@media(max-width:800px){.legal-footer{padding:24px 16px}.workspace~.legal-footer{margin-left:0}.auth-layout{gap:26px}.auth-card{padding:24px}.form-grid>.field>span:first-child,.fields>.field>span:first-child{min-height:0}.busy-dialog{padding:24px}.header-right{font-size:14px}.object-progress header{flex-wrap:nowrap}.nav-substeps .nav-item{font-size:14px}}
@media print{.legal-footer,.busy-dialog,.consent-panel{display:none!important}}

body:has(.app-shell)>.legal-footer{margin-left:258px}h1,h2,h3,.side-title{text-transform:uppercase}.contract-preview-dialog h2{text-transform:none}@media(max-width:800px){body:has(.app-shell)>.legal-footer{margin-left:0}}

/* Compact phone layout. Document canvases retain the original PDF typography. */
@media screen and (max-width:800px), screen and (max-width:1000px) and (max-height:500px){
  body{font-size:16px;line-height:1.5;-webkit-text-size-adjust:100%;text-size-adjust:100%}
  button,.btn,.button,.portal-workspace button,.auth-actions button{font-size:15px;line-height:1.35;min-height:44px;padding:10px 12px}
  .btn.sm,.btn.link,.page-header .btn,.flow-links .btn,.equipment-row .item-status button,.filter,.viewer-toolbar .filter{font-size:15px;line-height:1.35;min-height:44px;padding:10px 12px}
  input,select,textarea,.field input,.field select,.field textarea,.project-switch select,.portal-project-switch,.eq select{font-size:16px;min-height:44px;max-width:100%}
  input:not([type=checkbox]):not([type=radio]),select,textarea{padding:10px 11px}
  textarea{line-height:1.5;min-height:96px}
  .workspace,.portal-workspace{margin-left:0}.workspace~.legal-footer,body:has(.app-shell)>.legal-footer{margin-left:0}
  .mobile-nav-toggle,.menu-btn{display:inline-flex!important}.topbar-logo{display:none!important}
  .content,.portal-workspace main,body>main{padding:14px 12px 24px}
  h1,.page-header h1,.portal-workspace .customer-panel>h1{font-size:24px;line-height:1.25;margin:6px 0 14px}
  .portal-workspace h1,.portal-workspace .card h2,.portal-workspace .card h3,.page-header h1,.card-head h2,.unit-editor-header h3,.flow-column h2,.flow-card h3,.sign-dialog h2,.auth-intro h1,.auth-card h2,.field>span{overflow-wrap:anywhere;hyphens:auto}
  h2,.intake-topic h2{font-size:20px;line-height:1.35;margin-bottom:12px}
  p{margin:8px 0 12px;overflow-wrap:anywhere}
  .small,small,.field small,.auth-help,.auth-card>p,.remember,.auth-message,.intake-finish p,.account-identity span,.step-context small,.form-state,.field-meta small{font-size:13px;line-height:1.45}
  .tiny,.eyebrow,.page-header .eyebrow,.badge,.pill{font-size:12px;line-height:1.4;letter-spacing:.04em}
  .field,.field>span,.field label,.form-subtitle,.unit-editor .field>span{font-size:15px;line-height:1.4}
  .portal-workspace>header{display:grid;grid-template-columns:auto minmax(0,1fr);height:auto;min-height:0;gap:4px 10px;padding:8px 12px}
  .portal-workspace>header .mobile-nav-toggle{grid-column:1;grid-row:1;white-space:nowrap}
  .portal-project-switch{grid-column:2;grid-row:1;width:100%;max-width:none;min-width:0;text-overflow:ellipsis}
  .portal-workspace>header>.header-right,.portal-workspace>header>#identity{grid-column:1/-1;min-width:0;width:100%;margin:0;justify-content:flex-end}
  .portal-workspace>header .header-right #identity{max-width:100%;font-size:12px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .portal-workspace>header .header-right [data-signout]{display:none}
  body>header{min-height:60px;padding:10px 12px;gap:10px}
  body>header .brand img{height:48px;width:auto}
  body>header #identity{font-size:12px;line-height:1.35;letter-spacing:.04em;padding:6px 8px;max-width:none;white-space:nowrap}
  .topbar{display:grid;grid-template-columns:44px minmax(0,1fr);gap:4px 10px;padding:8px 12px;min-height:0;height:auto}
  .topbar .menu-btn{width:44px;height:44px;justify-content:center}
  .project-switch,.project-switch>div{min-width:0;width:100%}
  .project-switch select{width:100%;max-width:100%;text-overflow:ellipsis}
  .project-switch small{display:none}
  .top-actions{grid-column:1/-1;margin:0;justify-content:flex-end}
  .account-identity{max-width:100%;line-height:1.3;display:flex;gap:6px;align-items:baseline;min-width:0}
  .account-identity strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .account-identity span{font-size:12px;white-space:nowrap}
  .top-actions [data-signout]{display:none}
  .page-header{align-items:start;flex-wrap:wrap;gap:12px;margin-bottom:14px}
  .page-header p,.step-context p,.auth-intro>p{font-size:16px;line-height:1.45;margin:6px 0 0}
  .step-context{padding:12px;gap:8px;margin-bottom:14px}
  .step-context strong{font-size:16px;line-height:1.35}
  .project-progress-compact{font-size:13px;gap:8px}
  .project-progress-compact progress{width:80px}
  .object-progress{gap:12px;margin:14px 0}
  .object-progress article{padding:12px}
  .object-progress h3{font-size:17px;line-height:1.35}
  .object-progress strong{font-size:22px}
  .object-progress progress{height:8px;margin:8px 0}
  .object-progress p{font-size:13px;line-height:1.4}
  .card{margin:14px 0}
  .portal-workspace .card{margin-top:14px;padding:14px}
  .card-pad,.card-head,.card-footer,.unit-editor,.contract-upload,.signature-status,.readonly-note,.flow-report{padding:14px}
  .card-head{gap:10px}.card-head h2,.unit-editor-header h3{font-size:17px}
  .grid,.grid2,.grid2.equal,.fields,.form-grid,.conditional-fields,.workflow-fields{grid-template-columns:minmax(0,1fr);gap:12px}
  .portal-workspace .fields,.portal-workspace .form-grid,.form-grid:has(>.field),.fields:has(>.field),.conditional-fields:has(>.field){gap:12px}
  .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:flex;flex-direction:column;grid-row:auto;grid-template-rows:none;padding-bottom:0;gap:5px}
  .form-grid>.field>span:first-child,.fields>.field>span:first-child,.conditional-fields>.field>span:first-child{min-height:0;padding-bottom:0;display:block;align-self:auto}
  .unit-editor .form-grid{grid-template-columns:minmax(0,1fr);gap:12px}
  .form-subtitle{padding-top:12px}.intake-unit{padding:14px 0}
  .portal-workspace details{margin:14px 0;padding:12px 0}
  .portal-workspace summary,summary{font-size:16px;line-height:1.4;min-height:44px;padding:10px 0}
  .section-tabs{gap:8px;margin-bottom:14px}
  .section-tabs .tab{flex:1 1 130px;min-width:0;padding:10px;font-size:14px;gap:6px;line-height:1.35}
  .section-tabs .tab span{font-size:12px}.view-toggle .tab{flex:1 1 auto}
  .actions,.flow-links,.workflow-actions{gap:8px;margin-top:12px}
  .flow-links>.btn{flex:1 1 130px}
  .intake-finish{padding:14px;gap:12px;margin-top:14px}
  .contract-steps{gap:10px;margin:14px 0}.contract-steps>li{padding:12px}.contract-steps>li:before{margin-bottom:5px}
  .contract-upload,.signature-status,.readonly-note{margin:12px 0}
  .readonly-note,.notice{font-size:14px;line-height:1.45;padding:12px}
  .auth-layout{grid-template-columns:minmax(0,1fr);gap:16px;margin:0 auto;max-width:440px}
  .auth-intro{padding:0}.auth-intro h1{font-size:26px;margin:8px 0}.auth-note{display:none}
  .auth-card{padding:16px}.auth-card h2{font-size:22px}.auth-card>p{margin-bottom:16px}
  .auth-card .field+.field,.remember,.auth-actions{margin-top:12px}
  .auth-help{margin-top:14px;padding-top:14px}
  .portal-footer,.portal-workspace .portal-footer{padding:0 12px 20px;margin:0}
  .legal-footer{padding:14px 12px;gap:6px 16px;margin-top:14px;font-size:13px;align-items:center}
  .legal-footer a,.legal-footer button{display:inline-flex;align-items:center;min-height:44px}
  .legal-page{padding:20px 14px}.legal-page h1{font-size:26px}.legal-page h2{font-size:21px;margin-top:24px}
  .sidebar{width:min(312px,88vw);padding:16px 12px max(16px,env(safe-area-inset-bottom));height:100vh;height:100dvh;overscroll-behavior:contain;transform:translateX(-100%)}
  .sidebar.open{transform:translateX(0)}
  .side-brand{padding-bottom:0;margin-bottom:12px}.side-brand .primary-logo{width:108px}
  .side-subtitle{margin-bottom:14px}.nav-section-title{margin-top:14px}
  .side-nav .nav-item,.nav-substeps .nav-item{min-height:44px;font-size:15px;padding:8px 10px}
  .nav-item small{font-size:12px}.mobile-nav-close{width:100%;margin-bottom:12px}
  body.mobile-nav-open{overflow:hidden}
  .modal-backdrop{padding:8px}.modal,.modal.wide{max-height:calc(100dvh - 16px)}
  .modal.wide{height:calc(100dvh - 16px)}
  .modal-head,.modal-body,.modal-foot{padding:12px}.modal-head h2{font-size:19px}
  .modal-foot{padding-bottom:max(12px,env(safe-area-inset-bottom));gap:8px}
  .modal-foot .btn{font-size:15px}.icon-btn{width:44px;height:44px;min-width:44px}
  .completion-dialog,.busy-dialog{padding:16px;width:calc(100% - 24px);max-height:calc(100dvh - 24px);font-size:16px;line-height:1.5}
  .completion-dialog h2,.busy-dialog h2{font-size:22px;margin:8px 0 14px}
  .consent-panel{padding:16px;max-height:calc(100dvh - 24px);font-size:14px;line-height:1.45}
  .consent-panel strong{font-size:16px}.consent-actions{gap:8px}.consent-actions button{flex-basis:140px;font-size:14px}
  .eq-scroll,.table,.table-wrap,.workflow-table,.parameter-table,.dashboard-table{max-width:100%;overscroll-behavior-x:contain}
  .eq td,.eq thead th{font-size:14px;padding:8px}.eq select{width:116px}.eq small,.eq-product-link{font-size:13px}
  .eq-controls{gap:10px;margin:12px 0}.eq-group-label{font-size:12px}
  .flow-summary{padding:12px 0;margin-bottom:14px;gap:8px 16px;font-size:14px}
  .flow-card-open>small,.flow-card span,.flow-card strong,.flow-card-task{font-size:13px;line-height:1.4}
  .flow-column h2{font-size:16px}.flow-column{max-width:calc(100vw - 24px)}
  .dashboard-filters.flow-filters{gap:12px;margin-bottom:14px}
  .dashboard-table td,.dashboard-table th{padding:12px;font-size:14px}
  .notice,.notice p,.workflow-note,.form-state{font-size:14px;line-height:1.45}
  .document-row{padding:12px;gap:10px}.doc-info{min-width:0;flex:1 1 180px}
  .doc-info strong,.data-list dd,.workflow-row h3{font-size:15px}.doc-info small,.doc-warning,.workflow-row p{font-size:13px}
  .workflow-row{padding:12px}.footer{font-size:12px;gap:10px;flex-wrap:wrap;margin-top:20px}
  .viewer-toolbar .filter,.viewer-toolbar input[type=number],.viewer-toolbar .search{font-size:16px;min-height:44px}
  .viewer-native-hint,.viewer-toolbar .viewer-meta{font-size:13px}.viewer-body{padding:8px}
  #status,#toast{font-size:14px;line-height:1.4}
}
.mobile-nav-close{display:none}
@media screen and (max-width:800px), screen and (max-width:1000px) and (max-height:500px){.mobile-nav-close{display:flex}.mobile-overlay.visible{display:block;position:fixed;inset:0;background:#34353255;z-index:55}}
@media screen and (max-width:1000px) and (max-height:500px){
  .portal-workspace>header,.topbar{position:static}
  .contract-preview-dialog{height:calc(100dvh - 16px)}
}

/* Portal type scale: body/controls 16, supporting text 14, headings 28/22/18. */
.analysis-plan{display:flex;gap:12px;list-style-position:inside;padding:12px 0;margin:0 0 18px;flex-wrap:wrap;font-size:14px}.analysis-plan li{background:#eee8dd;border-radius:7px;padding:10px 14px}.analysis-selection{border:1px solid var(--line);border-radius:10px;padding:16px;margin:0 0 18px;background:#fff}.analysis-selection legend{font-size:18px;font-weight:600}.analysis-selection .check{padding:6px 0}.analysis-common{padding:16px;border:1px solid var(--line);border-radius:10px;margin-bottom:18px}.analysis-charts{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(210px,1fr);gap:24px;margin:22px 0}.analysis-charts figure{margin:0;min-width:0}.analysis-charts figcaption{font-size:18px;font-weight:600;margin-bottom:16px}.analysis-bar-row{margin:12px 0}.analysis-bar-row>div:first-child{display:flex;justify-content:space-between;gap:12px;font-size:14px;margin-bottom:5px}.analysis-bar-row strong{white-space:nowrap}.analysis-bar-track{background:#eee9df;height:10px;border-radius:5px;overflow:hidden}.analysis-bar-track>span{display:block;background:#9c896c;height:100%;border-radius:5px}.analysis-bar-track>span.negative{background:#a34e40}.analysis-donut{width:176px;height:176px;border-radius:50%;background:conic-gradient(#9c896c var(--occupied),#eee9df 0);display:grid;place-items:center;margin:18px auto;position:relative}.analysis-donut:before{content:'';position:absolute;inset:20px;border-radius:50%;background:white}.analysis-donut strong{position:relative;font-size:28px}.analysis-charts figure:last-child>p{text-align:center;font-size:14px}.project-context{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:16px;margin:0 0 16px}
.analysis-public{max-width:1120px;margin:auto;padding:24px}.analysis-public>h1{font-size:28px}body:has(.analysis-public)>header .brand img{height:60px;width:auto}
@media(max-width:650px){.analysis-charts{grid-template-columns:1fr;gap:18px}.analysis-donut{width:148px;height:148px}.analysis-plan{display:grid;grid-template-columns:1fr;gap:6px}.analysis-selection{padding:12px}}
@media screen{
 body{font-size:16px;line-height:1.5}
 .small,small,.tiny,.field small,.field-meta,.field-meta small,.flow-card span,.flow-card strong,.flow-card-open>small,.flow-card-task,.flow-empty,.flow-column.is-empty .flow-empty,.nav-item small,.account-identity span,.form-state,.notice p,.data-list dt{font-size:14px;line-height:1.45}
 .field,.field>span,.field label,.unit-editor .field>span,.form-subtitle{font-size:16px;line-height:1.4}
 .field>span:first-child{align-self:stretch;text-align:left}
 .eyebrow,.side-subtitle,.nav-section-title,.project-switch small,.save-state,.section-tabs .tab span,.project-progress-compact,.project-facts dt{font-size:14px;line-height:1.4;letter-spacing:.04em}
 .page-header h1,.portal-workspace .customer-panel>h1{font-size:28px}
 .content h2,.portal-workspace .card h2{font-size:22px;line-height:1.3}
 .form-section h3,.unit-editor h3,.card-head h2,.data-guide strong{font-size:18px;line-height:1.35}
 .form-section h3{margin-bottom:14px}.form-section+.form-section{margin-top:22px}
 .page-header p,.step-context p{font-size:16px;line-height:1.5}
 .btn,.btn.sm,.btn.link,.flow-links .btn,button,.portal-workspace button{font-size:16px;line-height:1.35;min-height:44px}
 .field input:not([type=checkbox]):not([type=radio]):not([type=file]),.field select,.dashboard-filters input,.dashboard-filters select{height:46px;min-height:46px;font-size:16px;line-height:1.35;padding:10px 12px;width:100%;box-sizing:border-box}
 .field textarea{font-size:16px;line-height:1.5}
 .form-grid,.fields,.conditional-fields,.unit-editor .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px;align-items:start}
 .form-grid:has(>.field),.fields:has(>.field),.conditional-fields:has(>.field){row-gap:14px}
 .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:flex;flex-direction:column;grid-row:auto;grid-template-rows:none;padding-bottom:0;gap:6px}
 .form-grid>.field>span:first-child,.fields>.field>span:first-child,.conditional-fields>.field>span:first-child{padding:0;min-height:0;display:block;align-self:auto}
 .field.full,.conditional-fields.full,.form-subtitle,.unit-editor .field:first-child{grid-column:1/-1}
 .unit-editor .form-grid>.field:first-child:not(.full){grid-column:auto}
 .form-grid>.owner-add-row{align-items:flex-start}
 .check,.check.field,.check-row{display:flex!important;flex-direction:row!important;gap:10px;align-items:flex-start;font-size:16px;line-height:1.45;min-height:36px}
 .check>input[type=checkbox],.check-row>input[type=checkbox]{width:20px;height:20px;min-height:20px;flex:0 0 20px;padding:0;margin:2px 0 0}
 .check>span,.check-row>span{display:block;min-width:0;min-height:0;padding:0;flex:1}
 .data-layout{display:flex;flex-direction:column;gap:16px}
 .data-layout>aside{order:-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,.6fr);gap:16px}
 .data-layout>aside:has(>.data-guide:only-child){grid-template-columns:1fr}
 .data-guide{padding:12px 16px;display:grid;grid-template-columns:220px minmax(0,1fr);gap:14px;align-items:center}.data-guide p{font-size:14px;margin:0}
 .flow-column.is-empty{flex-basis:190px;min-width:190px;max-width:190px}
 .flow-column>header{display:block;position:relative;padding:4px 2px 14px}
 .flow-column h2,.flow-column.is-empty h2{font-family:var(--body);font-size:16px;line-height:1.4;min-width:0;overflow-wrap:anywhere;word-break:normal}
 .flow-column>header h2>.flow-phase-number{display:block;font-size:14px;font-variant-numeric:tabular-nums;letter-spacing:.04em;margin-bottom:4px;color:var(--muted);background:transparent;border-radius:0;padding:0 34px 0 0}
 .flow-column>header>span{position:absolute;top:4px;right:0;font-size:14px;line-height:1.4;min-width:26px;text-align:center}
 .dashboard-filters.flow-filters{align-items:end;gap:14px 18px}
 .flow-note time,.flow-note small{white-space:normal;overflow-wrap:anywhere;display:block;font-size:14px;margin:6px 0}
 .action-feedback{padding:10px 12px;margin:8px 0 12px;border-left:3px solid #897559;background:#f4f0e9;font-size:16px;line-height:1.45;overflow-wrap:anywhere}
 .action-feedback[data-state=pending]{border-color:#6e7e6a}
}
@media screen and (max-width:800px), screen and (max-width:1000px) and (max-height:500px){
 .form-grid,.fields,.conditional-fields,.unit-editor .form-grid{grid-template-columns:minmax(0,1fr);gap:12px}
 .data-layout>aside{grid-template-columns:1fr}.page-header h1,.portal-workspace .customer-panel>h1{font-size:24px}
 .data-guide{grid-template-columns:1fr;gap:6px}
 .content h2,.portal-workspace .card h2{font-size:20px}.form-section h3,.unit-editor h3{font-size:18px}
}
/* Nested conditional rows follow the same two-column rhythm as their parent. */
.unit-editor label.field:first-child:not(.full){grid-column:auto}

.analysis-public .bheaven-report .report-brand{display:none}

.analysis-public>.actions{margin-bottom:16px;gap:10px}
.analysis-public h1,.analysis-public h2{overflow-wrap:anywhere}
.analysis-public .actions .button,.analysis-public .actions button{font-size:16px;min-height:46px}
@media(max-width:650px){.analysis-public{padding:16px}.analysis-public>h1{font-size:24px}.analysis-public .bheaven-report h2{font-size:22px}.analysis-public .actions>*{width:100%;text-align:center;white-space:normal;line-height:1.4}}

.data-layout>aside{grid-template-columns:1fr;gap:10px}.data-review{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px}.data-review h3{margin:0 0 4px}.data-review p{margin:0}.data-review .actions{flex-wrap:wrap;flex-shrink:0}
@media(max-width:650px){.data-review{display:block}.data-review .actions{margin-top:10px}.legal-footer{font-size:14px}}

.conditional-fields.single:not([hidden]){display:contents}.conditional-fields[hidden]{display:none!important}
/* The three operational steps share one status and responsibility pattern. */
.onboarding-guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;list-style:none;padding:0;margin:18px 0}
.onboarding-guide li{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:8px;border:1px solid var(--line);border-radius:8px;padding:16px;background:var(--paper,#faf8f5)}
.onboarding-guide strong{font-size:18px;line-height:1.4;overflow-wrap:anywhere}
.onboarding-guide .guide-status{font-size:14px;line-height:1.4;padding:3px 8px;border-radius:4px;background:#e9e2d7}
.onboarding-guide .done .guide-status{background:#dce9dd;color:#28543b}
.onboarding-guide p{font-size:16px;line-height:1.5;margin:0}
.onboarding-guide small{font-size:14px;line-height:1.4;margin-top:auto}
.onboarding-guide button{margin-top:4px;max-width:100%;white-space:normal}
[id^="unit-"]{scroll-margin-top:110px}
@media(max-width:1000px){.onboarding-guide{grid-template-columns:1fr}.onboarding-guide li{padding:14px;gap:6px}}

.onboarding-summary{display:flex;justify-content:space-between;align-items:baseline;gap:14px}.onboarding-summary h2{margin:0}.onboarding-summary>strong{font-size:22px;white-space:nowrap}
@media(max-width:800px){.onboarding-guide li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:6px 10px}.onboarding-guide strong{font-size:16px}.onboarding-guide p,.onboarding-guide small,.onboarding-guide button{grid-column:1/-1}.onboarding-guide p{font-size:16px}.onboarding-guide .guide-status{max-width:130px;overflow-wrap:anywhere}.onboarding-guide small{margin:0}.onboarding-guide button{justify-self:start}}

.actions>[hidden]{display:none!important}

/* Text must stay within every control, including long German words and zoomed text. */
button,.btn,.button,.nav-item{box-sizing:border-box;min-width:0;max-width:100%;height:auto;white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal;hyphens:auto;flex-shrink:1}
button>span,.btn>span,.button>span{min-width:0;max-width:100%;overflow-wrap:anywhere;white-space:normal}
button svg,.btn svg,.button svg{flex-shrink:0}
.side-nav .nav-step{display:flex;align-items:flex-start;width:100%;gap:10px;text-align:left}
.side-nav .nav-step>span:nth-child(2){flex:1;min-width:0;overflow-wrap:anywhere;white-space:normal}
.side-nav .nav-number{flex:0 0 26px}.side-nav .nav-lock{flex:0 0 10px;margin-left:0}
.step-context>div,.workflow-actions>*,.actions>*{min-width:0;max-width:100%}
.step-context .btn,.step-context button{flex-shrink:1}
.step-locked{border-left:4px solid #9c896c;background:#f4efe7;padding:18px 22px;margin:18px 0 24px;border-radius:8px}
.step-locked strong{display:block;font-size:20px}.step-locked p{margin:6px 0 12px}

.step-locked-screen{display:flex;flex-direction:column;align-items:center;text-align:center;padding:clamp(28px,6vw,70px) clamp(18px,4vw,48px);border:1px solid var(--line);border-radius:14px;background:var(--white);margin:20px 0;gap:14px}
.step-lock-icon{width:38px;height:46px;color:#aa9b82;margin-bottom:8px}.step-locked-screen h2{font:700 clamp(22px,3vw,30px)/1.3 var(--body);letter-spacing:0;text-transform:none;margin:0;max-width:760px}.step-locked-screen>p{max-width:660px;margin:0;font-size:18px}.locked-next{max-width:650px;margin-top:12px}.locked-next>strong{font-size:18px}.locked-next>p{font-size:17px;line-height:1.5;margin:8px 0 20px}.locked-next .button{font-size:18px;padding:14px 22px}
/* Match the login typography across the editable portal, never the contract renderer. */
:root{--portal-copy:19px;--portal-help:17px;--portal-control:19px}
.portal-workspace,#app{font-family:var(--body);font-size:var(--portal-copy);line-height:1.55}
.portal-workspace .page-head h1,#app .page-header h1,.portal-workspace #portal>h1{font-family:var(--head);font-size:clamp(28px,4vw,38px);line-height:1.2;font-weight:500}
.portal-workspace .card h2,#app .card h2{font-family:var(--head);font-size:28px;line-height:1.3;font-weight:500}
.portal-workspace .card>p,#app .page-header p,#app .card>p,#app .field,.portal-workspace .field,#app .form-grid .field>span,.portal-workspace .fields .field>span{font-size:var(--portal-copy);line-height:1.55}
#app .field input,#app .field select,#app .field textarea,.portal-workspace .field input,.portal-workspace .field select,.portal-workspace .field textarea{font:400 var(--portal-control)/1.45 var(--body);min-height:50px}
#app .small,#app .field small,.portal-workspace .small,.portal-workspace .field small,.portal-workspace .notice,#app .notice{font-size:var(--portal-help);line-height:1.5}
#app .btn,.portal-workspace button,.portal-workspace .button{font:600 18px/1.45 var(--body);min-height:44px}
.sidebar .side-brand{margin-left:5px}
.sidebar .side-brand img.primary-logo{margin-left:-7px}
.sidebar .nav-item{font:500 17px/1.35 var(--body)}
.sidebar .nav-substeps .nav-item{font-size:16px}
.sidebar .nav-item small,.sidebar .nav-section-title,.sidebar .side-subtitle{font-size:13px}
.project-table [data-action="flow-open"]{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:10px 18px;border:1px solid #aaa69b;border-radius:8px;background:white;white-space:nowrap;text-decoration:none;font:600 17px/1.4 var(--body);min-height:44px}
.project-table [data-action="flow-open"]:hover{background:var(--sand35);border-color:var(--ink)}
.project-table [data-action="flow-open"] svg{width:17px;height:17px;flex-shrink:0}

.side-nav .nav-item[data-step-locked="true"]{opacity:.42;background:transparent!important;color:var(--muted);cursor:not-allowed;border-color:transparent;box-shadow:none}
.side-nav .nav-item[data-step-locked="true"] .nav-number{background:#eeece7;color:#92918b}
.sources-fold{padding:16px 22px}.sources-fold>summary{font:600 18px/1.45 var(--body);cursor:pointer}.sources-fold[open]>summary{margin-bottom:18px}
.source-add{margin:16px 0}.source-add>summary{font-weight:600;cursor:pointer;margin-bottom:12px}
.source-preview{width:min(1000px,calc(100vw - 32px));max-height:94vh;border:1px solid var(--line);border-radius:12px;padding:20px;background:white}.source-preview::backdrop{background:#0008}.source-preview h2{font-size:22px;overflow-wrap:anywhere}.source-preview iframe{display:block;width:100%;height:70vh;border:1px solid var(--line);margin-top:14px}.source-preview img{display:block;max-width:100%;max-height:70vh;margin:14px auto}.source-preview pre{max-height:65vh;overflow:auto;white-space:pre-wrap}.source-preview .actions{justify-content:flex-end}
