/* Live stock cards reuse billing tables and shared dark/light portal tokens. */
.stock-results { display: grid; gap: .85rem; min-width: 0; }
.stock-source-badge { display: inline-flex; align-items: center; gap: .5rem; padding: .5rem .75rem; border: 1px solid var(--portal-list-border); border-radius: .5rem; color: var(--portal-list-blue); background: var(--portal-list-row-bg); font-size: .8rem; font-weight: 650; }
.stock-source-badge > span { width: .55rem; height: .55rem; border-radius: 50%; background: var(--portal-list-teal); }
.stock-filters { position: relative; gap: .6rem; }
.stock-search-row { display: grid; grid-template-columns: minmax(0, 1fr) 7.2rem; gap: .8rem; max-width: 50rem; }
.stock-workspace .stock-search-row .form-control { min-height: 2.8rem; font-size: .9rem; }
.stock-search-row .billing-search-field > span { top: .8rem; color: var(--portal-list-blue); }
.stock-search-hint { margin: 0; color: var(--portal-muted); font-size: .75rem; }
.stock-option-grid { display: grid; align-items: end; grid-template-columns: minmax(0, 1fr); gap: .8rem; margin-top: .2rem; }
.stock-option-grid .form-label { margin-bottom: .3rem; font-size: .8rem; }
.stock-option-grid .stock-in-stock { display: flex; align-items: center; gap: .65rem; padding: 0; margin: 0; min-height: 2.45rem; white-space: nowrap; font-size: .85rem; }
.stock-in-stock .form-check-input { float: none; margin-left: 0; flex-shrink: 0; }
.stock-reset { display: flex; align-items: center; justify-content: center; min-height: 2.45rem; color: var(--portal-list-blue); text-decoration: none; font-size: .8rem; font-weight: 650; }
.stock-reset:hover { text-decoration: underline; }
.stock-loading { position: absolute; right: 1.25rem; top: 1rem; color: var(--portal-muted); font-size: .75rem; }
.stock-results-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem; }
.stock-results-heading h2 { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; }
.stock-results-heading p { margin: .25rem 0 0; color: var(--portal-muted); font-size: .8rem; }
.stock-results-heading > span { color: var(--portal-muted); font-size: .75rem; }
.stock-total { color: var(--portal-list-blue); border: 1px solid var(--portal-list-blue); border-radius: 99rem; padding: .2rem .55rem; font-size: .75rem; font-weight: 400; letter-spacing: 0; }
.stock-table { min-width: 48rem; }
.stock-table tbody tr { background: var(--portal-list-row-bg); }
.stock-workspace .stock-table th { padding: .7rem 1rem; color: var(--portal-text); background: color-mix(in srgb, var(--portal-list-blue) 16%, var(--portal-surface)); }
.stock-workspace .stock-table td { padding: .65rem 1rem; height: 3.7rem; background: transparent; }
.stock-workspace .stock-table td:first-child:not(.billing-check-cell) { width: 13%; }
.stock-table .stock-product { width: 30%; overflow-wrap: anywhere; }
.stock-table .stock-availability-cell { width: 13%; white-space: nowrap; }
.stock-table td strong { font-size: .85rem; }
.stock-table td .stock-gross-price { font-size: .95rem; }
.stock-table td small { margin-top: .2rem; }
.stock-availability { display: inline-block; padding: .1rem .55rem; border: 1px solid currentColor; border-radius: 99rem; font-size: .65rem; line-height: 1.25; }
.stock-availability.is-available { color: var(--portal-list-teal); }
.stock-availability.is-empty { color: var(--portal-list-amber); }
.stock-availability.is-archived, .stock-table .stock-row-archived td, .stock-table .stock-row-archived strong { color: var(--portal-muted); }
.stock-pagination { display: grid; align-items: center; grid-template-columns: 1fr auto 1fr; gap: .5rem; color: var(--portal-muted); font-size: .75rem; }
.stock-pagination > div:last-child { text-align: right; }
.stock-pagination .btn { font-size: .8rem; padding: .45rem .9rem; }
.stock-footer { display: flex; align-items: center; gap: .6rem; color: var(--portal-muted); font-size: .75rem; padding: .65rem 1rem; }
.stock-footer svg { color: var(--portal-list-blue); }
.stock-empty { display: grid; justify-items: center; gap: .6rem; padding: 2rem 1rem; text-align: center; }
.stock-empty h3 { font-size: 1.1rem; margin: 0; }
.stock-empty p { color: var(--portal-muted); font-size: .85rem; }
.stock-workspace .btn { border-radius: .45rem; }
.portal-body:has(.stock-workspace) #nav-stock.is-active { background: var(--portal-list-button-bg); border-color: var(--portal-list-blue); color: var(--portal-list-button-text); }
@media (min-width: 768px) { .stock-option-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .stock-reset { justify-content: start; } }
@media (min-width: 1200px) { .stock-option-grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.1fr) minmax(0, 1fr) auto auto; } .stock-in-stock { margin-inline: .5rem !important; } .stock-reset { padding-left: 1.3rem; border-left: 1px solid var(--portal-list-border); } }
@media (max-width: 575.98px) { .stock-search-row { grid-template-columns: minmax(0, 1fr) 5rem; gap: .5rem; } .stock-workspace .stock-search-row .form-control { font-size: .8rem; } .stock-pagination .btn { font-size: .7rem; padding-inline: .45rem; } .stock-reset { justify-content: start; } }
/* New-claim workspace shares the operational palette and native form controls. */
.claim-create-workspace { display: grid; gap: .85rem; min-width: 0; }
.portal-content:has(.claim-create-workspace) { padding-top: 1.2rem; }
.claim-create-breadcrumb { display: flex; flex-wrap: wrap; gap: .65rem; color: var(--portal-muted); font-size: .85rem; }
.claim-create-breadcrumb a { color: inherit; text-decoration: none; }
.claim-create-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
.claim-create-heading h1 { font-size: clamp(1.8rem, 3vw, 2.5rem); font-weight: 750; letter-spacing: -.03em; margin: 0 0 .3rem; }
.claim-create-heading p, .claim-create-import p, .claim-create-section-heading p { color: var(--portal-muted); margin: 0; }
.claim-create-heading > a { color: var(--portal-list-blue); font-size: .85rem; text-decoration: none; }
.claim-create-import, .claim-create-card, .claim-create-source, .claim-create-actions { background: var(--portal-list-bg); border: 1px solid var(--portal-list-border); border-radius: .75rem; }
.claim-create-import { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; padding: .9rem 1.2rem; background: linear-gradient(110deg, color-mix(in srgb, var(--bs-primary) 35%, var(--portal-surface)), var(--portal-surface)); }
.claim-create-import > div { flex: 1 1 16rem; }
.claim-create-import h2 { font-size: 1.1rem; font-weight: 700; margin: 0 0 .35rem; }
.claim-create-import p { font-size: .85rem; }
.claim-create-import-icon { color: var(--portal-list-blue); border: 2px solid var(--portal-list-blue); border-radius: 1rem; height: 3.4rem; width: 3.4rem; display: grid; place-items: center; flex-shrink: 0; }
.claim-create-workspace .admin-overview-icon { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; width: 1.8rem; height: 1.8rem; flex-shrink: 0; }
.claim-create-import-icon .admin-overview-icon { height: 2rem; width: 2rem; }
.claim-create-workspace .btn { min-height: 2.65rem; display: inline-flex; align-items: center; justify-content: center; gap: .7rem; font-size: .85rem; border-radius: .5rem; }
.claim-create-workspace .btn-outline-primary { background: var(--portal-list-row-bg); border-color: var(--portal-list-border); color: var(--portal-text); }
.claim-create-workspace .btn-outline-primary:hover { border-color: var(--portal-list-blue); color: var(--portal-list-blue); }
.claim-create-import .btn { font-weight: 650; }
.claim-create-import .btn > span { color: var(--portal-list-blue); font-size: 1.2rem; }
.claim-create-form, .claim-create-layout, .claim-create-sections { display: grid; gap: .75rem; min-width: 0; }
.claim-create-card { padding: 1rem; min-width: 0; }
.claim-create-section-heading { display: flex; align-items: center; gap: 1rem; margin-bottom: .9rem; }
.claim-create-number { flex: 0 0 2.65rem; height: 2.65rem; border-radius: .55rem; background: var(--portal-list-button-bg); color: var(--portal-list-button-text); display: grid; place-items: center; font-size: 1.15rem; font-weight: 700; border: 1px solid var(--portal-list-border); }
.claim-create-section-heading h2, .claim-create-help h2 { font-size: 1.15rem; font-weight: 700; margin: 0 0 .25rem; }
.claim-create-section-heading p { font-size: .82rem; }
.claim-create-fields { display: grid; gap: .75rem 1rem; min-width: 0; }
.claim-create-workspace .portal-form-field { margin: 0; min-width: 0; }
.claim-create-workspace .form-label { font-size: .8rem; margin-bottom: .3rem; color: var(--portal-text); }
.claim-create-workspace .portal-form-field .form-label { font-weight: 400; }
.claim-create-workspace .form-control { min-height: 2.65rem; border-radius: .4rem; border-color: var(--portal-list-border); background: var(--portal-list-row-bg); color: var(--portal-text); font-size: .85rem; box-shadow: inset 0 1px 3px color-mix(in srgb, var(--portal-text) 3%, transparent); }
.claim-create-workspace .form-control::placeholder { color: var(--portal-muted); opacity: 1; }
.claim-create-workspace .form-control:focus { border-color: var(--portal-list-blue); box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--portal-list-blue) 18%, transparent); }
.claim-create-workspace textarea.form-control { resize: vertical; min-height: 3.7rem; }
.claim-create-workspace .has-error .form-control { border-color: var(--bs-danger); }
.claim-create-required { color: var(--portal-status-action); }
.claim-create-extra { padding-top: .85rem; margin-top: .85rem; border-top: 1px solid var(--portal-list-border); }
.claim-create-input { position: relative; }
.claim-create-price input { padding-right: 8rem; }
.claim-create-internal { position: absolute; right: .5rem; top: 50%; transform: translateY(-50%); border: 1px solid var(--portal-list-border); border-radius: 99rem; color: var(--portal-list-blue); font-size: .7rem; display: inline-flex; align-items: center; gap: .3rem; padding: .1rem .4rem; pointer-events: none; }
.claim-create-internal .admin-overview-icon { width: 1rem; height: 1rem; }
.claim-create-help h2 { margin-bottom: 1.5rem; }
.claim-create-sidebar { display: flex; flex-direction: column; gap: .75rem; min-width: 0; }
.claim-create-sidebar .claim-create-help { flex: 1; }
.claim-create-protocol header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .5rem; }
.claim-create-protocol h2 { font-size: 1.05rem; font-weight: 700; margin: 0; }
.claim-create-protocol header a { font-size: .7rem; color: var(--portal-list-blue); }
.claim-create-protocol p { margin: .6rem 0; font-size: .75rem; color: var(--portal-muted); overflow-wrap: anywhere; }
.claim-create-protocol img { display: block; width: 100%; height: auto; max-height: 23rem; object-fit: contain; border: 1px solid var(--portal-list-border); border-radius: .4rem; background: var(--portal-surface); }
.claim-create-protocol iframe { width: 100%; height: 23rem; border: 1px solid var(--portal-list-border); border-radius: .4rem; }
.claim-create-protocol small { display: block; margin-top: .65rem; color: var(--portal-muted); font-size: .7rem; }
.protocol-zoom-stage { height: 23rem; overflow: auto; border: 1px solid var(--portal-list-border); border-radius: .4rem; background: var(--portal-surface); overscroll-behavior: contain; cursor: zoom-in; }
.protocol-zoom-stage:focus-visible { outline: 2px solid var(--portal-list-blue); outline-offset: 2px; }
.claim-create-protocol .protocol-zoom-stage img { width: auto; height: auto; max-width: 100%; max-height: 100%; border: 0; border-radius: 0; margin: 0 auto; }
.claim-create-protocol .protocol-zoom.is-zoomed img { max-width: none; max-height: none; }
.protocol-zoom.is-zoomed .protocol-zoom-stage { cursor: grab; }
.protocol-zoom.is-zoomed .protocol-zoom-stage.is-dragging { cursor: grabbing; user-select: none; }
.protocol-zoom-hint { display: block; margin-top: .4rem; color: var(--portal-muted); font-size: .7rem; }
.claim-import-picker-control { position: relative; }
.claim-create-import > .claim-import-picker-control { flex: 0 0 auto; }
@media (max-width: 575.98px) { .claim-create-import > .claim-import-picker-control { width: 100%; } }
.claim-import-picker-control input[type="file"] { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.claim-import-picker-control:focus-within label { outline: 2px solid var(--portal-list-blue); outline-offset: 3px; }
.claim-import-picker-control label { cursor: pointer; }
.claim-import-picker-control label[aria-disabled="true"] { pointer-events: none; opacity: .6; }
.claim-import-progress { margin-top: .5rem !important; color: var(--portal-list-blue) !important; }
.claim-create-help ul { list-style: none; display: grid; gap: 1.8rem; padding: 0; margin: 0; }
.claim-create-help li { display: flex; align-items: flex-start; gap: 1rem; font-size: .85rem; line-height: 1.6; }
.claim-create-help li .admin-overview-icon { color: var(--portal-muted); }
.claim-create-help > p { border-top: 1px solid var(--portal-list-border); padding-top: 1.2rem; margin: 1.6rem 0 0; font-size: .78rem; line-height: 1.7; color: var(--portal-muted); }
.claim-create-source summary { cursor: pointer; display: flex; flex-wrap: wrap; align-items: center; gap: .65rem 1rem; list-style: none; padding: .65rem 1rem; font-size: .85rem; }
.claim-create-source summary::-webkit-details-marker { display: none; }
.claim-create-source summary > span:last-child { color: var(--portal-muted); font-size: .75rem; }
.claim-create-chevron { color: var(--portal-list-blue); font-size: 1.2rem; line-height: 1; }
.claim-create-source[open] .claim-create-chevron { transform: rotate(180deg); }
.claim-create-source > div { border-top: 1px solid var(--portal-list-border); padding: 1rem; }
.claim-create-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem; padding: .6rem 1rem; }
.claim-create-actions > span { color: var(--portal-muted); font-size: .8rem; }
.claim-create-actions > div { display: flex; gap: .7rem; flex-wrap: wrap; }
.claim-create-actions .btn-primary { background: var(--portal-list-button-bg); color: var(--portal-list-button-text); border-color: var(--portal-list-blue); padding-inline: 1.2rem; }
.portal-body:has(.claim-create-workspace) #nav-claims.is-active { background: var(--portal-list-button-bg); color: var(--portal-list-button-text); border-color: var(--portal-list-blue); }
@media (min-width: 576px) { .claim-create-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); } .claim-create-field-wide { grid-column: 1 / -1; } }
@media (min-width: 992px) { .claim-create-layout { grid-template-columns: minmax(0, 2.65fr) minmax(15rem, 1fr); align-items: stretch; } .claim-create-source { grid-column: 1; } .claim-create-help { padding: 1.35rem; } .claim-create-workspace .form-control { min-height: 2.4rem; } .claim-create-workspace textarea.form-control { min-height: 3.2rem; } }
@media (max-width: 575.98px) { .claim-create-import { padding: 1rem; gap: .75rem; } .claim-create-import > div { flex-basis: calc(100% - 4.5rem); } .claim-create-import .btn { width: 100%; } .claim-create-section-heading { gap: .75rem; } .claim-create-actions > div { width: 100%; } .claim-create-actions .btn-primary { flex: 1; } }

/* Financial overview uses portal tokens and server-rendered, accessible charts. */
.dashboard-admin .finance-overview { display: grid; gap: 1.25rem; padding: clamp(1rem, 2vw, 1.5rem); }
.dashboard-admin .finance-header { align-items: center; display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; }
.dashboard-admin .finance-header h2 { font-weight: 750; }
.dashboard-admin .finance-filters { align-items: center; display: flex; flex-wrap: wrap; gap: .6rem; }
.dashboard-admin .finance-filters .form-select { width: auto; min-height: 2.5rem; }
.dashboard-admin .finance-filters .portal-status { white-space: nowrap; }
.dashboard-admin .finance-metric-grid { display: grid; gap: .85rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dashboard-admin .finance-overview .finance-metric,
.dashboard-admin .finance-overview .finance-chart-panel,
.dashboard-admin .finance-overview .finance-month-summary {
  background: var(--portal-workflow-section-bg);
  border-color: var(--portal-workflow-section-border);
}
.dashboard-admin .finance-metric { display: flex; flex-direction: column; gap: .75rem; min-width: 0; padding: 1rem; }
.dashboard-admin .finance-metric-heading { align-items: center; display: flex; gap: .75rem; }
.dashboard-admin .finance-metric h3 { font-size: .9rem; font-weight: 600; margin: 0; }
.dashboard-admin .finance-icon { align-items: center; border-radius: 50%; display: inline-flex; flex: 0 0 2.6rem; height: 2.6rem; justify-content: center; }
.dashboard-admin .finance-icon-blue { background: var(--portal-status-waiting-bg); color: var(--portal-primary); }
.dashboard-admin .finance-icon-amber { background: var(--portal-status-action-bg); color: var(--portal-status-action); }
.dashboard-admin .finance-icon-teal { background: var(--portal-status-ready-bg); color: var(--portal-status-ready); }
.dashboard-admin .finance-amount { display: block; font-size: clamp(1.15rem, 1.75vw, 1.85rem); font-weight: 750; line-height: 1.3; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.dashboard-admin .finance-metric > p { font-size: .8rem; margin: 0; }
.dashboard-admin .finance-metric > a { font-size: .8rem; font-weight: 600; margin-top: auto; text-decoration: none; }
.dashboard-admin .finance-chart-grid { display: grid; gap: 1rem; }
.dashboard-admin .finance-chart-panel { min-width: 0; padding: 1.15rem; }
.dashboard-admin .finance-plot { display: grid; gap: .6rem; grid-template-columns: 2.6rem minmax(0, 1fr); margin-top: 1.5rem; }
.dashboard-admin .finance-axis { color: var(--portal-muted); display: flex; flex-direction: column; font-size: .75rem; height: 12rem; justify-content: space-between; text-align: right; transform: translateY(-.4rem); }
.dashboard-admin .finance-bars { border-left: 1px solid var(--portal-border); display: grid; gap: .65rem; grid-template-columns: repeat(12, minmax(0, 1fr)); position: relative; }
.dashboard-admin .finance-bars::before { background: repeating-linear-gradient(to top, var(--portal-border) 0 1px, transparent 1px 4rem); content: ""; height: 12rem; inset: 0 0 auto; pointer-events: none; position: absolute; }
.dashboard-admin .finance-month { color: var(--portal-muted); display: grid; grid-template-rows: 12rem auto 1.2rem; gap: .35rem; min-width: 0; text-align: center; text-decoration: none; z-index: 1; }
.dashboard-admin .finance-month:hover { color: var(--portal-primary); }
.dashboard-admin .finance-bar-track { align-items: end; display: flex; height: 12rem; justify-content: center; }
.dashboard-admin .finance-bar { background: linear-gradient(to top, color-mix(in srgb, var(--portal-primary) 70%, var(--portal-surface)), var(--portal-primary)); border: 1px solid color-mix(in srgb, var(--portal-primary) 75%, var(--portal-border)); border-radius: .2rem .2rem 0 0; display: block; height: var(--finance-bar-height); position: relative; width: 80%; }
.dashboard-admin .finance-bar-value { bottom: calc(100% + .3rem); color: var(--portal-text); font-size: .65rem; left: 50%; position: absolute; transform: translateX(-50%); white-space: nowrap; }
.dashboard-admin .finance-month.is-current .finance-bar { background: color-mix(in srgb, var(--portal-primary) 20%, transparent); border-style: dashed; }
.dashboard-admin .finance-month.is-last-complete .finance-bar { border-color: var(--portal-focus); box-shadow: 0 0 .6rem color-mix(in srgb, var(--portal-primary) 22%, transparent); }
.dashboard-admin .finance-month-label { font-size: .75rem; }
.dashboard-admin .finance-month > small { font-size: .6rem; }
.dashboard-admin .finance-future-mark { font-size: .8rem; line-height: 1; padding-bottom: .15rem; }
.dashboard-admin .finance-month-summary { display: grid; align-content: start; gap: 1.25rem; padding: 1.15rem; }
.dashboard-admin .finance-summary-last { border-top: 1px solid var(--portal-border); padding-top: 1.25rem; }
.dashboard-admin .finance-month-summary > a { text-decoration: none; }
.dashboard-admin .finance-footer { display: flex; flex-wrap: wrap; font-size: .8rem; gap: .5rem 1rem; justify-content: space-between; }
.dashboard-admin .finance-data { color: var(--portal-muted); font-size: .8rem; margin-top: .75rem; }
.dashboard-admin .finance-data summary { cursor: pointer; }
.dashboard-admin .finance-data table { margin-top: .75rem; }
.dashboard-admin .finance-empty, .dashboard-admin .finance-coverage { font-size: .8rem; margin-top: .5rem; }
@media (min-width: 1200px) {
  .dashboard-admin .finance-metric-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .dashboard-admin .finance-chart-grid { grid-template-columns: minmax(0, 3fr) minmax(13rem, 1fr); }
}
@media (max-width: 575.98px) {
  .dashboard-admin .finance-metric { padding: .8rem; gap: .65rem; }
  .dashboard-admin .finance-metric-heading { align-items: flex-start; flex-direction: column; gap: .5rem; }
  .dashboard-admin .finance-chart-panel { overflow-x: auto; padding: .9rem; }
  .dashboard-admin .finance-plot { min-width: 30rem; }
}

/* Shared operational list palette and surfaces. */
:root {
  --portal-list-blue: #087acb;
  --portal-list-teal: #007d87;
  --portal-list-amber: #926000;
  --portal-list-purple: #7050c2;
  --portal-list-button-bg: linear-gradient(135deg, #008fff, #0668ee);
  --portal-list-button-text: #ffffff;
  --portal-list-bg: linear-gradient(120deg, #e8f2ff, #f7fbff);
  --portal-list-row-bg: linear-gradient(110deg, #eef6ff, #ffffff);
  --portal-list-border: rgb(35 130 215 / 35%);
}
[data-bs-theme="dark"] {
  --portal-list-blue: #35b4ff;
  --portal-list-teal: #27d7dc;
  --portal-list-amber: #ffbf46;
  --portal-list-purple: #a484ff;
  --portal-list-bg: linear-gradient(120deg, rgb(5 38 86 / 88%), rgb(2 20 50 / 94%));
  --portal-list-row-bg: linear-gradient(110deg, rgb(5 37 81 / 68%), rgb(2 22 51 / 76%));
  --portal-list-border: rgb(35 142 236 / 48%);
}
.claim-list-workspace { display: grid; gap: 1.1rem; min-width: 0; }
.claim-list-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
.claim-list-heading h1 { font-weight: 750; letter-spacing: -.03em; }
[data-bs-theme="dark"] .portal-body:has(.claim-list-workspace) .portal-nav-link.is-active { background: linear-gradient(115deg, color-mix(in srgb, var(--portal-list-blue) 30%, var(--portal-surface)), var(--portal-surface)); border-color: var(--portal-list-blue); box-shadow: 0 0 1rem color-mix(in srgb, var(--portal-list-blue) 18%, transparent); }
.claim-list-muted { color: var(--portal-muted); }
.claim-list-workspace .btn-primary { background: var(--portal-list-button-bg); border-color: var(--portal-list-blue); color: var(--portal-list-button-text); box-shadow: 0 0 .8rem color-mix(in srgb, var(--portal-list-blue) 18%, transparent); }
.claim-list-search { display: grid; gap: .75rem; grid-template-columns: minmax(0, 1fr) minmax(10rem, .24fr) auto; }
.claim-list-search .form-control, .claim-list-search .form-select { background: var(--portal-list-bg); border-color: var(--portal-list-border); min-height: 3rem; }
.claim-list-search-field { position: relative; min-width: 0; }
.claim-list-search-field > span { position: absolute; left: 1rem; top: .9rem; color: var(--portal-list-blue); pointer-events: none; }
.claim-list-search-field input { padding-left: 3rem; }
.claim-list-workspace .admin-overview-icon { fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; height: 1.2rem; width: 1.2rem; }
.claim-list-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .75rem; }
.claim-list-views { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.claim-list-view-label { font-size: .85rem; margin-right: .2rem; }
.claim-list-view { --view-color: var(--portal-list-blue); display: inline-flex; align-items: center; gap: .5rem; color: var(--portal-text); background: var(--portal-list-bg); border: 1px solid var(--portal-list-border); border-radius: 99rem; padding: .45rem .65rem; font-size: .82rem; text-decoration: none; }
.claim-list-view.view-repair { --view-color: var(--portal-list-teal); }
.claim-list-view.view-parts { --view-color: var(--portal-list-amber); }
.claim-list-view.view-completed { --view-color: var(--portal-list-purple); }
.claim-list-view i { width: .65rem; height: .65rem; border-radius: 50%; background: var(--view-color); }
.claim-list-view.view-all i { display: none; }
.claim-list-view strong { border-radius: .4rem; padding: .12rem .4rem; background: color-mix(in srgb, var(--view-color) 18%, transparent); color: var(--portal-text); font-size: .8rem; font-variant-numeric: tabular-nums; }
.claim-list-view.is-active, .claim-list-view:hover { border-color: var(--view-color); box-shadow: 0 0 .8rem color-mix(in srgb, var(--view-color) 20%, transparent); }
.claim-list-sort { color: var(--portal-muted); font-size: .75rem; }
.claim-list-grid { background: var(--portal-list-bg); border: 1px solid var(--portal-list-border); border-radius: .8rem; overflow: hidden; }
.claim-list-columns, .claim-list-row { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1.15fr) minmax(0, 1.5fr) minmax(0, .85fr) minmax(6rem, .55fr); }
.claim-list-columns { color: var(--portal-list-blue); text-transform: uppercase; font-size: .7rem; letter-spacing: .02em; border-bottom: 1px solid var(--portal-list-border); background: var(--portal-list-bg); }
.claim-list-columns > span { padding: .8rem 1rem; border-right: 1px solid var(--portal-list-border); }
.claim-list-columns > span:last-child { border-right: 0; }
.claim-list-row { --row-color: var(--portal-list-blue); position: relative; background: var(--portal-list-row-bg); border-bottom: 1px solid var(--portal-list-border); align-items: stretch; }
.claim-list-group:last-child .claim-list-row:last-child { border-bottom: 0; }
.claim-list-row > div { min-width: 0; display: flex; align-items: center; padding: .85rem 1rem; border-right: 1px solid color-mix(in srgb, var(--portal-list-border) 40%, transparent); font-size: .85rem; overflow-wrap: anywhere; }
.claim-list-row > div:last-child { border-right: 0; }
.claim-list-row.tone-teal { --row-color: var(--portal-list-teal); }
.claim-list-row.tone-amber { --row-color: var(--portal-list-amber); }
.claim-list-row.tone-purple { --row-color: var(--portal-list-purple); }
.claim-list-row.tone-muted { --row-color: var(--portal-muted); }
.claim-list-row-link { display: grid; gap: .15rem; color: var(--portal-text); text-decoration: none; min-width: 0; }
.claim-list-row-link::after { position: absolute; inset: 0; content: ""; z-index: 1; }
.claim-list-row-link strong { font-size: 1rem; }
.claim-list-row-link small { color: var(--portal-muted); font-size: .75rem; }
.claim-list-row:hover, .claim-list-row:focus-within { background: linear-gradient(110deg, color-mix(in srgb, var(--portal-list-blue) 18%, var(--portal-surface)), var(--portal-surface)); box-shadow: inset .18rem 0 var(--portal-list-blue); }
.claim-list-row:focus-within { outline: 2px solid var(--portal-focus); outline-offset: -2px; }
.claim-list-status { display: inline-flex; align-items: center; gap: .5rem; color: var(--row-color); background: linear-gradient(115deg, color-mix(in srgb, var(--row-color) 18%, var(--portal-surface)), color-mix(in srgb, var(--row-color) 7%, var(--portal-surface))); border: 1px solid color-mix(in srgb, var(--row-color) 70%, var(--portal-border)); border-radius: .55rem; padding: .5rem .6rem; font-size: .75rem; line-height: 1.35; }
.claim-list-status > span { display: inline-flex; flex: 0 0 auto; }
.claim-list-case { padding: .65rem 1rem; background: var(--portal-list-bg); border-bottom: 1px solid var(--portal-list-border); }
.claim-list-case a { color: var(--portal-text); font-weight: 750; text-decoration: none; margin-left: .65rem; }
.claim-list-case small { color: var(--portal-muted); }
.claim-list-row.is-grouped .claim-list-identity { padding-left: 2.25rem; box-shadow: inset 1px 0 var(--portal-list-blue); margin-left: 1rem; }
.claim-list-row.is-completed .claim-list-step, .claim-list-row.is-completed .claim-list-owner { color: var(--portal-muted); }
.claim-list-date { color: var(--portal-muted); font-variant-numeric: tabular-nums; }
.claim-list-section { display: grid; gap: .8rem; }
.claim-list-section + .claim-list-section { margin-top: .8rem; }
.claim-list-section-heading { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.claim-list-section-count { border: 1px solid var(--portal-list-border); border-radius: 999px; padding: .2rem .65rem; color: var(--portal-muted); font-size: .8rem; background: var(--portal-list-row-bg); }
.claim-list-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; font-size: .85rem; }
.claim-list-footer > div { display: grid; gap: .15rem; }
.claim-list-footer small { color: var(--portal-muted); font-size: .75rem; }
.claim-list-empty { padding: 2rem 1rem; margin: 0; color: var(--portal-muted); }

/* Billing workspace: service selection first, invoice batches below. */
.billing-workspace { min-width: 0; display: grid; gap: 1.1rem; }
.billing-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
.billing-heading h1 { margin: 0 0 .2rem; font-size: clamp(2rem, 3vw, 2.7rem); font-weight: 800; letter-spacing: -.035em; }
.billing-heading p, .billing-panel-subtitle { margin: 0; color: var(--portal-muted); }
.billing-archive-link { display: inline-flex; align-items: center; gap: .55rem; font-size: .85rem; color: var(--portal-list-blue); }
.billing-workspace svg { width: 1.2rem; height: 1.2rem; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.billing-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .7rem; }
.billing-metric { background: var(--portal-list-bg); border: 1px solid var(--portal-list-border); border-radius: .7rem; padding: 1rem .85rem; display: flex; align-items: flex-start; gap: .8rem; color: var(--portal-text); text-decoration: none; }
.billing-metric:hover { border-color: var(--portal-list-blue); color: var(--portal-text); }
.billing-metric-icon { width: 2.65rem; height: 2.65rem; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; border: 1px solid var(--portal-list-blue); color: var(--portal-list-blue); background: var(--portal-list-row-bg); flex-shrink: 0; }
.billing-metric-icon svg { width: 1.4rem; height: 1.4rem; }
.billing-metric > div { min-width: 0; display: grid; gap: .2rem; }
.billing-metric > div > span { color: var(--portal-muted); font-size: .8rem; }
.billing-metric strong { font-size: clamp(1.2rem, 1.8vw, 1.9rem); line-height: 1.2; letter-spacing: -.035em; font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; }
@media (min-width: 1200px) and (max-width: 1399.98px) {
  .billing-metric { gap: .55rem; padding: .85rem .65rem; }
  .billing-metric-icon { width: 2.15rem; height: 2.15rem; }
  .billing-metric strong { font-size: 1.35rem; }
}
.billing-metric small { color: var(--portal-muted); font-size: .8rem; }
.billing-unit-note { color: var(--portal-muted); font-size: .75rem; margin: -.7rem 0 -.4rem .2rem; }
.billing-panel { min-width: 0; background: var(--portal-list-bg); border: 1px solid var(--portal-list-border); border-radius: .75rem; padding: 1.1rem 1.25rem; display: grid; gap: .75rem; scroll-margin-top: 1rem; }
.billing-panel h2 { margin: 0; font-size: 1.45rem; font-weight: 750; letter-spacing: -.02em; }
.billing-panel > form { min-width: 0; }
.billing-panel-subtitle { margin-top: -.45rem; font-size: .85rem; }
.billing-tabs { display: flex; flex-wrap: wrap; gap: .3rem; }
.billing-tab { border: 1px solid var(--portal-list-border); border-radius: .45rem; background: var(--portal-list-row-bg); padding: .4rem .85rem; color: var(--portal-muted); font-size: .8rem; font-weight: 600; text-decoration: none; }
.billing-tab strong { margin-left: .3rem; background: color-mix(in srgb, var(--portal-list-blue) 15%, transparent); border-radius: .25rem; padding: .1rem .35rem; font-size: .7rem; }
.billing-tab:hover { border-color: var(--portal-list-blue); color: var(--portal-text); }
.billing-tab.is-active, .billing-workspace .btn-primary, .billing-page-current { background: var(--portal-list-button-bg); border-color: var(--portal-list-blue); color: var(--portal-list-button-text); }
.billing-workspace .btn-primary { box-shadow: 0 .2rem .8rem color-mix(in srgb, var(--portal-list-blue) 16%, transparent); }
.billing-search { display: grid; grid-template-columns: minmax(0, 1fr) 5.2rem; gap: .7rem; }
.billing-search-field { position: relative; min-width: 0; }
.billing-search-field > span { position: absolute; display: flex; left: .75rem; top: .65rem; color: var(--portal-muted); pointer-events: none; }
.billing-search-field .form-control { padding-left: 2.4rem; }
.billing-workspace .form-control, .billing-workspace .form-select { background-color: var(--portal-surface); border-color: var(--portal-list-border); font-size: .8rem; min-height: 2.45rem; border-radius: .45rem; }
.billing-table-wrap { border: 1px solid var(--portal-list-border); border-radius: .6rem; overflow-x: auto; }
.billing-table { width: 100%; border-collapse: collapse; font-size: .8rem; }
.billing-table th { color: var(--portal-muted); background: color-mix(in srgb, var(--portal-list-blue) 10%, transparent); font-size: .75rem; font-weight: 600; padding: .55rem .85rem; white-space: nowrap; }
.billing-table td { padding: .65rem .85rem; border-top: 1px solid var(--portal-list-border); background: var(--portal-list-row-bg); vertical-align: middle; }
.billing-table td:first-child:not(.billing-check-cell) { width: 34%; }
.billing-table td small { display: block; color: var(--portal-muted); font-size: .75rem; line-height: 1.4; }
.billing-table strong { color: var(--portal-text); font-size: .83rem; }
.billing-record-link, .billing-batch-link { text-decoration: none; }
.billing-record-link:hover { text-decoration: underline; }
.billing-check-cell { width: 2.8rem; text-align: center; }
.billing-workspace .form-check-input { margin-top: 0; border-color: var(--portal-muted); width: 1.05rem; height: 1.05rem; cursor: pointer; }
.billing-workspace .form-check-input:checked { background-color: var(--portal-list-blue); border-color: var(--portal-list-blue); }
.billing-amount, .billing-date { font-variant-numeric: tabular-nums; white-space: nowrap; }
.billing-amount { font-weight: 650; }
.billing-date { color: var(--portal-muted); }
.billing-status { display: inline-flex; border: 1px solid currentColor; border-radius: 999px; padding: .2rem .7rem; font-size: .7rem; line-height: 1.2; white-space: nowrap; background: color-mix(in srgb, currentColor 12%, transparent); }
.billing-status.status-repaired, .billing-status.batch-invoiced { color: var(--portal-list-teal); }
.billing-status.status-writtenoff { color: var(--portal-list-purple); }
.billing-status.batch-open { color: var(--portal-list-blue); }
.billing-status.batch-finalized { color: var(--portal-list-amber); }
.billing-selection-summary { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .8rem; margin: .1rem -.25rem 0; border: 1px solid var(--portal-list-blue); border-radius: .4rem; padding: .6rem 1rem; background: color-mix(in srgb, var(--portal-list-blue) 20%, var(--portal-surface)); }
.billing-selection-summary > div { display: grid; gap: .15rem; }
.billing-selection-summary span { font-size: .8rem; color: var(--portal-muted); }
.billing-selection-summary strong, .billing-selection-summary strong span { font-size: 1.1rem; color: var(--portal-text); font-weight: 750; }
.billing-selection-summary .btn { font-size: .85rem; padding: .55rem 1rem; border-radius: .45rem; }
.billing-panel-footer, .billing-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .65rem; font-size: .72rem; color: var(--portal-muted); }
.billing-lock-note { display: flex; align-items: center; gap: .5rem; }
.billing-panel-footer a { color: var(--portal-list-blue); text-decoration: none; }
.billing-batch-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .65rem; }
.billing-batch-toolbar .billing-search-field { flex: 0 1 19rem; }
.billing-batch-row { position: relative; }
.billing-batch-link::after { position: absolute; inset: 0; content: ""; z-index: 1; }
.billing-batch-row:hover td, .billing-batch-row:focus-within td { background: color-mix(in srgb, var(--portal-list-blue) 10%, var(--portal-surface)); }
.billing-batch-link:focus-visible::after { outline: 2px solid var(--portal-focus); outline-offset: -2px; }
.billing-shared-documents { display: flex; flex-wrap: wrap; gap: .75rem; }
.billing-shared-documents a { position: relative; z-index: 2; color: var(--portal-list-blue); font-size: .8rem; font-weight: 600; text-decoration: none; }
.billing-shared-documents a:hover { text-decoration: underline; }
.portal-body:has(.billing-workspace) #nav-shared-billing.is-active { background: var(--portal-list-button-bg); color: var(--portal-list-button-text); border-color: var(--portal-list-blue); }
.billing-next-step { color: var(--portal-list-blue); text-decoration: underline; white-space: nowrap; }
.billing-next-step span { margin-left: .35rem; }
.billing-pagination > div { display: flex; align-items: center; gap: .65rem; }
.billing-pagination a { color: var(--portal-muted); text-decoration: none; }
.billing-page-current { border-radius: .35rem; padding: .2rem .55rem; }
.billing-empty { text-align: center; padding: 1.4rem !important; color: var(--portal-muted); }

/* Claim-scoped parts queues, matching the billing workspace surfaces. */
.parts-workspace { min-width: 0; display: grid; gap: 1rem; }
.parts-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
.parts-heading h1 { margin: 0 0 .15rem; font-size: clamp(2rem, 3vw, 2.7rem); font-weight: 800; letter-spacing: -.035em; }
.parts-heading p, .parts-panel-heading p { margin: 0; color: var(--portal-muted); }
.parts-header-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.1rem; }
.parts-workspace .btn { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; border-radius: .4rem; }
.parts-workspace .btn-outline-primary { border-color: var(--portal-list-blue); color: var(--portal-list-blue); background: color-mix(in srgb, var(--portal-list-blue) 3%, var(--portal-surface)); }
.parts-workspace .btn-outline-primary:hover { background: color-mix(in srgb, var(--portal-list-blue) 15%, var(--portal-surface)); }
.parts-workspace .btn-outline-primary:focus-visible { outline: 2px solid var(--portal-focus); outline-offset: 2px; }
.parts-workspace svg:not(.parts-part-art) { width: 1.2rem; height: 1.2rem; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.parts-header-actions .btn { padding: .5rem .9rem; font-size: .85rem; }
.parts-archive-link { display: inline-flex; align-items: center; gap: .55rem; font-size: .8rem; color: var(--portal-muted); text-decoration: none; }
.parts-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.parts-workspace .state-needed { --part-color: var(--portal-list-amber); }
.parts-workspace .state-ordered { --part-color: var(--portal-list-blue); }
.parts-workspace .state-available { --part-color: var(--portal-list-teal); }
.parts-metric { display: flex; align-items: center; gap: 1.2rem; padding: 1.1rem; background: var(--portal-list-bg); border: 1px solid var(--portal-list-border); border-radius: .65rem; color: var(--portal-text); text-decoration: none; }
.parts-metric:hover { color: var(--portal-text); border-color: var(--part-color); }
.parts-metric-icon { display: flex; align-items: center; justify-content: center; width: 4rem; height: 4rem; border: 2px solid var(--part-color); background: color-mix(in srgb, var(--part-color) 10%, var(--portal-surface)); border-radius: 50%; flex-shrink: 0; color: var(--part-color); }
.parts-metric-icon svg { width: 2.15rem !important; height: 2.15rem !important; }
.parts-metric > div { display: grid; gap: .15rem; min-width: 0; }
.parts-metric > div > span { color: var(--part-color); font-size: .9rem; font-weight: 650; }
.parts-metric strong { font-size: 2.15rem; line-height: 1.1; font-weight: 800; }
.parts-metric small { color: var(--portal-muted); font-size: .8rem; }
.parts-count-note { display: flex; align-items: center; gap: .6rem; margin: -.3rem 0 -.3rem; color: var(--portal-muted); font-size: .72rem; }
.parts-count-note svg { color: var(--portal-list-blue); }
.parts-filter { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(11rem, 1fr) minmax(7.5rem, .45fr); gap: .7rem; }
.parts-search-field { position: relative; min-width: 0; }
.parts-search-field > span { position: absolute; display: flex; left: .85rem; top: .7rem; color: var(--portal-muted); pointer-events: none; }
.parts-search-field .form-control { padding-left: 2.7rem; }
.parts-filter .form-control, .parts-filter .form-select { background-color: var(--portal-surface); border-color: var(--portal-list-border); font-size: .8rem; min-height: 2.7rem; }
.parts-filter .btn { font-size: .8rem; }
.parts-panel { min-width: 0; padding: 1rem .6rem .65rem; background: var(--portal-list-bg); border: 1px solid var(--portal-list-border); border-radius: .65rem; display: grid; gap: .8rem; scroll-margin-top: 1rem; }
.parts-panel-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .7rem; padding: 0 .65rem; }
.parts-panel-heading h2 { font-size: 1.45rem; font-weight: 750; letter-spacing: -.025em; margin: 0 0 .2rem; }
.parts-panel-heading p { font-size: .85rem; }
.parts-tabs { display: flex; flex-wrap: wrap; gap: .2rem; background: var(--portal-list-row-bg); border: 1px solid var(--portal-list-border); border-radius: .5rem; padding: .15rem; }
.parts-tab { color: var(--portal-muted); padding: .45rem .7rem; font-size: .75rem; text-decoration: none; border-radius: .4rem; display: flex; align-items: center; gap: .35rem; border: 1px solid transparent; }
.parts-tab strong { background: color-mix(in srgb, var(--part-color, var(--portal-list-blue)) 15%, transparent); padding: .15rem .4rem; border-radius: .5rem; font-size: .7rem; }
.parts-tab i, .parts-status i { width: .45rem; height: .45rem; background: var(--part-color); border-radius: 50%; flex-shrink: 0; }
.parts-tab.is-active, .parts-page-current { background: var(--portal-list-button-bg); border-color: var(--portal-list-blue); color: var(--portal-list-button-text); }
.parts-tab:hover { color: var(--portal-text); border-color: var(--portal-list-blue); }
.parts-table-wrap { min-width: 0; overflow-x: auto; border: 1px solid var(--portal-list-border); border-radius: .6rem; }
.parts-table { width: 100%; border-collapse: collapse; font-size: .75rem; }
.parts-table th { background: color-mix(in srgb, var(--portal-list-blue) 5%, transparent); color: var(--portal-muted); font-size: .72rem; font-weight: 600; text-align: left; padding: .55rem .75rem; white-space: nowrap; }
.parts-table td { background: var(--portal-list-row-bg); border-top: 1px solid var(--portal-list-border); padding: .65rem .75rem; vertical-align: middle; }
.parts-table tr:hover td { background: color-mix(in srgb, var(--portal-list-blue) 8%, var(--portal-surface)); }
.parts-table td:first-child { width: 27%; }
.parts-table td:nth-child(2) { width: 19%; }
.parts-table small { display: block; color: var(--portal-muted); font-size: .7rem; line-height: 1.4; }
.parts-table strong { display: block; font-size: .85rem; font-weight: 650; }
.parts-identity { display: flex; align-items: center; gap: .8rem; }
.parts-identity > div { min-width: 0; }
.parts-art { display: inline-flex; align-items: center; justify-content: center; width: 2.85rem; height: 2.5rem; flex-shrink: 0; }
.parts-part-art { width: 100%; height: 100%; fill: none; stroke: var(--portal-muted); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 .15rem .25rem rgb(0 0 0 / 25%)); }
.parts-part-art .part-metal { fill: color-mix(in srgb, var(--portal-muted) 35%, var(--portal-surface)); }
.parts-part-art .part-rubber { fill: color-mix(in srgb, var(--portal-muted) 15%, var(--portal-surface)); }
.parts-part-art .part-board { fill: color-mix(in srgb, var(--portal-list-teal) 30%, var(--portal-surface)); }
.parts-part-art .part-chip { fill: var(--portal-surface); }
.parts-claim-link { color: var(--portal-list-blue); font-size: .83rem; font-weight: 650; }
.parts-supplier.is-empty { color: var(--portal-muted); }
.parts-quantity { white-space: nowrap; }
.parts-status { display: inline-flex; align-items: center; gap: .4rem; color: var(--part-color); border: 1px solid currentColor; background: color-mix(in srgb, var(--part-color) 10%, transparent); padding: .2rem .65rem; border-radius: 999px; font-size: .7rem; white-space: nowrap; }
.parts-row-actions { display: flex; align-items: center; gap: .65rem; justify-content: space-between; }
.parts-row-actions > a, .parts-row-actions > form { flex: 1 1 auto; }
.parts-row-actions .btn { font-size: .72rem; padding: .45rem .6rem; white-space: nowrap; width: 100%; }
.parts-row-actions .btn.state-ordered { border-color: var(--portal-list-teal); color: var(--portal-list-teal); }
.parts-row-menu { flex-shrink: 0; }
.parts-row-menu summary { border: 0; background: transparent; color: var(--portal-list-blue); padding: .2rem; }
.parts-next-link { display: flex; justify-content: space-between; gap: .7rem; align-items: center; white-space: nowrap; color: var(--portal-list-blue); text-decoration: none; font-size: .75rem; }
.parts-ready-heading { display: flex; flex-wrap: wrap; align-items: center; gap: .85rem; margin-bottom: .1rem; }
.parts-panel > .parts-count-note { padding: 0 .4rem; margin-top: -.2rem; }
.parts-pagination { border-top: 1px solid var(--portal-list-border); background: var(--portal-list-row-bg); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .7rem; padding: .6rem .8rem; color: var(--portal-muted); font-size: .72rem; }
.parts-pagination > div { display: flex; align-items: center; gap: .65rem; }
.parts-pagination a { border: 1px solid var(--portal-list-border); border-radius: .35rem; padding: .25rem .5rem; color: var(--portal-list-blue); text-decoration: none; }
.parts-page-current { border-radius: .35rem; padding: .3rem .6rem; }
.parts-empty { text-align: center; color: var(--portal-muted); padding: 1.5rem !important; }
.portal-body:has(.parts-workspace) #nav-parts.is-active { background: var(--portal-list-button-bg); border-color: var(--portal-list-blue); color: var(--portal-list-button-text); }
@media (min-width: 992px) {
  .parts-table-wrap:has([data-action-menu][open]) { overflow: visible; }
}
@media (max-width: 991.98px) {
  .parts-workspace .parts-row-menu[open] .internal-message-menu { position: fixed; bottom: 1rem; top: auto; left: 1rem; right: 1rem; max-width: none; width: auto; }
}
@media (max-width: 1199.98px) {
  .parts-metric { gap: .7rem; padding: .9rem .75rem; }
  .parts-metric-icon { width: 3rem; height: 3rem; }
  .parts-metric-icon svg { width: 1.6rem !important; height: 1.6rem !important; }
  .parts-table { min-width: 51rem; }
  .parts-ready-table { min-width: 44rem; }
}
@media (max-width: 767.98px) {
  .parts-metrics { gap: .5rem; }
  .parts-metric { flex-direction: column; align-items: flex-start; gap: .6rem; padding: .8rem .65rem; }
  .parts-metric > div > span { font-size: .75rem; }
  .parts-metric strong { font-size: 1.75rem; }
  .parts-metric small { font-size: .7rem; }
  .parts-filter { grid-template-columns: minmax(0, 1fr) auto; }
  .parts-filter .parts-search-field { grid-column: 1 / -1; }
  .parts-panel-heading { padding: 0 .2rem; }
  .parts-panel-heading h2 { font-size: 1.3rem; }
  .parts-panel-heading p { font-size: .75rem; }
}
.portal-body:has(.billing-workspace) #nav-billing.is-active { background: var(--portal-list-button-bg); border-color: var(--portal-list-blue); color: var(--portal-list-button-text); }
@media (max-width: 1199.98px) {
  .billing-metric { padding: .8rem .65rem; gap: .55rem; }
  .billing-metric-icon { width: 2.2rem; height: 2.2rem; }
  .billing-metric strong { font-size: 1.35rem; }
  .billing-metric > div > span, .billing-metric small { font-size: .73rem; }
}
@media (max-width: 767.98px) {
  .billing-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .billing-panel { padding: .9rem .75rem; }
  .billing-table { min-width: 42rem; }
  .billing-batch-toolbar .billing-search-field { flex-basis: 100%; }
}
@media (max-width: 399.98px) {
  .billing-metric { flex-direction: column; }
}
.claim-list-mobile-label { display: none; }
@media (max-width: 1100px) {
  .claim-list-columns { display: none; }
  .claim-list-row { grid-template-columns: minmax(0, 1fr) auto; }
  .claim-list-row > div { border-right: 0; padding: .6rem 1rem; }
  .claim-list-row .claim-list-identity { grid-column: 1; padding-top: 1rem; }
  .claim-list-state-cell { grid-column: 2; grid-row: 1; }
  .claim-list-row .claim-list-step { grid-column: 1 / -1; }
  .claim-list-row .claim-list-owner { grid-column: 1; padding-bottom: 1rem; }
  .claim-list-row .claim-list-date { grid-column: 2; padding-bottom: 1rem; }
  .claim-list-mobile-label { display: inline; color: var(--portal-muted); font-size: .7rem; margin-right: .5rem; }
  .claim-list-row.is-grouped .claim-list-identity { padding-left: 1rem; margin-left: 0; box-shadow: none; }
}
@media (max-width: 575.98px) {
  .claim-list-search { grid-template-columns: minmax(0, 1fr) auto; }
  .claim-list-search-field { grid-column: 1 / -1; }
  .claim-list-row { grid-template-columns: minmax(0, 1fr); }
  .claim-list-row .claim-list-state-cell, .claim-list-row .claim-list-date, .claim-list-row .claim-list-owner { grid-column: 1; grid-row: auto; }
  .claim-list-row .claim-list-owner { padding-bottom: .4rem; }
  .claim-list-row .claim-list-date { padding-top: .2rem; }
  .claim-list-row > div { font-size: .9rem; }
  .claim-list-view { min-height: 2.6rem; }
}

/* Operational overview: read-only team queues and their distribution. */
.dashboard-admin .operations-overview { display: grid; gap: 1.25rem; }
.dashboard-admin #operations-title { scroll-margin-top: 7rem; }
.dashboard-admin .operations-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem; }
.dashboard-admin .operations-heading { display: flex; align-items: center; gap: 1rem; min-width: 0; }
.dashboard-admin .operations-totals { display: flex; flex-wrap: wrap; gap: 1.5rem; }
.dashboard-admin .operations-totals > div { border-left: 1px solid var(--portal-workflow-section-border); padding-left: 1.25rem; }
.dashboard-admin .operations-totals span { display: flex; align-items: center; gap: .55rem; color: var(--portal-muted); font-size: .85rem; }
.dashboard-admin .operations-totals strong { display: block; font-size: 2rem; line-height: 1.25; margin-top: .25rem; font-variant-numeric: tabular-nums; }
.dashboard-admin .operations-grid { display: grid; gap: 1.25rem; min-width: 0; }
.dashboard-admin .operations-panel,
.dashboard-admin .operations-distribution { background: var(--portal-workflow-section-bg); border-color: var(--portal-workflow-section-border); min-width: 0; padding: clamp(.85rem, 1.5vw, 1.25rem); }
.dashboard-admin .operations-rows { display: grid; gap: .8rem; }
.dashboard-admin .operations-diagnostics { --operations-color: var(--portal-primary); }
.dashboard-admin .operations-decision { --operations-color: color-mix(in srgb, var(--portal-primary) 70%, var(--portal-status-final)); }
.dashboard-admin .operations-repair { --operations-color: var(--portal-status-ready); }
.dashboard-admin .operations-parts { --operations-color: var(--portal-status-action); }
.dashboard-admin .operations-inspection { --operations-color: var(--portal-status-final); }
.dashboard-admin .operations-row { align-items: center; background: var(--portal-workflow-row-bg); border: 1px solid var(--portal-workflow-section-border); border-radius: .75rem; color: var(--portal-text); display: grid; gap: .8rem; grid-template-columns: auto minmax(0, 1fr) auto auto; min-height: 6rem; padding: .85rem; text-decoration: none; transition: border-color 160ms ease, background 160ms ease; }
.dashboard-admin .operations-row:hover { background: color-mix(in srgb, var(--portal-primary) 8%, var(--portal-surface)); border-color: var(--portal-primary); }
.dashboard-admin .operations-row.is-empty .operations-count { color: var(--portal-muted); background: var(--portal-surface); border-color: var(--portal-border); }
.dashboard-admin .operations-icon { display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; flex: 0 0 auto; background: linear-gradient(145deg, color-mix(in srgb, var(--operations-color) 38%, transparent), color-mix(in srgb, var(--operations-color) 12%, var(--portal-surface))); border: 1px solid color-mix(in srgb, var(--operations-color) 65%, var(--portal-border)); border-radius: .65rem; box-shadow: 0 0 1rem color-mix(in srgb, var(--operations-color) 18%, transparent); color: var(--operations-color); }
.dashboard-admin .operations-header > .operations-heading > .operations-icon { width: 3.5rem; height: 3.5rem; }
.dashboard-admin .operations-identity { display: grid; gap: .35rem; min-width: 0; overflow-wrap: anywhere; }
.dashboard-admin .operations-identity strong { font-size: 1rem; }
.dashboard-admin .operations-identity small { font-size: .8rem; }
.dashboard-admin .operations-count { display: flex; align-items: center; justify-content: center; min-width: 2.75rem; min-height: 2.75rem; padding: .2rem .55rem; border-radius: .65rem; border: 1px solid color-mix(in srgb, var(--operations-color) 65%, var(--portal-border)); color: var(--operations-color); background: color-mix(in srgb, var(--operations-color) 15%, transparent); font-size: 1.5rem; font-variant-numeric: tabular-nums; }
.dashboard-admin .operations-role { grid-column: 2 / 4; font-size: .75rem; color: var(--portal-muted); justify-self: start; background: var(--portal-surface); border: 1px solid var(--portal-border); border-radius: .5rem; padding: .25rem .45rem; }
.dashboard-admin .operations-chevron { grid-column: 4; grid-row: 1; font-size: 1.75rem; color: var(--portal-muted); }
.dashboard-admin .operations-bottleneck { display: flex; gap: 1rem; padding: 1rem; margin-top: .8rem; border: 1px solid color-mix(in srgb, var(--portal-status-action) 48%, var(--portal-border)); border-radius: .75rem; background: color-mix(in srgb, var(--portal-status-action) 8%, var(--portal-surface)); }
.dashboard-admin .operations-bottleneck a { font-size: .85rem; }
.dashboard-admin .operations-dot { display: inline-block; width: .75rem; height: .75rem; flex: 0 0 auto; border-radius: 50%; background: var(--operations-color); }
.dashboard-admin .operations-bar { display: flex; overflow: hidden; border-radius: .6rem; height: 2.5rem; background: var(--portal-surface); }
.dashboard-admin .operations-segment { width: var(--operations-width); background: linear-gradient(135deg, var(--operations-color), color-mix(in srgb, var(--operations-color) 65%, var(--portal-surface))); }
.dashboard-admin .operations-legend { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .85rem 1.25rem; list-style: none; margin: 1rem 0; padding: 0; }
.dashboard-admin .operations-legend a { align-items: center; color: var(--portal-text); display: flex; gap: .65rem; text-decoration: none; padding-block: .25rem; }
.dashboard-admin .operations-legend a:hover { color: var(--portal-primary); }
.dashboard-admin .operations-legend strong { font-variant-numeric: tabular-nums; }
.dashboard-admin .operations-footer { display: flex; flex-wrap: wrap; align-items: baseline; gap: .75rem; justify-content: space-between; }
@media (min-width: 1200px) { .dashboard-admin .operations-grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); } }
@media (min-width: 1500px) { .dashboard-admin .operations-row:has(.operations-role) { grid-template-columns: auto minmax(0, 1fr) auto auto auto; } .dashboard-admin .operations-role { grid-column: 4; grid-row: 1; } .dashboard-admin .operations-row:has(.operations-role) .operations-chevron { grid-column: 5; } }
@media (max-width: 575.98px) { .dashboard-admin .operations-heading { align-items: flex-start; gap: .7rem; } .dashboard-admin .operations-row { gap: .6rem; padding: .7rem; grid-template-columns: auto minmax(0, 1fr) auto; } .dashboard-admin .operations-row .operations-chevron { display: none; } .dashboard-admin .operations-icon { width: 2.2rem; height: 2.2rem; } .dashboard-admin .operations-count { min-width: 2.2rem; min-height: 2.2rem; font-size: 1.25rem; } .dashboard-admin .operations-bottleneck { gap: .7rem; padding: .75rem; } }

/* Administrator homepage uses the repair guide's layered workflow surfaces. */
.dashboard-admin .portal-workspace-header,
.dashboard-admin .finance-overview,
.dashboard-admin .dashboard-section {
  background: var(--portal-workflow-bg);
  border: 1px solid var(--portal-workflow-border);
  border-radius: 1.15rem;
  box-shadow: var(--portal-workflow-shadow);
}
.dashboard-admin .dashboard-section { padding: clamp(.85rem, 2vw, 1.5rem); }
.dashboard-admin .dashboard-metric,
.dashboard-admin .admin-financial-tasks,
.dashboard-admin .admin-batch-panel,
.dashboard-admin .dashboard-activity-list {
  background: var(--portal-workflow-section-bg);
  border-color: var(--portal-workflow-section-border);
  border-radius: .75rem;
}
.dashboard-admin .admin-task-row {
  background: var(--portal-workflow-row-bg);
  border-color: var(--portal-workflow-section-border);
  border-radius: .55rem;
}
.dashboard-admin .finance-icon { border: 1px solid color-mix(in srgb, currentColor 55%, transparent); border-radius: .65rem; }
.dashboard-admin .finance-icon-blue,
.dashboard-admin .admin-metric-icon {
  background: linear-gradient(145deg, color-mix(in srgb, var(--portal-primary) 46%, transparent), color-mix(in srgb, var(--portal-primary) 20%, var(--portal-surface)));
  border: 1px solid color-mix(in srgb, var(--portal-primary) 68%, transparent);
  border-radius: .65rem;
  box-shadow: 0 0 1rem color-mix(in srgb, var(--portal-primary) 20%, transparent);
  color: var(--portal-primary);
}
.dashboard-admin .admin-metric-icon { min-height: 2.5rem; }
.dashboard-admin .admin-overview-icon { fill: none; flex: 0 0 auto; height: 1.4rem; width: 1.4rem; stroke: currentcolor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.dashboard-admin .dashboard-metric { align-content: center; display: grid; column-gap: .8rem; grid-template-columns: 2.5rem minmax(0, 1fr); min-height: 6.5rem; }
.dashboard-admin .dashboard-metric > strong, .dashboard-admin .dashboard-metric > span:not(.admin-metric-icon) { grid-column: 2; }
.dashboard-admin .dashboard-metric > .admin-metric-icon { align-items: center; display: flex; grid-column: 1; grid-row: 1 / 3; justify-content: center; }
.dashboard-admin .admin-financial-grid { align-items: start; display: grid; gap: var(--portal-space-4); min-width: 0; }
.dashboard-admin .admin-financial-tasks, .dashboard-admin .admin-batch-panel { display: grid; gap: var(--portal-space-4); min-width: 0; }
.dashboard-admin .admin-task-list { align-content: start; display: grid; gap: var(--portal-space-3); grid-auto-rows: max-content; max-height: 18rem; min-height: 0; overflow-y: auto; scrollbar-gutter: stable; }
.dashboard-admin .admin-task-row { display: grid; gap: .6rem; grid-template-columns: 1.8rem minmax(0, 1fr); padding: .8rem; }
.dashboard-admin .admin-task-identity { display: grid; gap: .2rem; overflow-wrap: anywhere; }
.dashboard-admin .admin-task-row > .portal-status { grid-column: 2; justify-self: start; white-space: normal; }
.dashboard-admin .admin-open { font-size: .8rem; grid-column: 2; }
.dashboard-admin .admin-batch-meta { align-items: center; display: flex; gap: .8rem; margin: 0; overflow-wrap: anywhere; }
.dashboard-admin .admin-batch-total { align-items: baseline; display: flex; flex-wrap: wrap; gap: .5rem; justify-content: space-between; padding-block: .75rem; }
.dashboard-admin .admin-batch-total strong { font-size: 1.5rem; }
@media (min-width: 768px) {
  .dashboard-admin .admin-task-row { grid-template-columns: 1.8rem minmax(0, 1fr) auto; }
  .dashboard-admin .admin-row-icon, .dashboard-admin .admin-task-identity { grid-row: 1 / 3; }
  .dashboard-admin .admin-task-row > .portal-status { grid-column: 3; grid-row: 1; }
  .dashboard-admin .admin-open { grid-column: 3; grid-row: 2; justify-self: end; }
}
@media (min-width: 1200px) {
  .dashboard-admin .admin-financial-grid { grid-template-columns: minmax(0, 1.7fr) minmax(19rem, 1fr); }
}
@media (min-width: 1500px) {
  .dashboard-admin .admin-task-row { grid-template-columns: 1.8rem minmax(0, 1fr) auto auto; }
  .dashboard-admin .admin-row-icon, .dashboard-admin .admin-task-identity { grid-row: 1; }
  .dashboard-admin .admin-open { grid-column: 4; grid-row: 1; }
}
@media (max-width: 575.98px) {
  .dashboard-admin .dashboard-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-admin .dashboard-metric { grid-template-columns: 1fr; padding: .85rem; }
  .dashboard-admin .dashboard-metric > strong, .dashboard-admin .dashboard-metric > span:not(.admin-metric-icon) { grid-column: 1; }
  .dashboard-admin .dashboard-metric > .admin-metric-icon { grid-row: auto; justify-content: flex-start; }
}

.invoice-drop-zone { background: var(--portal-surface-elevated); border: 2px dashed var(--portal-border); border-radius: var(--portal-radius); padding: 1.25rem; }
.invoice-drop-zone.is-dragging { border-color: var(--portal-primary); background: color-mix(in srgb, var(--portal-primary) 10%, var(--portal-surface-elevated)); }

:root {
  --portal-workflow-bg: linear-gradient(145deg, #f1f7ff, #ffffff);
  --portal-workflow-section-bg: linear-gradient(120deg, #e5f0ff, #f6faff);
  --portal-workflow-row-bg: var(--portal-surface);
  --portal-workflow-border: color-mix(in srgb, var(--portal-primary) 55%, var(--portal-border));
  --portal-workflow-section-border: color-mix(in srgb, var(--portal-primary) 32%, var(--portal-border));
  --portal-workflow-shadow: 0 0 2.8rem color-mix(in srgb, var(--portal-primary) 12%, transparent), inset 0 1px rgb(255 255 255 / 70%);
  --portal-canvas: #f4f7fb;
  --portal-surface: #ffffff;
  --portal-surface-elevated: #ffffff;
  --portal-border: #d9e1ec;
  --portal-text: #172033;
  --portal-muted: #5c697d;
  --portal-primary: #2563b8;
  --portal-primary-hover: #1d4f96;
  --portal-focus: #8bb8ff;
  --portal-radius: 0.75rem;
  --portal-radius-sm: 0.5rem;
  --portal-shadow: 0 0.5rem 1.5rem rgb(29 42 64 / 8%);
  --portal-space-1: 0.25rem;
  --portal-space-2: 0.5rem;
  --portal-space-3: 0.75rem;
  --portal-space-4: 1rem;
  --portal-space-5: 1.5rem;
  --portal-space-6: 2rem;
  --portal-status-action: #9a5b00;
  --portal-status-action-bg: #fff1d6;
  --portal-status-waiting: #315f9e;
  --portal-status-waiting-bg: #e7f0ff;
  --portal-status-ready: #087c79;
  --portal-status-ready-bg: #d9f5f2;
  --portal-status-completed: #19704b;
  --portal-status-completed-bg: #dff5e8;
  --portal-status-final: #6852a6;
  --portal-status-final-bg: #eeeaff;
  --portal-status-error: #af2939;
  --portal-status-error-bg: #ffe8eb;
}

[data-bs-theme="dark"] {
  --portal-workflow-bg: radial-gradient(circle at 24% 0%, rgb(18 105 236 / 20%), transparent 32%), linear-gradient(145deg, rgb(4 29 69 / 88%), rgb(2 15 43 / 94%));
  --portal-workflow-section-bg: linear-gradient(120deg, rgb(7 46 103 / 70%), rgb(4 27 67 / 72%));
  --portal-workflow-row-bg: rgb(3 24 61 / 63%);
  --portal-workflow-border: rgb(42 154 255 / 82%);
  --portal-workflow-section-border: rgb(41 135 229 / 45%);
  --portal-workflow-shadow: 0 0 2.8rem rgb(15 117 255 / 18%), inset 0 1px rgb(162 222 255 / 12%);
  --portal-canvas: #111827;
  --portal-surface: #182233;
  --portal-surface-elevated: #202c3f;
  --portal-border: #334155;
  --portal-text: #edf3fb;
  --portal-muted: #aebdce;
  --portal-primary: #76a9ff;
  --portal-primary-hover: #9ac2ff;
  --portal-focus: #b8d3ff;
  --portal-shadow: 0 0.7rem 1.75rem rgb(0 0 0 / 22%);
  --portal-status-action: #ffd18a;
  --portal-status-action-bg: #4a3516;
  --portal-status-waiting: #b6d2ff;
  --portal-status-waiting-bg: #21385c;
  --portal-status-ready: #85ded8;
  --portal-status-ready-bg: #143f42;
  --portal-status-completed: #95e3b9;
  --portal-status-completed-bg: #164332;
  --portal-status-final: #d3c5ff;
  --portal-status-final-bg: #372a5d;
  --portal-status-error: #ffb4bd;
  --portal-status-error-bg: #5a252e;
}

[data-bs-theme] {
  --bs-body-bg: var(--portal-canvas);
  --bs-body-color: var(--portal-text);
  --bs-secondary-color: var(--portal-muted);
  --bs-secondary-bg: var(--portal-surface-elevated);
  --bs-tertiary-bg: var(--portal-surface);
  --bs-border-color: var(--portal-border);
  --bs-primary: var(--portal-primary);
  --bs-primary-rgb: 37, 99, 184;
  --bs-link-color: var(--portal-primary);
  --bs-link-hover-color: var(--portal-primary-hover);
  --bs-focus-ring-color: color-mix(in srgb, var(--portal-focus) 45%, transparent);
}

[data-bs-theme="dark"] { --bs-primary-rgb: 118, 169, 255; }

html { scroll-behavior: smooth; }

body.portal-body {
  background: var(--portal-canvas);
  color: var(--portal-text);
  min-height: 100vh;
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid var(--portal-focus);
  outline-offset: 2px;
}

.portal-app-bar {
  background: var(--portal-surface-elevated);
  border-bottom: 1px solid var(--portal-border);
  box-shadow: 0 0.15rem 0.8rem rgb(0 0 0 / 5%);
}

.portal-nav-shell { min-height: 4rem; }

.portal-brand {
  color: var(--portal-text);
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  text-decoration: none;
  white-space: nowrap;
}

.portal-brand:hover { color: var(--portal-primary); }

.portal-nav-links {
  gap: var(--portal-space-1);
  overflow-x: auto;
  scrollbar-width: thin;
}

.portal-nav-link {
  border-bottom: 2px solid transparent;
  border-radius: var(--portal-radius-sm) var(--portal-radius-sm) 0 0;
  color: var(--portal-muted);
  font-size: 0.925rem;
  font-weight: 600;
  padding: 0.625rem 0.75rem 0.5rem;
  text-decoration: none;
  white-space: nowrap;
}

.portal-nav-link:hover {
  background: color-mix(in srgb, var(--portal-primary) 10%, transparent);
  color: var(--portal-text);
}

.portal-nav-link.is-active,
.portal-nav-link[aria-current="page"] {
  background: color-mix(in srgb, var(--portal-primary) 14%, transparent);
  border-bottom-color: var(--portal-primary);
  color: var(--portal-text);
}

.portal-account {
  color: var(--portal-muted);
  font-size: 0.875rem;
  max-width: 12rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.portal-content {
  max-width: 90rem;
  padding-bottom: var(--portal-space-6);
  padding-top: var(--portal-space-5);
}

.portal-workspace-header,
.portal-action-panel,
.portal-history-panel,
.portal-final-record-panel,
.portal-metric-tile,
.portal-queue-card,
.portal-form-panel,
.portal-empty-state {
  background: var(--portal-surface);
  border: 1px solid var(--portal-border);
  border-radius: var(--portal-radius);
}

.portal-workspace-header,
.portal-action-panel,
.portal-form-panel { box-shadow: var(--portal-shadow); }

.portal-workspace-header,
.portal-action-panel,
.portal-history-panel,
.portal-final-record-panel,
.portal-form-panel { padding: var(--portal-space-5); }

.portal-history-panel { background: color-mix(in srgb, var(--portal-surface) 92%, var(--portal-canvas)); }
.portal-final-record-panel { border-left: 0.3rem solid var(--portal-status-final); }
.portal-metric-tile,
.portal-queue-card { padding: var(--portal-space-4); }

.portal-panel-title,
.portal-metadata-label {
  color: var(--portal-muted);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.portal-empty-state {
  color: var(--portal-muted);
  padding: var(--portal-space-5);
  text-align: center;
}

.portal-action-bar {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--portal-space-2);
}

.card {
  --bs-card-bg: var(--portal-surface);
  --bs-card-border-color: var(--portal-border);
  border-radius: var(--portal-radius);
}

.table {
  --bs-table-bg: transparent;
  --bs-table-color: var(--portal-text);
  --bs-table-border-color: var(--portal-border);
  --bs-table-hover-color: var(--portal-text);
  --bs-table-hover-bg: color-mix(in srgb, var(--portal-primary) 7%, transparent);
}

.table > :not(caption) > * > * { padding-bottom: 0.7rem; padding-top: 0.7rem; }

.form-control,
.form-select,
.form-control:focus,
.form-select:focus {
  background-color: var(--portal-surface-elevated);
  border-color: var(--portal-border);
  color: var(--portal-text);
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus { box-shadow: 0 0 0 0.25rem color-mix(in srgb, var(--portal-focus) 35%, transparent); }

.form-control::file-selector-button {
  background: color-mix(in srgb, var(--portal-primary) 14%, var(--portal-surface-elevated));
  color: var(--portal-text);
}

.form-text,
.text-muted { color: var(--portal-muted) !important; }

.btn { --bs-btn-border-radius: var(--portal-radius-sm); min-height: 2.75rem; }
.btn-sm { min-height: 2.25rem; }

.btn-primary {
  --bs-btn-bg: var(--portal-primary);
  --bs-btn-border-color: var(--portal-primary);
  --bs-btn-hover-bg: var(--portal-primary-hover);
  --bs-btn-hover-border-color: var(--portal-primary-hover);
  --bs-btn-active-bg: var(--portal-primary-hover);
  --bs-btn-active-border-color: var(--portal-primary-hover);
  --bs-btn-color: #fff;
}

.btn-outline-primary {
  --bs-btn-color: var(--portal-primary);
  --bs-btn-border-color: color-mix(in srgb, var(--portal-primary) 65%, var(--portal-border));
  --bs-btn-hover-bg: var(--portal-primary);
  --bs-btn-hover-border-color: var(--portal-primary);
  --bs-btn-hover-color: #fff;
}

[data-bs-theme="dark"] .btn-primary {
  --bs-btn-color: #0a1628;
  --bs-btn-hover-color: #0a1628;
}

/* Outline actions have a transparent background: keep their default text bright. */
[data-bs-theme="dark"] .btn-outline-primary {
  --bs-btn-color: var(--portal-primary);
  --bs-btn-hover-color: #0a1628;
  --bs-btn-active-color: #0a1628;
}

.portal-status {
  border: 1px solid currentcolor;
  border-radius: 999px;
  display: inline-flex;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.2;
  padding: 0.35rem 0.55rem;
}

.status-action { background: var(--portal-status-action-bg); color: var(--portal-status-action); }
.status-waiting { background: var(--portal-status-waiting-bg); color: var(--portal-status-waiting); }
.status-ready { background: var(--portal-status-ready-bg); color: var(--portal-status-ready); }
.status-completed { background: var(--portal-status-completed-bg); color: var(--portal-status-completed); }
.status-final { background: var(--portal-status-final-bg); color: var(--portal-status-final); }
.status-error { background: var(--portal-status-error-bg); color: var(--portal-status-error); }

.alert { border-width: 1px; border-radius: var(--portal-radius-sm); }
.alert-success { --bs-alert-color: var(--portal-status-completed); --bs-alert-bg: var(--portal-status-completed-bg); --bs-alert-border-color: var(--portal-status-completed); }
.alert-info { --bs-alert-color: var(--portal-status-waiting); --bs-alert-bg: var(--portal-status-waiting-bg); --bs-alert-border-color: var(--portal-status-waiting); }
.alert-warning { --bs-alert-color: var(--portal-status-action); --bs-alert-bg: var(--portal-status-action-bg); --bs-alert-border-color: var(--portal-status-action); }
.alert-danger { --bs-alert-color: var(--portal-status-error); --bs-alert-bg: var(--portal-status-error-bg); --bs-alert-border-color: var(--portal-status-error); }

section[id] { scroll-margin-top: 5rem; }

.claim-workspace { display: grid; gap: var(--portal-space-5); min-width: 0; }
.claim-workspace > * { margin-bottom: 0 !important; margin-top: 0 !important; }

.claim-workspace-header { border-top: 0.3rem solid var(--portal-primary); }
.claim-workspace-title { font-size: clamp(1.75rem, 4vw, 2.4rem); font-weight: 750; letter-spacing: -0.035em; }
.claim-appliance { font-size: 1.15rem; font-weight: 650; }
.claim-serial { color: var(--portal-muted); font-size: 0.925rem; }
.claim-serial .portal-metadata-label { margin-right: var(--portal-space-2); }
.claim-workspace-status { max-width: 32rem; }
.claim-hero-card {
  background:
    radial-gradient(circle at 18% 0%, color-mix(in srgb, var(--portal-primary) 19%, transparent), transparent 39%),
    linear-gradient(110deg, color-mix(in srgb, var(--portal-surface) 92%, var(--portal-primary)), var(--portal-surface));
  border-color: color-mix(in srgb, var(--portal-primary) 56%, var(--portal-border));
  overflow: hidden;
}
.claim-hero-top { align-items: flex-start; display: flex; gap: var(--portal-space-5); justify-content: space-between; }
.claim-hero-top.has-overview-photo { display: grid; grid-template-columns: 9.25rem minmax(0, 1fr) auto; }
.claim-hero-photo { align-self: stretch; aspect-ratio: 1 / 1; background: var(--portal-surface-elevated); border: 1px solid color-mix(in srgb, var(--portal-primary) 62%, var(--portal-border)); border-radius: calc(var(--portal-radius) - 0.15rem); box-shadow: 0 0 1.3rem color-mix(in srgb, var(--portal-primary) 19%, transparent); display: block; min-height: 0; overflow: hidden; }
.claim-hero-photo img { height: 100%; object-fit: cover; transition: transform 160ms ease; width: 100%; }
.claim-hero-photo:hover img { transform: scale(1.03); }
.claim-hero-identity { min-width: 0; }
.claim-hero-eyebrow { color: var(--portal-primary); font-size: 0.78rem; font-weight: 800; letter-spacing: 0.075em; margin: 0 0 var(--portal-space-2); text-transform: uppercase; }
.claim-hero-state { align-items: center; display: flex; flex-wrap: wrap; gap: var(--portal-space-3); margin-top: var(--portal-space-3); }
.claim-hero-status { align-items: center; display: inline-flex; gap: 0.42rem; }
.claim-hero-status svg { fill: none; height: 1.05rem; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; width: 1.05rem; }
.claim-hero-actions { align-items: flex-end; display: grid; flex: 0 0 auto; gap: var(--portal-space-3); justify-items: end; }
.claim-header-actions { justify-content: flex-end; }
.claim-waiting-hint { font-size: 1rem; font-weight: 700; line-height: 1.45; }
.claim-reopened-hint { background: var(--portal-status-action-bg); border-left: 0.2rem solid var(--portal-status-action); border-radius: var(--portal-radius-sm); color: var(--portal-text); font-size: 0.875rem; padding: var(--portal-space-2) var(--portal-space-3); }
.claim-updated { color: var(--portal-muted); font-size: 0.825rem; line-height: 1.4; }
.claim-appliance-price { margin: 0; text-align: right; }
.claim-appliance-price strong { color: var(--portal-text); display: block; font-size: 1.25rem; }

.workspace-summary {
  background: color-mix(in srgb, var(--portal-surface) 92%, var(--portal-canvas));
  border: 1px solid var(--portal-border);
  border-radius: var(--portal-radius);
  padding: var(--portal-space-4);
}

.workspace-summary-grid { display: grid; gap: var(--portal-space-3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
.workspace-summary-grid-external { grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); }
.workspace-summary-item { border-left: 0.2rem solid var(--portal-border); min-width: 0; padding-left: var(--portal-space-3); }
.workspace-summary-item-primary { border-left-color: var(--portal-primary); grid-column: span 2; }
.workspace-summary-item-meta { color: var(--portal-muted); }
.claim-summary-layout { align-items: stretch; display: grid; gap: var(--portal-space-4); grid-template-columns: minmax(15rem, 1fr) minmax(0, 2fr); }
.claim-description-card { background: color-mix(in srgb, var(--portal-surface) 72%, transparent); border-color: color-mix(in srgb, var(--portal-primary) 42%, var(--portal-border)); border-left: 0.25rem solid var(--portal-primary); min-width: 0; padding: clamp(1rem, 2vw, 1.5rem); }
.claim-description-copy { color: var(--portal-text); font-size: 1rem; line-height: 1.6; overflow-wrap: anywhere; }
.claim-progress-card { background: color-mix(in srgb, var(--portal-surface-elevated) 85%, transparent); border-color: color-mix(in srgb, var(--portal-primary) 42%, var(--portal-border)); display: flex; flex-direction: column; gap: var(--portal-space-2); min-height: 0; min-width: 0; padding: clamp(1rem, 2vw, 1.5rem); }
.claim-progress-copy { color: var(--portal-text); font-size: 0.9rem; line-height: 1.45; margin: var(--portal-space-1) 0 0; }
.claim-progress-title,
.claim-summary-title { align-items: center; display: flex; font-size: 1.05rem; gap: 0.65rem; margin: 0 0 var(--portal-space-3); }
.claim-progress-title svg,
.claim-summary-title svg { background: color-mix(in srgb, var(--portal-primary) 20%, transparent); border: 1px solid color-mix(in srgb, var(--portal-primary) 55%, var(--portal-border)); border-radius: 0.7rem; fill: none; height: 2.35rem; padding: 0.5rem; stroke: var(--portal-primary); stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; width: 2.35rem; }
.claim-progress-timeline { flex: 1 1 auto; height: 0; list-style: none; margin: 0; min-height: 16.8rem; overflow-y: auto; padding: 0 0.4rem 0 0; scrollbar-color: color-mix(in srgb, var(--portal-primary) 55%, transparent) transparent; scrollbar-width: thin; }
.claim-progress-event { display: grid; gap: 0.65rem; grid-template-columns: minmax(0, 1fr) 4.85rem; min-height: 4.2rem; padding: 0 0 var(--portal-space-3) 2rem; position: relative; }
.claim-progress-event::before { background: var(--portal-primary); border: 0.22rem solid color-mix(in srgb, var(--portal-primary) 28%, var(--portal-surface)); border-radius: 50%; box-shadow: 0 0 0.8rem color-mix(in srgb, var(--portal-primary) 40%, transparent); content: ""; height: 0.8rem; left: 0; position: absolute; top: 0.2rem; width: 0.8rem; }
.claim-progress-event::after { background: color-mix(in srgb, var(--portal-primary) 55%, var(--portal-border)); content: ""; height: calc(100% - 0.75rem); left: 0.36rem; position: absolute; top: 1rem; width: 0.16rem; }
.claim-progress-event:first-child::before { background: var(--portal-status-completed); box-shadow: 0 0 0.8rem color-mix(in srgb, var(--portal-status-completed) 42%, transparent); }
.claim-progress-event.is-current { min-height: 3.45rem; padding-bottom: 0; }
.claim-progress-event.is-current::before { background: var(--portal-surface-elevated); border-color: var(--portal-primary); box-shadow: none; height: 0.95rem; width: 0.95rem; }
.claim-progress-event.is-current::after { display: none; }
.claim-progress-event-copy { display: grid; gap: 0.12rem; line-height: 1.32; min-width: 0; }
.claim-progress-event-copy strong { color: var(--portal-text); font-size: 0.9rem; }
.claim-progress-event-copy span { color: var(--portal-muted); font-size: 0.82rem; overflow-wrap: anywhere; }
.claim-progress-event time { color: var(--portal-muted); display: grid; font-size: 0.76rem; line-height: 1.25; text-align: right; }
.claim-progress-event time small { font-size: inherit; }

.claim-section-nav { display: flex; gap: var(--portal-space-2); overflow-x: auto; padding-bottom: var(--portal-space-1); scrollbar-width: thin; }
.claim-section-nav-link {
  background: var(--portal-surface);
  border: 1px solid var(--portal-border);
  border-radius: 999px;
  color: var(--portal-muted);
  flex: 0 0 auto;
  font-size: 0.875rem;
  font-weight: 700;
  padding: 0.5rem 0.75rem;
  text-decoration: none;
}
.claim-section-nav-link:hover, .claim-section-nav-link.is-current { background: color-mix(in srgb, var(--portal-primary) 14%, var(--portal-surface)); border-color: var(--portal-primary); color: var(--portal-text); }

.workspace-section { border-top: 1px solid var(--portal-border); min-width: 0; padding-top: var(--portal-space-5); }
.workspace-section.is-active, .workspace-section:target {
  background: color-mix(in srgb, var(--portal-primary) 7%, transparent);
  border: 1px solid color-mix(in srgb, var(--portal-primary) 48%, var(--portal-border));
  border-radius: var(--portal-radius);
  box-shadow: inset 0.25rem 0 0 var(--portal-primary);
  padding: var(--portal-space-4);
}
.workspace-section-header { align-items: center; display: flex; flex-wrap: wrap; gap: var(--portal-space-3); justify-content: space-between; margin-bottom: var(--portal-space-3); }
.workspace-section-subheader { margin-top: var(--portal-space-5); }
.portal-count { background: var(--portal-surface-elevated); border: 1px solid var(--portal-border); border-radius: 999px; color: var(--portal-muted); display: inline-flex; font-size: 0.75rem; padding: 0.2rem 0.45rem; vertical-align: middle; }

.workspace-readiness { background: var(--portal-status-waiting-bg); border-left: 0.25rem solid var(--portal-status-waiting); border-radius: var(--portal-radius-sm); color: var(--portal-text); padding: var(--portal-space-3) var(--portal-space-4); }
.workspace-record { border-bottom: 1px solid var(--portal-border); padding: var(--portal-space-4) 0; }
.workspace-record:first-child { padding-top: 0; }
.workspace-record:last-child { border-bottom: 0; padding-bottom: 0; }
.workspace-record.is-current, .workspace-timeline-row.is-current { background: color-mix(in srgb, var(--portal-primary) 8%, transparent); border-radius: var(--portal-radius-sm); margin-left: calc(var(--portal-space-2) * -1); margin-right: calc(var(--portal-space-2) * -1); padding-left: var(--portal-space-2); padding-right: var(--portal-space-2); }
.workspace-record-header { align-items: flex-start; display: flex; gap: var(--portal-space-3); justify-content: space-between; margin-bottom: var(--portal-space-2); }
.workspace-item-list { padding-left: 1.15rem; }
.workspace-item-list li + li { margin-top: var(--portal-space-1); }

.workspace-timeline-row { border-left: 2px solid var(--portal-border); display: grid; gap: var(--portal-space-3); grid-template-columns: minmax(9rem, 13rem) minmax(0, 1fr); padding: var(--portal-space-3) 0 var(--portal-space-3) var(--portal-space-4); position: relative; }
.workspace-timeline-row::before { background: var(--portal-surface-elevated); border: 2px solid var(--portal-primary); border-radius: 50%; content: ""; height: 0.65rem; left: -0.42rem; position: absolute; top: 1.05rem; width: 0.65rem; }
.workspace-timeline-row + .workspace-timeline-row { margin-top: var(--portal-space-2); }
.workspace-timeline-meta { color: var(--portal-muted); display: flex; flex-direction: column; font-size: 0.825rem; gap: var(--portal-space-1); }
.workspace-timeline-meta strong { color: var(--portal-text); font-size: 0.875rem; }
.workspace-notes-panel { background: color-mix(in srgb, var(--portal-surface) 84%, var(--portal-canvas)); }
.workspace-note-row::before { border-color: var(--portal-muted); }
.workspace-internal-note { background: color-mix(in srgb, var(--portal-status-action-bg) 52%, var(--portal-surface)); border-left: 0.2rem solid var(--portal-status-action); border-radius: var(--portal-radius-sm); padding: var(--portal-space-3); }

.evidence-grid { display: grid; gap: var(--portal-space-3); grid-template-columns: repeat(auto-fill, minmax(min(100%, 10.5rem), 1fr)); }
.evidence-scroller { box-sizing: border-box; display: flex; flex-wrap: nowrap; max-width: 100%; min-width: 0; overflow-x: auto; overflow-y: hidden; overscroll-behavior-inline: contain; scroll-snap-type: x proximity; width: 100%; padding: 0.15rem 0.15rem 0.75rem; scrollbar-width: thin; }
.evidence-scroller > .evidence-card { flex: 0 0 10.5rem; scroll-snap-align: start; }
.evidence-scroller > .evidence-empty-state { flex: 0 0 100%; }
.evidence-card { background: var(--portal-surface); border: 1px solid var(--portal-border); border-radius: var(--portal-radius); min-width: 0; overflow: hidden; }
.evidence-preview { aspect-ratio: 4 / 3; background: var(--portal-surface-elevated); display: block; overflow: hidden; }
.evidence-preview img { height: 100%; object-fit: cover; transition: transform 160ms ease; width: 100%; }
.evidence-preview:hover img { transform: scale(1.025); }
.evidence-gallery-trigger { border: 0; cursor: zoom-in; padding: 0; width: 100%; }
.photo-gallery-dialog { background: transparent; border: 0; max-height: 100dvh; max-width: min(94vw, 76rem); padding: 0; width: 100%; }
.photo-gallery-dialog::backdrop { background: rgb(0 8 28 / 86%); backdrop-filter: blur(0.35rem); }
.photo-gallery-shell { background: var(--portal-surface-elevated); border: 1px solid var(--portal-border); border-radius: var(--portal-radius); box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 42%); padding: var(--portal-space-3); }
.photo-gallery-toolbar { align-items: center; display: flex; gap: var(--portal-space-3); justify-content: space-between; margin-bottom: var(--portal-space-3); }
.photo-gallery-actions { align-items: center; display: flex; flex-wrap: wrap; gap: var(--portal-space-2); justify-content: flex-end; }
.photo-gallery-stage { align-items: center; display: grid; gap: var(--portal-space-2); grid-template-columns: auto minmax(0, 1fr) auto; }
.photo-gallery-figure { align-items: center; display: flex; flex-direction: column; justify-content: center; margin: 0; max-height: calc(100dvh - 12rem); min-width: 0; overflow: auto; }
.photo-gallery-figure img { cursor: zoom-in; max-height: calc(100dvh - 12rem); max-width: 100%; object-fit: contain; }
.photo-gallery-figure img.is-zoomed { cursor: zoom-in; max-height: none; max-width: none; }
.photo-gallery-figure figcaption { color: var(--portal-muted); margin-top: var(--portal-space-2); min-height: 1.5em; text-align: center; }
.photo-gallery-nav { background: var(--portal-surface); border: 1px solid var(--portal-border); border-radius: 50%; color: var(--portal-text); font-size: 2rem; height: 2.8rem; line-height: 1; width: 2.8rem; }
.photo-gallery-nav:hover:not(:disabled), .photo-gallery-nav:focus-visible { border-color: var(--portal-primary); box-shadow: 0 0 0 0.2rem rgb(67 148 255 / 23%); }
.photo-gallery-nav:disabled { cursor: default; opacity: 0.38; }
.evidence-card-body { padding: var(--portal-space-3); }
.evidence-grid-muted { opacity: 0.78; }
.evidence-card-excluded { border-color: color-mix(in srgb, var(--portal-status-action) 55%, var(--portal-border)); }
.evidence-empty-state { grid-column: 1 / -1; }
.photo-upload-secondary { border-left: 1px solid var(--portal-border); }

.final-record-list { display: grid; gap: var(--portal-space-3); }
.final-record-list-item { align-items: center; display: flex; gap: var(--portal-space-3); justify-content: space-between; }
.workspace-section-financial { border-top-color: color-mix(in srgb, var(--portal-status-final) 55%, var(--portal-border)); }
.billing-workspace-panel { border-left-color: var(--portal-status-final); }
.billing-totals dd { text-align: right; }
.billing-prepare-panel { align-items: center; display: flex; flex-wrap: wrap; gap: var(--portal-space-4); justify-content: space-between; }
.billing-prepare-controls { align-items: center; display: flex; flex-wrap: wrap; gap: var(--portal-space-2); }
.workspace-details summary { color: var(--portal-primary); cursor: pointer; font-weight: 700; }

.portal-dashboard { display: grid; gap: var(--portal-space-6); }
.dashboard-header { border-top: 0.3rem solid var(--portal-primary); }
.dashboard-section { display: grid; gap: var(--portal-space-3); }
.dashboard-section-action { border-top: 0; }
.dashboard-section-waiting { border-top: 1px solid var(--portal-border); padding-top: var(--portal-space-5); }
.dashboard-section-history { border-top: 1px solid var(--portal-border); padding-top: var(--portal-space-5); }
.dashboard-section-financial { border-top: 1px solid color-mix(in srgb, var(--portal-status-final) 55%, var(--portal-border)); padding-top: var(--portal-space-5); }
.dashboard-section-heading { align-items: center; display: flex; flex-wrap: wrap; gap: var(--portal-space-3); justify-content: space-between; }
.dashboard-metric-grid { display: grid; gap: var(--portal-space-3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr)); }
.dashboard-metric { color: var(--portal-text); display: flex; flex-direction: column; gap: var(--portal-space-1); min-height: 7.5rem; text-decoration: none; }
.dashboard-metric:hover { box-shadow: var(--portal-shadow); color: var(--portal-text); transform: translateY(-1px); }
.dashboard-metric strong { font-size: clamp(1.8rem, 4vw, 2.4rem); line-height: 1; }
.dashboard-metric span { font-size: 0.875rem; font-weight: 700; line-height: 1.35; }
.metric-action { border-top: 0.22rem solid var(--portal-status-action); }
.metric-ready { border-top: 0.22rem solid var(--portal-status-ready); }
.metric-waiting { border-top: 0.22rem solid var(--portal-status-waiting); }
.metric-final { border-top: 0.22rem solid var(--portal-status-final); }
.workflow-progress { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.workflow-progress-copy { color: var(--portal-muted); font-size: 0.875rem; font-weight: 650; word-spacing: 0.1em; }
.workflow-progress-copy span { color: var(--portal-primary); padding: 0 var(--portal-space-1); }

.dashboard-queue-grid { display: grid; gap: var(--portal-space-3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); }
.dashboard-queue-grid-primary { grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); }
.dashboard-queue-card { display: flex; flex-direction: column; gap: var(--portal-space-3); padding: var(--portal-space-4); }
.dashboard-queue-card.is-actionable { border-left: 0.3rem solid var(--portal-status-action); box-shadow: var(--portal-shadow); }
.dashboard-queue-card-final { border-left: 0.3rem solid var(--portal-status-final); }
.dashboard-card-top { align-items: flex-start; display: flex; gap: var(--portal-space-3); justify-content: space-between; }
.dashboard-record-id { color: var(--portal-text); font-weight: 800; text-decoration: none; }
.dashboard-record-id:hover { color: var(--portal-primary); text-decoration: underline; }
.dashboard-context { background: color-mix(in srgb, var(--portal-primary) 7%, transparent); border-radius: var(--portal-radius-sm); font-size: 0.9rem; margin: 0; padding: var(--portal-space-2) var(--portal-space-3); }
.dashboard-inspection { background: color-mix(in srgb, var(--portal-surface-elevated) 78%, var(--portal-canvas)); border-left: 0.2rem solid var(--portal-status-waiting); border-radius: var(--portal-radius-sm); padding: var(--portal-space-3); }
.dashboard-activity-list { background: var(--portal-history-panel-bg, color-mix(in srgb, var(--portal-surface) 92%, var(--portal-canvas))); border: 1px solid var(--portal-border); border-radius: var(--portal-radius); overflow: hidden; }
.dashboard-activity-row { align-items: center; color: var(--portal-text); display: flex; flex-wrap: wrap; gap: var(--portal-space-2); justify-content: space-between; padding: var(--portal-space-3) var(--portal-space-4); text-decoration: none; }
.dashboard-activity-row + .dashboard-activity-row { border-top: 1px solid var(--portal-border); }
.dashboard-activity-row:hover { background: color-mix(in srgb, var(--portal-primary) 7%, transparent); color: var(--portal-text); }
.dashboard-activity-row-final { border-left: 0.2rem solid var(--portal-status-final); }
.monthly-close-card { align-items: center; display: flex; gap: var(--portal-space-4); justify-content: space-between; }
.dashboard-health { align-items: center; color: var(--portal-muted); display: flex; flex-wrap: wrap; font-size: 0.8rem; gap: var(--portal-space-3); justify-content: flex-end; padding-top: var(--portal-space-2); }
.dashboard-external-grid { display: grid; gap: var(--portal-space-4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); }

/* Shared secondary work-page surfaces. */
.portal-page-header { align-items: flex-start; display: flex; flex-wrap: wrap; gap: var(--portal-space-3); justify-content: space-between; margin-bottom: var(--portal-space-5); }
.portal-page-header h1 { letter-spacing: -0.025em; }
.portal-back-link { color: var(--portal-muted); display: inline-block; font-size: 0.9rem; font-weight: 650; margin-bottom: var(--portal-space-2); text-decoration: none; }
.portal-back-link:hover { color: var(--portal-primary); text-decoration: underline; }
.portal-form-panel { display: grid; gap: var(--portal-space-4); }
.portal-form-section { border-top: 1px solid var(--portal-border); display: grid; gap: var(--portal-space-3); padding-top: var(--portal-space-4); }
.portal-form-section:first-of-type { border-top: 0; padding-top: 0; }
.portal-form-section > h2 { margin-bottom: 0; }
.portal-form-field { margin-bottom: var(--portal-space-3); }
.portal-form-field:last-child { margin-bottom: 0; }
.portal-form-field .form-label, .portal-form-field .form-check-label { color: var(--portal-text); font-weight: 700; }
.portal-field-required { color: var(--portal-muted); font-size: 0.75rem; font-weight: 650; margin-left: var(--portal-space-1); text-transform: uppercase; }
.portal-form-field.has-error .form-control, .portal-form-field.has-error .form-select { border-color: var(--portal-status-error); }
.portal-form-actions { align-items: center; border-top: 1px solid var(--portal-border); display: flex; flex-wrap: wrap; gap: var(--portal-space-2); margin-top: var(--portal-space-2); padding-top: var(--portal-space-4); }
.portal-record-context { background: color-mix(in srgb, var(--portal-primary) 7%, var(--portal-surface)); border-left: 0.25rem solid var(--portal-primary); border-radius: var(--portal-radius-sm); padding: var(--portal-space-3) var(--portal-space-4); }
.portal-record-context p { margin-bottom: 0; }
.portal-confirmation-panel { border-left: 0.3rem solid var(--portal-status-action); max-width: 48rem; }
.confirmation-final { border-left-color: var(--portal-status-final); }
.portal-table-panel { background: var(--portal-surface); border: 1px solid var(--portal-border); border-radius: var(--portal-radius); overflow: hidden; }
.portal-table-panel .table { margin-bottom: 0; }
.portal-table-panel thead th { background: color-mix(in srgb, var(--portal-surface-elevated) 80%, var(--portal-canvas)); color: var(--portal-muted); font-size: 0.75rem; letter-spacing: 0.03em; text-transform: uppercase; white-space: nowrap; }
.portal-table-panel tbody tr:last-child > * { border-bottom: 0; }
.portal-table-empty { color: var(--portal-muted); padding: var(--portal-space-5) !important; text-align: center; }
.portal-data-list { background: var(--portal-surface); border: 1px solid var(--portal-border); border-radius: var(--portal-radius); overflow: hidden; }
.portal-data-row { align-items: center; border-bottom: 1px solid var(--portal-border); display: flex; flex-wrap: wrap; gap: var(--portal-space-3); justify-content: space-between; padding: var(--portal-space-3) var(--portal-space-4); }
.portal-data-row:last-child { border-bottom: 0; }
.portal-key-value { display: grid; gap: var(--portal-space-2) var(--portal-space-4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); }
.portal-key-value-item { min-width: 0; }
.portal-key-value-item dt { color: var(--portal-muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }
.portal-key-value-item dd { margin-bottom: 0; margin-left: 0; }
.portal-summary-tile { background: color-mix(in srgb, var(--portal-surface) 88%, var(--portal-canvas)); border: 1px solid var(--portal-border); border-radius: var(--portal-radius-sm); padding: var(--portal-space-3); }
.portal-summary-tile strong { display: block; font-size: 1.25rem; }

/* Claim-protocol import stays a small extension of the shared form/workspace system. */
.claim-create-options { display: grid; gap: var(--portal-space-3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); margin-bottom: var(--portal-space-5); }
.claim-import-option { border-left-color: var(--portal-primary); }
.claim-import-upload-panel { max-width: 48rem; }
.claim-import-dropzone { background: color-mix(in srgb, var(--portal-primary) 6%, var(--portal-surface)); border: 1px dashed color-mix(in srgb, var(--portal-primary) 65%, var(--portal-border)); border-radius: var(--portal-radius-sm); padding: var(--portal-space-4); }
.claim-import-review-grid { align-items: start; display: grid; gap: var(--portal-space-4); grid-template-columns: minmax(0, 1fr) minmax(22rem, 1fr); }
.claim-import-preview-panel { min-width: 0; }
.claim-import-document-preview { background: var(--portal-surface-elevated); border: 1px solid var(--portal-border); border-radius: var(--portal-radius-sm); height: min(68vh, 52rem); margin-top: var(--portal-space-3); width: 100%; }
.claim-import-image-preview { background: var(--portal-surface-elevated); border: 1px solid var(--portal-border); border-radius: var(--portal-radius-sm); margin-top: var(--portal-space-3); max-height: 68vh; object-fit: contain; width: 100%; }
.claim-import-review-form { min-width: 0; }
.claim-import-field-uncertain { border-color: var(--portal-status-action) !important; box-shadow: 0 0 0 0.15rem color-mix(in srgb, var(--portal-status-action) 18%, transparent); }
.claim-import-field-missing { border-color: var(--portal-status-error) !important; box-shadow: 0 0 0 0.15rem color-mix(in srgb, var(--portal-status-error) 16%, transparent); }

@media (max-width: 575.98px) {
  .portal-nav-shell {
    align-items: flex-start !important;
    min-height: auto;
    padding-bottom: var(--portal-space-2);
    padding-top: var(--portal-space-2);
  }

  .portal-nav-links { order: 3; width: 100%; }
  .portal-account { max-width: 8rem; }
  .portal-content {
    padding-left: var(--portal-space-3);
    padding-right: var(--portal-space-3);
    padding-top: var(--portal-space-4);
  }

  .portal-workspace-header,
  .portal-action-panel,
  .portal-history-panel,
  .portal-final-record-panel,
  .portal-form-panel { padding: var(--portal-space-4); }

  .portal-action-bar > .btn:not(.btn-sm),
  .portal-action-bar > form > .btn:not(.btn-sm) { width: 100%; }

  .claim-workspace { gap: var(--portal-space-4); }
  .claim-workspace-status { max-width: none; }
  .workspace-summary-item-primary { grid-column: auto; }
  .workspace-section { padding-top: var(--portal-space-4); }
  .workspace-section.is-active, .workspace-section:target { padding: var(--portal-space-3); }
  .workspace-timeline-row { grid-template-columns: 1fr; padding-left: var(--portal-space-3); }
  .workspace-record-header, .final-record-list-item { align-items: flex-start; flex-direction: column; }
  .photo-upload-secondary { border-left: 0; border-top: 1px solid var(--portal-border); padding-top: var(--portal-space-4); }
  .billing-prepare-panel, .billing-prepare-controls { align-items: stretch; flex-direction: column; width: 100%; }
  .billing-prepare-controls .btn, .billing-prepare-controls select { width: 100%; }
  .portal-dashboard { gap: var(--portal-space-5); }
  .dashboard-section-waiting, .dashboard-section-history, .dashboard-section-financial { padding-top: var(--portal-space-4); }
  .workflow-progress { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-queue-card { padding: var(--portal-space-3); }
  .dashboard-card-top, .dashboard-activity-row, .monthly-close-card { align-items: flex-start; flex-direction: column; }
  .dashboard-activity-row { gap: var(--portal-space-2); }
  .dashboard-health { justify-content: flex-start; }
  .portal-page-header { margin-bottom: var(--portal-space-4); }
  .portal-form-actions { align-items: stretch; flex-direction: column; }
  .portal-form-actions .btn { width: 100%; }
  .portal-data-row { align-items: flex-start; flex-direction: column; }
  .portal-table-panel { overflow-x: auto; }
  .claim-import-review-grid { grid-template-columns: 1fr; }
  .claim-import-document-preview { height: 24rem; }
}

/* Glass SaaS visual refresh: shared shell and surfaces only. */
:root {
  --portal-canvas: #edf4ff;
  --portal-surface: rgb(255 255 255 / 74%);
  --portal-surface-elevated: rgb(248 251 255 / 88%);
  --portal-border: rgb(67 111 188 / 23%);
  --portal-text: #10213e;
  --portal-muted: #637694;
  --portal-primary: #196cf7;
  --portal-primary-hover: #0758dc;
  --portal-focus: #69b5ff;
  --portal-radius: 0.9rem;
  --portal-radius-sm: 0.7rem;
  --portal-shadow: 0 1.25rem 3.25rem rgb(24 72 141 / 12%);
  --portal-glass: rgb(255 255 255 / 68%);
  --portal-glass-strong: rgb(255 255 255 / 82%);
  --portal-glass-highlight: rgb(79 143 255 / 10%);
  --portal-sidebar-width: 17rem;
}

[data-bs-theme="dark"] {
  --portal-canvas: #030b1d;
  --portal-surface: rgb(10 27 59 / 70%);
  --portal-surface-elevated: rgb(13 35 73 / 86%);
  --portal-border: rgb(105 172 255 / 22%);
  --portal-text: #f4f8ff;
  --portal-muted: #98afd3;
  --portal-primary: #55a7ff;
  --portal-primary-hover: #83c8ff;
  --portal-focus: #8ed0ff;
  --portal-shadow: 0 1.25rem 3.25rem rgb(0 4 18 / 40%);
  --portal-glass: rgb(8 25 55 / 72%);
  --portal-glass-strong: rgb(12 34 70 / 88%);
  --portal-glass-highlight: rgb(73 139 255 / 13%);
}

body.portal-body {
  background:
    radial-gradient(circle at 72% -12%, rgb(20 123 255 / 32%), transparent 34rem),
    radial-gradient(circle at 5% 48%, rgb(73 67 255 / 18%), transparent 28rem),
    var(--portal-canvas);
  isolation: isolate;
}

body.portal-body::before {
  background-image: linear-gradient(rgb(124 181 255 / 3%) 1px, transparent 1px), linear-gradient(90deg, rgb(124 181 255 / 3%) 1px, transparent 1px);
  background-size: 3rem 3rem;
  content: "";
  inset: 0;
  pointer-events: none;
  position: fixed;
  z-index: -1;
}

.portal-shell { min-height: 100vh; }

.portal-sidebar {
  background: linear-gradient(180deg, rgb(6 23 54 / 94%), rgb(5 18 43 / 86%));
  border-right: 1px solid var(--portal-border);
  box-shadow: 1.25rem 0 3.5rem rgb(0 9 31 / 18%);
  display: flex;
  flex-direction: column;
  gap: 2rem;
  height: 100dvh;
  left: 0;
  padding: 1.35rem 1rem;
  position: fixed;
  top: 0;
  width: var(--portal-sidebar-width);
  z-index: 1030;
}

.portal-brand {
  align-items: center;
  color: #fff;
  display: flex;
  gap: 0.8rem;
  padding: 0.35rem 0.45rem;
}

.portal-brand:hover { color: #fff; }
.portal-brand strong { display: block; font-size: 1.3rem; letter-spacing: -0.04em; line-height: 1; }
.portal-brand small { color: #9cb9e9; display: block; font-size: 0.74rem; font-weight: 600; margin-top: 0.3rem; }

.portal-brand-mark {
  align-items: center;
  background: linear-gradient(135deg, #66cbff, #4568ff 55%, #8c5dff);
  border: 1px solid rgb(183 230 255 / 55%);
  border-radius: 0.75rem;
  box-shadow: 0 0.45rem 1.3rem rgb(43 117 255 / 32%);
  color: #061632;
  display: inline-flex;
  font-size: 1.15rem;
  font-weight: 900;
  height: 2.45rem;
  justify-content: center;
  width: 2.45rem;
}

.portal-nav-links { display: grid; gap: 0.32rem; overflow: visible; }

.portal-nav-link {
  align-items: center;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 0.7rem;
  color: #bdd0ee;
  display: flex;
  font-size: 0.9rem;
  gap: 0.78rem;
  padding: 0.7rem 0.72rem;
}

.portal-nav-icon { fill: none; flex: 0 0 auto; height: 1.15rem; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; width: 1.15rem; }
.portal-nav-link:hover { background: rgb(89 155 255 / 11%); border-color: rgb(119 186 255 / 16%); color: #fff; }
.portal-nav-link.is-active,
.portal-nav-link[aria-current="page"] {
  background: linear-gradient(100deg, rgb(64 118 255 / 53%), rgb(110 68 255 / 34%));
  border-color: rgb(148 189 255 / 24%);
  box-shadow: inset 0 1px rgb(183 219 255 / 16%), 0 0.55rem 1.4rem rgb(32 77 230 / 18%);
  color: #fff;
}

.portal-sidebar-footer { border-top: 1px solid rgb(132 181 255 / 18%); display: grid; gap: 0.3rem; margin-top: auto; padding: 1rem 0.45rem 0.2rem; }
@media (min-width: 992px) {
  .portal-sidebar .portal-brand, .portal-sidebar-footer { flex-shrink: 0; }
  .portal-sidebar .portal-nav-links { min-height: 0; overflow-y: auto; scrollbar-width: thin; }
}
.portal-connections { background: var(--portal-surface-elevated); border: 1px solid var(--portal-border); border-radius: .7rem; padding: .7rem; margin-bottom: .7rem; }
.portal-connections h2 { margin: 0 0 .5rem; }
.portal-connection-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .25rem .4rem; padding: .25rem 0; font-size: .75rem; color: var(--portal-muted); }
.portal-connection-row small { display: inline-flex; align-items: center; gap: .3rem; font-size: .68rem; }
.portal-connection-row i { width: .4rem; height: .4rem; border-radius: 50%; background: currentColor; }
.portal-connection-row .is-connected { color: var(--portal-status-completed); }
.portal-connection-row .is-disconnected { color: var(--portal-status-error); }
.portal-sidebar-caption { color: #7795c3; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.portal-sidebar .portal-account { color: #fff; max-width: none; }

.portal-page-frame { margin-left: var(--portal-sidebar-width); min-height: 100vh; }
.portal-topbar {
  align-items: center;
  backdrop-filter: blur(16px);
  background: rgb(4 17 42 / 48%);
  border-bottom: 1px solid rgb(112 175 255 / 16%);
  display: flex;
  justify-content: space-between;
  min-height: 4.5rem;
  padding: 0.75rem clamp(1rem, 3vw, 2.25rem);
  position: sticky;
  top: 0;
  z-index: 1020;
}

[data-bs-theme="light"] .portal-topbar { background: rgb(243 248 255 / 72%); }
.portal-topbar-context { align-items: center; color: var(--portal-muted); display: flex; font-size: 0.84rem; font-weight: 700; gap: 0.5rem; }
.portal-topbar-dot { background: linear-gradient(135deg, #48d9ff, #596eff); border-radius: 999px; box-shadow: 0 0 0.75rem #4e9dff; height: 0.5rem; width: 0.5rem; }
.portal-topbar-actions { align-items: center; display: flex; gap: 0.5rem; }
.portal-topbar-actions form { margin: 0; }

.portal-content { max-width: 100rem; padding: clamp(1.1rem, 3vw, 2.35rem); }
.portal-public-content { margin: 0 auto; padding-top: clamp(2rem, 8vh, 7rem); }
.portal-messages { margin-bottom: 1.25rem; }

.portal-workspace-header,
.portal-action-panel,
.portal-history-panel,
.portal-final-record-panel,
.portal-metric-tile,
.portal-queue-card,
.portal-form-panel,
.portal-empty-state,
.portal-table-panel,
.portal-data-list,
.card,
.workspace-summary {
  backdrop-filter: blur(16px);
  background: var(--portal-glass);
  border-color: var(--portal-border);
  box-shadow: var(--portal-shadow);
}

.portal-workspace-header,
.portal-action-panel,
.portal-form-panel,
.portal-history-panel,
.portal-final-record-panel { border-radius: var(--portal-radius); }
.portal-workspace-header { background: linear-gradient(135deg, var(--portal-glass-strong), var(--portal-glass)); }
.portal-history-panel { background: color-mix(in srgb, var(--portal-glass) 88%, transparent); }
.portal-final-record-panel { background: linear-gradient(125deg, color-mix(in srgb, var(--portal-status-final-bg) 38%, var(--portal-glass)), var(--portal-glass)); }
.workspace-summary { background: color-mix(in srgb, var(--portal-glass-strong) 92%, transparent); }

.portal-metric-tile,
.portal-queue-card,
.card { transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease; }
.portal-metric-tile:hover,
.portal-queue-card:hover,
.card:hover { border-color: color-mix(in srgb, var(--portal-primary) 58%, var(--portal-border)); box-shadow: 0 1.15rem 2.7rem rgb(10 62 153 / 20%); }
.dashboard-metric:hover { transform: translateY(-2px); }

.portal-page-header { border-bottom: 1px solid var(--portal-border); margin-bottom: 1.5rem; padding-bottom: 1rem; }
.portal-page-header h1,
.portal-workspace-header h1,
.claim-workspace-title { letter-spacing: -0.04em; }
.portal-metadata-label { color: color-mix(in srgb, var(--portal-primary) 62%, var(--portal-muted)); }

.btn {
  border-width: 1px;
  box-shadow: 0 0.35rem 0.9rem rgb(1 16 50 / 12%);
  font-weight: 700;
  letter-spacing: -0.01em;
  transition: box-shadow 150ms ease, transform 150ms ease, background 150ms ease;
}

.btn:hover { box-shadow: 0 0.65rem 1.35rem rgb(12 80 220 / 22%); transform: translateY(-1px); }
.btn-primary {
  --bs-btn-bg: #287cff;
  --bs-btn-border-color: rgb(112 188 255 / 68%);
  --bs-btn-hover-bg: #4e9dff;
  --bs-btn-hover-border-color: #8bcaff;
  --bs-btn-active-bg: #1965e4;
  background-image: linear-gradient(115deg, #1977ff, #5e78ff 58%, #4bc9ff);
}

.btn-outline-primary,
.btn-outline-secondary {
  backdrop-filter: blur(10px);
  background: rgb(61 125 221 / 7%);
  border-color: color-mix(in srgb, var(--portal-primary) 42%, var(--portal-border));
  color: var(--portal-text);
}

[data-bs-theme="dark"] .btn-outline-primary,
[data-bs-theme="dark"] .btn-outline-secondary { color: #d8e9ff; }
.btn-outline-primary:hover,
.btn-outline-secondary:hover { background: linear-gradient(115deg, rgb(47 119 255 / 82%), rgb(104 82 255 / 72%)); border-color: #8fcaff; color: #fff; }

.form-control,
.form-select,
.form-control:focus,
.form-select:focus {
  background: color-mix(in srgb, var(--portal-glass-strong) 88%, transparent);
  border-color: color-mix(in srgb, var(--portal-border) 80%, var(--portal-primary));
  border-radius: 0.65rem;
}

.form-control:focus,
.form-select:focus { border-color: var(--portal-primary); box-shadow: 0 0 0 0.24rem rgb(72 155 255 / 17%); }
.form-control::placeholder { color: color-mix(in srgb, var(--portal-muted) 78%, transparent); }
.form-control::file-selector-button { border: 0; border-radius: 0.45rem; font-weight: 700; margin-right: 0.75rem; }

.portal-table-panel { border-radius: var(--portal-radius); }
.portal-table-panel thead th { background: rgb(77 139 230 / 10%); color: color-mix(in srgb, var(--portal-text) 68%, var(--portal-muted)); }
.table > :not(caption) > * > * { border-bottom-color: color-mix(in srgb, var(--portal-border) 84%, transparent); }
.table-hover > tbody > tr:hover > * { --bs-table-bg-state: rgb(64 134 255 / 8%); }
.list-group { border-radius: var(--portal-radius); overflow: hidden; }
.list-group-item { background: var(--portal-glass); border-color: var(--portal-border); color: var(--portal-text); }
.list-group-item-action:hover { background: var(--portal-glass-highlight); color: var(--portal-text); }

.portal-status { border-color: color-mix(in srgb, currentcolor 45%, transparent); box-shadow: inset 0 1px rgb(255 255 255 / 8%); padding: 0.37rem 0.65rem; }
.status-action { box-shadow: 0 0 1rem color-mix(in srgb, var(--portal-status-action) 13%, transparent); }
.status-ready { box-shadow: 0 0 1rem color-mix(in srgb, var(--portal-status-ready) 14%, transparent); }
.status-final { box-shadow: 0 0 1rem color-mix(in srgb, var(--portal-status-final) 15%, transparent); }

.alert { backdrop-filter: blur(14px); box-shadow: 0 0.65rem 1.8rem rgb(0 16 49 / 14%); }
.dashboard-context,
.dashboard-inspection,
.workspace-readiness,
.portal-record-context { background: color-mix(in srgb, var(--portal-glass-strong) 82%, var(--portal-glass-highlight)); border-color: var(--portal-border); }
.workspace-section.is-active,
.workspace-section:target { background: linear-gradient(110deg, rgb(43 121 255 / 13%), rgb(106 70 255 / 7%)); box-shadow: inset 0.24rem 0 #5caaff, 0 0.9rem 2.2rem rgb(25 80 188 / 9%); }
.evidence-card { background: var(--portal-glass); border-color: var(--portal-border); box-shadow: 0 0.55rem 1.4rem rgb(0 12 41 / 13%); }

/* Claim evidence workspace: a contained horizontal gallery, keeping media protected. */
.photo-workspace-section { background: radial-gradient(ellipse 62% 88% at 50% 100%, rgb(9 87 185 / 15%), transparent 67%), linear-gradient(145deg, rgb(2 22 52 / 92%), rgb(1 14 37 / 96%)); border: 1px solid rgb(17 141 244 / 68%); border-radius: 1rem; box-shadow: inset 0 1px 0 rgb(175 224 255 / 9%), 0 0.75rem 2rem rgb(0 87 201 / 11%); overflow: visible; padding: clamp(0.9rem, 1.35vw, 1.4rem); }
.photo-workspace-section.workspace-section { border-top-width: 1px; }
.photo-workspace-section.is-active, .photo-workspace-section:target { background: radial-gradient(ellipse 62% 88% at 50% 100%, rgb(9 87 185 / 18%), transparent 67%), linear-gradient(145deg, rgb(2 22 52 / 92%), rgb(1 14 37 / 96%)); border-color: #219fff; box-shadow: inset 0 1px 0 rgb(175 224 255 / 9%), 0 0.75rem 2rem rgb(0 87 201 / 14%); padding: clamp(0.9rem, 1.35vw, 1.4rem); }
.photo-workspace-header { align-items: center; display: flex; gap: 0.8rem; justify-content: space-between; margin-bottom: 0.85rem; }
.photo-workspace-title { align-items: center; color: #f5f9ff; display: flex; flex-wrap: wrap; font-size: clamp(1.2rem, 1.55vw, 1.55rem); font-weight: 750; gap: 0.45rem; letter-spacing: -0.025em; margin: 0; }
.photo-workspace-title .portal-count { background: rgb(16 85 163 / 48%); border-color: rgb(65 151 255 / 24%); color: #79baff; font-size: 0.52em; font-weight: 750; padding: 0.28em 0.52em; }
.photo-workspace-actions { align-items: center; display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: 0.45rem; justify-content: flex-end; }
.photo-add-button { align-items: center; background: radial-gradient(ellipse 80% 160% at 50% 110%, #0d579f, #072a5d 54%, #04142d 100%); border: 1px solid #1299ff; border-radius: 0.75rem; box-shadow: inset 0 1px 0 rgb(186 231 255 / 18%), 0 0 0.9rem rgb(0 132 255 / 14%); color: #d2e4ff; display: inline-flex; flex: 0 0 auto; font-size: 0.82rem; font-weight: 750; gap: 0.45rem; min-height: 2.5rem; padding: 0.45rem 0.85rem; }
.photo-download-button { align-items: center; border: 1px solid rgb(71 153 239 / 68%); border-radius: 0.75rem; color: #c5ddfb; display: inline-flex; font-size: 0.78rem; font-weight: 700; gap: 0.35rem; min-height: 2.5rem; padding: 0.45rem 0.7rem; text-decoration: none; }
.photo-download-button span { font-size: 1rem; line-height: 1; }
.photo-download-button:hover, .photo-download-button:focus-visible { background: rgb(20 86 162 / 42%); border-color: #63bdff; color: #f2f8ff; }
.photo-add-button span { font-size: 1.2rem; font-weight: 400; line-height: 0.9; }
.photo-add-button:hover, .photo-add-button:focus-visible { background: radial-gradient(ellipse 80% 160% at 50% 110%, #1672bf, #0a3b79 54%, #061a38); border-color: #60c1ff; color: #f2f8ff; }
.photo-carousel { min-width: 0; position: relative; }
.photo-carousel-track.evidence-scroller { gap: 0.7rem; overflow-x: auto; padding: 0.05rem 1.35rem 0.3rem; scrollbar-width: none; scroll-snap-type: x mandatory; }
.photo-carousel-track.evidence-scroller::-webkit-scrollbar { display: none; }
.photo-carousel-track.evidence-scroller > .photo-carousel-card { flex: 0 0 clamp(8.1rem, 11.5vw, 11.5rem); scroll-snap-align: start; }
.photo-carousel-card { background: linear-gradient(160deg, rgb(7 40 86 / 97%), rgb(3 24 57 / 98%)); border-color: rgb(16 120 220 / 54%); border-radius: 0.7rem; box-shadow: inset 0 1px 0 rgb(160 214 255 / 8%), 0 0.45rem 1rem rgb(0 9 33 / 22%); display: flex; flex-direction: column; min-height: 13.9rem; }
.photo-carousel-card .evidence-preview { aspect-ratio: auto; background: #061a35; border-bottom: 1px solid rgb(26 119 214 / 36%); height: 6.8rem; }
.photo-carousel-card .evidence-preview img { object-fit: cover; }
.photo-card-body { display: flex; flex: 1 1 auto; flex-direction: column; padding: 0.55rem 0.6rem 0.65rem; }
.photo-card-meta { align-items: center; display: flex; justify-content: space-between; min-height: 1.3rem; }
.photo-card-category { background: linear-gradient(110deg, rgb(37 126 230 / 44%), rgb(24 82 150 / 49%)); border: 1px solid rgb(94 177 255 / 18%); border-radius: 999px; color: #b3d7ff; font-size: 0.62rem; font-weight: 750; padding: 0.18rem 0.4rem; }
.photo-card-more { background: transparent; border: 0; color: #9ac7ff; font-size: 0.78rem; font-weight: 800; letter-spacing: 0.08em; line-height: 1; padding: 0.1rem 0; }
.photo-card-more:hover, .photo-card-more:focus-visible { color: #e7f4ff; }
.photo-card-description { color: var(--portal-muted); display: -webkit-box; font-size: 0.68rem; -webkit-box-orient: vertical; -webkit-line-clamp: 2; margin: 0.45rem 0 0; min-height: 2.3em; overflow: hidden; }
.photo-card-date { color: #94beed; font-size: 0.63rem; margin: 0.45rem 0 0.6rem; }
.photo-card-actions { display: flex; gap: 0.4rem; margin-top: auto; }
.photo-card-action { align-items: center; background: rgb(4 35 77 / 72%); border: 1px solid rgb(18 118 220 / 64%); border-radius: 0.45rem; color: #bad9ff; display: inline-flex; flex: 1 1 0; font-size: 0.65rem; font-weight: 750; justify-content: center; min-height: 1.95rem; padding: 0.3rem 0.35rem; text-decoration: none; }
.photo-card-action:hover, .photo-card-action:focus-visible { background: rgb(10 66 139 / 78%); border-color: #48b2ff; color: #eff8ff; }
.photo-card-exclude { border-color: #d99100; color: #ffc24e; }
.photo-card-exclude:hover, .photo-card-exclude:focus-visible { background: rgb(116 75 7 / 29%); border-color: #ffbb21; color: #ffcf72; }
.photo-carousel-nav { align-items: center; background: radial-gradient(circle at 50% 40%, #1265c0, #072d6b 60%, #031632); border: 1px solid #1197ff; border-radius: 50%; box-shadow: 0 0 0.8rem rgb(0 126 255 / 28%); color: #f0f7ff; display: inline-flex; font-size: 1.6rem; height: 1.9rem; justify-content: center; line-height: 0.8; padding-bottom: 0.14rem; position: absolute; top: 3.6rem; width: 1.9rem; z-index: 1; }
.photo-carousel-nav:hover, .photo-carousel-nav:focus-visible { background: radial-gradient(circle at 50% 40%, #1e80e3, #0b418e 60%, #041a3c); border-color: #72c9ff; }
.photo-carousel-nav.is-previous { left: 0; }
.photo-carousel-nav.is-next { right: 0; }
.photo-upload-dialog { background: transparent; border: 0; max-width: min(94vw, 52rem); padding: 0; width: 100%; }
.photo-upload-dialog::backdrop { background: rgb(0 8 28 / 80%); backdrop-filter: blur(0.4rem); }
.photo-upload-dialog-panel { background: radial-gradient(ellipse 90% 100% at 50% 100%, rgb(8 73 154 / 20%), transparent 65%), linear-gradient(145deg, rgb(4 30 69 / 98%), rgb(2 15 42 / 99%)); border: 1px solid rgb(25 147 249 / 82%); border-radius: 1.15rem; box-shadow: inset 0 1px 0 rgb(177 226 255 / 12%), 0 1.25rem 3.4rem rgb(0 6 26 / 62%); overflow: hidden; }
.photo-upload-dialog-header { align-items: flex-start; border-bottom: 1px solid rgb(50 127 212 / 33%); display: flex; justify-content: space-between; padding: 1.25rem 1.4rem 1rem; }
.photo-upload-dialog-close { align-items: center; background: transparent; border: 1px solid transparent; border-radius: 0.6rem; color: var(--portal-muted); display: inline-flex; font-size: 1.75rem; height: 2.2rem; justify-content: center; line-height: 1; padding: 0; width: 2.2rem; }
.photo-upload-dialog-close:hover, .photo-upload-dialog-close:focus-visible { border-color: var(--portal-border); color: var(--portal-text); }
.photo-upload-dialog-body { display: grid; gap: 1rem; grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr); padding: 1.2rem 1.4rem 1.4rem; }
.photo-upload-option { background: rgb(4 31 70 / 68%); border: 1px solid rgb(43 119 203 / 31%); border-radius: 0.85rem; padding: 1rem; }
.photo-upload-option h4 { color: #eaf4ff; }
.photo-upload-option p { color: var(--portal-muted); font-size: 0.85rem; line-height: 1.4; }
.photo-upload-dialog-actions { display: flex; flex-wrap: wrap; gap: 0.65rem; margin-top: 1.2rem; }
.photo-edit-dialog { background: transparent; border: 0; max-width: min(92vw, 30rem); padding: 0; width: 100%; }
.photo-edit-dialog::backdrop { background: rgb(0 8 28 / 80%); backdrop-filter: blur(0.4rem); }
.photo-edit-dialog-panel { background: linear-gradient(145deg, rgb(4 30 69 / 98%), rgb(2 15 42 / 99%)); border: 1px solid rgb(25 147 249 / 82%); border-radius: 1.05rem; box-shadow: 0 1.25rem 3.4rem rgb(0 6 26 / 62%); overflow: hidden; }
.photo-edit-dialog-body { padding: 1.2rem 1.4rem 1.4rem; }

/* Claim card: a small number of clear operational blocks, not dashboard widgets. */
.claim-header-meta { border-top: 1px solid color-mix(in srgb, var(--portal-border) 86%, transparent); display: flex; flex-wrap: wrap; gap: 0.8rem clamp(1.25rem, 2vw, 2.5rem); margin-top: 1.35rem; padding-top: 1.15rem; }
.claim-header-meta-item { align-items: center; display: flex; flex: 0 1 auto; gap: 0.7rem; max-width: 100%; min-width: 0; }
.claim-header-meta-item > svg { fill: none; flex: 0 0 auto; height: 1.65rem; stroke: var(--portal-primary); stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.65; width: 1.65rem; }
.claim-header-meta-item span { color: var(--portal-text); display: grid; font-size: 0.9rem; gap: 0.08rem; min-width: 0; overflow-wrap: anywhere; }
.claim-header-meta-item small { color: var(--portal-muted); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.claim-header-meta-item .claim-carrier-reference { display: block; overflow-wrap: normal; overflow-x: auto; white-space: nowrap; }
.claim-decision-section { padding-top: 0.25rem; }
.claim-decision-panel,
.claim-decision-choice {
  backdrop-filter: blur(16px);
  border: 1px solid var(--portal-border);
  border-radius: var(--portal-radius);
  box-shadow: var(--portal-shadow);
}
.claim-decision-panel { background: var(--portal-glass); padding: clamp(1rem, 2vw, 1.5rem); }
.claim-decision-repair { border-color: color-mix(in srgb, #51c9ff 38%, var(--portal-border)); }
.claim-decision-writeoff { border-color: color-mix(in srgb, #ff8d54 42%, var(--portal-border)); }
.claim-decision-panel-heading { align-items: flex-start; display: flex; gap: 1rem; justify-content: space-between; }
.claim-decision-copy { border-left: 2px solid color-mix(in srgb, var(--portal-primary) 64%, transparent); margin: 1rem 0; padding-left: 0.9rem; }
.claim-decision-choice-grid { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.order-status-choice-grid { grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }
.claim-decision-choice { align-items: center; background: linear-gradient(145deg, rgb(9 50 104 / 84%), rgb(4 25 58 / 92%)); border-color: rgb(53 145 242 / 56%); box-shadow: inset 0 1px 0 rgb(165 218 255 / 10%), 0 0.4rem 1.25rem rgb(0 91 213 / 13%), 0 0 0.65rem rgb(20 129 247 / 8%); color: var(--portal-text); display: flex; gap: 1rem; min-height: 6rem; padding: 1rem 1.25rem; text-decoration: none; transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease; }
.claim-decision-choice-grid form { margin: 0; }
.claim-decision-choice-grid button.claim-decision-choice { font: inherit; text-align: left; width: 100%; }
.claim-decision-choice-disabled { cursor: not-allowed; opacity: 0.42; position: relative; }
.claim-decision-choice-disabled::after { align-items: center; background: color-mix(in srgb, var(--portal-surface) 58%, transparent); border-radius: inherit; color: var(--portal-text); content: "Reklamace čeká na kontrolu"; display: flex; font-size: 0.8rem; font-weight: 700; inset: 0; justify-content: center; letter-spacing: 0.01em; position: absolute; text-align: center; }
.claim-decision-choice:hover, .claim-decision-choice:focus-visible { color: var(--portal-text); transform: translateY(-2px); }
.claim-decision-choice-repair:hover, .claim-decision-choice-repair:focus-visible { border-color: #5bcfff; box-shadow: inset 0 1px 0 rgb(186 232 255 / 16%), 0 1rem 2.3rem rgb(36 154 255 / 20%), 0 0 1.2rem rgb(20 145 255 / 17%); }
.claim-decision-choice-inspection { background: radial-gradient(ellipse 72% 160% at 51% 116%, #0d579f 0%, #082e61 42%, #04152f 76%); border-color: #0d96ff; border-radius: 1.15rem; box-shadow: inset 0 1px 0 rgb(181 227 255 / 15%), 0 0 1.4rem rgb(0 128 255 / 19%); color: #c5dcff; gap: 1.1rem; grid-column: 1 / -1; justify-content: center; min-height: 4.75rem; padding: 0.8rem 2.05rem; text-align: center; }
.claim-decision-choice-inspection:hover { background: radial-gradient(ellipse 72% 160% at 51% 116%, #1470bd 0%, #0a3d7b 44%, #061a38 78%); border-color: #54bdff; box-shadow: inset 0 1px 0 rgb(214 244 255 / 22%), 0 0 1.8rem rgb(0 143 255 / 28%); color: #f1f8ff; }
.claim-decision-choice-inspection strong { font-size: 1.28rem; font-weight: 750; letter-spacing: -0.015em; }
.claim-decision-choice-inspection .claim-decision-choice-icon { background: transparent; border: 0; border-radius: 0; color: #b6d5ff; height: auto; width: auto; }
.claim-decision-choice-writeoff { border-color: rgb(211 126 86 / 52%); box-shadow: inset 0 1px 0 rgb(255 210 178 / 8%), 0 0.4rem 1.25rem rgb(112 53 26 / 14%), 0 0 0.65rem rgb(234 128 65 / 7%); }
.claim-decision-choice-writeoff:hover, .claim-decision-choice-writeoff:focus-visible { border-color: #ff975e; box-shadow: inset 0 1px 0 rgb(255 216 183 / 14%), 0 1rem 2.3rem rgb(251 103 47 / 16%), 0 0 1.15rem rgb(255 121 56 / 14%); }
.claim-decision-choice span:last-child { display: grid; gap: 0.35rem; }
.claim-decision-choice strong { font-size: 1.05rem; }
.claim-decision-choice small { color: var(--portal-muted); line-height: 1.45; }
.claim-decision-choice-icon { align-items: center; background: linear-gradient(135deg, rgb(53 153 255 / 22%), rgb(105 84 255 / 27%)); border: 1px solid rgb(119 204 255 / 26%); border-radius: 0.75rem; color: #9bd6ff; display: inline-flex; flex: 0 0 auto; font-size: 1.75rem; height: 3rem; justify-content: center; width: 3rem; }
.claim-decision-choice-icon svg { fill: none; height: 1.65rem; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 1.65rem; }
.claim-decision-choice-writeoff .claim-decision-choice-icon { background: linear-gradient(135deg, rgb(255 126 65 / 20%), rgb(255 87 117 / 22%)); border-color: rgb(255 157 101 / 29%); color: #ffc09a; }
.inspection-dialog { background: transparent; border: 0; max-width: min(92vw, 40rem); padding: 0; width: 100%; }
.inspection-dialog::backdrop { background: rgb(0 8 28 / 76%); backdrop-filter: blur(0.35rem); }
.inspection-dialog-panel { background: linear-gradient(145deg, color-mix(in srgb, var(--portal-surface-elevated) 96%, #001d4d), var(--portal-surface)); border: 1px solid color-mix(in srgb, var(--portal-primary) 52%, var(--portal-border)); border-radius: 1rem; box-shadow: 0 1.2rem 3.6rem rgb(0 8 32 / 54%), inset 0 1px 0 rgb(177 222 255 / 9%); overflow: hidden; }
.inspection-dialog-header { align-items: flex-start; border-bottom: 1px solid color-mix(in srgb, var(--portal-border) 70%, transparent); display: flex; gap: 1rem; justify-content: space-between; padding: 1.2rem 1.25rem 1rem; }
.inspection-dialog-close { align-items: center; background: transparent; border: 1px solid transparent; border-radius: 0.55rem; color: var(--portal-muted); display: inline-flex; font-size: 1.65rem; height: 2.15rem; justify-content: center; line-height: 1; padding: 0; width: 2.15rem; }
.inspection-dialog-close:hover, .inspection-dialog-close:focus-visible { border-color: var(--portal-border); color: var(--portal-text); }
.inspection-dialog-body { padding: 1.15rem 1.25rem; }
.inspection-dialog-body textarea { min-height: 10rem; resize: vertical; }
.inspection-dialog-actions { align-items: center; border-top: 1px solid color-mix(in srgb, var(--portal-border) 62%, transparent); display: flex; flex-wrap: wrap; gap: 0.7rem; padding: 1rem 1.25rem 1.2rem; }
.writeoff-dialog { max-width: min(96vw, 100rem); }
.writeoff-dialog .inspection-dialog-panel { display: flex; flex-direction: column; max-height: 96dvh; }
.writeoff-dialog .inspection-dialog-header { padding: 0.85rem 1.25rem; }
.writeoff-dialog .inspection-dialog-actions { padding: 0.75rem 1.25rem; }
.writeoff-dialog .inspection-dialog-body { overflow-y: auto; padding: 0.8rem 1.25rem; }
.writeoff-dialog .inspection-dialog-body > p { font-size: 0.85rem; margin-bottom: 0.4rem !important; }
.writeoff-dialog .inspection-dialog-body > label { float: left; margin: 0.45rem 0.8rem 0 0; }
.writeoff-dialog .inspection-dialog-body > select { width: min(100%, 24rem); margin-bottom: 0.8rem; }
.writeoff-dialog .inspection-dialog-header, .writeoff-dialog .inspection-dialog-actions { flex-shrink: 0; }
.writeoff-picker { display: grid; gap: 1.5rem; }
.writeoff-phrase-groups { min-width: 0; }
.writeoff-phrase-group { border: 1px solid var(--portal-border); border-radius: 0.8rem; padding: 0.85rem; min-width: 0; }
.writeoff-phrase-group legend { margin-bottom: 0.65rem; }
.writeoff-phrase-list { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.writeoff-phrase { position: relative; cursor: pointer; max-width: 100%; }
.writeoff-phrase span { display: block; border: 1px solid var(--portal-border); border-radius: 0.65rem; padding: 0.35rem 0.6rem; font-size: 0.85rem; line-height: 1.35; background: var(--portal-surface-elevated); color: var(--portal-text); transition: background 120ms, border-color 120ms; }
.writeoff-phrase:hover span { border-color: var(--portal-primary); }
.writeoff-phrase input:checked + span { background: var(--portal-status-completed-bg); color: var(--portal-status-completed); border-color: var(--portal-status-completed); }
.writeoff-phrase input:checked + span::before { content: "✓ "; font-weight: 700; }
.writeoff-phrase input:focus-visible + span { outline: 2px solid var(--portal-primary); outline-offset: 2px; }
.writeoff-picker-result { padding: 1rem; border: 1px solid var(--portal-border); border-radius: 0.8rem; background: var(--portal-surface-elevated); align-self: start; }
.writeoff-dialog .writeoff-picker-result textarea[name="conclusion"] { min-height: 4rem; height: 4rem; }
.writeoff-picker-result .writeoff-text-preview { min-height: 16rem; }
.service-billing-inline > .workspace-record-header { padding-top: 0.5rem; }
.service-billing-editor { display: grid; gap: 1.25rem; }
.service-billing-summary { align-self: start; background: var(--portal-surface-elevated); border: 1px solid var(--portal-border); border-radius: var(--portal-radius); padding: 1rem; }
.service-billing-summary .portal-key-value { margin-bottom: 0; }
.service-billing-summary .portal-key-value > div { display: flex; justify-content: space-between; gap: 1rem; padding: 0.45rem 0; }
.service-billing-summary .portal-key-value dt { font-size: 0.85rem; }
.service-billing-summary .portal-key-value dd { margin-bottom: 0; white-space: nowrap; }
.service-billing-finalized { background: linear-gradient(120deg, color-mix(in srgb, var(--portal-primary) 9%, var(--portal-surface)), var(--portal-surface)); border: 1px solid color-mix(in srgb, var(--portal-primary) 58%, var(--portal-border)); border-radius: var(--portal-radius); color: var(--portal-text); font-size: 1rem; min-width: 0; }
#billing.is-finalized { background: var(--portal-surface); border-color: color-mix(in srgb, var(--portal-primary) 58%, var(--portal-border)); padding: 0; }
#billing.is-finalized .service-billing-finalized { background: transparent; border: 0; }
#billing.is-finalized .repair-plan-number { top: 1.25rem; }
.service-billing-final-header { align-items: flex-start; border-bottom: 1px solid var(--portal-border); display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; padding: 1.25rem; }
.service-billing-final-identity { align-items: flex-start; display: flex; gap: 1rem; min-width: 0; }
.service-billing-final-identity > div { min-width: 0; }
.service-billing-final-identity h1,.service-billing-final-identity h3 { font-size: 1.5rem; font-weight: 750; margin: 0 0 .75rem; }
.service-billing-final-number { font-size: 1.08rem; font-weight: 650; margin: 0 0 .35rem; overflow-wrap: anywhere; }
.service-billing-final-appliance { color: var(--portal-muted); margin: 0; overflow-wrap: anywhere; }
.service-billing-finalized svg { fill: none; flex: 0 0 auto; height: 1.4rem; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; width: 1.4rem; }
.service-billing-final-icon { align-items: center; background: color-mix(in srgb, var(--portal-primary) 13%, transparent); border: 1px solid color-mix(in srgb, var(--portal-primary) 65%, var(--portal-border)); border-radius: var(--portal-radius-sm); color: var(--portal-primary); display: inline-flex; flex: 0 0 auto; height: 2.5rem; justify-content: center; width: 2.5rem; }
.service-billing-final-identity > .service-billing-final-icon { height: 3rem; width: 3rem; }
.service-billing-final-status { align-items: center; background: var(--portal-status-completed-bg); border: 1px solid color-mix(in srgb, var(--portal-status-completed) 45%, transparent); border-radius: var(--portal-radius-sm); color: var(--portal-status-completed); display: inline-flex; font-size: .9rem; gap: .5rem; padding: .6rem .8rem; white-space: nowrap; }
.service-billing-final-body { display: grid; gap: 1.5rem; padding: 1.25rem; }
.service-billing-final-items { min-width: 0; }
.service-billing-final-items h4 { font-size: 1.15rem; font-weight: 700; margin: .25rem 0 1.5rem; }
.service-billing-final-columns,.service-billing-final-item { align-items: center; display: grid; gap: .75rem; grid-template-columns: minmax(0, 1fr) auto; }
.service-billing-final-columns { color: var(--portal-muted); display: none; font-size: .85rem; padding: 0 0 .65rem; }
.service-billing-final-columns > :last-child { text-align: right; }
.service-billing-final-list { list-style: none; margin: 0; padding: 0; }
.service-billing-final-item { border-bottom: 1px solid var(--portal-border); padding: 1rem 0; }
.service-billing-final-description { align-items: center; display: flex; gap: .75rem; grid-column: 1 / -1; min-width: 0; }
.service-billing-final-description > div { min-width: 0; overflow-wrap: anywhere; }
.service-billing-final-description small { color: var(--portal-muted); display: block; margin-top: .2rem; }
.service-billing-final-quantity { color: var(--portal-muted); font-size: .9rem; }
.service-billing-final-net { font-size: .9rem; text-align: right; white-space: nowrap; }
.service-billing-mobile-label { color: var(--portal-muted); font-size: .8rem; font-weight: 400; }
.service-billing-final-material { color: var(--portal-muted); font-size: .9rem; margin: 1rem 0 0; }
.service-billing-final-summary { align-self: start; background: var(--portal-glass, var(--portal-surface-elevated)); border: 1px solid var(--portal-border); border-radius: var(--portal-radius); min-width: 0; padding: 1.25rem; }
.service-billing-final-total-label { color: var(--portal-muted); font-weight: 600; margin: 0 0 .25rem; }
.service-billing-final-total { font-size: clamp(2rem, 3.3vw, 3rem); font-weight: 750; letter-spacing: -.035em; line-height: 1.2; margin: 0 0 1rem; overflow-wrap: anywhere; }
.service-billing-final-taxes { border-block: 1px solid var(--portal-border); display: grid; gap: .65rem; margin: 0; padding: 1rem 0; }
.service-billing-final-taxes > div { display: flex; gap: 1rem; justify-content: space-between; }
.service-billing-final-taxes dt { color: var(--portal-muted); font-weight: 400; }
.service-billing-final-taxes dd { margin: 0; text-align: right; white-space: nowrap; }
.service-billing-final-pdf { padding-top: 1rem; }
.service-billing-final-pdf > p:first-child { align-items: center; display: flex; gap: .6rem; margin: 0 0 1rem; }
.service-billing-final-actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.service-billing-final-actions .btn { align-items: center; display: inline-flex; gap: .5rem; justify-content: center; min-height: 2.75rem; padding: .6rem .8rem; }
.service-billing-final-actions .btn-primary { flex: 1 1 auto; }
.service-billing-final-actions .btn-outline-secondary { border-color: var(--portal-border); color: var(--portal-text); }
.service-billing-final-actions .btn-outline-secondary:hover { background: var(--portal-surface-elevated); border-color: var(--portal-primary); }
.service-billing-archive-note { color: var(--portal-muted); font-size: .85rem; }
.service-billing-final-footer { align-items: center; border-top: 1px solid var(--portal-border); color: var(--portal-muted); display: flex; flex-wrap: wrap; font-size: .85rem; gap: 1rem; justify-content: space-between; padding: 1rem 1.25rem; }
.service-billing-final-footer > p { align-items: center; display: flex; gap: .6rem; margin: 0; }
.service-billing-final-archive { min-width: 0; }
.service-billing-final-archive summary { align-items: center; cursor: pointer; display: flex; gap: .5rem; justify-content: flex-end; list-style: none; }
.service-billing-final-archive summary::-webkit-details-marker { display: none; }
.service-billing-final-archive[open] { flex-basis: 100%; }
.service-billing-final-archive[open] summary svg { transform: rotate(180deg); }
.service-billing-final-archive-content { border-top: 1px solid var(--portal-border); margin-top: 1rem; overflow-wrap: anywhere; padding-top: 1rem; }
.service-billing-final-archive-content p { margin-bottom: .75rem; }
.service-billing-final-archive-content ul { margin: 0; padding-left: 1.25rem; }
.service-billing-final-archive-content li + li { margin-top: .5rem; }
@media (min-width: 576px) {
  .service-billing-final-columns,.service-billing-final-item { grid-template-columns: minmax(0, 1fr) minmax(4.5rem, auto) minmax(5.5rem, auto); }
  .service-billing-final-columns { display: grid; }
  .service-billing-final-description { grid-column: auto; }
  .service-billing-final-quantity,.service-billing-final-net { font-size: .95rem; }
  .service-billing-mobile-label { display: none; }
}
@media (min-width: 1200px) {
  .service-billing-final-body { grid-template-columns: minmax(0, 1.7fr) minmax(20rem, 1fr); }
  .service-billing-final-header,.service-billing-final-body { padding: 1.5rem; }
  .service-billing-final-footer { padding-inline: 1.5rem; }
}
/* Final billing uses the same compact scale as the other wizard steps. */
#billing.repair-plan-billing.is-finalized .repair-plan-number { top: .72rem; }
.repair-plan-billing .service-billing-finalized { font-size: .85rem; }
.repair-plan-billing .service-billing-final-header { gap: .7rem; padding: .72rem; }
.repair-plan-billing .service-billing-final-identity { gap: .6rem; }
.repair-plan-billing .service-billing-final-identity h3 { font-size: 1rem; margin-bottom: .2rem; }
.repair-plan-billing .service-billing-final-number { font-size: .85rem; margin-bottom: .12rem; }
.repair-plan-billing .service-billing-final-appliance { font-size: .78rem; }
.repair-plan-billing .service-billing-finalized svg { height: 1.1rem; width: 1.1rem; }
.repair-plan-billing .service-billing-final-icon { height: 1.75rem; width: 1.75rem; }
.repair-plan-billing .service-billing-final-identity > .service-billing-final-icon { height: 2.2rem; width: 2.2rem; }
.repair-plan-billing .service-billing-final-status { font-size: .78rem; gap: .35rem; padding: .35rem .55rem; }
.repair-plan-billing .service-billing-final-body { gap: .9rem; padding: .72rem; }
.repair-plan-billing .service-billing-final-items h4 { font-size: .9rem; margin: .1rem 0 .65rem; }
.repair-plan-billing .service-billing-final-columns { font-size: .75rem; padding-bottom: .3rem; }
.repair-plan-billing .service-billing-final-item { gap: .5rem; padding: .45rem 0; }
.repair-plan-billing .service-billing-final-description { gap: .5rem; }
.repair-plan-billing .service-billing-final-quantity,.repair-plan-billing .service-billing-final-net { font-size: .82rem; }
.repair-plan-billing .service-billing-final-material { font-size: .8rem; margin-top: .6rem; }
.repair-plan-billing .service-billing-final-summary { padding: .75rem; }
.repair-plan-billing .service-billing-final-total { font-size: 1.65rem; margin-bottom: .55rem; }
.repair-plan-billing .service-billing-final-taxes { gap: .3rem; padding-block: .5rem; }
.repair-plan-billing .service-billing-final-pdf { padding-top: .55rem; }
.repair-plan-billing .service-billing-final-pdf > p:first-child { gap: .4rem; margin-bottom: .55rem; }
.repair-plan-billing .service-billing-final-actions { gap: .4rem; }
.repair-plan-billing .service-billing-final-actions .btn { font-size: .8rem; gap: .35rem; min-height: 2.25rem; padding: .35rem .55rem; }
.repair-plan-billing .service-billing-final-footer { font-size: .75rem; gap: .6rem; padding: .55rem .72rem; }
@media (min-width: 1200px) {
  .repair-plan-billing .service-billing-final-body { grid-template-columns: minmax(0, 1.7fr) minmax(16.5rem, 1fr); }
}
.writeoff-dialog .writeoff-text-preview { min-height: 10rem; height: 10rem; }
@media (min-width: 992px) {
  .service-billing-editor { grid-template-columns: minmax(0, 3fr) minmax(15rem, 2fr); }
  .writeoff-picker { grid-template-columns: minmax(0, 2fr) minmax(18rem, 1fr); align-items: start; }
  .writeoff-picker-result { position: sticky; top: 0; }
}
.repair-decision-task-list { display: grid; gap: .45rem; }
.repair-decision-task-row { align-items: center; display: flex; gap: .5rem; }
.repair-decision-task-remove { align-items: center; background: transparent; border: 1px solid var(--portal-border); border-radius: .45rem; color: var(--portal-muted); display: inline-flex; flex: 0 0 auto; font-size: 1.2rem; height: 2.35rem; justify-content: center; width: 2.35rem; }
.repair-decision-task-remove:hover, .repair-decision-task-remove:focus-visible { border-color: var(--bs-danger); color: var(--bs-danger); }
.claim-progress-panel { padding-block: 0.25rem; }
.claim-progress-row { grid-template-columns: 6.25rem minmax(0, 1fr); }
.claim-note-form { max-width: 52rem; }

/* Internal communication: a compact, contained team conversation panel. */
.internal-communication-section { border-top: 0; }
/* The workspace section is already the surface. Keep communication flat inside it. */
.internal-communication-panel { background: transparent; border: 0; border-radius: 0; box-shadow: none; overflow: visible; }
.internal-communication-header { padding: 0 0 0.6rem; }
.internal-message-list { display: grid; gap: 0; padding: 0; }
.internal-message-card { align-items: flex-start; background: transparent; border: 0; border-bottom: 1px solid color-mix(in srgb, var(--portal-border) 72%, transparent); border-radius: 0; display: grid; gap: 0.75rem; grid-template-columns: 2.35rem minmax(0, 1fr) auto; padding: 0.75rem 0.1rem; }
.internal-message-card:first-child { padding-top: 0.25rem; }
.internal-message-card:last-child { border-bottom: 0; }
.internal-message-avatar { align-items: center; background: linear-gradient(135deg, #3b8dff, #8668ff); border: 1px solid rgb(162 204 255 / 58%); border-radius: 50%; box-shadow: 0 0.3rem 0.9rem rgb(63 134 255 / 28%); color: #fff; display: flex; font-size: 0.88rem; font-weight: 800; height: 2.55rem; justify-content: center; width: 2.55rem; }
.internal-message-content { min-width: 0; }
.internal-message-meta { align-items: baseline; display: flex; flex-wrap: wrap; gap: 0.3rem 0.65rem; line-height: 1.2; }
.internal-message-meta strong { color: var(--portal-text); font-size: 0.88rem; }
.internal-message-meta time { color: var(--portal-muted); font-size: 0.75rem; }
.internal-message-actions { position: relative; }
.internal-message-actions > summary { color: var(--portal-muted); cursor: pointer; font-size: 1.05rem; letter-spacing: 0.08em; line-height: 1; list-style: none; padding: 0.05rem 0.2rem; }
.internal-message-actions > summary::-webkit-details-marker { display: none; }
.internal-message-actions > summary:hover, .internal-message-actions > summary:focus-visible { color: var(--portal-primary); outline: 0; }
.internal-message-menu { background: var(--portal-surface-elevated); border: 1px solid var(--portal-border); border-radius: 0.55rem; box-shadow: 0 0.7rem 1.6rem rgb(0 12 40 / 32%); display: grid; min-width: 7rem; padding: 0.25rem; position: absolute; right: 0; top: 1.55rem; z-index: 2; }
.internal-message-menu a { border-radius: 0.35rem; color: var(--portal-text); font-size: 0.8rem; padding: 0.38rem 0.48rem; text-decoration: none; }
.internal-message-menu a:hover, .internal-message-menu a:focus-visible { background: color-mix(in srgb, var(--portal-primary) 14%, transparent); }
.internal-message-menu a.is-danger { color: var(--bs-danger); }
.internal-message-menu button { background: transparent; border: 0; border-radius: 0.35rem; color: var(--portal-text); font-size: 0.8rem; padding: 0.5rem; text-align: left; white-space: nowrap; width: 100%; }
.internal-message-menu button:hover, .internal-message-menu button:focus-visible { background: color-mix(in srgb, var(--portal-primary) 14%, transparent); }
[data-action-menu-row] { position: relative; }
[data-action-menu-row].has-open-action-menu { z-index: 10; }
[data-action-menu].opens-up .internal-message-menu { bottom: calc(100% + 0.5rem); top: auto; }
.internal-message-body { color: var(--portal-text); font-size: 0.9rem; line-height: 1.42; margin-top: 0.35rem; overflow-wrap: anywhere; }
.internal-message-empty { background: transparent; border: 1px dashed color-mix(in srgb, var(--portal-primary) 36%, var(--portal-border)); padding: 0.95rem; }
.internal-note-compose { border-top: 1px solid color-mix(in srgb, var(--portal-border) 72%, transparent); display: grid; gap: 0.55rem; margin-top: 0.35rem; padding: 0.9rem 0 0; }
.internal-note-compose > label { color: var(--portal-text); font-size: 0.88rem; font-weight: 650; }
.internal-note-textarea-wrap { position: relative; }
.internal-note-textarea-wrap textarea { background: color-mix(in srgb, var(--portal-canvas) 54%, var(--portal-surface)); border: 1px solid color-mix(in srgb, var(--portal-primary) 52%, var(--portal-border)); border-radius: 0.7rem; box-shadow: inset 0 0 0.9rem rgb(3 67 164 / 18%); color: var(--portal-text); display: block; min-height: 6rem; padding: 0.7rem 0.75rem 1.65rem; resize: vertical; width: 100%; }
.internal-note-textarea-wrap textarea:focus { border-color: var(--portal-primary); box-shadow: 0 0 0 0.18rem rgb(79 152 255 / 18%), inset 0 0 0.9rem rgb(3 67 164 / 18%); outline: 0; }
.internal-note-counter { bottom: 0.45rem; color: var(--portal-muted); font-size: 0.73rem; position: absolute; right: 0.6rem; }
.internal-note-submit { align-self: start; background: linear-gradient(110deg, #4b82ff, #4bbaf4); border: 1px solid rgb(143 204 255 / 72%); border-radius: 0.7rem; box-shadow: 0 0.35rem 0.95rem rgb(38 131 255 / 23%); color: #06172f; font-weight: 750; min-width: 5.35rem; padding: 0.5rem 1rem; }
.internal-note-submit:hover, .internal-note-submit:focus-visible { background: linear-gradient(110deg, #6394ff, #68c8fb); color: #06172f; }

/* Claim conversations share one chat presentation and keep visibility explicit. */
.claim-communications { display: grid; gap: 1rem; min-width: 0; margin-top: 1rem; }
.claim-chat { display: flex; flex-direction: column; min-width: 0; background: var(--portal-list-bg); border: 1px solid var(--portal-list-border); border-radius: .75rem; scroll-margin-top: 5rem; }
.claim-chat:target { border-color: var(--portal-list-blue); }
.claim-chat-header { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: .7rem; padding: 1.1rem 1.2rem; border-bottom: 1px solid var(--portal-list-border); }
.claim-chat-header h2 { font-size: 1.1rem; margin: 0; color: var(--portal-text); }
.claim-chat-header p { margin: .3rem 0 0; font-size: .75rem; color: var(--portal-muted); }
.claim-chat-visibility { border: 1px solid var(--portal-list-border); border-radius: 99rem; padding: .25rem .55rem; color: var(--portal-list-blue); font-size: .7rem; white-space: nowrap; }
.claim-chat-private .claim-chat-visibility, .claim-chat-private .claim-chat-compose-heading > span { color: var(--portal-list-amber); }
.claim-chat-history { display: grid; align-content: start; gap: 1rem; padding: 1.1rem 1.2rem; flex: 1; }
.claim-chat-date { display: flex; align-items: center; gap: .75rem; color: var(--portal-muted); font-size: .7rem; }
.claim-chat-date::before, .claim-chat-date::after { content: ""; flex: 1; height: 1px; background: var(--portal-list-border); }
.claim-chat-message { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: .6rem; width: 92%; min-width: 0; }
.claim-chat-avatar { display: grid; place-items: center; width: 2rem; height: 2rem; border: 1px solid var(--portal-list-border); border-radius: .5rem; background: var(--portal-list-row-bg); color: var(--portal-list-blue); font-size: .75rem; font-weight: 700; }
.claim-chat-content { min-width: 0; }
.claim-chat-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem .4rem; margin-bottom: .4rem; }
.claim-chat-meta strong { color: var(--portal-text); font-size: .78rem; overflow-wrap: anywhere; }
.claim-chat-meta span, .claim-chat-meta time { font-size: .7rem; color: var(--portal-muted); }
.claim-chat-meta time { margin-left: auto; }
.claim-chat-bubble { position: relative; padding: .75rem .85rem; background: var(--portal-surface-elevated); border: 1px solid var(--portal-list-border); border-radius: 0 .65rem .65rem .65rem; }
.claim-chat-body { color: var(--portal-text); font-size: .85rem; line-height: 1.55; overflow-wrap: anywhere; }
.claim-chat-message.is-outgoing { margin-left: auto; grid-template-columns: minmax(0, 1fr) 2rem; }
.claim-chat-message.is-outgoing .claim-chat-avatar { grid-column: 2; grid-row: 1; }
.claim-chat-message.is-outgoing .claim-chat-content { grid-column: 1; grid-row: 1; }
.claim-chat-message.is-outgoing .claim-chat-bubble { background: var(--portal-list-row-bg); border-color: color-mix(in srgb, var(--portal-list-blue) 65%, var(--portal-list-border)); border-radius: .65rem 0 .65rem .65rem; }
.claim-chat-message-actions { margin-top: .45rem; text-align: right; }
.claim-chat-message-actions > summary { display: inline-block; padding: .3rem; }
.claim-chat-message-actions .internal-message-menu { text-align: left; }
.claim-chat-compose { display: grid; gap: .6rem; padding: 1rem 1.2rem; border-top: 1px solid var(--portal-list-border); background: var(--portal-surface); border-radius: 0 0 .75rem .75rem; }
.claim-chat-compose-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .4rem .75rem; }
.claim-chat-compose-heading .form-label { margin: 0; color: var(--portal-text); font-size: .8rem; font-weight: 650; }
.claim-chat-compose-heading > span { color: var(--portal-list-blue); font-size: .7rem; }
.claim-chat-compose .form-control { min-height: 6rem; font-size: .85rem; resize: vertical; background: var(--portal-list-row-bg); color: var(--portal-text); border-color: var(--portal-list-border); border-radius: .5rem; }
.claim-chat-compose .form-control::placeholder { color: var(--portal-muted); }
.claim-chat-compose .form-control:focus { border-color: var(--portal-list-blue); }
.claim-chat-hint { margin: 0; color: var(--portal-muted); font-size: .7rem; }
.claim-chat-compose-actions { justify-content: space-between; margin: 0; }
.claim-chat-compose-actions > span { color: var(--portal-muted); font-size: .7rem; }
.claim-chat-compose-actions .btn { font-size: .8rem; }
.claim-chat-compose-actions .btn-primary { background: var(--portal-list-button-bg); color: var(--portal-list-button-text); border-color: var(--portal-list-blue); }
.claim-chat-compose-actions .btn-outline-secondary { background: var(--portal-list-row-bg); color: var(--portal-text); border-color: var(--portal-list-border); }
@media (min-width: 1100px) { .claim-communications-pair { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); } }
@media (max-width: 575.98px) {
  .claim-chat-header, .claim-chat-history, .claim-chat-compose { padding: .9rem; }
  .claim-chat-message { width: 100%; }
  .claim-chat-compose-heading > span { width: 100%; }
}
@media (pointer: coarse) {
  .claim-chat-compose .form-control { font-size: 1rem; }
  .claim-chat-compose-actions .btn, .claim-chat-message-actions > summary { min-height: 2.75rem; }
  .claim-chat-message-actions > summary { min-width: 2.75rem; }
}

/* Tasks and notifications follow the shared operational workspace palette. */
.task-workspace, .notification-workspace { min-width: 0; }
.work-eyebrow { color: var(--portal-muted); font-size: .72rem; font-weight: 700; letter-spacing: .07em; margin: .4rem 0; }
.work-panel { background: var(--portal-list-bg); border: 1px solid var(--portal-list-border); border-radius: .75rem; min-width: 0; }
.work-panel-heading { display: flex; align-items: center; flex-wrap: wrap; justify-content: space-between; gap: .65rem; padding: 1rem 1.2rem; border-bottom: 1px solid var(--portal-list-border); }
.work-panel-heading h2, .work-form-heading { font-size: 1.1rem; margin: 0; }
.work-panel-heading > span:not(.portal-status) { font-size: .75rem; color: var(--portal-muted); }
.work-panel-body { padding: 1.2rem; }
.work-navigation .nav-link { color: var(--portal-muted); border: 1px solid transparent; border-radius: .5rem; font-size: .85rem; }
.work-navigation .nav-link.active { color: var(--portal-list-button-text); background: var(--portal-list-button-bg); border-color: var(--portal-list-blue); }
.work-count { display: inline-block; margin-left: .3rem; font-size: .75rem; }
.task-workspace .work-filter, .task-workspace .task-editor { background: var(--portal-list-bg); border-color: var(--portal-list-border); }
.task-workspace .form-control, .task-workspace .form-select { background: var(--portal-list-row-bg); border-color: var(--portal-list-border); color: var(--portal-text); }
.task-workspace .form-control::placeholder { color: var(--portal-muted); }
.work-record-list { padding: .35rem 1.2rem; }
.task-record, .notification-record { display: grid; grid-template-columns: 2.25rem minmax(0, 1fr); gap: .8rem; padding: 1rem 0; border-bottom: 1px solid var(--portal-list-border); min-width: 0; }
.task-record:last-child, .notification-record:last-child { border-bottom: 0; }
.work-record-symbol { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; background: var(--portal-list-row-bg); border: 1px solid var(--portal-list-border); border-radius: .55rem; color: var(--portal-list-blue); }
.work-record-title { color: var(--portal-text); font-weight: 650; text-decoration: none; overflow-wrap: anywhere; }
.work-record-title:hover { color: var(--portal-list-blue); text-decoration: underline; }
.task-record-meta { display: flex; flex-wrap: wrap; gap: .35rem 1rem; margin-top: .4rem; color: var(--portal-muted); font-size: .78rem; }
.task-record-meta strong { font-weight: 500; color: var(--portal-text); }
.task-record-state { grid-column: 2; display: flex; flex-wrap: wrap; gap: .45rem .75rem; align-items: center; }
.task-priority { color: var(--portal-muted); font-size: .75rem; }
.work-attention, .task-priority.is-attention, .task-record.is-attention .work-record-symbol { color: var(--portal-list-amber); }
.work-attention { font-size: .75rem; }
.task-record.is-completed .work-record-symbol { color: var(--portal-list-teal); }
.task-summary-layout, .task-content-layout { display: grid; gap: 1rem; margin-bottom: 1rem; }
.task-description-copy { line-height: 1.7; overflow-wrap: anywhere; }
.task-claim-link { display: inline-block; margin-top: 1rem; color: var(--portal-list-blue); }
.work-audit { color: var(--portal-muted); font-size: .75rem; margin: .75rem 0 0; overflow-wrap: anywhere; }
.task-facts { display: grid; gap: .85rem; margin: 0; }
.task-facts > div { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .3rem 1rem; }
.task-facts dt { font-size: .8rem; font-weight: 400; color: var(--portal-muted); }
.task-facts dd { margin: 0; font-size: .85rem; overflow-wrap: anywhere; }
.task-status-form, .task-upload, .work-form-section { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--portal-list-border); }
.task-status-form .portal-form-actions { margin-bottom: 0; }
.work-section-links { display: flex; flex-wrap: wrap; gap: 1.25rem; margin: 1.25rem 0; }
.work-section-links a { color: var(--portal-list-blue); font-size: .85rem; }
.task-attachment-list { display: grid; gap: 1rem; }
.task-attachment { min-width: 0; border-bottom: 1px solid var(--portal-list-border); padding-bottom: .9rem; }
.task-attachment:last-child { border-bottom: 0; }
.task-attachment img { display: block; width: 100%; max-height: 12rem; object-fit: contain; border-radius: .5rem; background: var(--portal-surface); margin-bottom: .6rem; }
.task-attachment .work-record-title { font-size: .85rem; }
.task-upload { margin-top: 0; }
.task-history summary { padding: 1rem 1.2rem; font-weight: 650; cursor: pointer; }
.task-history summary span { font-size: .75rem; color: var(--portal-muted); font-weight: 400; margin-left: .75rem; }
.task-event { padding: .85rem 0; border-bottom: 1px solid var(--portal-list-border); }
.task-event:last-child { border: 0; }
.task-event-change { font-size: .8rem; overflow-wrap: anywhere; margin-top: .4rem; }
.task-editor { max-width: 64rem; }
.work-form-heading { margin-bottom: 1rem; }
.notification-record-heading { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: .5rem 1rem; }
.notification-record-heading h3 { font-size: .95rem; margin: 0; overflow-wrap: anywhere; }
.notification-record-heading time { color: var(--portal-muted); font-size: .72rem; }
.notification-record-copy { min-width: 0; }
.notification-record-copy > p { color: var(--portal-muted); font-size: .85rem; margin: .5rem 0 .8rem; overflow-wrap: anywhere; }
.notification-record-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; }
.notification-read-label { color: var(--portal-muted); font-size: .72rem; }
.notification-record.is-unread .notification-read-label, .notification-record.is-unread .work-record-symbol { color: var(--portal-list-blue); }
.notification-record.is-unread h3 { font-weight: 750; }
.notification-record:not(.is-unread) .work-record-symbol { color: var(--portal-muted); }
.notification-bell { display: inline-flex; align-items: center; gap: .45rem; }
.notification-bell-count { display: grid; place-items: center; min-width: 1.2rem; padding: .1rem .3rem; border-radius: 99rem; color: var(--portal-list-button-text); background: var(--portal-list-button-bg); font-size: .7rem; }
.notification-toast { position: fixed; bottom: 1rem; right: 1rem; z-index: 1080; max-width: calc(100vw - 2rem); background: var(--portal-surface-elevated); color: var(--portal-text); border: 1px solid var(--portal-list-border); border-radius: .75rem; box-shadow: var(--portal-shadow); }
.notification-toast-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; border-bottom: 1px solid var(--portal-list-border); font-size: .85rem; }
.notification-toast .toast-body { padding: 1rem; }
.notification-toast .toast-body p { overflow-wrap: anywhere; margin-bottom: .7rem; }
.notification-toast a { color: var(--portal-list-blue); }
#task-discussion, #task-attachments, #task-history { scroll-margin-top: 5rem; }
@media (min-width: 768px) { .task-record { grid-template-columns: 2.25rem minmax(0, 1fr) auto; } .task-record-state { grid-column: 3; align-items: flex-end; flex-direction: column; } }
@media (min-width: 1100px) { .task-summary-layout, .task-content-layout { grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); align-items: start; } }
@media (max-width: 575.98px) { .work-panel-heading, .work-panel-body { padding: .9rem; } .work-record-list { padding-inline: .9rem; } .notification-record-actions { align-items: flex-start; } }

/* Inline repair plan: one visual workflow, built from existing parts and repair records. */
.repair-plan-module {
  --repair-blue: #248cff;
  --repair-cyan: #48c8ff;
  --repair-green: #25dfa0;
  --repair-amber: #ffc14d;
  background: radial-gradient(circle at 24% 0%, rgb(18 105 236 / 20%), transparent 32%), linear-gradient(145deg, rgb(4 29 69 / 88%), rgb(2 15 43 / 94%));
  border: 1px solid rgb(42 154 255 / 82%);
  border-radius: 1.15rem;
  box-shadow: 0 0 2.8rem rgb(15 117 255 / 18%), inset 0 1px rgb(162 222 255 / 12%);
  font-size: .86rem;
  margin: 1rem 0;
  padding: clamp(.85rem, 1.5vw, 1.15rem);
}
.repair-plan-header { align-items: center; display: flex; gap: .75rem; justify-content: space-between; }
.repair-plan-heading { align-items: center; display: flex; gap: .75rem; }
.repair-plan-main-icon,.repair-plan-section-icon { align-items: center; background: linear-gradient(145deg, rgb(21 109 255 / 46%), rgb(57 50 182 / 34%)); border: 1px solid rgb(85 191 255 / 68%); border-radius: .75rem; box-shadow: 0 0 1rem rgb(47 144 255 / 20%); color: #c7edff; display: inline-flex; flex: 0 0 auto; font-size: 1.5rem; height: 3rem; justify-content: center; width: 3rem; }
.repair-plan-heading h2 { font-size: clamp(1.2rem, 2vw, 1.45rem); margin: 0; }
.repair-plan-heading p,.repair-plan-section-heading p { color: var(--portal-muted); font-size: .82rem; margin: .1rem 0 0; }
.repair-plan-state,.repair-plan-row-state,.repair-plan-tag { align-items: center; border: 1px solid currentcolor; border-radius: 99rem; display: inline-flex; font-size: .74rem; font-weight: 700; gap: .32rem; line-height: 1; padding: .35rem .56rem; white-space: nowrap; }
.repair-plan-state { font-size: .8rem; padding: .48rem .68rem; }
.repair-plan-state-amber,.repair-plan-row-state.amber { background: rgb(130 83 5 / 30%); color: var(--repair-amber); }
.repair-plan-state-blue,.repair-plan-row-state.blue { background: rgb(11 88 181 / 30%); color: var(--repair-cyan); }
.repair-plan-state-green,.repair-plan-row-state.green { background: rgb(5 120 82 / 26%); color: var(--repair-green); }
.repair-plan-steps { display: grid; grid-template-columns: repeat(4, 1fr); list-style: none; margin: .85rem 0 1rem; padding: 0; position: relative; }
.repair-plan-steps-three { grid-template-columns: repeat(3, 1fr); }
.repair-plan-steps-two { grid-template-columns: repeat(2, 1fr); }
.repair-plan-steps::before { background: linear-gradient(90deg, var(--repair-cyan), rgb(46 123 255 / 55%), rgb(67 131 230 / 20%)); content: ""; height: .2rem; left: 8%; position: absolute; right: 8%; top: .8rem; }
.repair-plan-steps li { align-items: center; color: var(--portal-muted); display: grid; font-size: .75rem; font-weight: 700; gap: .3rem; justify-items: center; position: relative; text-align: center; z-index: 1; }
.repair-plan-steps span { align-items: center; background: #061c48; border: 1px solid rgb(102 177 255 / 64%); border-radius: 50%; display: flex; font-size: .85rem; height: 1.6rem; justify-content: center; width: 1.6rem; }
.repair-plan-steps .is-current { color: #dcedff; }
.repair-plan-steps .is-current span { background: linear-gradient(145deg, #1678ff, #51c6ff); box-shadow: 0 0 1rem rgb(59 169 255 / 73%); }
.repair-plan-steps .is-complete { color: #c8ecff; }
.repair-plan-steps .is-complete span { background: #168cff; border-color: #7cd7ff; }
.repair-plan-flow { border-left: 2px solid rgb(45 163 255 / 70%); display: grid; gap: .6rem; margin: .35rem 0 .1rem .75rem; padding-left: 1.85rem; }
.repair-plan-section { background: linear-gradient(120deg, rgb(7 46 103 / 70%), rgb(4 27 67 / 72%)); border: 1px solid rgb(41 135 229 / 45%); border-radius: .75rem; padding: .72rem; position: relative; }
.repair-plan-number { align-items: center; background: linear-gradient(145deg, #1680ff, #35c4ff); border: 1px solid #82d9ff; border-radius: 50%; box-shadow: 0 0 .8rem rgb(34 160 255 / 52%); color: #fff; display: flex; font-size: .95rem; font-weight: 800; height: 2.45rem; justify-content: center; left: -3.1rem; position: absolute; top: .72rem; width: 2.45rem; }
.repair-plan-section-icon { border-radius: .55rem; font-size: 1.05rem; height: 2.2rem; position: absolute; top: .65rem; width: 2.2rem; }
.repair-plan-section-heading { align-items: flex-start; display: flex; gap: .7rem; justify-content: space-between; margin: 0 0 .7rem 2.8rem; min-height: 2.2rem; }
.repair-plan-section-heading h3 { font-size: 1rem; margin: 0; }
.repair-plan-add { align-self: center; }
.billing-workspace-actions { display: grid; gap: .75rem; margin-top: .75rem; }
.billing-workspace-actions > button { justify-self: start; }
.billing-workspace-ready { border-top: 1px solid var(--portal-border); padding-top: .75rem; }
.billing-workspace-items td { overflow-wrap: anywhere; }
.repair-plan-billing > article,.repair-plan-billing > form,.repair-plan-billing > .portal-empty-state { margin-left: 2.8rem; }
@media (max-width: 575.98px) {
  .repair-plan-billing > article,.repair-plan-billing > form,.repair-plan-billing > .portal-empty-state { margin-left: 0; }
}
.repair-plan-row-list { display: grid; gap: .35rem; margin-left: 2.8rem; }
.repair-plan-row { align-items: center; background: rgb(3 24 61 / 63%); border: 1px solid rgb(48 134 224 / 45%); border-radius: .55rem; display: flex; gap: .55rem; min-height: 2.7rem; padding: .38rem .55rem; }
.repair-plan-row strong { min-width: 0; overflow-wrap: anywhere; }
.repair-plan-task-row .repair-plan-row-state,.repair-plan-part-row .repair-plan-row-state { margin-left: auto; }
.repair-plan-check { align-items: center; appearance: none; background: rgb(4 36 84 / 90%); border: 2px solid #6cb9ff; border-radius: .3rem; color: #fff; display: flex; flex: 0 0 auto; font-size: .8rem; height: 1.3rem; justify-content: center; padding: 0; width: 1.3rem; }
.repair-plan-delete { align-items: center; background: transparent; border: 0; border-radius: .35rem; color: #ff6378; display: inline-flex; height: 2rem; justify-content: center; padding: .35rem; width: 2rem; }
.repair-plan-delete:hover,.repair-plan-delete:focus-visible { background: rgb(203 38 72 / 18%); color: #ff8998; }
.repair-plan-delete svg { fill: none; height: 1rem; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 1rem; }
.repair-plan-task-row.is-complete .repair-plan-check { background: #238cff; }
.repair-plan-check[type="checkbox"] { cursor: pointer; margin: 0; }
.repair-plan-check[type="checkbox"]:checked { background: #238cff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3 8 3 3 7-7' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / .85rem .85rem no-repeat; }
.repair-plan-check:focus-visible { outline: 2px solid var(--portal-focus); outline-offset: 3px; }
.repair-plan-task-row.is-complete strong { text-decoration: line-through; text-decoration-color: rgb(188 225 255 / 50%); }
.repair-plan-tag { background: rgb(0 99 205 / 25%); border-color: rgb(35 175 255 / 62%); color: #6ad0ff; font-size: .72rem; }
.repair-plan-part-row > div:not(.repair-plan-quantity) { display: grid; min-width: 0; }
.repair-plan-part-row small { color: var(--portal-muted); }
.repair-plan-part-icon { align-items: center; background: rgb(7 66 139 / 45%); border: 1px solid rgb(65 171 255 / 62%); border-radius: .38rem; color: #73caff; display: inline-flex; flex: 0 0 auto; height: 1.8rem; justify-content: center; width: 1.8rem; }
.repair-plan-part-icon svg { fill: none; height: 1.05rem; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; width: 1.05rem; }
.repair-plan-quantity { display: grid; margin-left: auto; min-width: 4.25rem; }
.repair-plan-quantity small { font-size: .7rem; text-transform: uppercase; }
.repair-plan-order-notice,.repair-plan-execution-status { align-items: center; background: linear-gradient(100deg, rgb(4 42 92 / 82%), rgb(5 31 75 / 68%)); border: 1px solid rgb(43 146 243 / 60%); border-radius: .65rem; display: flex; gap: .6rem; margin-left: 2.8rem; padding: .58rem; }
.repair-plan-order-notice > span { align-items: center; background: rgb(151 95 3 / 32%); border-radius: .45rem; color: var(--repair-amber); display: flex; font-size: 1rem; height: 2.15rem; justify-content: center; width: 2.15rem; }
.repair-plan-order-notice div,.repair-plan-execution-status div { display: grid; flex: 1; gap: .2rem; }
.repair-plan-order-notice strong { color: var(--repair-amber); }
.repair-plan-order-notice small,.repair-plan-execution-status small { color: var(--portal-muted); }
.repair-plan-order-card { background: rgb(2 24 59 / 72%); border: 1px solid rgb(41 132 225 / 47%); border-radius: .65rem; margin: .55rem 0 0 2.8rem; padding: .65rem; }
.repair-plan-order-title { align-items: center; display: flex; gap: .7rem; }
.repair-plan-order-body { display: flex; font-size: .82rem; gap: .75rem; justify-content: space-between; margin: .6rem 0; }
.repair-plan-order-body ul { list-style: none; margin: 0; padding: 0; }
.repair-plan-order-body li + li { margin-top: .35rem; }
.repair-plan-order-body dl { display: flex; gap: 1.3rem; margin: 0; }
.repair-plan-order-body dt { color: var(--portal-muted); font-size: .7rem; text-transform: uppercase; }
.repair-plan-order-body dd { margin: .15rem 0 0; }
.repair-plan-execution-status.ready { border-color: rgb(29 207 152 / 60%); min-height: 0; padding: .42rem .6rem; }
.repair-plan-execution-status.ready > span { font-size: .9rem; }
.repair-plan-execution-status.ready div { align-items: baseline; display: flex; gap: .48rem; }
.repair-plan-execution-status.ready strong { font-size: .9rem; }
.repair-plan-execution-status.ready small { font-size: .78rem; }
.repair-plan-execution-status.completed { border-color: rgb(31 210 149 / 70%); }
.repair-plan-execution-status.is-disabled { opacity: .67; }
.repair-plan-inline-form { background: rgb(4 30 72 / 92%); border: 1px solid rgb(53 156 255 / 67%); border-radius: .7rem; box-shadow: 0 .5rem 1.5rem rgb(0 10 35 / 26%); margin: 0 0 .7rem 2.7rem; padding: .7rem; }
.repair-plan-inline-form-heading { align-items: center; display: flex; justify-content: space-between; margin-bottom: .8rem; }
.repair-plan-close { background: transparent; border: 0; color: var(--portal-muted); font-size: 1.45rem; line-height: 1; }
.repair-plan-inline-fields { display: grid; gap: .7rem; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); margin-bottom: .85rem; }
.repair-plan-inline-field { display: grid; gap: .3rem; }
.repair-plan-inline-field label { font-size: .8rem; font-weight: 700; }
.repair-plan-inline-field:has(.form-check-input) { align-content: end; display: flex; flex-direction: row-reverse; justify-content: flex-end; padding-bottom: .42rem; }
.repair-plan-inline-field .form-check-input { flex: 0 0 auto; height: 1.15rem; margin: .12rem 0 0; width: 1.15rem; }
.repair-plan-inline-field textarea { min-height: 5rem; }
.repair-plan-complete-form { background: rgb(3 27 64 / 62%); border: 1px solid rgb(41 152 245 / 44%); border-radius: .65rem; display: grid; gap: .65rem; margin: .55rem 0 0 2.8rem; padding: .7rem; }
.repair-plan-used-parts { border: 1px solid rgb(41 152 245 / 34%); border-radius: .55rem; display: grid; gap: .3rem; margin: 0; padding: .5rem .6rem .6rem; }
.repair-plan-used-parts legend { color: var(--portal-muted); float: none; font-size: .78rem; font-weight: 700; margin: 0 0 .18rem; padding: 0; text-transform: uppercase; width: auto; }
.repair-plan-used-parts label { align-items: center; cursor: pointer; display: grid; gap: .45rem; grid-template-columns: auto minmax(0, 1fr) auto; margin: 0; padding: .25rem 0; }
.repair-plan-used-parts label span { display: grid; min-width: 0; }
.repair-plan-used-parts label small { color: var(--portal-muted); }
.repair-plan-execution-tasks { margin: .55rem 0 0 2.8rem; }
.repair-plan-execution-label { color: var(--portal-muted); font-size: .78rem; font-weight: 700; margin: 0 0 .35rem; text-transform: uppercase; }
.repair-plan-execution-tasks .repair-plan-row { min-height: 2.4rem; padding-block: .3rem; }
.repair-plan-complete-form textarea { min-height: 3.65rem; resize: vertical; }
.repair-plan-complete-fields { display: grid; gap: .75rem; grid-template-columns: minmax(11rem, .45fr) minmax(0, 1fr); }
.repair-plan-complete-fields .repair-plan-inline-field { align-content: start; }
.repair-plan-complete-fields .form-control { height: 3.65rem; }
.repair-plan-complete-form .btn { justify-self: end; }
.repair-plan-complete-form > #repair-plan-complete-action { display: grid; }
.repair-plan-completion-edit-heading,.repair-plan-edit-actions { align-items: center; display: flex; gap: .5rem; justify-content: space-between; }
.repair-plan-edit-actions { justify-content: flex-end; }
.repair-plan-completion-details { display: grid; gap: .55rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: .55rem 0 0 2.8rem; }
.repair-plan-completion-details div { background: rgb(3 27 64 / 54%); border: 1px solid rgb(41 152 245 / 35%); border-radius: .5rem; padding: .5rem; }
.repair-plan-completion-details dt { color: var(--portal-muted); font-size: .7rem; text-transform: uppercase; }
.repair-plan-completion-details dd { margin: .18rem 0 0; }
.repair-plan-empty { border: 1px dashed rgb(73 147 231 / 45%); border-radius: .7rem; color: var(--portal-muted); padding: .8rem; }

@media (max-width: 767.98px) {
  .repair-plan-header,.repair-plan-section-heading,.repair-plan-order-notice,.repair-plan-execution-status { align-items: stretch; flex-direction: column; }
  .repair-plan-state { align-self: flex-start; }
  .repair-plan-steps small { font-size: .68rem; }
  .repair-plan-flow { margin-left: .7rem; padding-left: 1.75rem; }
  .repair-plan-number { font-size: .85rem; height: 2.2rem; left: -2.75rem; top: .7rem; width: 2.2rem; }
  .repair-plan-section-heading,.repair-plan-row-list,.repair-plan-order-notice,.repair-plan-order-card,.repair-plan-execution-status,.repair-plan-inline-form,.repair-plan-complete-form,.repair-plan-completion-details,.repair-plan-execution-tasks { margin-left: 0; }
  .repair-plan-section-icon { display: none; }
  .repair-plan-section-heading { min-height: 0; }
  .repair-plan-row { align-items: flex-start; flex-wrap: wrap; }
  .repair-plan-task-row .repair-plan-row-state,.repair-plan-part-row .repair-plan-row-state,.repair-plan-quantity { margin-left: 0; }
  .repair-plan-order-body,.repair-plan-order-body dl { flex-direction: column; }
  .repair-plan-add,.repair-plan-order-notice .btn,.repair-plan-execution-status .btn,.repair-plan-execution-status form { width: 100%; }
  .repair-plan-execution-status form .btn { width: 100%; }
  .repair-plan-execution-status.ready div { align-items: flex-start; flex-direction: column; gap: .08rem; }
  .repair-plan-complete-fields,.repair-plan-completion-details { grid-template-columns: 1fr; }
  .repair-plan-used-parts label { align-items: flex-start; grid-template-columns: auto minmax(0, 1fr); }
  .repair-plan-used-parts label > small { grid-column: 2; }
  .repair-plan-complete-form .btn { justify-self: stretch; }
}

@media (max-width: 575.98px) {
  .claim-hero-card { padding: var(--portal-space-4); }
  .claim-hero-top { gap: var(--portal-space-4); }
  .claim-hero-actions { align-items: stretch; width: 100%; }
  .claim-header-actions { justify-content: stretch; }
  .claim-header-actions .btn { flex: 1 1 100%; }
  .claim-header-meta { gap: 0.8rem; }
  .claim-header-meta-item { flex-basis: calc(50% - 0.4rem); }
  .claim-header-meta-item span { font-size: 0.82rem; }
  .claim-header-meta-carrier { flex-basis: 100%; }
  .claim-decision-choice-grid { grid-template-columns: 1fr; }
  .claim-decision-choice { min-height: 5.75rem; }
  .claim-decision-panel-heading { align-items: flex-start; flex-direction: column; }
  .claim-progress-row { grid-template-columns: 1fr; }
}

@media (max-width: 767.98px) {
  .claim-hero-top { flex-direction: column; }
  .claim-hero-top.has-overview-photo { display: flex; }
  .claim-hero-photo { align-self: flex-start; flex: 0 0 8.5rem; width: 8.5rem; }
  .claim-summary-layout { grid-template-columns: 1fr; }
}

@media (max-width: 991.98px) {
  .portal-sidebar {
    backdrop-filter: blur(16px);
    background: rgb(5 21 50 / 90%);
    box-shadow: 0 0.8rem 2.25rem rgb(0 12 40 / 22%);
    gap: 0.7rem;
    height: auto;
    padding: 0.65rem 0.8rem;
    position: sticky;
    width: 100%;
  }
  .portal-brand { padding: 0.25rem; }
  .portal-brand strong { font-size: 1.05rem; }
  .portal-brand small { display: none; }
  .portal-brand-mark { border-radius: 0.55rem; font-size: 0.9rem; height: 2rem; width: 2rem; }
  .portal-nav-links { display: flex; gap: 0.35rem; overflow-x: auto; padding-bottom: 0.15rem; scrollbar-width: thin; }
  .portal-nav-link { flex: 0 0 auto; padding: 0.5rem 0.62rem; }
  .portal-sidebar-footer { display: none; }
  .portal-page-frame { margin-left: 0; }
  .portal-topbar { min-height: 3.65rem; }
}

@media (max-width: 575.98px) {
  .portal-topbar { padding: 0.55rem 0.75rem; }
  .portal-topbar-context { display: none; }
  .portal-topbar-actions { margin-left: auto; }
  .portal-topbar-actions .btn { font-size: 0.72rem; min-height: 2rem; padding: 0.3rem 0.5rem; }
  .portal-nav-link { font-size: 0.78rem; gap: 0.38rem; padding: 0.46rem 0.52rem; }
  .portal-nav-icon { height: 1rem; width: 1rem; }
  .portal-content { padding: 1rem 0.8rem 1.75rem; }
  .photo-gallery-dialog { max-width: 100vw; width: 100vw; }
  .photo-gallery-shell { border-radius: 0; min-height: 100dvh; padding: 0.85rem; }
  .photo-gallery-toolbar { align-items: flex-start; flex-direction: column; }
  .photo-gallery-actions { justify-content: space-between; width: 100%; }
  .photo-gallery-stage { gap: 0.35rem; grid-template-columns: 2.35rem minmax(0, 1fr) 2.35rem; }
  .photo-gallery-nav { height: 2.35rem; width: 2.35rem; }
  .photo-gallery-figure img { max-height: calc(100dvh - 10rem); }
  .photo-workspace-section, .photo-workspace-section.is-active, .photo-workspace-section:target { border-radius: 0.85rem; padding: 0.85rem; }
  .photo-workspace-header { align-items: stretch; flex-direction: column; }
  .photo-workspace-actions { align-self: flex-start; justify-content: flex-start; }
  .photo-add-button { align-self: flex-start; justify-content: center; min-height: 2.5rem; width: auto; }
  .photo-carousel-track.evidence-scroller { gap: 0.6rem; padding-inline: 1.1rem; }
  .photo-carousel-track.evidence-scroller > .photo-carousel-card { flex-basis: min(58vw, 10rem); }
  .photo-carousel-card { min-height: 13.2rem; }
  .photo-carousel-card .evidence-preview { height: 6rem; }
  .photo-carousel-nav { font-size: 1.45rem; height: 1.8rem; top: 3.15rem; width: 1.8rem; }
  .photo-upload-dialog { max-width: 100vw; width: 100vw; }
  .photo-upload-dialog-panel { border-radius: 0; min-height: 100dvh; }
  .photo-upload-dialog-body { grid-template-columns: 1fr; padding: 1rem; }
  .portal-workspace-header,
  .portal-action-panel,
  .portal-history-panel,
  .portal-final-record-panel,
  .portal-form-panel { padding: 1rem; }
}

/* Customer archive workspace: invoice summary, downloads and protected PDF preview. */
.shared-documents-workspace { gap: 1rem; }
.shared-documents-workspace .btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; border-radius: .5rem; font-weight: 650; }
.shared-documents-workspace .btn-outline-primary { color: var(--portal-text); border-color: var(--portal-list-border); background: var(--portal-list-row-bg); }
.shared-documents-workspace .btn-outline-primary:hover { border-color: var(--portal-list-blue); color: var(--portal-list-blue); }
.shared-documents-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem; padding: 1.4rem 1.6rem; }
.shared-documents-hero-icon, .shared-document-icon { display: grid; place-items: center; background: var(--portal-list-button-bg); color: var(--portal-list-button-text); border: 1px solid var(--portal-list-blue); border-radius: .6rem; flex-shrink: 0; }
.shared-documents-hero-icon { width: 5rem; height: 5rem; }
.shared-documents-hero-icon svg { width: 3.3rem; height: 3.3rem; }
.shared-documents-summary-main { flex: 1; min-width: min(100%, 16rem); }
.shared-documents-summary-main > div { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.shared-documents-summary-main h2 { font-size: clamp(1.3rem, 2vw, 1.85rem); overflow-wrap: anywhere; }
.shared-documents-summary-main p { margin: .7rem 0 0; font-size: .9rem; }
.shared-documents-summary-main p > span { margin: 0 .4rem; }
.shared-documents-badge { color: var(--portal-list-amber); border: 1px solid var(--portal-list-amber); background: color-mix(in srgb, var(--portal-list-amber) 12%, transparent); padding: .25rem .75rem; border-radius: 99rem; font-size: .8rem; }
.shared-documents-total { display: grid; gap: .25rem; border-left: 1px solid var(--portal-list-blue); padding-left: 3rem; flex: 0 1 38%; }
.shared-documents-total > span { color: var(--portal-muted); font-size: .9rem; }
.shared-documents-total strong { font-size: clamp(1.6rem, 2.5vw, 2.4rem); font-weight: 800; font-variant-numeric: tabular-nums; }
.shared-documents-package { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem; padding: 1.2rem 1.6rem; }
.shared-documents-package-icon { color: var(--portal-muted); }
.shared-documents-package-icon svg { width: 3rem; height: 3rem; }
.shared-documents-package > div:first-of-type { flex: 1; }
.shared-documents-package h2 { font-size: 1.25rem; }
.shared-documents-package p { margin: .4rem 0 0; color: var(--portal-muted); font-size: .9rem; }
.shared-documents-package-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.shared-documents-package-actions .btn { padding: .8rem 1.2rem; }
.shared-documents-columns { display: grid; grid-template-columns: minmax(0, 1fr); gap: .9rem; }
.shared-documents-panel-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem; }
.shared-documents-list .shared-documents-panel-heading { justify-content: flex-start; gap: 1rem; }
.shared-documents-panel-heading h2 { font-size: 1.4rem; }
.shared-documents-count { color: var(--portal-list-blue); border: 1px solid var(--portal-list-blue); background: color-mix(in srgb, var(--portal-list-blue) 10%, transparent); border-radius: 99rem; padding: .25rem .65rem; font-size: .8rem; }
.shared-documents-rows { display: grid; gap: .5rem; align-content: start; }
.shared-documents-list { align-content: start; }
.shared-document-row { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; min-width: 0; padding: .9rem; background: var(--portal-list-row-bg); border: 1px solid var(--portal-list-border); border-radius: .65rem; }
.shared-document-row:has([data-document-select]):hover, .shared-document-row:focus-within { border-color: var(--portal-list-blue); }
.shared-document-row:has([data-document-select]) { cursor: pointer; }
.shared-document-row [data-document-download] { position: relative; z-index: 2; }
.shared-document-row.is-selected { border-color: var(--portal-list-blue); box-shadow: inset 0 0 0 1px var(--portal-list-blue), 0 0 .7rem color-mix(in srgb, var(--portal-list-blue) 10%, transparent); background: linear-gradient(110deg, color-mix(in srgb, var(--portal-list-blue) 20%, var(--portal-surface)), var(--portal-list-row-bg)); }
.shared-document-icon { width: 3.25rem; height: 3.25rem; }
.shared-document-icon svg { width: 2rem; height: 2rem; }
.shared-document-identity { min-width: 0; flex: 1 1 10rem; }
.shared-document-identity h3 { margin: 0 0 .2rem; font-size: 1rem; font-weight: 750; overflow-wrap: anywhere; }
.shared-document-identity small, .shared-document-unavailable { color: var(--portal-muted); font-size: .8rem; }
.shared-document-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.shared-document-actions .btn { font-size: .75rem; padding: .5rem .65rem; }
.shared-document-actions svg { width: 1rem; height: 1rem; }
.shared-documents-note, .shared-documents-footer { display: flex; align-items: center; gap: .6rem; color: var(--portal-muted); font-size: .8rem; }
.shared-documents-note { margin: .15rem 0 0; }
.shared-documents-note svg, .shared-documents-footer svg { color: var(--portal-list-blue); }
.shared-documents-preview { align-content: start; }
.shared-documents-preview .billing-archive-link { font-size: .75rem; text-decoration: none; }
.shared-documents-preview .billing-archive-link svg { width: .8rem; height: .8rem; }
.shared-document-frame { width: 100%; height: 29rem; border: 1px solid var(--portal-list-border); border-radius: .5rem; background: var(--portal-surface); }
.shared-document-preview-empty { display: grid; place-content: center; justify-items: center; gap: 1rem; min-height: 22rem; color: var(--portal-muted); border: 1px dashed var(--portal-list-border); border-radius: .5rem; text-align: center; padding: 1rem; }
.shared-document-preview-empty svg { width: 3rem; height: 3rem; }
.shared-documents-mobile-note { color: var(--portal-muted); font-size: .75rem; margin: 0; }
.shared-documents-footer { padding: .6rem 1rem; }
@media (min-width: 1200px) { .shared-documents-columns { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
@media (max-width: 767.98px) {
  .shared-documents-summary, .shared-documents-package { padding: 1rem; gap: 1rem; }
  .shared-documents-hero-icon { width: 3.5rem; height: 3.5rem; }
  .shared-documents-hero-icon svg { width: 2.3rem; height: 2.3rem; }
  .shared-documents-total { flex-basis: 100%; border-left: 0; border-top: 1px solid var(--portal-list-border); padding: .8rem 0 0; }
  .shared-documents-summary-main { min-width: 0; }
  .shared-documents-package-icon { display: none; }
  .shared-documents-package-actions { width: 100%; }
  .shared-documents-package-actions .btn { flex: 1; }
  .shared-document-actions { flex-basis: 100%; padding-left: 4rem; }
  .shared-document-frame { height: 26rem; }
}

/* Invoice batch creation, using the shared navy workspace palette. */
.batch-create-workspace { gap: 1rem; }
.batch-create-workspace .btn { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; border-radius: .45rem; font-weight: 650; }
.batch-create-workspace .btn-outline-primary { color: var(--portal-list-blue); border-color: var(--portal-list-border); background: var(--portal-list-row-bg); }
.batch-create-workspace .btn-outline-primary:hover { border-color: var(--portal-list-blue); }
.batch-create-workspace .btn:disabled { opacity: .45; box-shadow: none; }
.batch-create-workspace > form { min-width: 0; }
.batch-create-columns { display: grid; grid-template-columns: minmax(0, 1fr); gap: .85rem; align-items: start; }
.batch-create-main, .batch-create-aside { min-width: 0; display: grid; gap: .85rem; }
.batch-create-panel-heading { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; }
.batch-create-panel-heading h2, .batch-create-workspace h2 { font-size: 1.35rem; }
.batch-create-badge { display: inline-flex; align-items: center; border: 1px solid var(--portal-list-blue); border-radius: 99rem; padding: .2rem .6rem; color: var(--portal-list-blue); background: color-mix(in srgb, var(--portal-list-blue) 10%, transparent); font-size: .75rem; gap: .25rem; }
.batch-create-badge.badge-verified { color: var(--portal-list-teal); border-color: var(--portal-list-teal); background: color-mix(in srgb, var(--portal-list-teal) 8%, transparent); }
.batch-create-company { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; padding: .8rem 1rem; border: 1px solid var(--portal-list-border); border-radius: .5rem; background: var(--portal-list-row-bg); }
.batch-create-company-icon { color: var(--portal-muted); }
.batch-create-company-icon svg { width: 2.5rem; height: 2.5rem; }
.batch-create-company > div { flex: 1; min-width: 10rem; display: grid; gap: .2rem; }
.batch-create-company strong { font-size: 1rem; }
.batch-create-company small, .batch-create-hint { color: var(--portal-muted); font-size: .75rem; }
.batch-create-hint { margin: -.3rem 0 0; }
.batch-create-issuer { display: flex; align-items: center; gap: .55rem; border-top: 1px solid var(--portal-list-border); padding-top: .6rem; margin: .1rem 0 0; color: var(--portal-muted); font-size: .75rem; }
.batch-create-issuer svg { color: var(--portal-list-teal); }
.batch-create-search { display: grid; grid-template-columns: minmax(0, 1fr) 5.8rem; gap: .6rem; }
.batch-create-table { font-size: .8rem; margin-bottom: 0; }
.batch-create-workspace .batch-create-table > tbody > tr > td { padding: .5rem .6rem; }
.batch-create-workspace #batch-create-company-results:empty { display: none; }
.batch-create-workspace select.form-select { appearance: auto; background-image: none; }
.batch-create-table td strong { display: block; font-size: .8rem; }
.batch-create-table td small { display: block; color: var(--portal-muted); font-size: .7rem; }
.batch-create-table tr.is-selected > td { background: color-mix(in srgb, var(--portal-list-blue) 12%, var(--portal-list-row-bg)); }
.batch-create-table-footer { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .5rem; padding: .4rem .7rem; border-top: 1px solid var(--portal-list-border); color: var(--portal-muted); font-size: .75rem; }
.batch-create-table-footer .btn-link { color: var(--portal-list-blue); font-size: .75rem; padding: 0; }
.batch-create-settings { gap: .5rem; }
.batch-create-settings > h2 { margin-bottom: .2rem; }
.batch-create-settings details { border: 1px solid var(--portal-list-border); border-radius: .5rem; background: var(--portal-list-row-bg); }
.batch-create-settings summary { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; padding: .55rem .8rem; cursor: pointer; list-style: none; font-size: .85rem; }
.batch-create-settings summary::-webkit-details-marker { display: none; }
.batch-create-settings summary::after { content: '⌄'; margin-left: auto; color: var(--portal-list-blue); }
.batch-create-settings details[open] > summary::after { content: '⌃'; }
.batch-create-settings summary svg { color: var(--portal-list-blue); }
.batch-create-settings summary small { margin-left: auto; font-size: .65rem; color: var(--portal-muted); }
.batch-create-settings details[open] > summary { border-bottom: 1px solid var(--portal-list-border); }
.batch-create-fields { display: grid; grid-template-columns: minmax(0, 1fr); gap: .6rem 1rem; padding: .75rem 1rem; }
.batch-create-fields > div { margin-bottom: 0 !important; min-width: 0; }
.batch-create-fields .form-label { font-size: .75rem; margin-bottom: .3rem; }
.batch-create-fields .form-text { font-size: .7rem; }
.batch-create-fields .form-control, .batch-create-fields .form-select { min-height: 2rem; padding: .3rem .55rem; }
.batch-create-summary { gap: .8rem; }
.batch-create-summary-hero { display: flex; align-items: center; gap: 1rem; padding: .3rem 0 .6rem; }
.batch-create-summary-icon { display: grid; place-items: center; width: 4.6rem; height: 4.6rem; border: 2px solid var(--portal-list-blue); border-radius: 50%; background: color-mix(in srgb, var(--portal-list-blue) 10%, transparent); color: var(--portal-list-blue); }
.batch-create-summary-icon svg { width: 2rem; height: 2rem; }
.batch-create-summary-hero > div { display: grid; gap: .1rem; justify-items: start; }
.batch-create-summary-hero strong { font-size: 2.1rem; line-height: 1.2; }
.batch-create-summary-hero small { font-size: .75rem; }
.batch-create-totals { display: grid; gap: .35rem; margin: 0; padding: .9rem 0; border-block: 1px solid var(--portal-list-border); }
.batch-create-totals > div, .batch-create-grand-total, .batch-create-summary-currency { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .3rem; }
.batch-create-totals dt { color: var(--portal-muted); font-size: .85rem; font-weight: 400; }
.batch-create-totals dd { font-size: .85rem; font-weight: 750; margin: 0; }
.batch-create-grand-total { font-size: 1.1rem; font-variant-numeric: tabular-nums; }
.batch-create-summary-currency { font-size: .75rem; color: var(--portal-muted); margin-top: -.45rem; }
.batch-create-summary-recipient { display: flex; align-items: center; gap: .6rem; border-top: 1px solid var(--portal-list-border); padding-top: .85rem; }
.batch-create-summary-recipient svg { color: var(--portal-list-teal); }
.batch-create-summary-recipient > div { min-width: 0; display: grid; gap: .15rem; }
.batch-create-summary-recipient small { color: var(--portal-muted); font-size: .7rem; }
.batch-create-summary-recipient strong { font-size: .85rem; overflow-wrap: anywhere; }
.batch-create-submit { padding: .8rem; font-size: .95rem; }
.batch-create-submit > span { font-size: 1.4rem; line-height: 1; }
.batch-create-summary-note { display: flex; align-items: center; gap: .5rem; color: var(--portal-muted); border-top: 1px solid var(--portal-list-border); padding-top: .6rem; margin: 0; font-size: .7rem; }
.batch-create-summary-note svg { color: var(--portal-list-blue); }
.batch-create-help ol { list-style: none; counter-reset: batch-step; padding: 0; margin: 0; display: grid; gap: 1.5rem; }
.batch-create-help li { position: relative; padding-left: 2.9rem; counter-increment: batch-step; }
.batch-create-help li::before { content: counter(batch-step); position: absolute; left: 0; top: 0; display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; border: 1px solid var(--portal-list-blue); color: var(--portal-list-blue); background: var(--portal-list-row-bg); font-weight: 750; }
.batch-create-help li:not(:last-child)::after { content: ''; position: absolute; left: 1rem; top: 2.1rem; bottom: -1.5rem; border-left: 1px solid var(--portal-list-border); }
.batch-create-help strong { font-size: .8rem; }
.batch-create-help p { margin: .3rem 0 0; font-size: .75rem; color: var(--portal-muted); }
@media (min-width: 576px) { .batch-create-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .batch-create-columns { grid-template-columns: minmax(0, 2.15fr) minmax(17rem, 1fr); } .batch-create-aside { position: sticky; top: 5.5rem; } }
@media (max-width: 1199.98px) {
  .batch-create-main, .batch-create-aside { display: contents; }
  .batch-create-main > section:nth-child(1) { order: 1; }
  .batch-create-main > section:nth-child(2) { order: 2; }
  .batch-create-summary { order: 3; }
  .batch-create-settings { order: 4; }
  .batch-create-help { order: 5; }
}
@media (max-width: 767.98px) { .batch-create-company > .btn { width: 100%; } .batch-create-settings summary small { width: 100%; margin-left: 1.9rem; } .batch-create-table { min-width: 36rem; } }

.batch-draft-main { display: flex; flex-direction: column; }
.batch-draft-main #invoice-preparation { display: contents; }
.batch-draft-recipient { order: 1; }
.batch-draft-sheets { order: 2; }
.batch-draft-settings { order: 3; }
.batch-draft-issuer { margin-top: .5rem; font-size: .8rem; color: var(--portal-muted); }
.batch-draft-issuer summary { cursor: pointer; padding: .3rem 0; }
.batch-draft-issuer > div { margin-top: .75rem; }
.batch-draft-recipient #invoice-company-results:empty { display: none; }
@media (max-width: 1199.98px) { .batch-draft-main { display: contents; } .batch-draft-workspace .batch-draft-settings { order: 4; } }

/* Archived invoice documents and audited PROFIT handover. */
.batch-final-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.batch-final-metrics .billing-panel { gap: .2rem; }
.batch-final-metrics span, .batch-final-metrics small { color: var(--portal-muted); font-size: .8rem; }
.batch-final-metrics strong { font-size: 1.3rem; font-variant-numeric: tabular-nums; }
.batch-final-columns { display: grid; grid-template-columns: minmax(0, 1fr); gap: .9rem; align-items: start; }
.batch-final-documents, .batch-final-profit { align-content: start; }
.batch-final-package { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; border: 1px solid var(--portal-list-border); border-radius: .6rem; background: var(--portal-list-row-bg); padding: 1rem; }
.batch-final-package > span { color: var(--portal-list-blue); }
.batch-final-package > span svg { width: 2.5rem; height: 2.5rem; }
.batch-final-package > div:first-of-type { flex: 1; min-width: 12rem; }
.batch-final-package h3 { font-size: 1rem; font-weight: 750; margin: 0; }
.batch-final-package p { color: var(--portal-muted); font-size: .8rem; margin: .3rem 0 0; }
.batch-final-package > small { flex-basis: 100%; color: var(--portal-muted); font-size: .75rem; }
.batch-final-documents .batch-create-hint { margin-top: .1rem; }
.batch-final-export-warning { display: flex; align-items: start; gap: .6rem; border: 1px solid color-mix(in srgb, var(--portal-list-amber) 45%, var(--portal-list-border)); border-radius: .5rem; background: color-mix(in srgb, var(--portal-list-amber) 8%, var(--portal-surface)); color: var(--portal-list-amber); padding: .75rem; }
.batch-final-export-warning p { font-size: .75rem; line-height: 1.5; margin: 0; }
.batch-final-xml-card { display: grid; align-content: start; gap: .6rem; border: 1px solid var(--portal-list-border); border-radius: .6rem; background: var(--portal-list-row-bg); padding: 1rem; }
.batch-final-xml-meta { display: grid; align-content: start; gap: .35rem; min-height: 3.2rem; }
.batch-final-xml-actions { min-height: 2.8rem; }
.batch-final-xml-note { min-height: 2.5rem; }
.batch-final-xml-card h3 { font-size: 1.05rem; margin: 0; font-weight: 750; }
.batch-final-xml-icon { color: var(--portal-list-blue); }
.batch-final-xml-icon svg { width: 1.4rem; height: 1.4rem; }
.batch-final-xml-card p { color: var(--portal-muted); font-size: .85rem; margin: 0; }
.batch-final-xml-card small { color: var(--portal-muted); font-size: .75rem; overflow-wrap: anywhere; }
.batch-final-xml-card .btn { width: 100%; white-space: normal; font-size: .8rem; padding: .65rem; }
.batch-final-export-status { justify-self: start; align-self: start; color: var(--portal-list-blue); border: 1px solid var(--portal-list-border); border-radius: 99rem; font-size: .7rem; padding: .2rem .55rem; }
.batch-final-export-status.is-confirmed { color: var(--portal-list-teal); border-color: var(--portal-list-teal); }
.batch-final-redownload { color: var(--portal-list-amber); font-size: .7rem; }
.batch-final-audit { border-top: 1px solid var(--portal-list-border); padding-top: .65rem; font-size: .75rem; color: var(--portal-muted); }
.batch-final-audit summary { cursor: pointer; }
.batch-final-audit p { margin: .6rem 0 0; overflow-wrap: anywhere; }
.batch-final-sheets summary { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; cursor: pointer; }
.batch-final-sheets summary::after { content: '⌄'; margin-left: auto; color: var(--portal-list-blue); }
.batch-final-sheets[open] summary::after { content: '⌃'; }
.batch-final-sheets summary::-webkit-details-marker { display: none; }
/* Internal document selection mirrors the customer workspace, with a wider preview. */
.batch-final-workspace .shared-documents-summary { padding: 1.2rem 1.4rem; }
.batch-final-workspace .batch-final-metrics .billing-panel { padding: 1rem 1.2rem; }
.batch-final-workspace .shared-document-frame { height: 35rem; }
.batch-final-documents [data-document-select] { color: var(--portal-text); text-decoration: none; }
.batch-final-documents [data-document-select]:focus-visible { outline: 2px solid var(--portal-list-blue); outline-offset: .25rem; border-radius: .15rem; }
.batch-final-documents .shared-document-identity { flex-basis: 8rem; }
.batch-final-documents .shared-document-actions { flex-basis: auto; padding-left: 0; }
.batch-final-xml-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: .8rem; }
@media (min-width: 768px) { .batch-final-xml-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .batch-final-columns { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); } }
@media (max-width: 575.98px) { .batch-final-metrics { grid-template-columns: minmax(0, 1fr); } .batch-final-documents .shared-document-actions { padding-left: 0; } }

/* Supplier receipts share the billing palette while preserving reviewed import forms. */
.receipt-workspace .btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; border-radius: .45rem; }
.receipt-workspace .billing-heading .btn { font-size: .85rem; padding: .65rem .9rem; }
.receipt-workspace .stock-footer { display: flex; padding: .65rem 1rem; }
.receipt-guide { display: grid; grid-template-columns: minmax(0, 1fr); gap: .8rem; }
.receipt-guide > .billing-panel { display: flex; align-items: center; gap: .8rem; }
.receipt-guide h2 { font-size: .95rem; letter-spacing: 0; }
.receipt-guide p { margin: .2rem 0 0; color: var(--portal-muted); font-size: .75rem; }
.receipt-step { display: grid; place-items: center; flex-shrink: 0; width: 2.4rem; height: 2.4rem; border-radius: .55rem; background: color-mix(in srgb, var(--portal-list-blue) 12%, var(--portal-surface)); color: var(--portal-list-blue); border: 1px solid var(--portal-list-border); font-weight: 750; }
.receipt-list-table { min-width: 43rem; }
.receipt-list-table tbody tr { background: var(--portal-list-row-bg); }
.receipt-workspace .receipt-list-table td { height: 3.8rem; background: transparent; }
.receipt-workspace .receipt-list-table td:first-child:not(.billing-check-cell) { width: 25%; }
.receipt-list-table a { color: var(--portal-text); text-decoration: none; }
.receipt-list-table a:hover { color: var(--portal-list-blue); text-decoration: underline; }
.receipt-status { display: inline-block; padding: .25rem .6rem; border: 1px solid currentColor; border-radius: 99rem; font-size: .7rem; font-weight: 500; white-space: nowrap; }
.receipt-status.is-warning { color: var(--portal-list-amber); background: color-mix(in srgb, var(--portal-list-amber) 7%, transparent); }
.receipt-status.is-ready, .receipt-status.is-info { color: var(--portal-list-blue); background: color-mix(in srgb, var(--portal-list-blue) 7%, transparent); }
.receipt-status.is-success { color: var(--portal-list-teal); background: color-mix(in srgb, var(--portal-list-teal) 7%, transparent); }
.receipt-status.is-secondary { color: var(--portal-muted); }
.receipt-status.is-danger { color: var(--bs-danger); }
.receipt-empty-icon svg { width: 3rem; height: 3rem; color: var(--portal-list-blue); }
.receipt-upload-columns { display: grid; grid-template-columns: minmax(0, 1fr); gap: .9rem; align-items: start; }
.receipt-drop-zone { display: grid; gap: .75rem; padding: 2rem 1.25rem; border: 1px dashed var(--portal-list-blue); border-radius: .7rem; background: var(--portal-list-row-bg); text-align: center; }
.receipt-drop-zone h2 { font-size: 1.2rem; }
.receipt-drop-zone > p { color: var(--portal-muted); font-size: .85rem; margin: 0; }
.receipt-drop-zone > div { text-align: left; }
.receipt-drop-zone .form-control { max-width: 100%; }
.receipt-upload-icon { display: grid; place-items: center; justify-self: center; width: 4rem; height: 4rem; border: 1px solid var(--portal-list-border); border-radius: .8rem; color: var(--portal-list-blue); background: color-mix(in srgb, var(--portal-list-blue) 10%, transparent); }
.receipt-upload-icon svg { width: 2.2rem; height: 2.2rem; }
.receipt-form-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .6rem; padding-top: .4rem; }
.receipt-upload-help h2 { font-size: 1.2rem; }
.receipt-upload-help ol { padding-left: 1.3rem; margin: 0; }
.receipt-upload-help li { padding: .4rem 0; font-size: .85rem; }
.receipt-upload-help li::marker { color: var(--portal-list-blue); font-weight: 750; }
.receipt-upload-help li p { margin: .25rem 0 0; color: var(--portal-muted); font-size: .8rem; }
.receipt-supported { display: grid; gap: .3rem; border-top: 1px solid var(--portal-list-border); padding-top: .8rem; font-size: .8rem; }
.receipt-supported span { color: var(--portal-muted); }
.receipt-detail-workspace > .alert { margin: 0; }
.receipt-detail-workspace details summary { cursor: pointer; color: var(--portal-list-blue); }
.receipt-items-table { min-width: 60rem; }
.receipt-items-table tbody tr { background: var(--portal-list-row-bg); }
.receipt-workspace .receipt-items-table td { background: transparent; }
.receipt-items-table th:nth-child(4), .receipt-items-table th:nth-child(6) { text-align: right; }
.receipt-workspace .receipt-items-table td:first-child:not(.billing-check-cell) { width: 15%; }
.receipt-items-table td:nth-child(3) { min-width: 12rem; }
.receipt-review-summary { display: grid; grid-template-columns: minmax(0, 1fr); gap: .8rem; margin-block: .8rem; }
.receipt-review-summary span, .receipt-review-summary small { color: var(--portal-muted); font-size: .8rem; }
.receipt-review-summary strong { font-size: 1.15rem; }
.receipt-review-summary .billing-panel { align-content: start; }
.receipt-export-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: .8rem; }
.receipt-export-card { background: var(--portal-list-row-bg); }
.receipt-export-card h3 { font-size: 1.05rem; font-weight: 750; margin: 0; }
.receipt-export-card p { margin: 0; color: var(--portal-muted); font-size: .8rem; }
.receipt-export-card form .btn { width: 100%; }
.portal-body:has(.receipt-workspace) #nav-goods-receipts.is-active { background: var(--portal-list-button-bg); color: var(--portal-list-button-text); border-color: var(--portal-list-blue); }
@media (min-width: 768px) { .receipt-guide, .receipt-review-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); } .receipt-export-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .receipt-upload-columns { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); } }
@media (max-width: 575.98px) { .receipt-form-actions .btn { flex: 1; } .receipt-drop-zone { padding: 1.4rem .75rem; } .receipt-detail-workspace .billing-heading h1 { overflow-wrap: anywhere; } }
