.portal-workspace { max-width: 1360px; padding-bottom: 1px; }
.portal-header-inner { max-width: 1360px; }
.portal-header-inner { gap: 22px; }
.portal-header-inner .product-nav { margin-left: auto; gap: 24px; }
.portal-header-inner .local-label { margin-left: 12px; }
.portal-end-label { border-left: 1px solid var(--line); padding-left: 20px; font-size: 13px; color: var(--muted); white-space: nowrap; }
.portal-header-inner .product-nav a { gap: 8px; font-size: 13px; }
#portal:focus { outline: none; }
.portal-login { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(330px,.85fr); gap: 9%; align-items: center; padding: 78px 0 90px; min-height: 630px; }
.portal-login h1 { font-size: clamp(34px,4.3vw,55px); letter-spacing: -1.9px; line-height: 1.4; }
.portal-login .intro { max-width: 28em; margin-top: 21px; line-height: 1.95; }
.portal-login-steps { display: flex; flex-wrap: wrap; gap: 15px 23px; margin: 35px 0 0; padding: 0; list-style: none; font-size: 13px; }
.portal-login-steps span { display: block; color: #8a9c88; font-size: 11px; margin-bottom: 5px; }
.portal-login-card { border: 1px solid var(--line); border-top: 3px solid var(--green); border-radius: 5px; background: var(--surface); padding: 31px 31px 24px; }
.portal-login-card h2 { font-size: 25px; margin-bottom: 26px; }
.portal-login-card .field { margin-bottom: 21px; }
.portal-login-card .primary { width: 100%; justify-content: space-between; }
.portal-demo-entry { margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--line); }
.portal-demo-entry p { font-size: 13px; margin-bottom: 9px; }
.portal-demo-entry small { display: block; color: var(--muted); margin-top: 9px; font-size: 12px; }
.portal-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 9px 12px; }
.portal-enterprise-bar { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 33px 0 24px; border-bottom: 1px solid var(--line); }
.portal-enterprise-bar h1 { font-size: 26px; letter-spacing: -.5px; }
.portal-enterprise-bar .eyebrow { margin-bottom: 5px; }
.portal-title-line { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.portal-title-line .badge { align-self: center; }
.portal-enterprise-bar .helper { font-size: 12px; color: var(--muted); margin-top: 5px; }
.portal-global-status { margin-top: 8px; margin-bottom: 10px; }
.portal-global-status:empty { min-height: 0; margin: 0; }
.portal-home-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin: 34px 0 24px; }
.portal-home-heading h2 { font-size: 27px; letter-spacing: -.6px; }
.portal-home-actions { display: grid; grid-template-columns: 1.15fr 1fr 1fr; gap: 16px; }
.portal-home-actions > button { border: 1px solid var(--line); padding: 23px 24px; border-radius: 5px; text-align: left; display: flex; flex-direction: column; align-items: stretch; min-width: 0; background: #fff; color: var(--muted); }
.portal-home-actions > button:hover { background: #f0f4ec; border-color: #9eaf97; }
.portal-home-actions > .portal-start-card { background: var(--green); border-color: var(--green); color: #dce9dd; }
.portal-home-actions > .portal-start-card:hover { background: var(--green-dark); border-color: var(--green-dark); }
.portal-card-index { font-size: 11px; letter-spacing: .7px; margin-bottom: 18px; }
.portal-home-actions strong { font-size: 21px; font-weight: 500; color: var(--ink); display: flex; justify-content: space-between; gap: 15px; margin-bottom: 10px; }
.portal-home-actions .portal-start-card strong { color: #fff; }
.portal-home-actions strong span { font-weight: 400; }
.portal-home-actions button > span:last-child { font-size: 12px; line-height: 1.7; }
.portal-work-lists { display: grid; grid-template-columns: 1fr; margin: 0 0 60px; min-height: 240px; }
.portal-list-tabs { display: flex; align-items: stretch; gap: 28px; border-bottom: 1px solid var(--line); margin-top: 34px; }
.portal-list-tabs button { position: relative; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; background: transparent; padding: 12px 0 15px; color: var(--muted); min-height: 48px; }
.portal-list-tabs button[aria-selected="true"] { color: var(--green); border-bottom-color: var(--green); font-weight: 600; }
.portal-list-tabs button:hover { color: var(--green); }
.portal-list-tabs button span { margin-left: 7px; font-size: 12px; font-variant-numeric: tabular-nums; font-weight: 400; }
.portal-home-heading > div > .helper { margin-top: 7px; color: var(--muted); }
.portal-home-heading .primary { min-width: 144px; justify-content: space-between; }
.portal-work-lists > section { min-width: 0; scroll-margin-top: 24px; }
.portal-list-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; border-bottom: 1px solid var(--line); padding-bottom: 13px; }
.portal-list-heading h3 { font-size: 16px; }
.portal-list-heading > span { font-size: 11px; color: var(--muted); }
.portal-work-list { display: grid; }
.portal-work-item { display: flex; align-items: center; justify-content: space-between; gap: 18px; width: 100%; padding: 20px 0; border: 0; border-bottom: 1px solid var(--soft-line); text-align: left; background: transparent; }
.portal-work-item:hover { background: #eef3e9; }
.portal-work-item > div { min-width: 0; }
.portal-work-item strong { display: block; color: var(--ink); font-size: 15px; overflow-wrap: anywhere; }
.portal-work-item small { display: block; margin-top: 6px; color: var(--muted); font-size: 12px; }
.portal-work-item .badge { flex: none; max-width: 120px; align-self: center; }
.portal-empty-note { color: var(--muted); font-size: 13px; background: #eff2eb; padding: 22px; border-radius: 4px; margin-top: 15px; line-height: 1.85; }
.portal-stage { padding-top: 15px; }
.portal-back { margin-left: -7px; font-size: 13px; }
.portal-stage-heading { margin: 19px 0 27px; }
.portal-stage-heading h2 { font-size: 27px; letter-spacing: -.5px; overflow-wrap: anywhere; }
.portal-stage-heading p:not(.eyebrow) { color: var(--muted); font-size: 13px; margin-top: 9px; max-width: 65em; }
.portal-upload-layout { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(250px,.8fr); gap: 52px; margin-bottom: 50px; }
.portal-upload-card { padding: 28px; background: #fff; border: 1px solid var(--line); border-radius: 5px; }
.portal-file-picker { margin: 23px 0; padding: 24px 20px 18px; border: 1px dashed #acbda5; border-radius: 5px; background: #f6f8f2; text-align: center; }
.portal-file-picker > label { display: grid; justify-items: center; gap: 8px; cursor: pointer; }
.portal-file-picker strong { color: var(--green); font-size: 17px; }
.portal-file-picker label > span:last-child { font-size: 12px; color: var(--muted); }
.portal-file-symbol { display: grid; place-items: center; width: 40px; height: 40px; font-size: 27px; border: 1px solid #c1cfba; border-radius: 50%; color: var(--green); margin-bottom: 3px; }
.portal-file-picker input { display: block; max-width: 100%; margin: 19px auto 0; font-size: 12px; }
.portal-file-picker input::file-selector-button { background: #fff; color: var(--text); border: 1px solid #cbd4c7; border-radius: 4px; padding: 7px 10px; margin-right: 10px; font: inherit; cursor: pointer; }
.portal-file-picker .helper { font-size: 11px; color: var(--muted); margin-top: 10px; }
.portal-selected-file { margin: -8px 0 18px; font-size: 13px; overflow-wrap: anywhere; }
.portal-upload-notes { padding-top: 20px; }
.portal-upload-notes ol { list-style: none; padding: 0; counter-reset: upload; margin: 20px 0 25px; }
.portal-upload-notes li { position: relative; padding-left: 33px; margin-bottom: 23px; counter-increment: upload; }
.portal-upload-notes li::before { content: "0" counter(upload); position: absolute; left: 0; top: 1px; font-size: 11px; color: #879b81; }
.portal-upload-notes strong { font-size: 14px; color: var(--ink); }
.portal-upload-notes li p { font-size: 12px; color: var(--muted); margin-top: 5px; }
.portal-note { background: var(--green-wash); border-left: 2px solid #9ab28d; padding: 13px 15px; font-size: 12px; color: var(--muted); overflow-wrap: anywhere; }
.portal-note.error { background: var(--red-wash); border-color: var(--red); color: var(--red); }
.portal-note.warning { background: var(--amber-wash); border-color: var(--amber); color: var(--amber); }
.portal-loading { padding: 80px 24px 110px; text-align: center; }
.portal-loading > span { font-size: 35px; font-weight: 300; color: #9eb394; display: block; margin-bottom: 12px; }
.portal-loading h2 { font-size: 23px; }
.portal-loading p { color: var(--muted); margin-top: 12px; }
.portal-draft-topline { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.portal-save-status { font-size: 12px; color: var(--muted); text-align: right; }
.portal-save-status.error { color: var(--red); }
.portal-draft-heading, .portal-result-heading { display: flex; align-items: start; justify-content: space-between; gap: 24px; }
.portal-draft-heading > .button { flex: none; font-size: 12px; }
.portal-review-layout { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 34px; align-items: start; }
.portal-original { border: 1px solid var(--line); border-radius: 5px; background: #fff; padding: 19px; min-width: 0; }
.portal-original-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 15px; }
.portal-original h3 { font-size: 16px; }
.portal-original-preview { min-height: 250px; background: #edf0e8; border-radius: 3px; display: grid; align-items: center; justify-items: center; }
.portal-original-preview img { display: block; max-width: 100%; height: auto; }
.portal-original-preview .portal-file-description { text-align: center; padding: 40px 25px; }
.portal-file-description strong { display: block; font-size: 19px; color: #58724d; margin-bottom: 13px; }
.portal-file-description p { font-size: 13px; color: var(--muted); }
.portal-original-name { overflow-wrap: anywhere; font-size: 12px; margin-top: 15px; }
.portal-original > .helper { color: var(--muted); font-size: 11px; margin-top: 7px; }
.portal-review-main { min-width: 0; }
.portal-draft-name { margin-bottom: 25px; }
.portal-original-text-preview { white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-word; font: inherit; font-size: 13px; line-height: 2; margin: 0; padding: 22px; width: 100%; align-self: start; }
.portal-field-row form .helper { font-size: 11px; color: var(--muted); margin-top: 7px; }
.portal-field-row form .button { margin-top: 9px; }
.portal-review-section { border-top: 1px solid var(--line); padding: 23px 0 27px; }
.portal-review-section:first-child { padding-top: 19px; }
.portal-section-heading { display: flex; gap: 13px; margin-bottom: 20px; }
.portal-section-index { color: #819477; font-size: 11px; padding-top: 3px; flex: none; }
.portal-section-heading h3 { font-size: 18px; }
.portal-section-heading p { color: var(--muted); font-size: 12px; margin-top: 4px; }
.portal-page-toolbar { display: flex; align-items: end; gap: 20px; margin-bottom: 16px; }
.portal-page-toolbar .field { flex: 1; max-width: 280px; }
.portal-page-toolbar > .helper { font-size: 11px; color: var(--muted); flex: 1; padding-bottom: 5px; }
.portal-reading-warnings:empty { display: none; }
.portal-reading-warnings { margin-bottom: 16px; }
.portal-reading-warnings details { padding: 10px 13px; background: var(--amber-wash); border-radius: 4px; font-size: 12px; }
.portal-reading-warnings summary { color: var(--amber); }
.portal-reading-warnings ul { margin: 10px 0 2px; padding-left: 16px; color: #74634a; }
.portal-reading-warnings li + li { margin-top: 6px; }
#portal-reviewed-text { font-size: 13px; line-height: 1.95; min-height: 235px; }
.portal-check { display: flex; align-items: start; gap: 10px; margin: 15px 0; font-size: 13px; cursor: pointer; }
.portal-check input { margin: 4px 0 0; accent-color: var(--green); flex: none; width: 16px; height: 16px; }
.portal-check .helper { color: var(--muted); font-size: 11px; display: block; margin-top: 2px; }
.portal-check:has(input:disabled) { color: var(--muted); cursor: default; }
.portal-disclosure { margin-top: 17px; font-size: 12px; }
.portal-disclosure > summary { color: var(--muted); }
.portal-disclosure[open] > summary { margin-bottom: 14px; }
.portal-plain-text { white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-word; font-family: inherit; font-size: 12px; line-height: 1.8; padding: 16px; border: 1px solid var(--line); border-radius: 4px; background: #f0f3ec; max-height: 500px; overflow: auto; }
.portal-rules { background: #eff3ea; padding: 12px 16px; border-radius: 4px; margin: 0 0 18px; }
.portal-rules .helper { color: var(--muted); font-size: 11px; }
.portal-two-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.portal-field-list { border-top: 1px solid var(--line); margin-top: 16px; }
.portal-field-list:empty { display: none; }
.portal-field-row { padding: 16px 0; border-bottom: 1px solid var(--line); }
.portal-field-header { display: flex; align-items: start; gap: 15px; justify-content: space-between; }
.portal-field-header > div { min-width: 0; }
.portal-field-label { color: var(--muted); font-size: 11px; }
.portal-field-value { font-size: 16px; color: var(--ink); margin-top: 3px; overflow-wrap: anywhere; }
.portal-field-evidence { color: var(--muted); font-size: 12px; padding-left: 12px; border-left: 2px solid #c8d4c0; margin-top: 10px; overflow-wrap: anywhere; }
.portal-field-evidence p + p { margin-top: 5px; }
.portal-other-fields { padding: 14px 0; margin-top: 0; border-bottom: 1px solid var(--line); }
.portal-other-fields > .helper { margin-top: 10px; color: var(--muted); font-size: 11px; }
.portal-other-fields .portal-field-row:last-child { border-bottom: 0; }
.portal-issue-list { list-style: none; padding: 0; margin: 17px 0; }
.portal-issue-list li { padding: 11px 13px; margin-top: 7px; border-left: 2px solid #c5a871; background: var(--amber-wash); font-size: 12px; color: var(--amber); }
.portal-issue-list li.error { border-color: var(--red); background: var(--red-wash); color: var(--red); }
.portal-confirmation { background: #eef3e9; border: 1px solid #d4dfcc; border-radius: 4px; padding: 14px; }
.portal-generate-section { border-top: 1px solid #bdcdb4; padding-top: 24px; margin-bottom: 22px; }
.portal-generate-section h3 { font-size: 19px; }
.portal-generate-section p { font-size: 12px; color: var(--muted); margin: 7px 0 19px; }
.portal-generate-section .primary { width: 100%; justify-content: space-between; }
.portal-generate-section .work-status { margin-bottom: 0; }
.portal-advanced { border-top: 1px solid var(--line); padding: 15px 0; }
.portal-advanced > .helper { font-size: 12px; color: var(--muted); margin: 8px 0; }
.portal-result-actions { margin: 20px 0; }
.portal-result-progress { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; padding: 22px 0; margin-top: 24px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.portal-result-progress > div { min-width: 0; }
.portal-result-progress span { color: var(--muted); font-size: 12px; }
.portal-result-progress p { margin-top: 7px; font-size: 14px; overflow-wrap: anywhere; }
.portal-result-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border: 1px solid var(--line); border-radius: 5px; background: #fff; overflow: hidden; margin: 23px 0 12px; }
.portal-result-metric { padding: 23px; border-left: 1px solid var(--line); min-width: 0; }
.portal-result-metric:first-child { border-left: 0; background: var(--green-wash); }
.portal-result-metric dt { font-size: 12px; color: var(--muted); }
.portal-result-metric dd { margin: 9px 0 4px; color: var(--green); font-size: 31px; letter-spacing: -.5px; font-weight: 400; }
.portal-result-metric dd small { font-size: 12px; letter-spacing: 0; margin-left: 7px; color: var(--muted); }
.portal-result-metric p { font-size: 11px; color: var(--muted); }
.portal-result-cutoff { color: var(--muted); font-size: 12px; margin: 12px 0 23px; }
.portal-result-table-wrap { max-width: 100%; overflow-x: auto; border: 1px solid var(--line); border-radius: 4px; margin: 20px 0; }
.portal-result-table { width: 100%; border-collapse: collapse; font-size: 12px; text-align: left; }
.portal-result-table th, .portal-result-table td { padding: 11px 15px; border-bottom: 1px solid var(--soft-line); min-width: 100px; overflow-wrap: anywhere; }
.portal-result-table th { background: #eef2e8; font-weight: 500; color: var(--muted); }
.portal-result-table tr:last-child td { border-bottom: 0; }
.portal-followup-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin-top: 32px; }
.portal-followup-card { padding: 24px; border: 1px solid var(--line); background: #fff; border-radius: 5px; }
.portal-followup-card fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.portal-followup-card .field { margin-bottom: 17px; }
.portal-followup-card .helper { color: var(--muted); font-size: 11px; margin-top: 10px; }
.portal-history-section { margin-top: 35px; padding-top: 24px; border-top: 1px solid var(--line); }
.portal-history-section h3 { font-size: 17px; margin-bottom: 18px; }
.portal-history-item { display: grid; grid-template-columns: 150px minmax(0,1fr); gap: 20px; padding: 14px 0; border-bottom: 1px solid var(--soft-line); font-size: 12px; }
.portal-history-item time { color: var(--muted); font-size: 11px; }
.portal-history-item p { color: var(--muted); margin-top: 5px; overflow-wrap: anywhere; }
.portal-result-limit { color: var(--muted); font-size: 12px; margin: 25px 0 35px; }
.portal-footer { margin-top: 45px; }
.portal-workspace .button:active:not(:disabled), .portal-list-tabs button:active { transform: translateY(1px); }
.portal-workspace :is(dd, time, .portal-save-status) { font-variant-numeric: tabular-nums; }
@media (min-width: 861px) { .portal-original { position: sticky; top: 20px; max-height: calc(100dvh - 40px); overflow: auto; } }
@media (max-width: 1100px) {
  .portal-login { gap: 6%; }
  .portal-login-card { padding: 26px; }
  .portal-review-layout { gap: 24px; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); }
  .portal-home-actions > button { padding: 20px; }
  .portal-upload-layout { gap: 30px; }
  .portal-followup-card { padding: 20px; }
}
@media (max-width: 860px) {
  .portal-login { grid-template-columns: minmax(0,1fr) minmax(290px,1fr); gap: 30px; padding: 50px 0; min-height: 0; }
  .portal-login h1 { font-size: 35px; }
  .portal-login-steps { gap: 14px; }
  .portal-original { position: static; max-height: none; overflow: visible; }
  .portal-review-layout { grid-template-columns: 1fr; }
  .portal-original-preview { min-height: 180px; max-height: 500px; overflow: auto; }
  .portal-original-preview img { max-height: 500px; object-fit: contain; }
  .portal-home-actions { grid-template-columns: 1fr 1fr; }
  .portal-home-actions .portal-start-card { grid-column: 1 / -1; }
  .portal-start-card .portal-card-index { margin-bottom: 8px; }
  .portal-upload-layout { grid-template-columns: 1fr; }
  .portal-upload-notes { padding: 0; }
  .portal-upload-notes ol { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
  .portal-followup-layout { grid-template-columns: 1fr; }
  .portal-draft-heading { flex-wrap: wrap; gap: 6px; }
}
@media (max-width: 620px) {
  .portal-header-inner { gap: 13px; }
  .portal-end-label { padding-left: 13px; font-size: 12px; }
  .portal-header-inner .brand { font-size: 22px; gap: 9px; }
  .portal-header-inner .product-nav { gap: 20px; }
  .portal-header-inner .local-label { display: none; }
  .portal-login { grid-template-columns: 1fr; padding: 32px 0 20px; gap: 30px; }
  .portal-login h1 { font-size: 34px; letter-spacing: -1px; }
  .portal-login .intro { font-size: 13px; margin-top: 13px; }
  .portal-login-steps { margin-top: 22px; gap: 12px 22px; font-size: 11px; }
  .portal-login-card { padding: 24px 21px 19px; }
  .portal-enterprise-bar { align-items: start; flex-wrap: wrap; gap: 9px; padding-top: 24px; padding-bottom: 16px; }
  .portal-enterprise-bar h1 { font-size: 23px; }
  .portal-enterprise-bar > .portal-actions { margin-left: -7px; }
  .portal-enterprise-bar .button { font-size: 12px; min-height: 35px; }
  .portal-home-heading { align-items: start; margin-top: 25px; }
  .portal-home-heading h2 { font-size: 23px; }
  .portal-home-heading .button { font-size: 11px; padding-top: 0; }
  .portal-home-heading { flex-wrap: wrap; gap: 15px; }
  .portal-home-heading > .portal-actions { width: 100%; justify-content: space-between; }
  .portal-home-heading .primary { padding-top: 10px; min-height: 44px; font-size: 13px; }
  .portal-list-tabs { margin-top: 22px; gap: 26px; }
  .portal-home-actions { gap: 12px; }
  .portal-home-actions > button { padding: 18px 16px; }
  .portal-home-actions strong { font-size: 17px; gap: 8px; }
  .portal-card-index { font-size: 10px; margin-bottom: 13px; }
  .portal-home-actions button > span:last-child { font-size: 11px; }
  .portal-work-lists { grid-template-columns: 1fr; margin-top: 0; min-height: 200px; }
  .portal-stage-heading h2 { font-size: 23px; }
  .portal-stage-heading { margin-top: 13px; }
  .portal-upload-card { padding: 20px 17px; }
  .portal-file-picker { padding: 21px 12px 15px; }
  .portal-upload-card .primary { width: 100%; }
  .portal-upload-notes ol { grid-template-columns: 1fr; gap: 0; }
  .portal-upload-notes li { margin-bottom: 18px; }
  .portal-draft-topline { align-items: start; gap: 10px; }
  .portal-save-status { max-width: 55%; font-size: 11px; padding-top: 11px; }
  .portal-original { padding: 15px; }
  .portal-original-preview { max-height: 390px; }
  .portal-original-preview img { max-height: 390px; }
  .portal-page-toolbar { flex-wrap: wrap; gap: 8px; }
  .portal-page-toolbar > .helper { min-width: 150px; font-size: 10px; }
  .portal-two-fields { gap: 12px; }
  .portal-result-metrics { grid-template-columns: 1fr; }
  .portal-result-metric { border-left: 0; border-top: 1px solid var(--line); padding: 18px 21px; }
  .portal-result-metric:first-child { border-top: 0; }
  .portal-result-metric dd { font-size: 29px; margin: 3px 0; }
  .portal-result-heading { flex-wrap: wrap; gap: 12px; }
  .portal-followup-card { padding: 20px 17px; }
  .portal-result-progress { grid-template-columns: 1fr; gap: 18px; }
  .portal-history-item { grid-template-columns: 1fr; gap: 4px; }
  .portal-footer { margin-top: 30px; }
}
