:root {
  color-scheme: light;
  --page: #f6f8fb;
  --surface: #ffffff;
  --surface-subtle: #f9fafb;
  --surface-soft: var(--surface-subtle);
  --text: #1f2937;
  --text-soft: #667085;
  --text-faint: #66727b;
  --line: #e6eaf0;
  --line-strong: #d0d5dd;
  /* V1 primary: main actions and selection; component migration is separate. */
  --primary: #2563eb;
  --primary-hover: #1d4ed8;
  --primary-active: #1e40af;
  --primary-soft: #eff6ff;
  /* V1 success: success, completed, paid and normal states only. */
  --success: #15803d;
  --success-soft: #f0fdf4;
  /* Legacy accent remains unchanged until individual components are migrated. */
  --accent: #176b58;
  --accent-hover: #105848;
  --accent-soft: #e7f2ee;
  /* Pending review/payment/action/confirmation; retain existing rendered colors. */
  --warning: #87570b;
  --warning-soft: #fff3d6;
  --warning-line: #e4c67d;
  /* Exception, returned, failed and destructive states. */
  --danger: #963f36;
  --danger-soft: #fbece9;
  /* Unknown, not started, disabled and secondary states; unknown is not zero. */
  --neutral: #58656d;
  --neutral-soft: #edf1f2;
  --info: #315b76;
  --info-strong: #244f69;
  --info-soft: #edf3f6;
  --shadow: 0 8px 24px rgba(31, 41, 55, 0.08);
  --focus-ring: rgba(37, 99, 235, 0.45);
  --focus-ring-strong: var(--primary);
  --type-meta: 12px;
  --type-body-small: 13px;
  --type-body: 15px;
  --type-title-small: 16px;
  --type-title: 18px;
  --type-title-large: 22px;
  --type-page-title: clamp(26px, 2.4vw, 32px);
  --type-leading-compact: 1.35;
  --type-leading-body: 1.6;
  --weight-medium: 600;
  --weight-regular: 400;
  --weight-semibold: 700;
  --weight-bold: 800;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --radius-xs: 6px;
  --radius: 12px;
  --radius-small: 9px;
  --radius-medium: 12px;
  --radius-pill: 999px;
  --control-height-compact: 34px;
  --control-height-default: 40px;
  --control-height-touch: 44px;
  --desktop-width-form: 960px;
  --desktop-width-task: 1360px;
  --desktop-width-overview: 1520px;
  --desktop-width-project-detail: 1460px;
  --desktop-shell-gutter: clamp(36px, 2.5vw, 48px);
  --desktop-column-gap: clamp(20px, 1.4vw, 24px);
  font-family: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", system-ui, sans-serif;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

html:is([data-yunhe-data-mode="remote"], [data-yunhe-data-mode="fatal"]) body > .app-bar,
html:is([data-yunhe-data-mode="remote"], [data-yunhe-data-mode="fatal"]) body > .desktop-app-sidebar,
html:is([data-yunhe-data-mode="remote"], [data-yunhe-data-mode="fatal"]) body > .page-shell,
html:is([data-yunhe-data-mode="remote"], [data-yunhe-data-mode="fatal"]) body > .toast:not([data-formal-feedback]) {
  display: none !important;
}

.formal-app-view {
  min-height: 100dvh;
}

.formal-auth-card {
  width: min(460px, calc(100% - 40px));
  margin: 0 auto;
  padding: clamp(28px, 5vw, 42px);
  transform: translateY(clamp(32px, 10vh, 112px));
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.formal-auth-brand {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.formal-auth-brand > span:last-child {
  display: grid;
}

.formal-auth-brand strong { font-size: var(--type-title); }
.formal-auth-brand small { color: var(--text-faint); font-size: var(--type-meta); }

.formal-auth-heading { margin: var(--space-6) 0 var(--space-5); }
.formal-auth-heading h1,
.formal-auth-card > h1 { margin: 0; font-size: 28px; line-height: 1.25; }
.formal-auth-heading p,
.formal-auth-card > p { margin: var(--space-2) 0 0; color: var(--text-soft); }

.formal-auth-form { display: grid; gap: var(--space-2); }
.formal-auth-form label { margin-top: var(--space-2); font-size: var(--type-body-small); font-weight: var(--weight-semibold); }
.formal-auth-form input {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-small);
  background: var(--surface);
  color: var(--text);
  font-size: 16px;
}
.formal-auth-form .button { min-height: 44px; margin-top: var(--space-4); }
.formal-password-rule { margin: 0; color: var(--text-soft); font-size: var(--type-body-small); line-height: 1.55; }

.formal-auth-message {
  margin: 0 0 var(--space-4);
  padding: 10px 12px;
  border-radius: var(--radius-small);
  background: var(--neutral-soft);
  color: var(--neutral);
  font-size: var(--type-body-small);
}
.formal-auth-message[data-type="error"] { background: var(--danger-soft); color: var(--danger); }
.formal-auth-message[data-type="warning"] { background: var(--warning-soft); color: var(--warning); }
.formal-auth-message[data-type="success"] { background: var(--success-soft); color: var(--success); }

.formal-shell { min-height: 100dvh; background: var(--page); }
.formal-shell__sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 20;
  display: flex;
  width: 248px;
  flex-direction: column;
  padding: 24px 18px;
  border-right: 1px solid var(--line);
  background: var(--surface);
}
.formal-shell__sidebar .formal-auth-brand { padding: 0 6px 22px; border-bottom: 1px solid var(--line); }
.formal-shell__label { margin: 24px 10px 6px; color: var(--text-faint); font-size: var(--type-meta); font-weight: var(--weight-semibold); }
.formal-shell__user { margin: 0 10px; color: var(--text); overflow-wrap: anywhere; }
.formal-role-navigation { display: grid; gap: 6px; }
.formal-role-navigation button {
  min-height: 40px;
  padding: 8px 10px;
  border: 0;
  border-radius: var(--radius-small);
  background: transparent;
  color: var(--text-soft);
  text-align: left;
  cursor: pointer;
}
.formal-role-navigation button:hover { background: var(--surface-subtle); color: var(--text); }
.formal-role-navigation button.is-active { background: var(--primary-soft); color: var(--primary); font-weight: var(--weight-semibold); }
.formal-shell__logout { margin-top: auto; }
.formal-shell__main { min-height: 100dvh; margin-left: 248px; background: var(--page); }
.formal-workspace { width: min(1120px, calc(100% - 64px)); margin: 0 auto; padding: 40px 0; }
.formal-workspace__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-5); }
.formal-workspace__heading h1 { margin: 0; font-size: var(--type-page-title); line-height: 1.2; }
.formal-workspace__heading p { max-width: 66ch; margin: var(--space-2) 0 0; color: var(--text-soft); font-size: 14px; }
.formal-unavailable-business { margin-top: var(--space-6); padding: var(--space-5); border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.formal-unavailable-business h2 { margin: 0; font-size: var(--type-title); }
.formal-unavailable-business > p { max-width: 70ch; margin: var(--space-2) 0 var(--space-5); color: var(--text-soft); }
.formal-unavailable-business dl { display: grid; gap: 0; margin: 0; border-top: 1px solid var(--line); }
.formal-unavailable-business dl > div { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: var(--space-4); padding: 12px 0; border-bottom: 1px solid var(--line); }
.formal-unavailable-business dt { color: var(--text-faint); }
.formal-unavailable-business dd { margin: 0; font-weight: var(--weight-medium); }
.formal-reimbursement-business { display: grid; gap: var(--space-5); margin-top: var(--space-5); }
.formal-business-tabs { display: flex; gap: 6px; padding: 5px; border: 1px solid var(--line); border-radius: var(--radius-medium); background: var(--surface); }
.formal-business-tabs button { min-height: 40px; padding: 8px 14px; border: 0; border-radius: var(--radius-small); background: transparent; color: var(--text-soft); cursor: pointer; }
.formal-business-tabs button.is-active { background: var(--primary-soft); color: var(--primary); font-weight: var(--weight-semibold); }
.formal-employee-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-3); }
.formal-employee-summary > div { display: grid; gap: 3px; padding: 16px 18px; border: 1px solid var(--line); border-radius: var(--radius-medium); background: var(--surface); }
.formal-employee-summary span { color: var(--text-soft); font-size: var(--type-body-small); }
.formal-employee-summary strong { font-size: var(--type-title-large); }
.formal-reimbursement-section { padding: var(--space-5); border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.formal-reimbursement-section .panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4); margin-bottom: var(--space-4); }
.formal-reimbursement-section .panel-heading h2 { margin: 0; font-size: var(--type-title); }
.formal-reimbursement-section .panel-heading p { margin: 3px 0 0; color: var(--text-soft); font-size: var(--type-body-small); }
.formal-empty-state, .formal-loading-state { padding: var(--space-4) 0; color: var(--text-soft); font-size: var(--type-body-small); line-height: var(--type-leading-body); text-align: center; }
.formal-empty-state--error { padding: var(--space-4); border-radius: var(--radius-small); background: var(--danger-soft); color: var(--danger); }
.formal-action-row, .formal-history-item { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); padding: 14px 0; border-top: 1px solid var(--line); }
.formal-action-row > div, .formal-history-item > div { display: grid; gap: 2px; min-width: 0; }
.formal-action-row span, .formal-history-item span, .formal-history-item p { margin: 0; color: var(--text-soft); font-size: var(--type-body-small); }
.formal-reimbursement-card { padding: 16px; border: 1px solid var(--line); border-radius: var(--radius-medium); background: var(--surface-subtle); }
.formal-voucher-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(320px, .85fr); align-items: start; gap: var(--space-5); }
.formal-voucher-column, .formal-submit-column { display: grid; gap: var(--space-4); min-width: 0; }
.formal-submit-column { position: sticky; top: 18px; }
.formal-upload-hero { padding: var(--space-5); border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.formal-upload-hero__eyebrow, .formal-suggestion-label { color: var(--text-soft); font-size: var(--type-meta); font-weight: var(--weight-medium); }
.formal-upload-hero h2 { max-width: 20ch; margin: 8px 0; font-size: clamp(22px, 2.2vw, 28px); line-height: 1.35; }
.formal-upload-hero p { max-width: 58ch; margin: 0 0 18px; color: var(--text-soft); }
.formal-upload-actions, .formal-card-actions { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.formal-file-button { position: relative; overflow: hidden; cursor: pointer; }
.formal-file-button input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.formal-voucher-list { display: grid; gap: var(--space-3); }
.formal-voucher-card { display: grid; gap: 12px; padding: 15px; border: 1px solid var(--line); border-radius: var(--radius-medium); background: var(--surface); }
.formal-voucher-card.is-ready { border-color: var(--warning-line); }
.formal-voucher-card.is-failed { border-color: #d8b8b4; }
.formal-voucher-card.is-processing, .formal-voucher-card.is-uploading { border-color: #c3d5e1; }
.formal-voucher-card__file { display: flex; align-items: center; gap: 11px; min-width: 0; }
.formal-voucher-card__file > span { display: grid; width: 48px; height: 48px; flex: 0 0 48px; place-items: center; border-radius: 10px; background: var(--surface-subtle); color: var(--text-soft); font-size: var(--type-meta); font-weight: var(--weight-medium); }
.formal-voucher-card__file > div { display: grid; min-width: 0; }
.formal-voucher-card__file strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.formal-voucher-card__file small { color: var(--text-soft); }
.formal-voucher-card__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 14px; padding: 11px 0; border-block: 1px solid var(--line); }
.formal-voucher-card__facts > div { display: grid; gap: 2px; min-width: 0; }
.formal-voucher-card__facts span { color: var(--text-faint); font-size: var(--type-meta); }
.formal-voucher-card__facts strong { overflow-wrap: anywhere; font-size: var(--type-body-small); }
.formal-pending-value { color: var(--neutral); }
.formal-voucher-note { margin: 0; color: var(--text-soft); font-size: var(--type-body-small); }
.formal-voucher-card progress { width: 100%; accent-color: var(--primary); }
.formal-no-voucher-entry { justify-self: start; color: var(--text-soft); }
.formal-confirm-panel { max-width: 820px; margin-inline: auto; }
.formal-confirm-panel .formal-expense-form label > small { color: var(--text-soft); font-weight: var(--weight-regular); }
.formal-linked-vouchers > span { display: inline-flex; align-items: center; gap: 5px; padding: 5px 8px; border-radius: 999px; background: var(--surface-subtle); }
.formal-draft-summary > div { display: flex; align-items: center; gap: var(--space-3); }
.formal-draft-summary > div small { margin-left: auto; color: var(--text-faint); }
.formal-draft-summary ul { margin: 12px 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.formal-draft-summary li { display: flex; justify-content: space-between; gap: var(--space-3); padding: 9px 0; border-bottom: 1px solid var(--line); }
.formal-return-context { padding: 14px 16px; border: 1px solid var(--danger); border-radius: var(--radius-medium); background: var(--danger-soft); }
.formal-return-context p { margin: 3px 0; color: var(--danger); }
.formal-return-context small { color: var(--text-soft); }
.formal-expense-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.formal-expense-form label { display: grid; gap: 5px; font-size: var(--type-body-small); font-weight: var(--weight-semibold); }
.formal-expense-form :is(input, select, textarea) { width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid var(--line-strong); border-radius: var(--radius-small); background: var(--surface); color: var(--text); font: inherit; }
.formal-expense-form textarea { resize: vertical; }
.formal-expense-form .span-2 { grid-column: 1 / -1; }
.formal-evidence-field { display: grid; gap: 10px; margin: 0; padding: 15px; border: 1px solid var(--line); border-radius: var(--radius-medium); }
.formal-evidence-field legend { padding-inline: 5px; font-weight: var(--weight-semibold); }
.formal-evidence-field > label { display: flex; grid-template-columns: none; align-items: flex-start; gap: 8px; }
.formal-evidence-field > label > input[type="radio"] { width: 18px; min-height: 18px; margin-top: 2px; }
.formal-evidence-field [data-evidence-attached], .formal-evidence-field [data-evidence-none] { display: grid; gap: 5px; padding-top: 8px; border-top: 1px solid var(--line); }
.formal-evidence-field small { color: var(--text-soft); font-size: var(--type-meta); }
.formal-linked-vouchers { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; color: var(--text-soft); font-size: var(--type-body-small); }
.formal-form-actions { display: flex; justify-content: flex-end; gap: var(--space-3); }
.formal-history-batch { border-top: 1px solid var(--line); }
.formal-history-batch > summary { display: flex; min-height: 54px; align-items: center; justify-content: space-between; gap: var(--space-3); cursor: pointer; }
.formal-history-batch > summary > span:first-child { display: grid; }
.formal-history-batch summary small { color: var(--text-faint); }
.formal-finance-person { border-top: 1px solid var(--line); }
.formal-person-summary { display: flex; width: 100%; min-height: 64px; align-items: center; justify-content: space-between; gap: var(--space-4); padding: 10px 0; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.formal-person-summary > span:first-child { display: grid; }
.formal-person-summary small { color: var(--text-soft); }
.formal-person-summary > span:last-child { color: var(--primary); font-size: var(--type-body-small); font-weight: var(--weight-medium); }
.formal-person-details { padding: 0 0 var(--space-4); }
.formal-finance-batch { padding: 14px; border: 1px solid var(--line); border-radius: var(--radius-medium); background: var(--surface-subtle); }
.formal-finance-batch + .formal-finance-batch { margin-top: var(--space-3); }
.formal-finance-batch > header { display: flex; justify-content: space-between; gap: var(--space-3); padding-bottom: 10px; color: var(--text-soft); font-size: var(--type-body-small); }
.formal-finance-item { padding: 16px; border-top: 1px solid var(--line); background: var(--surface); }
.formal-finance-item__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4); }
.formal-finance-item__heading > div { display: grid; }
.formal-finance-item__heading span { color: var(--text-soft); font-size: var(--type-body-small); }
.formal-finance-item__heading b { white-space: nowrap; font-size: var(--type-title); }
.formal-finance-item dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); margin: 14px 0; }
.formal-finance-item dl > div { min-width: 0; }
.formal-finance-item dt { color: var(--text-faint); font-size: var(--type-meta); }
.formal-finance-item dd { margin: 2px 0 0; overflow-wrap: anywhere; }
.formal-voucher-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.formal-review-form { display: grid; gap: var(--space-3); margin-top: var(--space-3); padding-top: var(--space-3); border-top: 1px solid var(--line); }
.formal-review-form textarea { width: 100%; padding: 9px 11px; border: 1px solid var(--line-strong); border-radius: var(--radius-small); font: inherit; }
.formal-review-form > div { display: flex; justify-content: flex-end; gap: var(--space-2); }
.formal-payment-progress { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.formal-payment-progress > div { display: flex; justify-content: space-between; gap: var(--space-3); padding: 13px 0; }
.formal-payment-progress > div + div { border-left: 1px solid var(--line); padding-left: var(--space-4); }
.formal-payment-progress span { color: var(--text-soft); }
.formal-payable-batch { padding: 14px; border: 1px solid var(--line); border-radius: var(--radius-medium); background: var(--surface-subtle); }
.formal-payable-batch + .formal-payable-batch { margin-top: var(--space-3); }
.formal-payable-batch__summary { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); }
.formal-payable-batch__summary > div { display: grid; min-width: 0; }
.formal-payable-batch__summary span { font-weight: var(--weight-semibold); }
.formal-payable-batch__summary small { color: var(--text-soft); overflow-wrap: anywhere; }
.formal-payment-registration { display: grid; gap: var(--space-4); margin-top: 14px; padding: 16px; border-top: 1px solid var(--line-strong); background: var(--surface); }
.formal-payment-registration__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4); }
.formal-payment-registration__heading p { margin: 3px 0 0; color: var(--text-soft); font-size: var(--type-body-small); }
.formal-payment-facts, .formal-payment-confirmation dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); margin: 0; }
.formal-payment-facts > div, .formal-payment-confirmation dl > div { min-width: 0; }
.formal-payment-facts dt, .formal-payment-confirmation dt, .formal-payment-history dt, .formal-employee-payment dt { color: var(--text-faint); font-size: var(--type-meta); }
.formal-payment-facts dd, .formal-payment-confirmation dd, .formal-payment-history dd, .formal-employee-payment dd { margin: 2px 0 0; overflow-wrap: anywhere; }
.formal-payment-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); }
.formal-payment-form > label { display: grid; align-content: start; gap: 5px; min-width: 0; font-size: var(--type-body-small); font-weight: var(--weight-semibold); }
.formal-payment-form :is(input, select) { width: 100%; min-height: 44px; padding: 9px 11px; border: 1px solid var(--line-strong); border-radius: var(--radius-small); background: var(--surface); color: var(--text); font: inherit; }
.formal-payment-form label small { color: var(--text-soft); font-weight: var(--weight-regular); }
.formal-payment-proof { display: grid; grid-column: 1 / -1; justify-items: start; gap: 7px; padding-top: 12px; border-top: 1px solid var(--line); }
.formal-payment-proof > span { font-weight: var(--weight-semibold); }
.formal-payment-proof > p { margin: 0; color: var(--text-soft); font-size: var(--type-body-small); }
.formal-payment-proof progress { width: min(100%, 420px); accent-color: var(--primary); }
.formal-payment-proof__file { display: grid; min-width: 0; max-width: 100%; padding: 10px 12px; background: var(--success-soft); color: var(--success); }
.formal-payment-proof__file strong, .formal-payment-proof__file small { overflow-wrap: anywhere; }
.formal-payment-confirmation { display: grid; gap: var(--space-3); padding-top: var(--space-4); border-top: 1px solid var(--line-strong); }
.formal-payment-confirmation > strong { font-size: var(--type-title-small); }
.formal-payment-history { display: grid; gap: 0; border-top: 1px solid var(--line); }
.formal-payment-history__item { display: grid; grid-template-columns: minmax(180px, 1.2fr) auto minmax(220px, 1fr) auto; align-items: center; gap: var(--space-4); padding: 14px 0; border-bottom: 1px solid var(--line); }
.formal-payment-history__item > div:first-child { display: grid; min-width: 0; }
.formal-payment-history__item > div:first-child span { color: var(--text-soft); font-size: var(--type-body-small); overflow-wrap: anywhere; }
.formal-payment-history__item > b { white-space: nowrap; font-size: var(--type-title); }
.formal-payment-history__item dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); margin: 0; }
.formal-payment-immutable-note { margin: var(--space-4) 0 0; color: var(--text-soft); font-size: var(--type-body-small); }
.formal-employee-payment { display: grid; grid-template-columns: auto minmax(240px, 1fr) auto; align-items: center; gap: var(--space-4); padding: 14px 0; border-bottom: 1px solid var(--line); }
.formal-employee-payment > div:first-child { display: grid; }
.formal-employee-payment > div:first-child span { color: var(--success); font-weight: var(--weight-semibold); }
.formal-employee-payment > div:first-child strong { font-size: var(--type-title); }
.formal-employee-payment dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); margin: 0; }
.formal-attribution-workspace { display: grid; gap: var(--space-5); }
.formal-attribution-list, .formal-project-list, .formal-cost-list { display: grid; gap: var(--space-3); }
.formal-attribution-card { padding: 16px 0 0; border-top: 1px solid var(--line); }
.formal-attribution-card:first-child { border-top: 0; }
.formal-attribution-card__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4); }
.formal-attribution-card__heading > div { display: grid; min-width: 0; }
.formal-attribution-card__heading span { color: var(--text-soft); font-size: var(--type-body-small); }
.formal-attribution-card__heading b { white-space: nowrap; font-size: var(--type-title-large); }
.formal-attribution-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px var(--space-4); margin: 14px 0; }
.formal-attribution-facts > div { min-width: 0; }
.formal-attribution-facts dt, .formal-cost-row dt { color: var(--text-faint); font-size: var(--type-meta); }
.formal-attribution-facts dd, .formal-cost-row dd { margin: 2px 0 0; overflow-wrap: anywhere; }
.formal-attribution-detail { margin-top: 14px; padding: 16px; border: 1px solid var(--line); background: var(--surface-subtle); }
.formal-attribution-detail > strong { font-size: var(--type-title-small); }
.formal-attribution-warning { margin: 10px 0 14px; padding: 10px 12px; border: 1px solid var(--warning-line); border-radius: var(--radius-small); background: var(--warning-soft); color: var(--warning); }
.formal-project-search { display: grid; gap: 5px; color: var(--text-soft); font-size: var(--type-body-small); font-weight: var(--weight-semibold); }
.formal-project-search input { width: 100%; min-height: 44px; padding: 9px 11px; border: 1px solid var(--line-strong); border-radius: var(--radius-small); background: var(--surface); }
.formal-project-options { display: grid; gap: 6px; max-height: 280px; margin: 12px 0; overflow: auto; }
.formal-project-option, .formal-project-row > button { display: flex; width: 100%; min-height: 52px; align-items: center; justify-content: space-between; gap: var(--space-4); padding: 9px 11px; border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--surface); color: var(--text); text-align: left; cursor: pointer; }
.formal-project-option > span:first-child, .formal-project-row > button > span:first-child { display: grid; min-width: 0; }
.formal-project-option small, .formal-project-row small { color: var(--text-soft); }
.formal-project-option > span:last-child, .formal-project-row > button > span:last-child { color: var(--primary); font-size: var(--type-body-small); font-weight: var(--weight-medium); }
.formal-project-option.is-selected { border-color: var(--primary); background: var(--primary-soft); }
.formal-project-confirm { padding-top: 12px; border-top: 1px solid var(--line); }
.formal-project-confirm p { margin: 0 0 12px; }
.formal-project-row { border-top: 1px solid var(--line); padding-top: var(--space-3); }
.formal-project-row:first-child { border-top: 0; padding-top: 0; }
.formal-project-row > button { border: 0; padding-inline: 0; background: transparent; }
.formal-project-cost-detail .panel-heading { margin-bottom: var(--space-3); }
.formal-cost-row { position: relative; display: grid; grid-template-columns: minmax(160px, 1fr) minmax(280px, 1.6fr) auto; align-items: start; gap: var(--space-4); padding: 12px 0; border-top: 1px solid var(--line); }
.formal-cost-row > div:first-child { display: grid; }
.formal-cost-row > div:first-child span { color: var(--text-soft); font-size: var(--type-body-small); }
.formal-cost-row dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); margin: 0; }
.formal-cost-row > b { white-space: nowrap; }
.formal-cost-total { display: flex; justify-content: space-between; gap: var(--space-4); padding-top: 14px; border-top: 1px solid var(--line-strong); }
.formal-cost-total strong { font-size: var(--type-title); }
.formal-attribution-readonly { color: var(--text-soft); font-size: var(--type-body-small); }
.formal-admin-workspace { display: grid; gap: var(--space-5); }
.formal-admin-project-list, .formal-admin-assignment-list { display: grid; gap: var(--space-3); }
.formal-admin-project-list { margin-top: var(--space-4); }
.formal-admin-project-row { display: grid; grid-template-columns: minmax(220px, 1.4fr) minmax(360px, 2fr) auto; align-items: center; gap: var(--space-4); padding: 16px 0; border-top: 1px solid var(--line); }
.formal-admin-project-row:first-child { border-top: 0; }
.formal-admin-project-row.is-inactive { color: var(--text-soft); }
.formal-admin-project-row__identity { display: grid; min-width: 0; }
.formal-admin-project-row__identity span { color: var(--text-soft); font-size: var(--type-body-small); }
.formal-admin-project-row > dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); margin: 0; }
.formal-admin-project-row dt { color: var(--text-faint); font-size: var(--type-meta); }
.formal-admin-project-row dd { margin: 2px 0 0; overflow-wrap: anywhere; }
.formal-admin-project-form { grid-column: 1 / -1; padding: 16px; border: 1px solid var(--line); border-radius: var(--radius-medium); background: var(--surface-subtle); }
.formal-admin-project-form__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4); margin-bottom: var(--space-4); }
.formal-admin-project-form__heading > div { display: grid; }
.formal-admin-project-form__heading span { color: var(--text-soft); font-size: var(--type-body-small); }
.formal-admin-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.formal-admin-form-grid > label { display: grid; gap: 6px; color: var(--text-soft); font-size: var(--type-body-small); font-weight: var(--weight-semibold); }
.formal-admin-form-grid :is(input, select), .formal-admin-assignment-action select { width: 100%; min-height: 44px; padding: 9px 11px; border: 1px solid var(--line-strong); border-radius: var(--radius-small); background: var(--surface); color: var(--text); }
.formal-admin-form-grid input[readonly] { background: var(--surface-subtle); color: var(--text-soft); }
.formal-admin-form-grid .formal-admin-check { display: flex; min-height: 44px; align-items: center; gap: 10px; }
.formal-admin-check input { width: 18px; min-height: 18px; }
.formal-admin-project-form > .formal-card-actions { margin-top: var(--space-4); }
.formal-admin-assignment-row { padding: 16px 0; border-top: 1px solid var(--line); }
.formal-admin-assignment-row:first-child { border-top: 0; }
.formal-admin-assignment-row.is-unassigned { padding: 16px; border: 1px solid var(--warning-line); border-radius: var(--radius-medium); background: var(--warning-soft); }
.formal-admin-assignment-action { display: grid; grid-template-columns: minmax(240px, 1fr) auto; align-items: end; gap: var(--space-3); }
.formal-admin-assignment-action label { display: grid; gap: 6px; color: var(--text-soft); font-size: var(--type-body-small); font-weight: var(--weight-semibold); }
.formal-mobile-header { display: none; }

@media (max-width: 1023px) {
  .formal-shell__sidebar { display: none; }
  .formal-shell__main { margin-left: 0; }
  .formal-mobile-header {
    display: flex;
    min-height: 64px;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding: 10px 20px;
    border-bottom: 1px solid var(--line);
    background: var(--surface);
  }
  .formal-mobile-header > div { display: grid; }
  .formal-mobile-header .formal-mobile-header__actions { display: flex; align-items: center; gap: var(--space-2); }
  .formal-mobile-header span { color: var(--text-faint); font-size: var(--type-meta); }
  .formal-mobile-header select { min-height: 44px; max-width: 190px; border: 1px solid var(--line-strong); border-radius: var(--radius-small); background: var(--surface); padding: 0 10px; }
  .formal-mobile-header .button { min-height: 44px; }
  .formal-workspace { width: min(100% - 40px, 760px); padding: 32px 0; }
  .formal-voucher-layout { grid-template-columns: 1fr; }
  .formal-submit-column { position: static; }
}

@media (max-width: 600px) {
  .formal-auth-card { width: min(100% - 24px, 460px); padding: 24px 20px; transform: translateY(20px); }
  .formal-auth-heading { margin: var(--space-5) 0 var(--space-4); }
  .formal-auth-heading h1,
  .formal-auth-card > h1 { font-size: 25px; }
  .formal-mobile-header { padding-inline: 12px; }
  .formal-mobile-header select { max-width: 160px; }
  .formal-workspace { width: calc(100% - 24px); padding: 24px 0; }
  .formal-workspace__heading { display: grid; }
  .formal-unavailable-business { margin-top: var(--space-5); padding: 20px 16px; }
  .formal-unavailable-business dl > div { grid-template-columns: 1fr; gap: 2px; }
  .formal-business-tabs { position: sticky; top: 0; z-index: 8; overflow-x: auto; }
  .formal-business-tabs button { min-height: 44px; flex: 1 0 auto; }
  .formal-employee-summary { grid-template-columns: 1fr 1fr; }
  .formal-reimbursement-section { padding: 16px 13px; }
  .formal-reimbursement-section .panel-heading { align-items: stretch; flex-direction: column; }
  .formal-reimbursement-section .panel-heading .button { min-height: 44px; }
  .formal-action-row { align-items: stretch; flex-direction: column; }
  .formal-action-row .button { min-height: 44px; }
  .formal-expense-form { grid-template-columns: 1fr; }
  .formal-expense-form .span-2 { grid-column: auto; }
  .formal-expense-form :is(input, select, textarea) { min-height: 44px; font-size: 16px; }
  .formal-form-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .formal-form-actions .button { min-height: 44px; }
  .formal-finance-item { padding: 14px 10px; }
  .formal-finance-item dl { grid-template-columns: 1fr; }
  .formal-review-form > div { display: grid; grid-template-columns: 1fr 1fr; }
  .formal-review-form .button { min-height: 44px; }
  .formal-payment-progress { grid-template-columns: 1fr; }
  .formal-payment-progress > div + div { border-left: 0; border-top: 1px solid var(--line); padding-left: 0; }
  .formal-payable-batch { padding: 13px 10px; }
  .formal-payable-batch__summary { align-items: stretch; flex-direction: column; }
  .formal-payable-batch__summary .button { min-height: 44px; }
  .formal-payment-registration { padding: 14px 10px; }
  .formal-payment-registration__heading { align-items: stretch; flex-direction: column; }
  .formal-payment-registration__heading .button { min-height: 44px; }
  .formal-payment-facts, .formal-payment-confirmation dl, .formal-payment-form { grid-template-columns: 1fr; }
  .formal-payment-form :is(input, select) { font-size: 16px; }
  .formal-payment-proof { grid-column: auto; }
  .formal-payment-confirmation .formal-card-actions { grid-template-columns: 1fr; }
  .formal-payment-history__item { grid-template-columns: 1fr auto; }
  .formal-payment-history__item dl { grid-column: 1 / -1; grid-template-columns: 1fr; }
  .formal-payment-history__item .button { grid-column: 1 / -1; min-height: 44px; justify-self: stretch; }
  .formal-employee-payment { grid-template-columns: 1fr auto; }
  .formal-employee-payment dl { grid-column: 1 / -1; grid-template-columns: 1fr; }
  .formal-employee-payment .button { grid-column: 1 / -1; min-height: 44px; }
  .formal-reimbursement-business { gap: var(--space-3); margin-top: var(--space-3); }
  .formal-voucher-layout, .formal-voucher-column, .formal-submit-column { gap: var(--space-3); }
  .formal-upload-hero { padding: 21px 16px; }
  .formal-upload-hero h2 { font-size: 27px; }
  .formal-upload-actions { display: grid; grid-template-columns: 1fr; }
  .formal-upload-actions .button { min-height: 48px; }
  .formal-voucher-card__facts { grid-template-columns: 1fr; }
  .formal-card-actions { display: grid; grid-template-columns: 1fr; }
  .formal-card-actions .button { min-height: 44px; }
  .formal-attribution-workspace { gap: var(--space-3); }
  .formal-attribution-card__heading { align-items: baseline; }
  .formal-attribution-facts { grid-template-columns: 1fr; gap: 8px; }
  .formal-attribution-detail { padding: 13px 11px; }
  .formal-project-option, .formal-project-row > button { min-height: 52px; }
  .formal-cost-row { grid-template-columns: 1fr auto; }
  .formal-cost-row dl { grid-column: 1 / -1; grid-template-columns: 1fr; }
  .formal-admin-workspace { gap: var(--space-3); }
  .formal-admin-project-row { grid-template-columns: 1fr; align-items: stretch; gap: var(--space-3); }
  .formal-admin-project-row > dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .formal-admin-project-row > .button { width: 100%; min-height: 44px; }
  .formal-admin-form-grid, .formal-admin-assignment-action { grid-template-columns: 1fr; }
  .formal-admin-assignment-action .button { width: 100%; min-height: 44px; }
}
@media (max-width: 520px) {
  .formal-admin-project-row > dl { grid-template-columns: 1fr; gap: 8px; }
  .formal-admin-project-form { padding: 13px 11px; }
  .formal-admin-project-form__heading { display: grid; }
  .formal-admin-assignment-row.is-unassigned { padding: 13px 11px; }
}
html { scroll-behavior: smooth; }
body {
  min-width: 300px;
  min-height: 100dvh;
  margin: 0;
  background: var(--page);
  color: var(--text);
  font-size: var(--type-body);
  line-height: var(--type-leading-body);
}

button, select, input, textarea { font: inherit; }
button, summary, select { -webkit-tap-highlight-color: transparent; }
button:focus-visible, summary:focus-visible, select:focus-visible, input:focus-visible, textarea:focus-visible, a:focus-visible {
  outline: 3px solid var(--focus-ring);
  outline-offset: 3px;
}

.app-bar {
  position: sticky;
  top: 0;
  z-index: 10;
  border-bottom: 1px solid rgba(201, 211, 215, 0.9);
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(10px);
}
.app-bar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(1240px, calc(100% - 40px));
  min-height: 66px;
  margin: 0 auto;
}
.app-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.brand { display: inline-flex; align-items: center; gap: 12px; color: var(--text); text-decoration: none; }
.brand__mark {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 10px;
  background: var(--accent);
  color: #fff;
  font-size: 18px;
  font-weight: 700;
}
.brand strong, .brand small { display: block; }
.brand strong { line-height: 1.2; }
.brand small { margin-top: 2px; color: var(--text-soft); font-size: 12px; }
.desktop-app-page-label { display: none; }

.page-shell { width: min(1240px, calc(100% - 40px)); margin: 0 auto; padding: 22px 0 68px; }
.page-shell[hidden] { display: none; }
.workbench-identity { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 4px 2px 18px; }
.workbench-identity h1 { margin: 3px 0 5px; font-size: var(--type-page-title); line-height: 1.25; letter-spacing: -0.02em; }
.workbench-identity p:not(.context-label) { max-width: 68ch; margin: 0; color: var(--text-soft); font-size: 14px; }
.workbench-summary { display: grid; grid-template-columns: repeat(3, 1fr); margin-bottom: 20px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow); }
.workbench-summary > div { display: flex; align-items: center; justify-content: space-between; min-height: 70px; padding: 13px 20px; border-left: 1px solid var(--line); }
.workbench-summary > div:first-child { border-left: 0; }
.workbench-summary span { color: var(--text-soft); font-size: 13px; }
.workbench-summary strong { font-size: 26px; line-height: 1; }
.workbench-section { padding: 20px 24px; }
.workbench-section--current { border-color: #d8c48e; }
.workbench-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 20px; }
.workbench-list { border-top: 1px solid var(--line); }
.workbench-item { padding: 16px 0; border-bottom: 1px solid var(--line); }
.workbench-item:last-child { border-bottom: 0; }
.workbench-item__top { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.workbench-item__project { margin: 0; font-size: 14px; font-weight: 800; }
.workbench-item__source { display: inline-flex; margin-top: 4px; padding: 2px 7px; border-radius: var(--radius-xs); background: var(--info-soft); color: var(--info); font-size: var(--type-meta); font-weight: var(--weight-semibold); }
.workbench-item__action { margin: 10px 0 0; font-size: 16px; font-weight: 800; line-height: 1.5; }
.workbench-item__wait { margin: 5px 0 0; color: var(--text-soft); font-size: 12px; }
.workbench-item__footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 12px; }
.workbench-item__due { color: var(--warning); font-size: 12px; font-weight: 800; }
.workbench-item__due--future { color: #315b76; }
.processed-detail { margin-top: 14px; padding: 15px; border-radius: var(--radius-small); background: var(--surface-subtle); }
.processed-detail[hidden] { display: none; }
.processed-detail__facts { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 18px; margin: 0; }
.processed-detail__facts > div { min-width: 0; }
.processed-detail__facts dt { color: var(--text-faint); font-size: var(--type-meta); }
.processed-detail__facts dd { margin: 3px 0 0; overflow-wrap: anywhere; color: var(--text); font-size: 13px; font-weight: 700; line-height: 1.5; }
.processed-detail__actions { display: flex; justify-content: flex-end; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.workbench-empty { margin: 0; padding: 20px 0 4px; color: var(--text-soft); font-size: 13px; }
.todo-process-form { margin-top: 14px; padding: 17px; border: 1px solid var(--line-strong); border-radius: var(--radius-small); background: var(--surface-subtle); }
.todo-process-form[hidden] { display: none; }
.todo-process-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.form-field--full { grid-column: 1 / -1; }
.todo-process-actions__buttons { display: flex; align-items: center; gap: 8px; }

.order-workspace-sidebar { display: none; }
.order-workspace-identity { align-items: center; padding-bottom: 16px; }
.order-workspace-identity h1 { margin-top: 0; font-size: 30px; }
.order-workspace-sidebar .order-workspace-role-menu { min-width: 0; position: relative; }
.order-workspace-role-menu > summary { display: flex; min-height: 44px; align-items: center; justify-content: space-between; gap: 18px; padding: 8px 12px; border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--surface); color: var(--text-soft); font-size: 12px; font-weight: 700; cursor: pointer; list-style: none; }
.order-workspace-role-menu > summary::-webkit-details-marker { display: none; }
.order-workspace-role-menu > summary > span:last-child { color: var(--primary); }
.order-workspace-role-menu[open] > .workspace-role-switch { margin-top: 8px; }
.order-workspace-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; margin-bottom: 22px; padding: 12px 15px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); box-shadow: none; }
.order-workspace-summary > div { min-height: 0; justify-content: flex-start; gap: 6px; padding: 0; border: 0; }
.order-workspace-summary strong { color: var(--text); font-size: 15px; }
.order-workspace-summary span { font-size: 12px; }
.order-workspace .workbench-section--current { border-color: var(--line); box-shadow: none; }
.order-workspace-content { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(300px, 0.95fr); align-items: start; gap: 20px; }
.order-workspace-secondary { grid-template-columns: 1fr; align-items: start; gap: 16px; margin-top: 0; }
.order-workspace-secondary .workbench-section { padding: 18px 17px; }
.order-workspace-secondary .workbench-item__project { font-size: 13px; }
.order-workspace-secondary .workbench-item__action { font-size: 14px; }
.order-workspace .workbench-item__source { font-size: 12px; }
.order-workspace .workbench-item__wait { color: var(--text-soft); }
.workbench-section--future:not(:has(.order-future-disclosure[open])) .workbench-item:nth-child(n + 4) { display: none; }
.order-future-disclosure > summary, .order-workspace-history summary { display: flex; min-height: 44px; align-items: center; justify-content: space-between; color: var(--primary); font-size: 13px; font-weight: 700; cursor: pointer; list-style: none; }
.order-future-disclosure > summary::-webkit-details-marker, .order-workspace-history summary::-webkit-details-marker { display: none; }
.order-future-disclosure[open] > summary { color: var(--text-soft); }
.order-workspace-history { margin-top: 0; padding-block: 8px; box-shadow: none; }
.order-workspace-history summary > span:first-child { color: var(--text); font-size: 15px; }
.order-workspace-history details:not([open]) .workbench-list { display: none; }
body:has(#workbenchView:not([hidden])) #resetDemo { color: var(--text-faint); font-size: 11px; }
.project-section-navigation { min-width: 0; }
.project-section-navigation > summary { color: var(--text-soft); font-size: 12px; font-weight: 700; list-style: none; }
.project-section-navigation > summary::-webkit-details-marker { display: none; }
.project-section-navigation__project, .project-section-navigation__current { display: none; }
.project-section-navigation__list { display: grid; gap: 3px; margin-top: 10px; }
.project-section-navigation__item { display: flex; min-height: 38px; align-items: center; justify-content: space-between; gap: 6px; padding: 7px 9px; border: 0; border-radius: var(--radius-small); background: transparent; color: var(--text-soft); text-align: left; font-size: 12px; cursor: pointer; }
.project-section-navigation__item > span { min-width: 0; overflow-wrap: anywhere; }
.project-section-navigation__item > small { color: var(--text-faint); font-size: 10px; }
.project-section-navigation__item:hover, .project-section-navigation__item[aria-current="location"] { background: var(--primary-soft); color: var(--primary); }
.project-section-navigation__item[aria-current="location"] { font-weight: 700; }
.project-shell-tools { display: flex; justify-content: flex-end; gap: 7px; margin-bottom: 11px; }
.project-shell-tools > .project-back-button { min-width: 0; }
.project-shell-tools > .project-back-button > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#projectView > :is(.overview-grid, .todo-section, .task-section, .finance-items-section, .supplier-cost-section, .internal-labor-section, .cost-collection-section, .project-completion-section, .operating-result-section, .supporting-section, .after-sales-section) { scroll-margin-top: 82px; }

@media (min-width: 1021px) {
  body:is([data-desktop-shell-role="order"], [data-desktop-shell-role="boss"], [data-desktop-shell-role="finance"], [data-desktop-shell-role="site"], [data-desktop-shell-role="employee"]) .app-bar { z-index: 12; margin-left: 220px; backdrop-filter: none; }
  body:is([data-desktop-shell-role="order"], [data-desktop-shell-role="boss"], [data-desktop-shell-role="finance"], [data-desktop-shell-role="site"], [data-desktop-shell-role="employee"]) .app-bar__inner { width: calc(100% - 72px); min-height: 70px; }
  body:is([data-desktop-shell-role="order"], [data-desktop-shell-role="boss"], [data-desktop-shell-role="finance"], [data-desktop-shell-role="site"], [data-desktop-shell-role="employee"]) .app-bar .brand > :not(.desktop-app-page-label) { display: none; }
  body:is([data-desktop-shell-role="order"], [data-desktop-shell-role="boss"], [data-desktop-shell-role="finance"], [data-desktop-shell-role="site"], [data-desktop-shell-role="employee"]) .app-bar .desktop-app-page-label { display: block; font-size: 14px; font-weight: 700; }
  body:is([data-desktop-shell-role="order"], [data-desktop-shell-role="boss"], [data-desktop-shell-role="finance"], [data-desktop-shell-role="site"], [data-desktop-shell-role="employee"]) :is(#showOpportunities, #showWorkbench) { display: none; }
  body:is([data-desktop-shell-role="order"], [data-desktop-shell-role="boss"], [data-desktop-shell-role="finance"], [data-desktop-shell-role="site"], [data-desktop-shell-role="employee"]) #resetDemo { position: fixed; z-index: 12; bottom: 18px; left: 21px; min-height: 36px; padding-inline: 7px; }
  body:is([data-desktop-shell-role="order"], [data-desktop-shell-role="boss"], [data-desktop-shell-role="finance"], [data-desktop-shell-role="site"], [data-desktop-shell-role="employee"]) > .page-shell:not([hidden]) { width: calc(100% - 292px); margin-right: 36px; margin-left: 256px; }
  .order-workspace-sidebar { position: fixed; z-index: 11; inset-block: 0; left: 0; display: block; width: 220px; border-right: 1px solid var(--line); background: var(--surface); }
  body:not([data-desktop-shell-role="order"]):not([data-desktop-shell-role="boss"]):not([data-desktop-shell-role="finance"]):not([data-desktop-shell-role="site"]):not([data-desktop-shell-role="employee"]) > .order-workspace-sidebar { display: none; }
  body[data-desktop-shell-role="boss"] [data-shell-order-only] { display: none; }
  .order-workspace-sidebar__brand { display: flex; align-items: center; gap: 11px; margin: 0 16px; padding: 24px 6px 22px; border-bottom: 1px solid var(--line); }
  .order-workspace-sidebar__brand strong, .order-workspace-sidebar__brand small { display: block; }
  .order-workspace-sidebar__brand strong { font-size: 14px; line-height: 1.3; }
  .order-workspace-sidebar__brand small { margin-top: 2px; color: var(--text-soft); font-size: var(--type-meta); }
  .order-workspace-sidebar__navigation { display: grid; gap: 6px; margin: 20px 16px 0; }
  .order-workspace-sidebar__navigation button { display: flex; min-height: 42px; align-items: center; gap: 13px; padding: 0 13px; border: 0; border-radius: var(--radius-small); background: transparent; color: var(--text-soft); text-align: left; cursor: pointer; }
  .order-workspace-sidebar__navigation button::before { width: 7px; height: 7px; border: 1px solid var(--text-soft); border-radius: 50%; content: ""; }
  .order-workspace-sidebar__navigation button:hover { background: var(--surface-subtle); color: var(--text); }
  .order-workspace-sidebar__navigation button.is-active { background: var(--primary-soft); color: var(--primary); font-weight: 700; }
  .order-workspace-sidebar__navigation button.is-active::before { border-color: var(--primary); background: var(--primary); }
  .order-workspace-sidebar__role-label, .order-workspace-sidebar__tools-label { position: absolute; left: 27px; color: var(--text-soft); font-size: var(--type-meta); }
  .order-workspace-sidebar__role-label { top: 350px; }
  .order-workspace-sidebar__tools-label { bottom: 58px; }
  .order-workspace-sidebar .order-workspace-role-menu { position: fixed; z-index: 12; top: 375px; left: 16px; width: 188px; }
  .order-workspace-sidebar .order-workspace-role-menu > summary > span:last-child { color: var(--primary); }
  .order-workspace-role-context { display: none; }
  .order-workspace-role-menu > summary { gap: 8px; }
  .order-workspace-role-menu[open] > .workspace-role-switch { display: grid; width: 100%; grid-template-columns: 1fr; }
  .order-workspace-role-menu[open] > .workspace-role-switch button { min-height: 40px; text-align: left; }
  .order-workspace-sidebar .workspace-role-switch button:hover { background: var(--surface-subtle); color: var(--text); }
  .order-workspace-sidebar .workspace-role-switch button.is-active { background: var(--primary-soft); color: var(--primary); }
  body[data-desktop-shell-role="boss"] #bossWorkspaceView .boss-workspace__identity > .workspace-role-control { display: none; }
  body[data-desktop-shell-role="finance"] #reimbursementView .reimbursement-identity > .workspace-role-control { display: none; }
  body[data-desktop-shell-role="site"] #reimbursementView .reimbursement-identity > .workspace-role-control { display: none; }
  body[data-desktop-shell-role="employee"] #reimbursementView .reimbursement-identity > .workspace-role-control { display: none; }
  #projectView:has(.project-section-navigation:not([hidden])) { display: grid; grid-template-columns: 160px minmax(0, 1fr); column-gap: 22px; align-items: start; }
  body:is([data-desktop-shell-role="order"], [data-desktop-shell-role="boss"], [data-desktop-shell-role="finance"], [data-desktop-shell-role="site"], [data-desktop-shell-role="employee"]) #projectView:has(.project-section-navigation:not([hidden])) { width: calc(100% - 270px); margin-right: 26px; margin-left: 244px; }
  #projectView:has(.project-section-navigation:not([hidden])) > :not(.project-shell-tools, .order-workspace-sidebar) { grid-column: 2; }
  #projectView > .project-shell-tools:has(.project-section-navigation:not([hidden])) { position: sticky; top: 88px; display: grid; grid-column: 1; grid-row: 2 / span 20; align-self: start; gap: 4px; margin: 0; padding: 7px 0 11px; }
  #projectView > .project-shell-tools > .project-back-button { width: 100%; min-height: 40px; justify-content: flex-start; padding: 6px 9px; text-align: left; }
  #projectView > .project-shell-tools > .project-section-navigation > summary { padding: 4px 9px 8px; pointer-events: none; }
}

@media (max-width: 1020px) {
  .order-workspace-content { grid-template-columns: 1fr; gap: 0; }
  .order-workspace-secondary { margin-top: 16px; }
  body:has(#projectView:not([hidden])) .app-bar { position: static; }
  #projectView > .order-workspace-sidebar { display: none; }
  #projectView > .project-shell-tools:has(.project-section-navigation:not([hidden])) { position: sticky; z-index: 9; top: 0; display: grid; grid-template-columns: minmax(108px, auto) minmax(0, 1fr); gap: 6px; margin: 0 0 11px; }
  #projectView > .project-shell-tools > .project-back-button { min-height: 50px; max-width: 46vw; padding: 0 9px; border: 1px solid var(--line); background: var(--surface); }
  #projectView > .project-shell-tools > .project-section-navigation { position: static; min-width: 0; }
  #projectView > .project-shell-tools > .project-section-navigation > summary { display: flex; min-height: 50px; align-items: center; gap: 9px; padding: 0 12px; border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--surface); color: var(--primary); cursor: pointer; }
  #projectView > .project-shell-tools > .project-section-navigation > summary::after { width: 7px; height: 7px; flex: 0 0 7px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; content: ""; transform: rotate(45deg); }
  #projectView > .project-shell-tools > .project-section-navigation[open] > summary::after { transform: rotate(225deg); }
  #projectView > .project-shell-tools > .project-section-navigation .project-section-navigation__desktop-title { display: none; }
  #projectView > .project-shell-tools > .project-section-navigation .project-section-navigation__project { display: block; min-width: 0; flex: 1; overflow: hidden; color: var(--text); text-overflow: ellipsis; white-space: nowrap; }
  #projectView > .project-shell-tools > .project-section-navigation .project-section-navigation__current { display: block; flex: 0 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  #projectView > .project-shell-tools > .project-section-navigation > .project-section-navigation__list { position: absolute; z-index: 3; top: 50px; right: 0; width: min(280px, 100%); max-height: min(450px, 64vh); overflow-y: auto; padding: 7px; border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--surface); box-shadow: var(--shadow); }
  #projectView > .project-shell-tools > .project-section-navigation .project-section-navigation__item { min-height: 44px; }
  #projectView > :is(.overview-grid, .todo-section, .task-section, .finance-items-section, .supplier-cost-section, .internal-labor-section, .cost-collection-section, .project-completion-section, .operating-result-section, .supporting-section, .after-sales-section) { scroll-margin-top: 58px; }
}

@media (min-width: 1021px) and (max-width: 1180px) {
  body:is([data-desktop-shell-role="order"], [data-desktop-shell-role="boss"], [data-desktop-shell-role="finance"], [data-desktop-shell-role="site"], [data-desktop-shell-role="employee"]) #projectView:has(.project-section-navigation:not([hidden])) {
    display: block;
    width: calc(100% - 292px);
    margin-right: 36px;
    margin-left: 256px;
  }
  #projectView > .project-shell-tools:has(.project-section-navigation:not([hidden])) {
    position: sticky;
    z-index: 9;
    top: 82px;
    display: grid;
    grid-template-columns: minmax(130px, auto) minmax(0, 1fr);
    gap: 7px;
    margin: 0 0 11px;
    padding: 0;
  }
  #projectView > .project-shell-tools > .project-back-button { width: auto; min-height: 48px; max-width: 280px; }
  #projectView > .project-shell-tools > .project-section-navigation { position: static; min-width: 0; }
  #projectView > .project-shell-tools > .project-section-navigation > summary {
    display: flex;
    min-height: 48px;
    align-items: center;
    gap: 9px;
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: var(--radius-small);
    background: var(--surface);
    color: var(--primary);
    cursor: pointer;
    pointer-events: auto;
  }
  #projectView > .project-shell-tools > .project-section-navigation > summary::after {
    width: 7px;
    height: 7px;
    flex: 0 0 7px;
    border-right: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    content: "";
    transform: rotate(45deg);
  }
  #projectView > .project-shell-tools > .project-section-navigation[open] > summary::after { transform: rotate(225deg); }
  #projectView > .project-shell-tools > .project-section-navigation .project-section-navigation__desktop-title { display: none; }
  #projectView > .project-shell-tools > .project-section-navigation .project-section-navigation__project { display: block; min-width: 0; flex: 1; overflow: hidden; color: var(--text); text-overflow: ellipsis; white-space: nowrap; }
  #projectView > .project-shell-tools > .project-section-navigation .project-section-navigation__current { display: block; flex: 0 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  #projectView > .project-shell-tools > .project-section-navigation > .project-section-navigation__list {
    position: absolute;
    z-index: 3;
    top: 42px;
    right: 0;
    width: min(300px, 100%);
    max-height: min(450px, 64vh);
    overflow-y: auto;
    padding: 7px;
    border: 1px solid var(--line);
    border-radius: var(--radius-small);
    background: var(--surface);
    box-shadow: var(--shadow);
  }
  #projectView > .project-shell-tools > .project-section-navigation .project-section-navigation__item { min-height: 44px; }
  #projectView > :is(.overview-grid, .todo-section, .task-section, .finance-items-section, .supplier-cost-section, .internal-labor-section, .cost-collection-section, .project-completion-section, .operating-result-section, .supporting-section, .after-sales-section) { scroll-margin-top: 140px; }
  body[data-desktop-shell-role="boss"] .boss-project-row { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.5fr); }
  body[data-desktop-shell-role="boss"] .boss-project-row__status { grid-column: 1 / -1; display: flex; align-items: center; justify-content: flex-end; }
}

.reimbursement-identity { align-items: flex-end; }
.workspace-role-control { display: grid; justify-items: end; gap: 6px; min-width: 470px; }
.workspace-role-control > span, .workspace-role-control > small { color: var(--text-soft); font-size: 11px; }
.workspace-role-switch { display: inline-flex; gap: 3px; padding: 3px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); }
.workspace-role-switch button { min-height: 34px; padding: 6px 10px; border: 0; border-radius: 7px; background: transparent; color: var(--text-soft); font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.workspace-role-switch button:hover { background: var(--surface-subtle); }
.workspace-role-switch button.is-active { background: var(--primary); color: #fff; }
.boss-workspace > .panel, .boss-secondary-grid > .panel, .boss-insight-grid > .panel, .boss-funds-stack > .panel { padding: 20px 24px; }
.boss-workspace > .panel, .boss-secondary-grid { margin-top: 20px; }
.boss-workspace__identity { align-items: flex-end; }
.boss-workspace__identity .workspace-role-switch button { min-height: 40px; }
.boss-section-heading { margin-bottom: 16px; }
.read-only-label { display: inline-flex; align-items: center; min-height: 28px; padding: 3px 9px; border-radius: 999px; background: var(--surface-subtle); color: var(--text-soft); font-size: 11px; font-weight: 800; }
.boss-company-metrics { display: grid; grid-template-columns: 1.25fr 0.72fr 1.15fr 1fr; border-block: 1px solid var(--line); }
.boss-company-metric { min-width: 0; padding: 18px 18px; border-left: 1px solid var(--line); }
.boss-company-metric:first-child { padding-left: 0; border-left: 0; }
.boss-company-metric > span, .boss-company-metric > strong, .boss-company-metric > small { display: block; }
.boss-company-metric > span { color: var(--text-soft); font-size: 12px; }
.boss-company-metric > strong { margin-top: 5px; font-size: clamp(23px, 2.7vw, 34px); line-height: 1.16; letter-spacing: -0.025em; overflow-wrap: anywhere; }
.boss-company-metric > small { margin-top: 7px; color: var(--text-soft); font-size: var(--type-meta); line-height: 1.55; }
.boss-company-metric--primary > strong { color: var(--text); }
.boss-company-metric--attention > strong { color: var(--warning); font-size: clamp(20px, 2.2vw, 28px); }
.boss-insight-grid { display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(390px, 0.82fr); gap: 20px; margin-top: 20px; align-items: start; }
.boss-funds-stack { display: grid; gap: 16px; min-width: 0; }
.boss-mobile-funds-summary { display: none; }
.boss-funds-stack .boss-receivable-columns { grid-template-columns: 1fr; gap: 18px; margin-top: 0; }
.boss-attention-list { border-top: 1px solid var(--line); }
.boss-attention-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 16px; padding: 13px 2px; border-bottom: 1px solid var(--line); }
.boss-attention-row > div { min-width: 0; }
.boss-attention-row > div:first-child > strong { display: block; margin-top: 4px; font-size: 14px; overflow-wrap: anywhere; }
.boss-attention-row p { margin: 4px 0 0; color: var(--text-soft); font-size: 12px; line-height: 1.55; overflow-wrap: anywhere; }
.boss-attention-row > div:last-child { display: grid; justify-items: end; gap: 4px; text-align: right; }
.boss-attention-row > div:last-child b { font-size: 13px; overflow-wrap: anywhere; }
.boss-attention-type { display: inline-flex; min-height: 24px; align-items: center; padding: 2px 8px; border-radius: var(--radius-pill); background: var(--warning-soft); color: var(--warning); font-size: var(--type-meta); font-weight: var(--weight-bold); }
.boss-attention-type--danger { background: var(--danger-soft); color: var(--danger); }
.boss-attention-more { margin-top: 10px; }
.boss-attention-more > summary, .boss-all-projects > summary, .boss-supplier-disclosure > summary { display: flex; min-height: 44px; align-items: center; justify-content: space-between; gap: 12px; color: var(--primary); font-size: 12px; font-weight: 800; cursor: pointer; list-style: none; }
.boss-attention-more > summary::-webkit-details-marker, .boss-all-projects > summary::-webkit-details-marker, .boss-supplier-disclosure > summary::-webkit-details-marker { display: none; }
.boss-receivable-summary { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(220px, 0.7fr); border-block: 1px solid var(--line); }
.boss-receivable-summary > div { min-width: 0; padding: 20px 0; }
.boss-receivable-summary > div + div { padding-left: 24px; border-left: 1px solid var(--line); }
.boss-receivable-summary span, .boss-receivable-summary small, .boss-customer-total span, .boss-known-supplier-cost span { display: block; color: var(--text-soft); }
.boss-receivable-summary span, .boss-customer-total span, .boss-known-supplier-cost span { font-size: 12px; }
.boss-receivable-summary strong { display: block; margin-top: 3px; font-size: clamp(28px, 4vw, 42px); line-height: 1.18; letter-spacing: -0.03em; overflow-wrap: anywhere; }
.boss-receivable-summary small { margin-top: 6px; font-size: var(--type-meta); }
.boss-collection-count strong { color: var(--warning); }
.boss-receivable-columns { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 28px; margin-top: 20px; }
.boss-subsection { min-width: 0; }
.boss-subsection__heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.boss-subsection__heading h3 { margin: 0; font-size: 15px; }
.boss-subsection__heading span { color: var(--text-faint); font-size: var(--type-meta); text-align: right; }
.boss-compact-list, .boss-project-list, .boss-opportunity-list, .boss-detail-list { border-top: 1px solid var(--line); }
.boss-list-row { display: flex; width: 100%; min-height: 60px; align-items: center; justify-content: space-between; gap: 16px; padding: 11px 2px; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: var(--text); text-align: left; cursor: pointer; }
.boss-list-row:hover { color: var(--primary-hover); }
.boss-list-row span, .boss-list-row strong, .boss-list-row small { display: block; }
.boss-list-row strong { font-size: 13px; }
.boss-list-row small { margin-top: 2px; color: var(--text-soft); font-size: var(--type-meta); }
.boss-list-row b { flex: 0 0 auto; font-size: 15px; }
.boss-customer-item { border-bottom: 1px solid var(--line); }
.boss-customer-item > .boss-list-row { border-bottom: 0; }
.boss-customer-item.is-expanded > .boss-list-row { color: var(--primary); }
.boss-customer-inline-detail { padding: 4px 12px 12px; border-left: 2px solid var(--primary); background: var(--surface-subtle); }
.boss-customer-inline-total { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-3); padding: 10px 0; color: var(--text-soft); font-size: var(--type-meta); }
.boss-customer-inline-total strong { color: var(--text); font-size: 17px; }
.boss-customer-inline-detail .boss-detail-row:last-child { border-bottom: 0; }
.boss-collection-row, .boss-opportunity-row, .boss-detail-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px 2px; border-bottom: 1px solid var(--line); }
.boss-collection-row > div, .boss-opportunity-row > div, .boss-detail-row > div { min-width: 0; }
.boss-collection-row strong, .boss-collection-row span, .boss-collection-row small, .boss-opportunity-row span, .boss-opportunity-row strong, .boss-detail-row span, .boss-detail-row small { display: block; }
.boss-collection-row span, .boss-opportunity-row span { margin-top: 2px; color: var(--text-soft); font-size: var(--type-meta); }
.boss-collection-row p, .boss-opportunity-row p, .boss-detail-row p { margin: 5px 0 0; color: var(--text-soft); font-size: 12px; overflow-wrap: anywhere; }
.boss-collection-row small, .boss-detail-row small { margin-top: 3px; color: var(--text-faint); font-size: var(--type-meta); }
.boss-collection-row > div:last-child, .boss-opportunity-row > div:last-child { display: grid; flex: 0 0 auto; justify-items: end; gap: 4px; text-align: right; }
.boss-empty { margin: 0; padding: 18px 2px; color: var(--text-soft); font-size: 12px; }
.boss-customer-total { padding: 14px 0; border-block: 1px solid var(--line); }
.boss-customer-total strong, .boss-known-supplier-cost strong { display: block; margin-top: 2px; font-size: 24px; overflow-wrap: anywhere; }
.boss-detail-row h3, .boss-opportunity-row h3 { margin: 2px 0 0; overflow-wrap: anywhere; font-size: 14px; }
.boss-detail-row__value { display: grid; flex: 0 0 auto; justify-items: end; text-align: right; }
.boss-detail-row__value strong { margin-top: 2px; font-size: 16px; }
.boss-filter { display: flex; align-items: center; gap: var(--space-2); color: var(--text-soft); font-size: var(--type-meta); }
.boss-filter select { min-width: 170px; min-height: 38px; padding: 6px 32px 6px 10px; border: 1px solid var(--line-strong); border-radius: var(--radius-small); background: var(--surface); color: var(--text); }
.boss-project-row { display: grid; grid-template-columns: minmax(220px, 1.1fr) minmax(430px, 1.7fr) auto; align-items: center; gap: 20px; padding: 16px 2px; border-bottom: 1px solid var(--line); }
.boss-project-row > * { min-width: 0; }
.boss-project-row__identity span, .boss-project-row__identity small { display: block; color: var(--text-soft); font-size: var(--type-meta); }
.boss-project-row__identity h3 { margin: 3px 0; overflow-wrap: anywhere; font-size: 15px; }
.boss-project-row dl { display: grid; grid-template-columns: 0.72fr 1.15fr 0.85fr; gap: 14px; margin: 0; }
.boss-project-row dt { color: var(--text-faint); font-size: var(--type-meta); }
.boss-project-row dd { margin: 2px 0 0; overflow-wrap: anywhere; font-size: 12px; font-weight: 800; }
.boss-project-row__status { display: grid; justify-items: end; gap: 7px; }
.boss-stale-label { color: var(--warning); font-size: var(--type-meta); font-weight: var(--weight-bold); }
.boss-all-projects { margin-top: 8px; padding-top: 4px; border-top: 1px solid var(--line); }
.boss-secondary-grid { display: grid; grid-template-columns: 1.18fr 0.82fr; gap: 20px; }
.boss-fact-list { margin: 0; }
.boss-fact-list > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 18px; padding: 13px 0; border-top: 1px solid var(--line); }
.boss-fact-list dt { color: var(--text-soft); font-size: 12px; }
.boss-fact-list dd { grid-row: 1 / span 2; grid-column: 2; margin: 0; font-size: 19px; font-weight: 850; text-align: right; overflow-wrap: anywhere; }
.boss-fact-list small { color: var(--text-faint); font-size: var(--type-meta); }
.boss-data-gap { padding: 15px; border-radius: var(--radius-small); background: var(--warning-soft); }
.boss-data-gap strong { color: var(--warning); }
.boss-data-gap p { margin: 5px 0 0; color: #6f582e; font-size: var(--type-meta); }
.boss-known-supplier-cost { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.boss-supplier-totals { display: grid; gap: 11px; }
.boss-supplier-totals > div { display: grid; gap: 2px; padding-block: 10px; border-top: 1px solid var(--line); }
.boss-supplier-totals > div > span, .boss-supplier-totals > div > small { color: var(--text-soft); font-size: var(--type-meta); }
.boss-supplier-totals > div > strong { font-size: 19px; }
.boss-supplier-list { margin-top: 10px; }
.boss-supplier-disclosure { margin-top: 8px; border-top: 1px solid var(--line); }
.boss-supplier-row { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 0; border: 0; border-top: 1px solid var(--line); background: transparent; color: var(--text); text-align: left; cursor: pointer; }
.boss-supplier-row > span { min-width: 0; }
.boss-supplier-row > span > strong, .boss-supplier-row > span > small { display: block; overflow-wrap: anywhere; }
.boss-supplier-row > span > strong, .boss-supplier-row > strong { font-size: 12px; }
.boss-supplier-row > span > small { margin-top: 3px; color: var(--text-soft); font-size: var(--type-meta); }
.boss-supplier-row__amounts { flex: 0 0 auto; text-align: right; }
.boss-supplier-row__amounts > strong { white-space: nowrap; }
.boss-operating-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 13px 0; border-block: 1px solid var(--line); }
.boss-operating-summary > div { display: flex; align-items: baseline; gap: 7px; min-width: 0; padding: 4px 16px; border-left: 1px solid var(--line); }
.boss-operating-summary > div:first-child { padding-left: 0; border-left: 0; }
.boss-operating-summary span { color: var(--text-soft); font-size: var(--type-meta); }
.boss-operating-summary strong { font-size: 21px; }
.boss-operating-results .boss-detail-list { margin-top: 14px; }
.boss-result-row { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(520px, 2fr) auto; align-items: center; gap: 20px; padding: 15px 2px; border-bottom: 1px solid var(--line); }
.boss-result-row > div { min-width: 0; }
.boss-result-row span, .boss-result-row small { color: var(--text-soft); font-size: var(--type-meta); }
.boss-result-row h3 { margin: 2px 0; overflow-wrap: anywhere; font-size: 14px; }
.boss-result-row dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px 14px; margin: 0; }
.boss-result-row dt { color: var(--text-faint); font-size: var(--type-meta); }
.boss-result-row dd { margin: 2px 0 0; font-size: 12px; font-weight: 800; overflow-wrap: anywhere; }
.boss-result-row dd.is-loss { color: var(--danger); }
.boss-opportunity-toggle { display: flex; align-items: flex-start; gap: 9px; min-height: 44px; padding: 9px 11px; border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--surface-subtle); cursor: pointer; }
.boss-opportunity-toggle input { width: 17px; height: 17px; margin: 2px 0 0; accent-color: var(--primary); }
.boss-opportunity-toggle span, .boss-opportunity-toggle strong, .boss-opportunity-toggle small { display: block; }
.boss-opportunity-toggle strong { font-size: 12px; }
.boss-opportunity-toggle small { margin-top: 2px; color: var(--text-soft); font-size: var(--type-meta); line-height: 1.45; }
.order-workspace-projects { margin-bottom: 20px; padding: 20px 24px; }
.order-project-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.order-project-search { display: flex; width: min(340px, 100%); min-height: 44px; align-items: center; gap: 9px; padding: 0 11px; border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--surface); }
.order-project-search svg { width: 17px; height: 17px; flex: 0 0 17px; fill: none; stroke: var(--text-soft); stroke-width: 1.6; }
.order-project-search input { width: 100%; min-width: 0; padding: 0; border: 0; background: transparent; outline: 0; font-size: 13px; }
.order-project-filter-disclosure > summary { display: none; }
.order-project-filter-fields { display: flex; align-items: center; gap: 12px; }
.order-project-filter-fields label { display: grid; gap: 3px; color: var(--text-soft); font-size: 10px; }
.order-project-filter-fields select { min-width: 124px; min-height: 36px; padding: 4px 8px; border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--surface); color: var(--text); font-size: 12px; }
.order-project-categories { display: flex; flex-wrap: wrap; gap: 5px 12px; margin: 20px 0 12px; }
.order-project-categories button { display: inline-flex; min-height: 38px; align-items: center; gap: 5px; padding: 5px 8px; border: 0; border-radius: var(--radius-small); background: transparent; color: var(--text-soft); font-size: 12px; cursor: pointer; }
.order-project-categories button[aria-pressed="true"] { background: var(--primary-soft); color: var(--primary); font-weight: 700; }
.order-project-categories button span { font-size: 10px; }
.order-project-list-heading, .order-workspace-project-row { display: grid; grid-template-columns: minmax(150px, 1.35fr) minmax(75px, .7fr) minmax(135px, 1fr) minmax(145px, 1.2fr) minmax(58px, .5fr) minmax(70px, .62fr) 78px; align-items: center; gap: 12px; }
.order-project-list-heading { padding: 11px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--text-soft); font-size: 10px; }
.order-workspace-project-list { min-width: 0; }
.order-workspace-project-row { padding: 14px 0; border-bottom: 1px solid var(--line); }
.order-workspace-project-row > div { min-width: 0; }
.order-workspace-project-row strong, .order-workspace-project-row span, .order-workspace-project-row small { display: block; }
.order-workspace-project-row__identity > strong { overflow-wrap: anywhere; font-size: 14px; }
.order-workspace-project-row span, .order-workspace-project-row small { margin-top: 3px; color: var(--text-soft); font-size: var(--type-meta); }
.order-workspace-project-row__stage, .order-workspace-project-row__summary, .order-workspace-project-row__next, .order-workspace-project-row__updated { overflow-wrap: anywhere; color: var(--text); font-size: 12px; }
.order-workspace-project-row__next { color: var(--text-soft); }
.order-workspace-project-row__updated { color: var(--text-soft); font-size: var(--type-meta); }
.order-workspace-project-row__todo { color: var(--text-soft); font-size: var(--type-meta); }
.order-workspace-project-row__todo.is-pending { color: var(--warning); font-weight: 700; }
.order-workspace-project-row__actions { display: flex; align-items: center; justify-content: flex-end; }
.order-workspace-project-row__actions .button { min-height: var(--control-height-default); padding-inline: var(--space-2); white-space: nowrap; }
.order-workspace-project-row.is-completed:not(.has-active-after-sales) { opacity: .68; }
.order-project-empty { margin: 0; padding: 24px 0; color: var(--text-soft); font-size: 13px; }
@media (min-width: 721px) and (max-width: 1100px) {
  .order-project-list-heading { display: none; }
  .order-workspace-project-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; gap: 9px 14px; }
  .order-workspace-project-row__identity { grid-column: 1 / 3; }
  .order-workspace-project-row__stage { grid-column: 3; text-align: right; }
  .order-workspace-project-row__summary { grid-column: 1; }
  .order-workspace-project-row__next { grid-column: 2; }
  .order-workspace-project-row__todo { grid-column: 3; text-align: right; }
  .order-workspace-project-row__updated { grid-column: 1 / 3; }
  .order-workspace-project-row__actions { grid-column: 3; }
}
.reimbursement-role-summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 20px; padding: 16px 20px; }
.reimbursement-role-summary span { color: var(--text-faint); font-size: var(--type-meta); }
.reimbursement-role-summary h2 { margin: 2px 0 0; font-size: 19px; }
.reimbursement-role-summary p { margin: 4px 0 0; color: var(--text-soft); font-size: 12px; }
.finance-task-home { display: grid; gap: 20px; }
.finance-all-clear { display: none; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--surface); }
.finance-all-clear strong { font-size: var(--type-body); }
.finance-all-clear span { color: var(--text-soft); font-size: var(--type-meta); }
.finance-today-overview { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.finance-today-overview > div { min-width: 0; padding: 14px 18px; border-left: 1px solid var(--line); }
.finance-today-overview > div:first-child { border-left: 0; }
.finance-today-overview span, .finance-today-overview strong { display: block; overflow-wrap: anywhere; }
.finance-today-overview span { color: var(--text-soft); font-size: var(--type-meta); }
.finance-today-overview strong { margin-top: var(--space-1); font-size: var(--type-title); }
.finance-task-layout { display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(310px, 0.92fr); align-items: start; gap: 20px; }
.finance-task-primary, .finance-side-section, .finance-account-entries { padding: 20px 24px; }
.finance-task-heading { margin-bottom: 2px; }
.finance-task-list { border-top: 1px solid var(--line); }
.finance-task-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 18px; padding: 17px 0; border-bottom: 1px solid var(--line); }
.finance-task-row:last-child { border-bottom: 0; }
.finance-task-row__body { min-width: 0; }
.finance-task-row h3, .finance-task-row p { margin: 0; overflow-wrap: anywhere; }
.finance-task-row h3 { margin-top: 6px; font-size: var(--type-body); }
.finance-task-row p { margin-top: 2px; color: var(--text-soft); font-size: var(--type-meta); }
.finance-task-row__facts { display: flex; flex-wrap: wrap; gap: 3px 15px; margin-top: var(--space-2); color: var(--text-soft); font-size: var(--type-meta); }
.finance-task-row__facts strong { color: var(--text); }
.finance-review-person { border-bottom: 1px solid var(--line); }
.finance-review-person:last-child { border-bottom: 0; }
.finance-review-person__summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 18px; padding: 17px 0; }
.finance-review-person__summary h3, .finance-review-person__summary p { margin: 0; overflow-wrap: anywhere; }
.finance-review-person__summary h3 { margin-top: 6px; font-size: var(--type-body); }
.finance-review-person__summary p { margin-top: 3px; color: var(--text-soft); font-size: var(--type-meta); }
.finance-review-person__details { margin: -3px 0 17px; padding: 14px; border: 1px solid var(--line); border-radius: var(--radius-medium); background: var(--surface-subtle); }
.finance-review-person__details > p { margin: 0 0 9px; color: var(--text-soft); font-size: var(--type-meta); }
.finance-review-batch { padding: 13px; border-radius: var(--radius-medium); background: var(--surface); }
.finance-review-batch + .finance-review-batch { margin-top: 10px; }
.finance-review-batch.is-selected { outline: 2px solid var(--focus-ring); }
.finance-review-batch__heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; }
.finance-review-batch__heading strong, .finance-review-batch__heading span { display: block; overflow-wrap: anywhere; }
.finance-review-batch__heading strong { font-size: var(--type-body-small); }
.finance-review-batch__heading span { margin-top: 3px; color: var(--text-soft); font-size: var(--type-meta); }
.finance-review-expenses { display: grid; gap: 5px; margin-top: 10px; padding-top: 9px; border-top: 1px solid var(--line); }
.finance-review-expenses > div { display: flex; justify-content: space-between; gap: var(--space-3); color: var(--text-soft); font-size: var(--type-meta); }
.finance-review-expenses span { min-width: 0; overflow-wrap: anywhere; }
.finance-review-expenses strong { flex: 0 0 auto; color: var(--text); }
.finance-inline-detail:empty { display: none; }
.finance-inline-detail > .panel { margin: 14px 0 0; box-shadow: none; }
.finance-inline-detail > .reimbursement-review-panel, .finance-inline-detail > .reimbursement-payment-panel { padding: 16px; }
.finance-task-side { display: grid; gap: 16px; }
.finance-side-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.finance-side-heading h2, .finance-side-heading p { margin: 0; }
.finance-side-heading h2 { font-size: var(--type-title-small); }
.finance-side-heading p { margin-top: 2px; color: var(--text-soft); font-size: var(--type-meta); line-height: 1.5; }
.finance-side-heading > span { flex: 0 0 auto; color: var(--text-soft); font-size: var(--type-meta); }
.finance-side-task { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.finance-side-task:last-child { border-bottom: 0; }
.finance-side-task > div { min-width: 0; }
.finance-side-task span, .finance-side-task strong, .finance-side-task small { display: block; overflow-wrap: anywhere; }
.finance-side-task span { color: var(--warning); font-size: var(--type-meta); font-weight: var(--weight-semibold); }
.finance-side-task strong { margin-top: 3px; font-size: var(--type-body-small); }
.finance-side-task small { margin-top: 3px; color: var(--text-soft); font-size: var(--type-meta); line-height: 1.5; }
.finance-side-task--expandable, .finance-side-task--supplier-pending { grid-template-columns: minmax(0, 1fr) auto; }
.finance-side-task--expandable .finance-inline-detail { grid-column: 1 / -1; }
.finance-side-task--supplier-pending p { margin: 7px 0 0; color: #6f582e; font-size: 13px; font-weight: 700; }
.finance-side-task--supplier-pending > div > small:last-child { margin-top: 5px; color: var(--text); }
.finance-waiting-row { padding: 12px 0; border-bottom: 1px solid var(--line); }
.finance-waiting-row:last-child { border-bottom: 0; }
.finance-waiting-row span, .finance-waiting-row strong, .finance-waiting-row small { display: block; overflow-wrap: anywhere; }
.finance-waiting-row span { color: var(--text-soft); font-size: var(--type-meta); }
.finance-waiting-row strong { margin-top: 3px; font-size: var(--type-body-small); }
.finance-waiting-row small { margin-top: 3px; color: var(--text-soft); font-size: var(--type-meta); line-height: 1.5; }
.finance-task-empty { margin: 0; padding: 15px 0 4px; color: var(--text-soft); font-size: var(--type-meta); }
.finance-account-list { border-block: 1px solid var(--line); }
.finance-account-card { display: flex; width: 100%; min-height: 76px; align-items: center; gap: 14px; padding: 14px 4px; border: 0; border-top: 1px solid var(--line); background: transparent; color: var(--text); font: inherit; text-align: left; cursor: pointer; }
.finance-account-card:first-child { border-top: 0; }
.finance-account-card:hover { background: var(--surface-subtle); }
.finance-account-card:focus-visible { outline: 2px solid var(--focus-ring-strong); outline-offset: -2px; }
.finance-account-card__content { display: flex; width: 100%; min-width: 0; align-items: center; gap: 14px; }
.finance-account-card__copy { min-width: 0; flex: 1; }
.finance-account-card__copy > span, .finance-account-card__copy > strong, .finance-account-card__copy > small { display: block; overflow-wrap: anywhere; }
.finance-account-card__copy > span { color: var(--text-soft); font-size: var(--type-meta); }
.finance-account-card__copy > strong { margin-top: var(--space-1); font-size: var(--type-title-small); }
.finance-account-card__copy > small { margin-top: var(--space-1); color: var(--text-soft); font-size: var(--type-meta); line-height: 1.5; }
.finance-account-card__statuses { display: flex; flex: 0 1 auto; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.finance-account-card__chevron { flex: 0 0 auto; color: var(--text-faint); font-size: 22px; line-height: 1; transition: transform 0.18s ease; }
.finance-account-card.is-open .finance-account-card__chevron { transform: rotate(90deg); }
.finance-receivable-detail { padding: 0 12px 12px; background: var(--surface-subtle); }
.finance-receivable-row { display: grid; grid-template-columns: minmax(220px, 1.5fr) repeat(3, minmax(120px, 0.6fr)); gap: 14px; padding: 12px 0; border-top: 1px solid var(--line); }
.finance-receivable-row > span { min-width: 0; }
.finance-receivable-row strong, .finance-receivable-row small { display: block; overflow-wrap: anywhere; }
.finance-receivable-row strong { font-size: var(--type-meta); }
.finance-receivable-row small { margin-top: 2px; color: var(--text-soft); font-size: var(--type-meta); }
@media (max-width: 1020px) {
  .finance-task-layout { grid-template-columns: 1fr; }
  .finance-task-side { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .app-bar .brand, .app-bar .app-actions .button { min-height: 44px; }
  .reimbursement-view[data-workspace-role-view="finance"] .reimbursement-identity { padding-bottom: 13px; }
  .reimbursement-view[data-workspace-role-view="finance"] .workspace-role-switch button { min-height: 44px; }
  .finance-task-home { gap: 14px; }
  .finance-task-home.is-all-clear .finance-all-clear { display: flex; align-items: flex-start; flex-direction: column; gap: 3px; }
  .finance-task-home.is-all-clear .finance-task-layout { display: none; }
  .finance-today-overview { grid-template-columns: 1fr; }
  .finance-today-overview > div { display: flex; min-height: 48px; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px; border-top: 1px solid var(--line); border-left: 0; }
  .finance-today-overview > div:first-child { border-top: 0; }
  .finance-today-overview strong { margin-top: 0; text-align: right; font-size: 15px; }
  .finance-task-layout, .finance-task-side { grid-template-columns: 1fr; }
  .finance-task-primary, .finance-side-section, .finance-account-entries { padding: 17px 15px; }
  .finance-task-row, .finance-side-task { grid-template-columns: 1fr; gap: 10px; }
  .finance-task-row > .button, .finance-side-task > .button { width: 100%; min-height: 44px; }
  .finance-review-person__summary, .finance-review-batch__heading { grid-template-columns: 1fr; gap: 10px; }
  .finance-review-person__summary > .button, .finance-review-batch__heading > .button { width: 100%; min-height: 44px; }
  .finance-review-person__details { padding: 10px; }
  .finance-review-batch { padding: 11px; }
  .finance-side-task--expandable, .finance-side-task--supplier-pending { grid-template-columns: 1fr; }
  .finance-task-row__facts { display: grid; gap: 3px; }
  .finance-account-card { min-height: 64px; padding: 12px 0; }
  .finance-account-card__content { gap: 9px; }
  .finance-account-card__statuses { max-width: 112px; }
  .finance-account-card__statuses .status-badge { font-size: var(--type-meta); }
  .finance-receivable-detail { padding-inline: 8px; }
  .finance-receivable-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 12px; }
  .finance-receivable-row > span:first-child { grid-column: 1 / -1; }
  #toggleReimbursementReview { min-height: 44px; }
}
.role-business-work-panel { margin-bottom: 20px; padding: 20px 24px; }
.supplier-ledger-panel { margin-bottom: 20px; padding: 20px 24px; }
.supplier-inline-create { display: flex; align-items: end; gap: 10px; margin-bottom: 17px; padding: 14px; border-radius: var(--radius-small); background: var(--surface-subtle); }
.supplier-inline-create .form-field { flex: 1; }
.supplier-ledger-row { padding: 16px 0; border-top: 1px solid var(--line); }
.supplier-ledger-row__heading, .supplier-record-row__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.supplier-ledger-row__heading > div, .supplier-record-row__heading > div { min-width: 0; }
.supplier-ledger-row__heading h3 { margin: 0; overflow-wrap: anywhere; font-size: 15px; }
.supplier-ledger-row__heading p { margin: 3px 0 0; color: var(--text-soft); font-size: 11px; }
.supplier-row-facts, .supplier-record-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 13px 0 0; }
.supplier-row-facts > div, .supplier-record-facts > div { min-width: 0; padding: 9px 10px; border-radius: 7px; background: var(--surface-subtle); }
.supplier-row-facts dt, .supplier-record-facts dt { color: var(--text-faint); font-size: 10px; }
.supplier-row-facts dd, .supplier-record-facts dd { margin: 3px 0 0; overflow-wrap: anywhere; font-size: 12px; font-weight: 750; }
.supplier-ledger-view > .panel { margin-bottom: 20px; padding: 22px 24px; }
.supplier-ledger-identity { align-items: flex-start; }
.supplier-ledger-header-actions { display: flex; align-items: center; gap: 10px; }
.supplier-fact-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.supplier-fact-grid > div { min-width: 0; padding: 13px 12px; border-radius: var(--radius-small); background: var(--surface-subtle); }
.supplier-fact-grid > div > span, .supplier-fact-grid > div > strong, .supplier-fact-grid > div > small { display: block; overflow-wrap: anywhere; }
.supplier-fact-grid > div > span { color: var(--text-soft); font-size: 11px; }
.supplier-fact-grid > div > strong { margin-top: 4px; font-size: 17px; }
.supplier-fact-grid > div > small { margin-top: 4px; color: var(--text-faint); font-size: 10px; line-height: 1.45; }
.supplier-ledger-note { margin: 12px 0 0; color: var(--text-soft); font-size: 11px; line-height: 1.65; }
.supplier-ledger-form { margin-top: 17px; padding: 17px; border: 1px solid var(--line); border-radius: var(--radius-small); }
.supplier-ledger-form h3 { margin: 0 0 13px; font-size: 15px; }
.supplier-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.supplier-form-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.supplier-record-list { margin-top: 8px; }
.supplier-record-row { padding: 14px 0; border-top: 1px solid var(--line); }
.supplier-record-row__heading > div > strong, .supplier-record-row__heading > div > span { display: block; overflow-wrap: anywhere; }
.supplier-record-row__heading > div > strong { font-size: 14px; }
.supplier-record-row__heading > div > span, .supplier-record-row > p { margin: 4px 0 0; color: var(--text-soft); font-size: 11px; }
.supplier-record-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.supplier-period-control { display: flex; align-items: center; gap: 10px; margin-top: 11px; color: var(--text-soft); font-size: 11px; }
.supplier-period-control select { min-height: 37px; max-width: 100%; padding-inline: 9px; border: 1px solid var(--line-strong); border-radius: 7px; background: var(--surface); }
.supplier-attachment { display: block; margin-top: 8px; overflow-wrap: anywhere; color: var(--text-soft); font-size: 11px; }
.supplier-record-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-top: 9px; }
.supplier-record-actions > span { color: var(--text-soft); font-size: 11px; }
.supplier-allocation-result { display: grid; gap: 4px; margin-top: 11px; padding: 11px 12px; border-radius: var(--radius-small); background: var(--accent-soft); }
.supplier-allocation-result > strong { font-size: 12px; }
.supplier-allocation-result > span, .supplier-allocation-result > small { color: var(--text-soft); font-size: 11px; }
.supplier-allocation-form, .supplier-verification-form { display: grid; gap: 10px; margin-top: 12px; padding: 13px; border: 1px solid var(--line); border-radius: var(--radius-small); }
.supplier-allocation-form > strong { font-size: 13px; }
.supplier-allocation-form > p { margin: -5px 0 0; color: var(--text-soft); font-size: 11px; }
.supplier-allocation-form > label { display: grid; grid-template-columns: minmax(0, 1fr) 140px; align-items: center; gap: 10px; }
.supplier-allocation-form > label > span, .supplier-allocation-form > label small { display: block; overflow-wrap: anywhere; font-size: 11px; }
.supplier-allocation-form > label small { margin-top: 2px; color: var(--text-soft); }
.supplier-allocation-form > label input, .supplier-verification-form > label input { width: 100%; max-width: 100%; }
.supplier-verification-form > label > span { display: block; margin-bottom: 5px; color: var(--text-soft); font-size: 11px; }
#supplierLedgerView[data-view-mode="readonly"] .supplier-finance-action { display: none !important; }
.role-business-work-group + .role-business-work-group { margin-top: 20px; }
.role-business-work-group__heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.role-business-work-group__heading h3 { margin: 0; font-size: 15px; }
.role-business-work-group__heading span { color: var(--text-soft); font-size: var(--type-meta); }
.role-business-work-list { border-top: 1px solid var(--line); }
.role-business-work-card { padding: 15px 0; border-bottom: 1px solid var(--line); }
.role-business-work-card__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.role-business-work-card__heading > div { min-width: 0; }
.role-business-work-card__heading h3 { margin: 5px 0 0; overflow-wrap: anywhere; font-size: 15px; }
.role-business-work-card__heading p { margin: 3px 0 0; color: var(--text-soft); font-size: var(--type-meta); }
.role-business-work-card__facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 11px 0 0; }
.role-business-work-card__facts > div { min-width: 0; padding: 9px 10px; border-radius: 7px; background: var(--surface-subtle); }
.role-business-work-card__facts dt, .role-business-work-card__facts dd { margin: 0; }
.role-business-work-card__facts dt { color: var(--text-faint); font-size: var(--type-meta); }
.role-business-work-card__facts dd { margin-top: 3px; overflow-wrap: anywhere; font-size: 12px; font-weight: 700; }
.role-business-work-card__context { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 10px; color: var(--text-soft); font-size: var(--type-meta); }
.role-business-work-card__note { margin: 9px 0 0; padding: 8px 10px; border-radius: var(--radius-xs); background: var(--warning-soft); color: #6f582e; font-size: var(--type-meta); line-height: 1.5; }
.role-business-work-card__actions { display: flex; justify-content: flex-end; margin-top: 10px; }
.role-business-work-empty { margin: 0; padding: 12px 0; color: var(--text-soft); font-size: 12px; }
.site-labor-panel { margin-bottom: 20px; padding: 20px 24px; }
.site-labor-standard-note { display: flex; align-items: flex-start; gap: 12px; margin: -7px 0 14px; padding: 10px 12px; border-radius: var(--radius-small); background: var(--info-soft); color: var(--info); font-size: var(--type-meta); }
.site-labor-standard-note strong { flex: 0 0 auto; }
.site-labor-today-list, .site-labor-projects { border-top: 1px solid var(--line); }
.site-labor-today-list > article, .site-labor-project-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.site-labor-today-list article > div, .site-labor-project-row > div { min-width: 0; }
.site-labor-today-list strong, .site-labor-today-list span, .site-labor-project-row strong, .site-labor-project-row span { display: block; }
.site-labor-today-list span, .site-labor-project-row div > span { margin-top: 2px; color: var(--text-soft); font-size: var(--type-meta); }
.site-labor-today-list article > div:last-child { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.site-labor-today-list b { color: var(--text-soft); font-size: 13px; }
.site-labor-form, .site-labor-confirm-panel { margin-top: 16px; padding: 17px; border: 1px solid var(--line-strong); border-radius: var(--radius-small); background: var(--surface-subtle); }
.site-labor-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 16px; }
.site-labor-reuse { display: flex; align-items: flex-end; flex-direction: column; justify-content: end; gap: 4px; }
.site-labor-reuse small { color: var(--text-faint); font-size: var(--type-meta); text-align: right; }
.site-labor-people { min-width: 0; margin: 0; padding: 0; border: 0; }
.site-labor-people legend { margin-bottom: 7px; color: var(--text-soft); font-size: 12px; font-weight: 700; }
.site-labor-people > div { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.site-labor-people label { display: flex; align-items: center; gap: 9px; min-height: 48px; padding: 9px 12px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); cursor: pointer; }
.site-labor-people input[type="checkbox"] { width: 20px; height: 20px; min-height: 20px; margin: 0; padding: 0; accent-color: var(--primary); }
.site-labor-people span { font-weight: 700; }
.site-labor-conflicts { display: grid; gap: 8px; padding: 11px; border-radius: var(--radius-small); background: var(--warning-soft); }
.site-labor-conflicts > label { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, 0.8fr); align-items: center; gap: 12px; }
.site-labor-conflicts strong, .site-labor-conflicts small { display: block; }
.site-labor-conflicts small { margin-top: 2px; color: #6f582e; font-size: var(--type-meta); }
.site-labor-subheading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-top: 22px; padding-top: 18px; }
.site-labor-subheading h3 { margin: 0; font-size: 16px; }
.site-labor-subheading p { margin: 3px 0 0; color: var(--text-soft); font-size: var(--type-meta); }
.site-labor-project-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; }
.site-labor-project-row__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.site-labor-review-timing-note { margin: 12px 0; padding: 10px 12px; border-radius: var(--radius-small); background: var(--surface); color: var(--text-soft); font-size: var(--type-meta); line-height: 1.55; }
.site-labor-review-timing-note.is-ready { background: var(--warning-soft); color: #6f582e; font-weight: 700; }
.site-labor-confirm-facts, .internal-labor-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--surface); }
.site-labor-confirm-facts > div, .internal-labor-summary > div { min-width: 0; padding: 11px 13px; border-left: 1px solid var(--line); }
.site-labor-confirm-facts > div:first-child, .internal-labor-summary > div:first-child { border-left: 0; }
.site-labor-confirm-facts span, .internal-labor-summary span { display: block; color: var(--text-faint); font-size: var(--type-meta); }
.site-labor-confirm-facts strong, .internal-labor-summary strong { display: block; margin-top: 3px; overflow-wrap: anywhere; font-size: 13px; }
.internal-labor-summary > .internal-labor-work-summary { grid-column: 1 / -1; border-top: 1px solid var(--line); border-left: 0; }
.site-labor-confirm-panel .site-labor-standard-note { margin: 12px 0; }
.site-labor-record-list { border-top: 1px solid var(--line); }
.site-labor-record-row { display: grid; grid-template-columns: 145px minmax(0, 1fr) auto; align-items: start; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.site-labor-record-row time { font-size: 12px; font-weight: 700; }
.site-labor-backfill { display: inline-flex; margin-left: 6px; padding: 1px 5px; border-radius: 5px; background: var(--warning-soft); color: var(--warning); font-size: 9px; font-weight: 800; }
.site-labor-record-row > div:nth-child(2) { min-width: 0; }
.site-labor-record-row strong, .site-labor-record-row span, .site-labor-record-row small { display: block; overflow-wrap: anywhere; }
.site-labor-record-row span { margin-top: 2px; color: var(--text-soft); font-size: var(--type-meta); }
.site-labor-record-row .site-labor-participation { color: var(--warning); }
.site-labor-record-row small { margin-top: 3px; color: var(--text-faint); font-size: var(--type-meta); }
.reimbursement-section-actions { display: flex; align-items: center; gap: 8px; }
.reimbursement-upload.is-collapsed, .reimbursement-detail-panel.is-collapsed, .reimbursement-review-panel.is-collapsed { padding-block: 15px; }
.reimbursement-upload.is-collapsed .panel-heading, .reimbursement-detail-panel.is-collapsed .panel-heading, .reimbursement-review-panel.is-collapsed .panel-heading { align-items: center; margin-bottom: 0; }
.reimbursement-upload.is-collapsed .panel-heading p, .reimbursement-detail-panel.is-collapsed .panel-heading p, .reimbursement-review-panel.is-collapsed .panel-heading p { margin-top: 2px; }
.reimbursement-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin: 0 0 20px; padding: 0; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow); list-style: none; }
.reimbursement-steps li { display: grid; grid-template-columns: 30px minmax(0, 1fr); column-gap: 9px; align-items: center; min-height: 72px; padding: 12px 16px; border-left: 1px solid var(--line); color: var(--text-soft); }
.reimbursement-steps li:first-child { border-left: 0; }
.reimbursement-steps li > span { display: grid; grid-row: 1 / span 2; width: 28px; height: 28px; place-items: center; border-radius: 50%; background: var(--info-soft); color: var(--text-soft); font-size: 12px; font-weight: 800; }
.reimbursement-steps strong, .reimbursement-steps small { min-width: 0; }
.reimbursement-steps strong { align-self: end; font-size: 13px; }
.reimbursement-steps small { align-self: start; color: var(--text-faint); font-size: 11px; }
.reimbursement-steps li.is-current { background: var(--primary-soft); color: var(--primary); }
.reimbursement-steps li.is-current > span { background: var(--primary); color: #fff; }
.reimbursement-upload, .whole-bill-panel, .reimbursement-merge-panel, .reimbursement-detail-panel, .reimbursement-batch-board-panel, .reimbursement-review-panel, .reimbursement-pending-panel, .reimbursement-payment-panel { margin-top: 20px; padding: 20px 24px; }
.reimbursement-upload { margin-top: 0; }
.reimbursement-upload-form { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; }
.reimbursement-file-field { flex: 1; min-width: 0; }
.reimbursement-upload-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; padding-bottom: 1px; }
.reimbursement-empty { padding: 30px 16px; border: 1px dashed var(--line-strong); border-radius: var(--radius-small); background: var(--surface-subtle); text-align: center; }
.reimbursement-empty strong { font-size: 15px; }
.reimbursement-empty p { margin: 4px 0 0; color: var(--text-soft); font-size: 13px; }
.reimbursement-expense-list, .reimbursement-review-list, .reimbursement-pending-list, .reimbursement-merge-list, .whole-bill-list { border-top: 1px solid var(--line); }
.reimbursement-empty-note { margin: 0; padding: 20px 0 4px; color: var(--text-soft); font-size: 12px; }
.reimbursement-expense-row, .reimbursement-review-row, .reimbursement-pending-row, .reimbursement-merge-row, .whole-bill-row { padding: 17px 0; border-bottom: 1px solid var(--line); }
.reimbursement-expense-row:last-child, .reimbursement-review-row:last-child, .reimbursement-pending-row:last-child, .reimbursement-merge-row:last-child, .whole-bill-row:last-child { border-bottom: 0; }
.reimbursement-expense-row__heading, .reimbursement-review-row__heading, .reimbursement-merge-row__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.reimbursement-expense-row__identity { min-width: 0; }
.reimbursement-expense-row__identity > div { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.reimbursement-expense-row__identity h3, .reimbursement-review-row h3, .reimbursement-pending-row h3, .reimbursement-merge-row h3 { margin: 0; font-size: 16px; line-height: 1.4; }
.reimbursement-expense-row__identity p, .reimbursement-review-row p, .reimbursement-pending-row p, .reimbursement-merge-row p { margin: 4px 0 0; color: var(--text-soft); font-size: 12px; }
.reimbursement-expense-amount { flex: 0 0 auto; color: var(--text-soft); font-size: 20px; font-weight: 800; line-height: 1.3; }
.reimbursement-vouchers { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.reimbursement-voucher { display: inline-flex; align-items: center; max-width: 100%; padding: 3px 7px; border-radius: 6px; background: var(--info-soft); color: #315b76; font-size: 11px; }
.reimbursement-voucher span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.reimbursement-warning { display: flex; align-items: flex-start; gap: 8px; margin-top: 10px; padding: 9px 11px; border-radius: var(--radius-small); background: var(--warning-soft); color: #6f582e; font-size: 12px; }
.reimbursement-warning--danger { background: var(--danger-soft); color: var(--danger); }
.reimbursement-recognition { margin-top: 12px; border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--surface-subtle); }
.reimbursement-recognition summary { padding: 9px 11px; color: var(--text-soft); font-size: 12px; font-weight: 700; cursor: pointer; }
.reimbursement-recognition-grid, .reimbursement-assignment-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; padding: 0 11px 11px; }
.reimbursement-recognition-actions { display: flex; grid-column: 1 / -1; align-items: center; justify-content: space-between; gap: 12px; padding-top: 2px; }
.reimbursement-recognition-actions span { color: var(--text-soft); font-size: 11px; line-height: 1.5; }
.reimbursement-assignment-grid { grid-template-columns: minmax(0, 1.4fr) minmax(190px, 0.8fr); margin-top: 12px; padding: 0; }
.reimbursement-purpose-field { min-width: 0; }
.reimbursement-assignment-fields { grid-column: 1 / -1; }
.reimbursement-project-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 8px; }
.reimbursement-project-options label { display: grid; grid-template-columns: 16px minmax(0, 1fr) minmax(92px, 0.45fr); align-items: center; gap: 7px; min-width: 0; padding: 7px 8px; border-radius: 7px; background: var(--surface-subtle); color: var(--text-soft); font-size: 12px; }
.reimbursement-project-options input[type="checkbox"] { width: 16px; min-height: 16px; margin: 0; }
.reimbursement-project-options input[type="number"] { min-height: 32px; padding: 5px 7px; }
.reimbursement-project-options span { min-width: 0; overflow-wrap: anywhere; }
.reimbursement-recommendations { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 6px; color: var(--text-faint); font-size: 11px; }
.reimbursement-recommendations button { border: 0; border-radius: 6px; background: var(--primary-soft); color: var(--primary-hover); font: inherit; font-weight: 700; cursor: pointer; }
.reimbursement-batch-summary { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 18px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-small); }
.reimbursement-batch-summary > div { padding: 11px 13px; border-left: 1px solid var(--line); background: var(--surface-subtle); }
.reimbursement-batch-summary > div:first-child { border-left: 0; }
.reimbursement-batch-summary span, .reimbursement-review-total span { display: block; color: var(--text-soft); font-size: 11px; }
.reimbursement-batch-summary strong, .reimbursement-review-total strong { display: block; margin-top: 2px; font-size: 16px; }
.reimbursement-submit-actions { margin-top: 14px; }
.reimbursement-merge-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 16px; }
.reimbursement-merge-row > div { min-width: 0; }
.reimbursement-merge-files { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.reimbursement-merge-actions { display: flex; align-items: center; gap: 6px; padding-bottom: 2px; }
.voucher-preview-list { display: flex; gap: 10px; margin-top: 12px; overflow-x: auto; padding: 2px 2px 8px; }
.voucher-preview-list--compact { margin-top: 10px; }
.voucher-preview-card { display: grid; flex: 0 0 150px; grid-template-rows: 92px auto auto; gap: 5px; min-width: 0; padding: 7px; overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); color: var(--text); text-align: left; cursor: pointer; }
.voucher-preview-list--compact .voucher-preview-card { flex-basis: 128px; grid-template-rows: 72px auto auto; }
.voucher-preview-card:hover { border-color: var(--primary); background: var(--primary-soft); }
.voucher-preview-card img, .voucher-preview-card__placeholder { width: 100%; height: 100%; border-radius: 6px; object-fit: cover; }
.voucher-preview-card__placeholder { display: grid; place-content: center; gap: 3px; background: var(--info-soft); color: #315b76; text-align: center; }
.voucher-preview-card__placeholder strong { font-size: 20px; letter-spacing: 0.04em; }
.voucher-preview-card__placeholder small { font-size: 10px; }
.voucher-preview-card > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; font-weight: 700; }
.voucher-preview-card > small { color: var(--text-soft); font-size: 10px; }
.whole-bill-preview { margin-bottom: 12px; }
.whole-bill-image { display: grid; width: min(100%, 480px); grid-template-columns: minmax(0, 1fr) 110px; align-items: center; gap: 16px; padding: 12px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface-subtle); color: var(--text); text-align: left; cursor: pointer; }
.whole-bill-image span strong, .whole-bill-image span small { display: block; }
.whole-bill-image span small { margin-top: 3px; color: var(--text-soft); font-size: 11px; }
.whole-bill-image > div { display: grid; gap: 5px; padding: 8px; border-radius: 6px; background: #fff; }
.whole-bill-image i { height: 5px; border-radius: 3px; background: var(--line-strong); }
.whole-bill-image i:nth-child(2) { width: 72%; }
.whole-bill-image i:nth-child(3) { width: 86%; }
.voucher-preview-dialog { width: min(760px, calc(100% - 28px)); max-height: min(86vh, 760px); padding: 0; overflow: hidden; border: 0; border-radius: 14px; background: var(--surface); box-shadow: 0 24px 70px rgba(20, 34, 31, 0.28); }
.voucher-preview-dialog::backdrop { background: rgba(25, 34, 32, 0.62); }
.voucher-preview-dialog__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 16px 18px; border-bottom: 1px solid var(--line); }
.voucher-preview-dialog__heading span { color: var(--text-faint); font-size: 10px; }
.voucher-preview-dialog__heading h2 { margin: 2px 0 0; overflow-wrap: anywhere; font-size: 17px; }
.voucher-preview-dialog__content { display: grid; min-height: 260px; max-height: calc(86vh - 74px); place-items: center; gap: 12px; overflow: auto; padding: 20px; background: var(--surface-subtle); }
.voucher-preview-dialog__content > img { max-width: 100%; max-height: 620px; object-fit: contain; }
.voucher-preview-dialog__content > iframe { width: 100%; min-height: 540px; border: 0; background: #fff; }
.voucher-demo-document, .whole-bill-dialog-preview { width: min(100%, 470px); padding: 28px; border: 1px solid var(--line); border-radius: 10px; background: #fff; text-align: center; }
.voucher-demo-document > strong { display: inline-grid; width: 72px; height: 72px; place-items: center; border-radius: 9px; background: var(--info-soft); color: #315b76; font-size: 22px; }
.voucher-demo-document h3 { margin: 14px 0 4px; }
.voucher-demo-document p { margin: 0; overflow-wrap: anywhere; font-weight: 700; }
.voucher-demo-document small { display: block; margin-top: 14px; color: var(--text-soft); line-height: 1.6; }
.whole-bill-dialog-preview { text-align: left; }
.whole-bill-dialog-preview > strong { display: block; margin-bottom: 12px; }
.whole-bill-dialog-preview > div { display: flex; justify-content: space-between; gap: 14px; padding: 9px 0; border-top: 1px solid var(--line); font-size: 12px; }
.whole-bill-dialog-preview > small { display: block; margin-top: 14px; color: var(--text-soft); }
.whole-bill-row { display: grid; grid-template-columns: 22px 90px minmax(0, 1fr) auto; align-items: center; gap: 12px; }
.whole-bill-row input { width: 16px; min-height: 16px; margin: 0; }
.whole-bill-row time, .whole-bill-row small { color: var(--text-soft); font-size: 12px; }
.whole-bill-row strong:last-child { font-size: 14px; }
.reimbursement-review-row__facts { display: grid; grid-template-columns: 1fr 0.8fr 1fr; gap: 12px; margin-top: 10px; }
.reimbursement-review-row__facts > div { min-width: 0; padding: 9px 11px; border-radius: 7px; background: var(--surface-subtle); }
.reimbursement-review-row__facts span { display: block; color: var(--text-faint); font-size: 10px; }
.reimbursement-review-row__facts strong { display: block; margin-top: 2px; overflow-wrap: anywhere; font-size: 12px; }
.reimbursement-review-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: end; gap: 8px; margin-top: 11px; }
.reimbursement-review-result { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.reimbursement-review-result .reimbursement-warning { flex: 1; }
.reimbursement-review-total { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 15px; padding: 13px 15px; border-radius: var(--radius-small); background: var(--surface-subtle); }
.reimbursement-review-total strong { color: var(--text-soft); font-size: 20px; }
.reimbursement-batch-group + .reimbursement-batch-group { margin-top: 18px; }
.reimbursement-batch-group__heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.reimbursement-batch-group__heading h3 { margin: 0; font-size: 15px; }
.reimbursement-batch-group__heading span { color: var(--text-soft); font-size: 11px; }
.reimbursement-batch-card { padding: 14px 0; border-top: 1px solid var(--line); }
.reimbursement-batch-card__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.reimbursement-batch-card__identity { min-width: 0; }
.reimbursement-batch-card__identity strong, .reimbursement-batch-card__identity span { display: block; }
.reimbursement-batch-card__identity strong { font-size: 14px; }
.reimbursement-batch-card__identity span { margin-top: 3px; color: var(--text-soft); font-size: 11px; }
.reimbursement-batch-card__facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.reimbursement-batch-card__facts > div { min-width: 0; padding: 9px 10px; border-radius: 7px; background: var(--surface-subtle); }
.reimbursement-batch-card__facts span, .reimbursement-batch-card__facts strong { display: block; }
.reimbursement-batch-card__facts span { color: var(--text-faint); font-size: 10px; }
.reimbursement-batch-card__facts strong { margin-top: 2px; overflow-wrap: anywhere; font-size: 12px; }
.reimbursement-batch-card__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 6px; margin-top: 10px; }
.reimbursement-batch-card details { margin-top: 10px; }
.reimbursement-batch-card details summary { color: var(--primary-hover); font-size: 11px; font-weight: 700; cursor: pointer; }
.reimbursement-batch-detail-list { margin-top: 7px; border-top: 1px dashed var(--line-strong); }
.reimbursement-batch-detail-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px dashed var(--line); font-size: 11px; }
.reimbursement-batch-detail-row span { min-width: 0; overflow-wrap: anywhere; }
.reimbursement-batch-detail-row__content { min-width: 0; }
.reimbursement-batch-detail-row__content > strong, .reimbursement-batch-detail-row__content > span, .reimbursement-batch-detail-row__content > small { display: block; }
.reimbursement-batch-detail-row__content > span, .reimbursement-batch-detail-row__content > small { margin-top: 3px; color: var(--text-soft); line-height: 1.5; }
.reimbursement-batch-detail-row__content .voucher-preview-list { margin-top: 7px; }
.reimbursement-batch-empty { margin: 0; padding: 12px; border-radius: 8px; background: var(--surface-subtle); color: var(--text-soft); font-size: 12px; }
.reimbursement-pending-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(210px, 0.55fr) auto; align-items: end; gap: 12px; }
.reimbursement-pending-row__meta { min-width: 0; }
.reimbursement-payment-form { display: grid; grid-template-columns: 1fr 1fr 1.3fr auto; align-items: end; gap: 12px; }
.reimbursement-payment-context { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 12px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-small); }
.reimbursement-payment-context > div { padding: 10px 12px; border-left: 1px solid var(--line); background: var(--surface-subtle); }
.reimbursement-payment-context > div:first-child { border-left: 0; }
.reimbursement-payment-context span, .reimbursement-payment-context strong { display: block; }
.reimbursement-payment-context span { color: var(--text-faint); font-size: 10px; }
.reimbursement-payment-context strong { margin-top: 2px; font-size: 13px; }
.reimbursement-payment-result { padding: 13px 15px; border-radius: var(--radius-small); background: var(--accent-soft); color: var(--accent-hover); }
.reimbursement-payment-result strong, .reimbursement-payment-result span { display: block; }
.reimbursement-payment-result span { margin-top: 3px; font-size: 12px; }
.task-kind--expense { background: #edf4ef; color: #41675d; }
.cost-source-row--expense { background: #fbfdfc; }
.cost-collection-pending-expenses { margin: 0 0 12px; padding: 10px 12px; border-radius: var(--radius-small); background: var(--warning-soft); color: #6f582e; font-size: 12px; line-height: 1.55; }
.cost-source-row--expense .task-kind { background: #eef0fb; color: #4f5684; }
.cost-source-row--expense .cost-source-row__facts { grid-template-columns: 1fr 1fr; }
.cost-source-row--expense .cost-source-row__action { min-width: 120px; }
.cost-collection-pending-expense { margin-bottom: 12px; padding: 11px 13px; border-radius: var(--radius-small); background: var(--warning-soft); color: #6f582e; font-size: 12px; }
.project-identity { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 0 2px 14px; }
.project-identity__actions { display: flex; align-items: center; gap: 10px; }
.project-identity__actions .project-back-button { min-height: 44px; color: var(--primary-hover); }
.project-back-button svg { width: 17px; height: 17px; margin-right: 7px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
#projectView[data-view-mode="readonly"] :is(#editBlocker, #editProjectFinance, #addExecutionItem, #addFinanceItem, #addSupplierCost, #addProjectMaterial, #editStartupGap, #convertGapToTask, #addStartupTask, #addAcceptanceRectification, #recordProjectAcceptance, #editProjectWarranty, #confirmProjectCompletion, #addAfterSales, .after-sales-action, .register-receipt-button, .manage-invoice-button, .void-invoice-button, .order-review-site-labor, .go-site-labor-review, .view-reimbursement-expense, #addLateCostDemo) { display: none !important; }
#projectView[data-view-mode="readonly"] #taskProgressForm > :is(.progress-entry-heading, .linked-todo-control, .task-progress-fields, .task-progress-actions) { display: none !important; }
#projectView[data-view-mode="readonly"] :is(#financeProgressEntry, #supplierCostActionEntry, #costCollectionOwnerForm, #costCollectionFinanceForm, .cost-collection-late-action) { display: none !important; }
#projectView[data-current-role="finance"] :is(#editBlocker, #editProjectFinance, #addExecutionItem, #addFinanceItem, #addSupplierCost, #addProjectMaterial, #editStartupGap, #convertGapToTask, #addStartupTask, #addAcceptanceRectification, #recordProjectAcceptance, #editProjectWarranty, #confirmProjectCompletion, #addAfterSales, .after-sales-action, .order-review-site-labor, .go-site-labor-review, #addLateCostDemo, #costCollectionOwnerForm) { display: none !important; }
#projectView[data-current-role="site"] :is(#editBlocker, #editProjectFinance, #addExecutionItem, #addFinanceItem, #addSupplierCost, #addProjectMaterial, #editStartupGap, #convertGapToTask, #addStartupTask, #addAcceptanceRectification, #recordProjectAcceptance, #editProjectWarranty, #confirmProjectCompletion, #addAfterSales, .register-receipt-button, .manage-invoice-button, .void-invoice-button, .order-review-site-labor, #addLateCostDemo, #financeProgressEntry, #supplierCostActionEntry, #costCollectionOwnerForm, #costCollectionFinanceForm, .cost-collection-late-action) { display: none !important; }
#projectView[data-current-role="order"] #costCollectionFinanceForm { display: none !important; }
#projectView:is([data-current-role="finance"], [data-current-role="site"]) #taskProgressForm > :is(.progress-entry-heading, .linked-todo-control, .task-progress-fields, .task-progress-actions) { display: none !important; }
.context-label { margin: 0; color: var(--text-soft); font-size: 13px; font-weight: 700; }
.project-identity h1 { margin: 3px 0 6px; font-size: clamp(26px, 2.8vw, 34px); line-height: 1.28; letter-spacing: -0.02em; }
.project-subtitle { margin: 0; color: var(--text-soft); font-size: 14px; }
.project-subtitle span { margin: 0 7px; color: var(--line-strong); }
#projectView > [hidden] { display: none; }
#projectView[data-formal-project-detail="true"] > :not(.project-identity):not(.project-shell-tools):not(.formal-project-actual-expenses) { display: none !important; }
.formal-shell__main > #projectView[data-formal-project-detail="true"] { width: min(1120px, calc(100% - 64px)); margin: 0 auto; padding: 48px 0 72px; }
.formal-project-actual-expenses { padding: 22px; }
.formal-project-actual-expenses .formal-cost-list { margin-top: 14px; }

.panel { border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: none; }
.overview-grid { display: grid; grid-template-columns: minmax(0, 1.68fr) minmax(350px, 0.9fr); gap: 20px; align-items: stretch; }
.progress-panel, .finance-panel, .operating-result-section, .finance-items-section, .supplier-cost-section, .internal-labor-section, .cost-collection-section, .task-section, .startup-section, .supporting-section, .project-completion-section, .after-sales-section { padding: 20px 24px; }
.panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 20px; }
.panel-heading--compact { margin-bottom: 12px; }
.panel-heading h2 { margin: 0; font-size: var(--type-title); line-height: 1.4; }
.panel-heading p { margin: 4px 0 0; color: var(--text-soft); font-size: 13px; }

.progress-facts { display: grid; grid-template-columns: 1fr 0.8fr 1.2fr 1.2fr; gap: 0; margin: 0; padding: 15px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.progress-facts > div { min-width: 0; padding: 0 15px; border-left: 1px solid var(--line); }
.progress-facts > div:first-child { padding-left: 0; border-left: 0; }
.progress-facts dt, .money-grid dt { color: var(--text-soft); font-size: 12px; }
.progress-facts dd { margin: 4px 0 0; font-size: 14px; font-weight: 700; }
.progress-facts dd > strong { font-size: 21px; }
.stage-fact dd { font-weight: 400; }
.stage-display { display: block; font-size: 14px; }
.stage-fact small { display: block; margin-top: 4px; color: var(--text-faint); font-size: 10px; line-height: 1.35; }

select, input, textarea {
  width: 100%;
  min-height: 39px;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-small);
  background: var(--surface);
  color: var(--text);
}
select { padding: 7px 30px 7px 10px; cursor: pointer; }
input { padding: 8px 11px; }
textarea { min-height: 88px; padding: 9px 11px; resize: vertical; }
input:disabled, select:disabled, textarea:disabled { background: #eef2f3; color: var(--text-faint); cursor: not-allowed; }
.situation-summary { margin-bottom: 14px; padding: 15px 17px; border-radius: var(--radius-small); background: var(--surface-subtle); }
.situation-summary span { display: block; color: var(--text-soft); font-size: 12px; font-weight: 700; }
.situation-summary strong { display: block; margin-top: 2px; font-size: 20px; line-height: 1.35; }
.situation-summary p { max-width: 72ch; margin: 5px 0 0; color: #41675d; font-size: 13px; }

.blocker-box { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(210px, 0.75fr); overflow: hidden; border: 1px solid var(--warning-line); border-radius: var(--radius-small); background: var(--warning-soft); }
.blocker-box__main { padding: 16px 18px; }
.blocker-label, .next-step span { display: block; color: var(--warning); font-size: 12px; font-weight: 700; }
.blocker-box__main > strong { display: block; margin-top: 2px; font-size: 19px; }
.blocker-box__main p { margin: 4px 0 0; color: #6f582e; font-size: 13px; }
.next-step { display: flex; justify-content: center; flex-direction: column; padding: 15px 18px; border-left: 1px solid var(--warning-line); background: rgba(255, 255, 255, 0.35); }
.next-step strong { margin-top: 3px; font-size: 13px; }
.blocker-box.is-clear { border-color: #b6d4cb; background: var(--accent-soft); }
.blocker-box.is-clear .blocker-label, .blocker-box.is-clear .next-step span { color: var(--accent-hover); }
.blocker-box.is-clear .blocker-box__main p { color: #41675d; }
.blocker-box.is-clear .next-step { border-left-color: #b6d4cb; }

.blocker-form { display: grid; grid-template-columns: minmax(150px, 0.65fr) minmax(0, 1.35fr); gap: 12px 16px; align-items: end; margin-top: 14px; padding: 15px; border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--surface-subtle); }
.blocker-form[hidden] { display: none; }
.blocker-form .form-actions { grid-column: 1 / -1; justify-content: flex-end; padding-bottom: 0; }
.form-field label { display: block; margin-bottom: 5px; color: var(--text-soft); font-size: 12px; font-weight: 700; }
.form-field small { display: block; margin-top: 4px; color: var(--text-faint); font-size: 11px; }
.form-actions { display: flex; gap: 8px; padding-bottom: 19px; }

.money-primary { padding: 10px 0 13px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.money-primary span { display: block; color: var(--text-soft); font-size: 12px; }
.money-primary strong { display: block; margin-top: 1px; font-size: 27px; line-height: 1.3; letter-spacing: -0.02em; }
.money-primary--comparison { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; padding: 0; }
.money-primary--comparison > div { min-width: 0; padding: 12px 14px; border-left: 1px solid var(--line); }
.money-primary--comparison > div:nth-child(odd) { padding-left: 0; border-left: 0; }
.money-primary--comparison > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
.money-primary--comparison > div[hidden] { display: none; }
.money-primary--comparison > div:nth-last-child(-n+2) strong { color: var(--text-soft); font-size: 20px; }
.money-primary--comparison small { display: block; margin-top: 2px; color: var(--text-soft); font-size: 10px; font-weight: 700; }
.money-grid { display: grid; grid-template-columns: 1fr 1fr; margin: 0; }
.money-grid > div { min-height: 65px; padding: 8px 10px; border-bottom: 1px solid var(--line); }
.money-grid > div:nth-child(odd) { padding-left: 0; border-right: 1px solid var(--line); }
.money-grid dd { margin: 2px 0 0; font-size: 17px; font-weight: 800; }
.money-grid small { display: block; margin-top: 1px; color: var(--text-faint); font-size: 10px; }
.money-grid small[hidden] { display: none; }
.finance-note { padding: 8px 11px; border-radius: var(--radius-small); background: var(--info-soft); }
#projectView > .project-identity { align-items: center; padding-bottom: 20px; }
#projectView .overview-grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
#projectView .progress-panel, #projectView .finance-panel { padding: 18px 22px; }
#projectView .progress-panel > .panel-heading, #projectView .finance-panel > .panel-heading { align-items: center; margin-bottom: 12px; }
#projectView .project-overview-primary { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(260px, 0.9fr); gap: 18px; align-items: stretch; }
#projectView .situation-summary { min-width: 0; margin: 0; padding: 14px 16px; }
#projectView .situation-summary strong { margin-top: 5px; font-size: 18px; }
#projectView .situation-summary p { margin-top: 5px; line-height: 1.55; }
#projectView .project-next-action { align-items: flex-start; justify-content: center; min-width: 0; padding: 4px 2px 4px 18px; border-left: 1px solid var(--line); background: transparent; }
#projectView .project-next-action > span { color: var(--text-soft); }
#projectView .project-next-action > strong { margin-top: 6px; font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
#projectView .project-next-action > small { margin-top: 4px; color: var(--text-soft); font-size: 12px; }
#projectView .project-next-action > .button { min-height: 38px; margin-top: 10px; }
#projectView .blocker-box { display: block; margin-top: 12px; }
#projectView .blocker-box__main { padding: 10px 13px; }
#projectView .blocker-box__main > strong { margin-top: 3px; font-size: 14px; }
#projectView .blocker-box__main p { margin-top: 2px; font-size: 12px; }
#projectView .progress-facts { margin-top: 12px; padding: 11px 0 0; border-bottom: 0; }
#projectView .progress-facts dd { margin-top: 3px; font-size: 13px; }
#projectView .progress-facts dd > strong { font-size: 15px; }
#projectView .stage-fact small { margin-top: 2px; }
#projectView .finance-panel > .panel-heading p { display: none; }
#projectView .project-finance-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 11px 0 9px; border-top: 1px solid var(--line); }
#projectView .project-finance-summary > div { min-width: 0; padding: 1px 15px; border-left: 1px solid var(--line); }
#projectView .project-finance-summary > div:first-child { padding-left: 0; border-left: 0; }
#projectView .project-finance-summary dt { color: var(--text-soft); font-size: 12px; }
#projectView .project-finance-summary dd { margin: 4px 0 0; overflow-wrap: anywhere; font-size: 20px; font-weight: 800; line-height: 1.3; }
#projectView .project-finance-summary small { display: none; }
#projectView .project-finance-detail { margin-top: 1px; }
#projectView .project-finance-detail > summary { display: inline-flex; min-height: 35px; align-items: center; color: var(--primary-hover); cursor: pointer; font-size: 12px; font-weight: 700; }
#projectView .project-finance-detail[open] { margin-top: 7px; padding-top: 3px; border-top: 1px solid var(--line); }
#projectView .project-finance-detail .money-primary { margin-top: 4px; }
#projectView .project-finance-detail .finance-note { margin-top: 10px; }
#projectView .todo-section { padding: 16px 22px; }
#projectView .todo-section > .panel-heading { align-items: center; margin-bottom: 4px; }
#projectView .todo-item { padding-block: 10px; }
#projectView .todo-item__project { display: none; }
#projectView .todo-item h3 { display: inline-block; margin-left: 7px; font-size: 13px; }
#projectView .todo-item__action { margin-top: 5px; font-size: 14px; }
#projectView .todo-item__meta .project-todo-action { min-height: 36px; margin-top: 7px; }
.finance-note strong { font-size: 12px; }
.finance-note p { margin: 2px 0 0; color: var(--text-soft); font-size: 11px; }
.project-finance-form { margin-top: 12px; padding: 14px; border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--surface-subtle); }
.project-finance-form[hidden] { display: none; }
.project-finance-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.form-actions-inline, .section-heading-actions { display: flex; align-items: center; gap: 8px; }

.task-section, .todo-section, .startup-section, .finance-items-section, .supplier-cost-section, .internal-labor-section, .cost-collection-section, .operating-result-section, .supporting-section, .project-completion-section, .after-sales-section { margin-top: 20px; }
.project-lifecycle-summary, .project-completion-review { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin-bottom: 15px; }
.project-lifecycle-summary > div, .project-completion-review > div { min-width: 0; padding: 11px 13px; border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--surface-subtle); }
.project-lifecycle-summary span, .project-completion-review span { display: block; color: var(--text-soft); font-size: 11px; }
.project-lifecycle-summary strong, .project-completion-review strong { display: block; margin-top: 4px; overflow-wrap: anywhere; font-size: 13px; }
.project-lifecycle-actions, .after-sales-row__actions { display: flex; flex-wrap: wrap; gap: 9px; }
.project-lifecycle-form { margin-top: 16px; }
.project-lifecycle-checkbox { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.project-lifecycle-checkbox input { width: auto; }
.after-sales-row { padding: 15px 0; border-top: 1px solid var(--line); }
.after-sales-row__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.after-sales-row__heading h3 { margin: 0; font-size: 15px; }
.after-sales-row__heading p, .after-sales-row > p { margin: 4px 0; color: var(--text-soft); font-size: 12px; overflow-wrap: anywhere; }
.after-sales-row__actions { margin-top: 11px; }
.boss-completed-projects { margin-top: 16px; padding-top: 13px; border-top: 1px solid var(--line); }
.boss-completed-projects summary { cursor: pointer; color: var(--text-soft); font-size: 13px; }
.boss-completed-projects .boss-project-list { margin-top: 12px; }

.internal-labor-summary { margin-top: 2px; background: var(--surface-subtle); }
.internal-labor-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 14px; }
.internal-labor-actions > span { color: var(--text-soft); font-size: 11px; }
.internal-labor-actions > div { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.internal-labor-detail { margin-top: 14px; padding-top: 4px; border-top: 1px solid var(--line); }
.task-kind--labor { background: #e8f2ef; color: #245d50; }

.startup-layout { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(310px, 0.92fr); gap: 14px; }
.startup-heading-actions, .project-material-heading-actions { display: flex; align-items: center; gap: 10px; }
.startup-section--collapsed { padding-block: 15px; box-shadow: none; }
.startup-section--collapsed .panel-heading { margin-bottom: 0; }
.startup-section--collapsed .panel-heading p { margin-bottom: 0; }
.startup-source-record { display: flex; flex-wrap: wrap; gap: 7px 18px; margin-bottom: 13px; padding: 10px 12px; border-radius: var(--radius-small); background: var(--info-soft); color: var(--text-soft); font-size: 11px; }
.startup-source-record[hidden] { display: none; }
.startup-source-record strong { color: var(--text); }
.startup-materials, .startup-gap { min-width: 0; padding: 16px; border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--surface-subtle); }
.startup-subheading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.startup-subheading span:not(.status-badge) { display: block; color: var(--text-faint); font-size: 10px; font-weight: 700; letter-spacing: 0.04em; }
.startup-subheading h3 { margin: 3px 0 0; font-size: 16px; }
.startup-subheading small { max-width: 190px; color: var(--text-faint); font-size: 10px; text-align: right; }
.startup-material-list { display: grid; gap: 8px; margin-top: 13px; }
.startup-material-item { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; align-items: start; padding: 10px 11px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); }
.startup-material-item > div { min-width: 0; }
.startup-material-item a, .startup-material-item strong { display: block; overflow-wrap: anywhere; color: var(--text); font-size: 12px; line-height: 1.45; text-decoration: none; }
.startup-material-item a:hover { color: var(--primary-hover); text-decoration: underline; }
.startup-material-item small { display: block; margin-top: 3px; color: var(--text-faint); font-size: 10px; }
.startup-empty { margin: 0; padding: 12px; border: 1px dashed var(--line-strong); border-radius: 9px; color: var(--text-soft); font-size: 12px; }
.startup-gap__value { min-height: 54px; margin: 14px 0 0; color: var(--text); font-size: 14px; font-weight: 700; line-height: 1.65; }
.startup-gap__history { margin-top: 10px; padding: 9px 10px; border: 1px solid #c7dcd6; border-radius: 8px; background: var(--surface); color: var(--text-soft); font-size: 11px; line-height: 1.5; }
.startup-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 15px; }
.startup-form { margin-top: 14px; padding: 17px; border: 1px solid var(--line-strong); border-radius: var(--radius-small); background: #f8faf9; }
.startup-task-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 16px; }
.startup-direct-action { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 14px; padding: 12px 14px; border-radius: var(--radius-small); background: var(--info-soft); }
.startup-direct-action strong { font-size: 13px; }
.startup-direct-action p { margin: 3px 0 0; color: var(--text-soft); font-size: 11px; }
.startup-created-task-list { display: contents; }
.task-row--startup { background: var(--surface-subtle); }
.task-material-references { display: flex; align-items: flex-start; gap: 10px; margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--line); }
.task-material-references > strong { flex: 0 0 auto; padding-top: 5px; color: var(--text-faint); font-size: 10px; }
.task-material-references .record-material-links { margin-top: 0; }
.converted-project-context { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 9px; margin-top: 6px; color: var(--text-soft); }
.converted-project-context[hidden] { display: none; }
.converted-project-context > strong { min-width: 0; overflow-wrap: anywhere; font-size: 12px; }
.converted-project-context .button { min-height: 28px; padding: 2px 0; }
.project-material-list { margin-top: 14px; }
.project-material-form { margin-top: 14px; }
.project-evidence-details { margin-top: 14px; }
.count-label { flex: 0 0 auto; color: var(--text-soft); font-size: var(--type-meta); }
.count-badge,
.order-workspace .count-label,
.boss-workspace .count-label,
#reimbursementView[data-workspace-role-view="site"] .count-label {
  display: inline-flex;
  min-height: 26px;
  align-items: center;
  padding: 3px 9px;
  border-radius: var(--radius-pill);
  background: var(--neutral-soft);
  color: var(--neutral);
  font-size: var(--type-meta);
  font-weight: var(--weight-semibold);
  line-height: 1.2;
  white-space: nowrap;
}
.execution-guidance { margin: -8px 0 14px; padding: 9px 12px; border-radius: var(--radius-small); background: var(--info-soft); color: var(--text-soft); font-size: 12px; }
.task-list { border-top: 1px solid var(--line); }
.task-row { padding: 18px 0; border-bottom: 1px solid var(--line); }
.task-row:last-child { border-bottom: 0; }
.task-row--attention { margin: 0 -10px; padding: 18px 10px; border-radius: var(--radius-small); background: var(--warning-soft); }
.task-row__header { display: grid; grid-template-columns: minmax(230px, 1.35fr) minmax(165px, 0.78fr) minmax(125px, 0.55fr) auto; gap: 18px; align-items: center; }
.task-kind { display: inline-flex; min-height: 24px; align-items: center; padding: 2px 8px; border-radius: var(--radius-xs); background: var(--surface-subtle); color: var(--text-soft); font-size: var(--type-meta); font-weight: var(--weight-bold); }
.task-kind--site { background: var(--info-soft); color: #315b76; }
.task-kind--project { background: #eeeaf7; color: #5d4d81; }
.task-identity h3 { margin: 2px 0 1px; font-size: 17px; }
.task-identity p { margin: 0; color: var(--text-faint); font-size: 11px; }
.task-identity p span { margin: 0 5px; color: var(--line-strong); }
.task-owner > span, .task-status > span, .task-row__details span { display: block; margin-bottom: 5px; color: var(--text-soft); font-size: 11px; }
.task-owner strong { display: block; font-size: 13px; }
.task-row__details { display: grid; grid-template-columns: 1.16fr 1fr 1.15fr 0.62fr 0.58fr; gap: 18px; margin-top: 15px; padding-top: 13px; border-top: 1px solid var(--line); }
.task-row__details strong { display: block; font-size: 12px; line-height: 1.55; }
.task-time strong, .task-followup strong { color: var(--text-soft); font-weight: 600; }

.finance-item-list { border-top: 1px solid var(--line); }
.finance-item-row { padding: 18px 0; border-bottom: 1px solid var(--line); }
.finance-item-row:last-child { border-bottom: 0; }
.finance-item-row--attention { margin: 0 -10px; padding: 18px 10px; border-radius: var(--radius-small); background: var(--warning-soft); }
.finance-item-row--complete { opacity: 0.72; }
.finance-item-row--complete .finance-item-row__details { grid-template-columns: minmax(0, 1.5fr) minmax(120px, 0.5fr); }
.finance-item-row--complete .finance-item-money-facts { color: var(--text-faint); }
.finance-item-row__header { display: grid; grid-template-columns: minmax(210px, 1.1fr) minmax(170px, 0.75fr) minmax(150px, 0.7fr) auto; gap: 18px; align-items: center; }
.finance-item-money-facts { display: flex; flex-wrap: wrap; gap: 3px 12px; margin-top: 4px; color: var(--text-soft); font-size: 11px; font-weight: 700; }
.finance-item-money-facts span { white-space: nowrap; }
.task-kind--finance { background: #edf0f8; color: #4d5f8b; }
.task-kind--cost, .todo-kind--cost { background: #f5eee2; color: #795c2d; }
.todo-kind--collection { background: #f3eee7; color: #725b3e; }
.todo-kind--labor-review { background: #edf6f1; color: #39705b; }
.finance-item-actions { display: flex; align-items: flex-end; flex-direction: column; gap: 3px; }
.finance-item-actions .button--text { min-height: 28px; }
.finance-item-row__details { display: grid; grid-template-columns: 1.08fr 1fr 1.18fr 0.65fr 0.58fr; gap: 18px; margin-top: 15px; padding-top: 13px; border-top: 1px solid var(--line); }
.finance-item-row__details span { display: block; margin-bottom: 5px; color: var(--text-soft); font-size: 11px; }
.finance-item-row__details strong { display: block; overflow-wrap: anywhere; font-size: 12px; line-height: 1.55; }
.finance-item-row__details > div:nth-last-child(-n+2) strong { color: var(--text-soft); font-weight: 600; }
.supplier-cost-list { border-top: 1px solid var(--line); }
.supplier-cost-row { padding: 18px 0; border-bottom: 1px solid var(--line); }
.supplier-cost-row:last-child { border-bottom: 0; }
.supplier-cost-row--complete { opacity: 0.76; }
.supplier-cost-row__header { display: grid; grid-template-columns: minmax(230px, 1.2fr) auto minmax(150px, 0.6fr) auto; gap: 16px; align-items: center; }
.supplier-cost-row__header h3 { margin: 3px 0 1px; font-size: 17px; }
.supplier-cost-row__header p { margin: 0; color: var(--text-soft); font-size: 11px; }
.supplier-cost-row__owner span { display: block; margin-bottom: 4px; color: var(--text-faint); font-size: 10px; }
.supplier-cost-row__owner strong { display: block; font-size: 12px; }
.supplier-cost-amounts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 15px 0 0; border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--surface-subtle); }
.supplier-cost-amounts > div { min-width: 0; padding: 11px 13px; border-left: 1px solid var(--line); }
.supplier-cost-amounts > div:first-child { border-left: 0; }
.supplier-cost-amounts dt { color: var(--text-faint); font-size: 10px; }
.supplier-cost-amounts dd { margin: 3px 0 0; overflow-wrap: anywhere; font-size: 14px; font-weight: 800; }
.supplier-cost-row__details { display: grid; grid-template-columns: 1.25fr 1.05fr 0.62fr 0.55fr; gap: 16px; margin-top: 13px; }
.supplier-cost-row__details span { display: block; margin-bottom: 4px; color: var(--text-faint); font-size: 10px; }
.supplier-cost-row__details strong { display: block; overflow-wrap: anywhere; font-size: 12px; line-height: 1.55; }
.supplier-cost-row__links { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; margin-top: 12px; padding-top: 10px; border-top: 1px dashed var(--line); color: var(--text-faint); font-size: 10px; }
.supplier-cost-row__links .button { min-height: 28px; padding: 3px 0; }
.supplier-cost-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; }
.supplier-cost-action-panel { margin-top: 15px; }
.cost-collection-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 16px; border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--surface-subtle); }
.cost-collection-summary > div { min-width: 0; padding: 12px 14px; border-left: 1px solid var(--line); }
.cost-collection-summary > div:first-child { border-left: 0; }
.cost-collection-summary span { display: block; color: var(--text-faint); font-size: 10px; }
.cost-collection-summary strong { display: block; margin-top: 4px; overflow-wrap: anywhere; font-size: 13px; }
.cost-collection-summary .section-empty { grid-column: 1 / -1; margin: 0; padding: 14px; }
.cost-collection-panel { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.cost-collection-panel__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 14px; }
.cost-collection-panel__heading h3 { margin: 0; font-size: 17px; }
.cost-collection-panel__heading p { max-width: 68ch; margin: 5px 0 0; color: var(--text-soft); font-size: 12px; line-height: 1.6; }
.cost-source-list { border-top: 1px solid var(--line); }
.cost-source-row { display: grid; grid-template-columns: minmax(220px, 1.3fr) minmax(180px, 1fr) minmax(170px, 0.8fr); gap: 16px; align-items: center; padding: 15px 0; border-bottom: 1px solid var(--line); }
.cost-source-row__identity { min-width: 0; }
.cost-source-row__identity h4 { margin: 4px 0 3px; font-size: 14px; }
.cost-source-row__identity p { margin: 0; color: var(--text-soft); font-size: 11px; line-height: 1.5; overflow-wrap: anywhere; }
.cost-source-row__facts { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; min-width: 0; margin: 0; }
.cost-source-row__facts div { min-width: 0; }
.cost-source-row__facts dt { color: var(--text-faint); font-size: 10px; }
.cost-source-row__facts dd { margin: 4px 0 0; overflow-wrap: anywhere; font-size: 12px; font-weight: 800; }
.cost-source-row__action { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.cost-source-row__action .button { width: auto; }
.cost-collection-question { margin-top: 18px; padding: 16px; border-radius: var(--radius-small); background: var(--surface-subtle); }
.cost-collection-question > h4, .cost-finance-review > h4 { margin: 0 0 7px; font-size: 14px; }
.cost-collection-question > p { margin: 0 0 12px; color: var(--text-soft); font-size: 12px; line-height: 1.6; }
.cost-choice-group { display: flex; flex-wrap: wrap; gap: 8px; }
.cost-choice-group label { display: inline-flex; align-items: center; gap: 7px; min-height: 36px; padding: 7px 11px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); cursor: pointer; font-size: 12px; font-weight: 700; }
.cost-choice-group input { width: 16px; min-height: 16px; height: 16px; margin: 0; flex: 0 0 auto; accent-color: var(--primary); }
.cost-collection-question-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.cost-collection-followup { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(180px, 0.7fr); gap: 12px; margin-top: 18px; }
.cost-role-handoff { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 18px; }
.cost-role-handoff > div { padding: 13px 14px; border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--surface-subtle); }
.cost-role-handoff span, .cost-role-handoff strong { display: block; }
.cost-role-handoff span { color: var(--text-faint); font-size: 10px; }
.cost-role-handoff strong { margin-top: 4px; font-size: 13px; }
.cost-finance-review { margin-top: 14px; padding: 16px; border: 1px solid var(--line); border-radius: var(--radius-small); }
.cost-finance-review > p, .cost-collection-waiting { margin: 0 0 12px; color: var(--text-soft); font-size: 12px; line-height: 1.6; }
.cost-collection-waiting { margin-top: 14px; padding: 13px 14px; border-radius: var(--radius-small); background: var(--warning-soft); }
.cost-collection-history { margin-top: 20px; }
.cost-collection-history summary { cursor: pointer; color: var(--text-soft); font-size: 12px; font-weight: 700; }
.cost-collection-history-list { margin: 10px 0 0; padding-left: 20px; color: var(--text-soft); font-size: 12px; line-height: 1.7; }
.cost-collection-late-action { margin-top: 14px; padding: 14px; border-radius: var(--radius-small); background: var(--warning-soft); }
.cost-collection-late-action p { margin: 0 0 10px; color: var(--text-soft); font-size: 12px; }
.finance-progress-fields { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.optional-context-toggle { display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; color: var(--text-soft); cursor: pointer; font-size: 12px; font-weight: 700; }
.optional-context-toggle input { width: 17px; min-height: 17px; margin: 0; accent-color: var(--primary); }
.optional-context-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 10px; padding-top: 12px; border-top: 1px solid var(--line); }
.optional-context-fields[hidden] { display: none; }
.linked-todo-control { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 13px; padding: 11px 13px; border: 1px solid #b9ccc7; border-radius: var(--radius-small); background: var(--primary-soft); cursor: pointer; }
.linked-todo-control[hidden] { display: none; }
.linked-todo-control input { width: 18px; min-height: 18px; margin: 1px 0 0; accent-color: var(--primary); }
.linked-todo-control > span { min-width: 0; }
.linked-todo-control strong { display: block; color: var(--primary); font-size: 12px; }
.linked-todo-control small { display: block; margin-top: 2px; overflow-wrap: anywhere; color: #41675d; font-size: 11px; }
.receipt-facts { display: grid; grid-template-columns: repeat(3, 1fr); margin-bottom: 14px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.receipt-facts > div { padding: 11px 14px; border-left: 1px solid var(--line); }
.receipt-facts > div:first-child { padding-left: 0; border-left: 0; }
.receipt-facts span { display: block; color: var(--text-soft); font-size: 11px; }
.receipt-facts strong { display: block; margin-top: 2px; font-size: 16px; }
.receipt-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }

.task-progress-form { margin-top: 16px; padding: 17px; border: 1px solid var(--line-strong); border-radius: var(--radius-small); background: var(--surface-subtle); }
.task-progress-form[hidden] { display: none; }
.task-progress-form__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.task-progress-form__heading span { color: var(--text-soft); font-size: 11px; }
.task-progress-form__heading h3 { margin: 1px 0 0; font-size: 17px; }
.task-progress-form__heading p { margin: 3px 0 0; color: var(--text-soft); font-size: 11px; }
.progress-history { padding: 13px 15px; border-radius: var(--radius-small); background: var(--surface); }
.progress-history__heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.progress-history__heading h4, .progress-entry-heading h4 { margin: 0; font-size: 14px; }
.progress-history__heading span { color: var(--text-faint); font-size: 11px; }
.progress-history__list { margin: 10px 0 0; padding: 0; list-style: none; }
.progress-history__item { display: grid; grid-template-columns: 86px minmax(0, 1fr); gap: 14px; padding: 12px 0; border-top: 1px solid var(--line); }
.progress-history__date { color: var(--text-soft); font-size: 11px; }
.progress-history__summary { display: flex; flex-wrap: wrap; align-items: baseline; gap: 5px 9px; }
.progress-history__summary strong { font-size: 13px; }
.progress-history__summary span { color: var(--text-soft); font-size: 11px; }
.progress-history__item p { margin: 4px 0 0; color: var(--text-soft); font-size: 12px; }
.progress-history__meta { display: flex; flex-wrap: wrap; gap: 5px 12px; margin-top: 5px; color: var(--text-faint); font-size: 10px; }
.progress-history__empty { margin: 10px 0 0; color: var(--text-soft); font-size: 12px; }
.progress-entry-heading { margin: 18px 0 11px; }
.progress-entry-heading p { margin: 3px 0 0; color: var(--text-soft); font-size: 11px; }
.task-progress-fields { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.form-field--span-2 { grid-column: span 2; }
.task-progress-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 14px; }
.task-progress-actions > span { color: var(--text-soft); font-size: 11px; }

.source-project-context { padding: 20px 24px; }
.source-project-task__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.source-project-task__heading span { display: inline-flex; padding: 3px 8px; border-radius: 6px; background: var(--info-soft); color: #315b76; font-size: 11px; font-weight: 700; }
.source-project-task__heading h3 { margin: 6px 0 0; font-size: 19px; }
.source-project-task__heading p { margin: 0; color: var(--text-soft); font-size: 12px; }
.source-project-task__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 18px 0 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.source-project-task__facts > div { padding: 13px 16px; border-top: 1px solid var(--line); }
.source-project-task__facts > div:nth-child(-n+2) { border-top: 0; }
.source-project-task__facts > div:nth-child(even) { border-left: 1px solid var(--line); }
.source-project-task__facts dt { color: var(--text-faint); font-size: 11px; }
.source-project-task__facts dd { margin: 3px 0 0; font-size: 13px; font-weight: 700; line-height: 1.5; }
.source-project-history { margin-top: 18px; }
.source-project-context__note { margin: 16px 0 0; color: var(--text-faint); font-size: 11px; }

.todo-section { padding: 20px 24px; }
.todo-section .panel-heading { margin-bottom: 13px; }
.todo-list { border-top: 1px solid var(--line); }
.todo-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 15px 0; }
.todo-item__project { margin: 0; color: var(--text-soft); font-size: 11px; }
.todo-kind, .category-tag { display: inline-flex; min-height: 24px; align-items: center; margin: 4px 7px 0 0; padding: 2px 8px; border-radius: var(--radius-xs); font-size: var(--type-meta); font-weight: var(--weight-bold); line-height: 1.2; vertical-align: middle; }
.todo-kind--execution, .todo-kind--finance, .todo-kind--cost { background: var(--neutral-soft); color: var(--neutral); }
.workbench-item__source { vertical-align: middle; }
.todo-item h3 { margin: 2px 0 0; font-size: 15px; }
.todo-item__action { margin: 3px 0 0; font-size: 13px; font-weight: 700; }
.todo-item__meta { text-align: right; }
.todo-item__meta strong, .todo-item__meta span { display: block; }
.todo-item__meta strong { color: var(--warning); font-size: 13px; }
.todo-item__meta span { color: var(--text-faint); font-size: 10px; }
.todo-empty, .section-empty { margin: 0; padding: 17px 0; color: var(--text-soft); font-size: 13px; }

.supporting-section { box-shadow: none; }
.evidence-details { border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--surface-subtle); }
.evidence-details p { margin: 4px 0 0; color: var(--text-soft); font-size: 12px; }
.evidence-details summary { display: flex; min-height: 58px; align-items: center; justify-content: space-between; padding: 12px 16px; cursor: pointer; font-size: 13px; font-weight: 700; list-style: none; }
.evidence-details summary::-webkit-details-marker { display: none; }
.evidence-details summary::after { content: "+"; color: var(--text-soft); font-size: 19px; font-weight: 400; }
.evidence-details[open] summary::after { content: "−"; }
.evidence-details > div { padding: 12px 16px 16px; border-top: 1px solid var(--line); }

.status-badge { display: inline-flex; flex: 0 0 auto; min-height: 26px; max-width: 100%; align-items: center; padding: 3px 8px; border-radius: var(--radius-xs); font-size: var(--type-meta); font-weight: var(--weight-medium); line-height: 1.5; overflow-wrap: anywhere; }
.status-badge--neutral { background: var(--neutral-soft); color: var(--neutral); }
.status-badge--warning { background: var(--warning-soft); color: var(--warning); }
.status-badge--success { background: var(--success-soft); color: var(--success); }
.status-badge--progress { background: var(--primary-soft); color: var(--primary); }
.status-badge--danger { background: var(--danger-soft); color: var(--danger); }

.operating-result-section { border-color: #cfded9; }
.operating-result-heading { align-items: flex-start; }
.operating-result-heading p { max-width: 720px; }
.operating-result-section--compact { padding-block: 16px; border-color: var(--line); box-shadow: none; }
.operating-result-section--compact .operating-result-heading { margin-bottom: 8px; }
.operating-result-section--compact .operating-result-heading h2 { font-size: 17px; }
.operating-result-section--compact .operating-result-heading p { margin-top: 3px; font-size: 12px; }
.operating-result-compact summary { cursor: pointer; color: var(--text-soft); font-size: 12px; font-weight: 700; }
.operating-result-compact p { max-width: 760px; margin: 8px 0 0; color: var(--text-soft); font-size: 12px; }
.operating-result-groups { display: grid; grid-template-columns: minmax(0, 2fr) minmax(260px, 0.8fr); gap: 14px; }
.operating-result-group { min-width: 0; padding: 16px; border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--surface-soft); }
.operating-result-group__heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.operating-result-group__heading h3 { margin: 0; font-size: 15px; }
.operating-result-group__heading span { color: var(--text-faint); font-size: 11px; text-align: right; }
.operating-result-metrics { display: grid; grid-template-columns: 1fr 1fr; margin: 0; }
.operating-result-metrics > div { min-width: 0; padding: 10px 12px; border-top: 1px solid var(--line); }
.operating-result-metrics > div:nth-child(-n+2) { border-top: 0; }
.operating-result-metrics > div:nth-child(even) { border-left: 1px solid var(--line); }
.operating-result-metrics dt, .operating-result-cash dt { color: var(--text-soft); font-size: 12px; }
.operating-result-metrics dd, .operating-result-cash dd { margin: 3px 0 0; font-size: 20px; font-weight: 850; overflow-wrap: anywhere; }
.operating-result-profit dd { color: var(--text-soft); }
.operating-result-profit.is-loss dd { color: var(--danger); }
.operating-result-cash dl { display: grid; gap: 10px; margin: 0; }
.operating-result-cash dl > div { padding: 10px 0; border-top: 1px solid var(--line); }
.operating-result-cash dl > div:first-child { border-top: 0; }
.operating-result-pending { padding: 16px; border: 1px solid var(--warning-line); border-radius: var(--radius-small); background: var(--warning-soft); }
.operating-result-pending > p { margin: 12px 0 0; color: var(--text-soft); font-size: 12px; }
.operating-result-known { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.operating-result-known > div, .operating-result-previous { min-width: 0; }
.operating-result-known span, .operating-result-previous span { display: block; color: var(--text-soft); font-size: 12px; }
.operating-result-known strong, .operating-result-previous strong { display: block; margin-top: 3px; font-size: 19px; overflow-wrap: anywhere; }
.operating-result-previous { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--warning-line); }
.operating-result-previous small { display: block; margin-top: 4px; color: var(--text-soft); }
.operating-result-missing { margin-top: 12px; }
.operating-result-missing summary, .operating-result-details summary, .operating-result-history summary { cursor: pointer; color: var(--primary-hover); font-weight: 800; }
.operating-result-missing ul { margin: 10px 0 0; padding-left: 20px; }
.operating-result-missing li + li { margin-top: 5px; }
.operating-result-details, .operating-result-history { margin-top: 14px; padding: 13px 15px; border: 1px solid var(--line); border-radius: var(--radius-small); background: #fff; }
.operating-result-costs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 14px; margin-top: 12px; }
.operating-result-costs > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 10px; min-width: 0; padding: 9px 0; border-top: 1px solid var(--line); }
.operating-result-costs span { color: var(--text-soft); font-size: 12px; }
.operating-result-costs strong { justify-self: end; overflow-wrap: anywhere; }
.operating-result-costs .button { grid-column: 1 / -1; justify-self: start; padding-left: 0; }
.operating-result-scope-note { margin: 10px 0 0; color: var(--text-soft); font-size: 12px; }
.operating-result-history ol { display: grid; gap: 8px; margin: 12px 0 0; padding: 0; list-style: none; }
.operating-result-history li { padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--surface-soft); }
.operating-result-history li > div { display: flex; justify-content: space-between; gap: 10px; }
.operating-result-history li span, .operating-result-history li small { color: var(--text-soft); font-size: 11px; }
.operating-result-history li p { margin: 5px 0; overflow-wrap: anywhere; }

.button { display: inline-flex; min-height: var(--control-height-default); align-items: center; justify-content: center; padding: 8px 14px; border: 1px solid transparent; border-radius: var(--radius-small); cursor: pointer; font-size: var(--type-body-small); font-weight: var(--weight-semibold); line-height: 1.2; white-space: nowrap; transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 100ms ease; }
.button:active:not(:disabled) { transform: translateY(1px); }
.button:disabled { cursor: not-allowed; opacity: 0.62; }
.button--compact { min-height: var(--control-height-compact); padding: 5px 10px; font-size: var(--type-meta); }
.button--mobile-touch { min-height: var(--control-height-touch); }
.button--primary { border-color: var(--primary); background: var(--primary); color: #fff; }
.button--primary:hover:not(:disabled) { border-color: var(--primary-hover); background: var(--primary-hover); }
.button--primary:active:not(:disabled) { border-color: var(--primary-active); background: var(--primary-active); }
.button--secondary { border-color: var(--line-strong); background: var(--surface); color: var(--text); }
.button--secondary:hover:not(:disabled), .button--quiet:hover:not(:disabled) { background: var(--surface-subtle); border-color: var(--text-soft); }
.button--quiet { border-color: var(--line-strong); background: var(--surface); color: var(--text-soft); }
.button--text { min-height: var(--control-height-compact); padding: 5px 7px; border-color: transparent; background: transparent; color: var(--text-soft); font-size: var(--type-meta); }
.button--text:hover:not(:disabled) { background: var(--surface-subtle); color: var(--primary); }
.button--danger { border-color: var(--danger); background: var(--danger); color: #fff; }
.button--danger:hover:not(:disabled) { border-color: #7e3029; background: #7e3029; }

/* Foundation V1: shared control states, object rows and readable financial facts. */
.formal-file-button:focus-within { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
:is(input, select, textarea)::placeholder { color: var(--text-soft); opacity: 1; }
:is(input, select, textarea)[aria-invalid="true"] { border-color: var(--danger); }
.formal-shell :is(input, select, textarea):disabled { background: var(--neutral-soft); color: var(--neutral); cursor: not-allowed; }
.formal-shell :is(input, select, textarea):focus-visible { border-color: var(--primary); }
.formal-shell :is(.formal-admin-form-grid, .formal-expense-form, .formal-payment-form) label { font-weight: var(--weight-medium); }
.formal-shell :is(.formal-admin-form-grid, .formal-expense-form, .formal-payment-form) :is(input, select, textarea) { font-weight: var(--weight-regular); }
.formal-review-form button[value="returned"] { border-color: var(--danger); color: var(--danger); background: var(--surface); }
.formal-review-form button[value="returned"]:hover:not(:disabled) { background: var(--danger-soft); }
.formal-person-summary:hover, .formal-project-row > button:hover { background: var(--surface-subtle); }
.formal-voucher-card__file small { display: inline-flex; align-self: start; width: fit-content; margin-top: 4px; padding: 3px 8px; border-radius: var(--radius-xs); background: var(--neutral-soft); color: var(--neutral); font-size: var(--type-meta); line-height: 1.5; }
.formal-voucher-card.is-ready .formal-voucher-card__file small { background: var(--warning-soft); color: var(--warning); }
.formal-voucher-card.is-failed .formal-voucher-card__file small { background: var(--danger-soft); color: var(--danger); }
.formal-voucher-card.is-processing .formal-voucher-card__file small { background: var(--primary-soft); color: var(--primary); }
.formal-shell :is(.formal-finance-item__heading, .formal-attribution-card__heading, .formal-draft-summary, .formal-cost-row, .formal-cost-total, .formal-payment-history__item, .formal-employee-payment) :is(b, strong) { font-variant-numeric: tabular-nums; }
.formal-cost-row > b, .formal-payment-history__item > b { text-align: right; }
.formal-finance-batch > header { padding: 12px; background: var(--surface-subtle); }
.formal-reimbursement-section:has(> .formal-empty-state) { padding-block: var(--space-4); }
.formal-reimbursement-section > .formal-empty-state { padding-block: var(--space-3); }
.formal-reimbursement-section .panel-heading > .count-badge { align-self: flex-start; }
.formal-workspace__heading > .status-badge { justify-self: start; align-self: start; }
.formal-shell :is(.formal-action-row, .formal-history-item, .formal-person-summary) strong { font-size: var(--type-title-small); font-weight: var(--weight-medium); }
@media (max-width: 600px) {
  .formal-shell .button { min-height: var(--control-height-touch); max-width: 100%; white-space: normal; }
  .formal-form-actions { flex-wrap: wrap; }
  .formal-upload-hero h2 { font-size: 24px; }
}

.opportunity-header-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.opportunity-list-panel, .opportunity-detail-panel { padding: 22px 24px; }
.opportunity-list { border-top: 1px solid var(--line); }
.opportunity-list-item { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(170px, 0.7fr) auto; gap: 20px; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--line); }
.opportunity-list-item:last-child { border-bottom: 0; }
.opportunity-list-item--closed { opacity: 0.68; }
.opportunity-list-item__identity h3 { margin: 3px 0 2px; font-size: 17px; line-height: 1.4; }
.opportunity-list-item__identity p { margin: 0; color: var(--text-soft); font-size: 12px; }
.opportunity-list-item__identity small { display: block; margin-top: 5px; color: var(--text-faint); font-size: 11px; }
.opportunity-list-item__next span, .opportunity-now span { display: block; color: var(--text-faint); font-size: 11px; }
.opportunity-list-item__next strong { display: block; margin-top: 3px; font-size: 13px; line-height: 1.5; }
.opportunity-list-item__next small { color: var(--text-soft); font-size: 11px; font-weight: 700; }
.opportunity-list-item__actions { display: flex; align-items: flex-end; flex-direction: column; gap: 7px; }
.opportunity-form { margin-top: 18px; padding: 18px; border: 1px solid var(--line-strong); border-radius: var(--radius-small); background: var(--surface-subtle); }
.opportunity-form[hidden] { display: none; }
.opportunity-form--decision { border-color: #b9ccc7; background: #f4f9f7; }
.opportunity-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 16px; }
.opportunity-inquiry-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 16px; padding: 13px; border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--info-soft); }
.opportunity-inquiry-fields[hidden] { display: none; }
.opportunity-form textarea { width: 100%; resize: vertical; }
.opportunity-detail-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.opportunity-back-button { min-height: 42px; margin-bottom: 8px; padding-inline: 12px 15px; color: var(--primary-hover); }
.opportunity-back-button svg { width: 17px; height: 17px; margin-right: 7px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.opportunity-detail-heading h2 { margin: 4px 0 2px; font-size: 25px; line-height: 1.35; letter-spacing: -0.02em; }
.opportunity-detail-heading p { margin: 0; color: var(--text-soft); font-size: 13px; }
.opportunity-facts { display: grid; grid-template-columns: 1fr 0.7fr; margin: 0; border-bottom: 1px solid var(--line); }
.opportunity-facts > div { min-width: 0; padding: 14px 16px; border-top: 1px solid var(--line); }
.opportunity-facts > div:nth-child(-n+2) { border-top: 0; }
.opportunity-facts > div:nth-child(even) { border-left: 1px solid var(--line); }
.opportunity-facts dt { color: var(--text-faint); font-size: 11px; }
.opportunity-facts dd { margin: 3px 0 0; overflow-wrap: anywhere; font-size: 13px; font-weight: 700; line-height: 1.55; }
.opportunity-now { display: grid; grid-template-columns: 1.25fr 1fr 0.55fr; gap: 0; margin-top: 18px; border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--surface-subtle); }
.opportunity-now > div { min-width: 0; padding: 14px 16px; border-left: 1px solid var(--line); }
.opportunity-now > div:first-child { border-left: 0; }
.opportunity-now strong { display: block; margin-top: 4px; overflow-wrap: anywhere; font-size: 13px; line-height: 1.55; }
.opportunity-detail-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.opportunity-history { margin-top: 18px; background: var(--surface-subtle); }
.opportunity-materials { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.opportunity-materials__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.opportunity-materials__heading h3 { margin: 0; font-size: 16px; }
.opportunity-materials__heading p { max-width: 68ch; margin: 4px 0 0; color: var(--text-soft); font-size: 12px; line-height: 1.55; }
.opportunity-materials__actions { display: flex; align-items: center; gap: 8px; }
.prototype-file-note { margin: 11px 0 0; padding: 9px 11px; border-radius: var(--radius-small); background: var(--info-soft); color: #315b76; font-size: 11px; line-height: 1.55; }
.opportunity-material-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.opportunity-materials__empty { grid-column: 1 / -1; margin: 0; padding: 13px; border: 1px dashed var(--line-strong); border-radius: var(--radius-small); color: var(--text-soft); font-size: 12px; }
.opportunity-material-item { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 11px; min-width: 0; padding: 10px; border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--surface); }
.opportunity-material-item img, .opportunity-material-item__file { width: 64px; height: 58px; border-radius: 8px; background: var(--surface-subtle); object-fit: cover; }
.opportunity-material-item__file { display: flex; align-items: center; justify-content: center; color: var(--text-faint); font-size: 11px; font-weight: 700; }
.opportunity-material-item__content { min-width: 0; }
.opportunity-material-item__content > a, .opportunity-material-item__content > strong { display: block; margin-top: 5px; overflow-wrap: anywhere; color: var(--text); font-size: 13px; font-weight: 700; line-height: 1.45; text-decoration: none; }
.opportunity-material-item__content > a:hover { color: var(--primary-hover); text-decoration: underline; }
.opportunity-material-item__content small { display: block; margin-top: 3px; color: var(--text-faint); font-size: 10px; }
.opportunity-material-item__content p { margin: 5px 0 0; color: var(--text-soft); font-size: 11px; line-height: 1.5; }
.opportunity-material-item__content .opportunity-material-item__inquiry { color: #315b76; font-weight: 700; }
.selected-file-summary { margin-top: 10px; overflow-wrap: anywhere; color: var(--accent-hover); font-size: 11px; font-weight: 700; line-height: 1.5; }
.record-material-links { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.record-material-links a, .record-material-links span { max-width: 100%; padding: 5px 8px; overflow-wrap: anywhere; border: 1px solid var(--line-strong); border-radius: 7px; background: var(--surface); color: var(--text-soft); font-size: 11px; font-weight: 700; text-decoration: none; }
.record-material-links a:hover { background: var(--primary-soft); }
.material-reference-field { min-width: 0; margin: 0; padding: 0; border: 0; }
.material-reference-field legend { margin-bottom: 7px; font-size: 12px; font-weight: 700; }
.material-reference-options { display: grid; max-height: 220px; overflow-y: auto; gap: 6px; padding: 10px; border: 1px solid var(--line-strong); border-radius: var(--radius-small); background: var(--surface); }
.material-reference-options > span { color: var(--text-faint); font-size: 11px; }
.material-reference-options label { display: grid; grid-template-columns: 16px minmax(0, 1fr); align-items: start; gap: 8px; min-width: 0; margin: 0; padding: 5px 6px; border-radius: 6px; font-size: 12px; line-height: 1.45; cursor: pointer; }
.material-reference-options label:hover { background: var(--surface-subtle); }
.material-reference-options input[type="checkbox"] { width: 16px; height: 16px; min-height: 16px; margin: 1px 0 0; padding: 0; border-radius: 4px; accent-color: var(--primary); cursor: pointer; }
.material-reference-options label > span { min-width: 0; overflow-wrap: anywhere; word-break: normal; writing-mode: horizontal-tb; }
.material-reference-summary { margin-top: 12px; }
.material-reference-summary:empty { display: none; }
.material-reference-summary > strong { display: block; margin-bottom: 6px; font-size: 12px; }
.boundary-note { margin-bottom: 14px; padding: 11px 13px; border-radius: var(--radius-small); background: var(--info-soft); color: #315b76; font-size: 12px; line-height: 1.6; }
.pending-materials { display: flex; flex-wrap: wrap; align-items: center; gap: 7px 14px; margin-top: 14px; padding: 11px 13px; border-radius: var(--radius-small); background: var(--warning-soft); color: #6f582e; font-size: 12px; }
.pending-materials strong { color: var(--warning); }
.todo-kind--opportunity { background: #f3eefa; color: #604785; }

.finance-invoice-list { display: grid; gap: 7px; margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--line-strong); }
.finance-invoice-record { display: flex; align-items: center; gap: 12px; min-width: 0; padding: 9px 11px; border-radius: 8px; background: var(--info-soft); }
.finance-invoice-record > div { min-width: 0; flex: 1; }
.finance-invoice-record strong, .finance-invoice-record span, .finance-invoice-record small { display: block; overflow-wrap: anywhere; }
.finance-invoice-record strong { font-size: 12px; }
.finance-invoice-record span, .finance-invoice-record small { margin-top: 2px; color: var(--text-soft); font-size: 10px; }
.finance-invoice-record--invalid { background: var(--surface-subtle); opacity: 0.72; }
.invoice-workflow-panel { margin-top: 14px; }
.invoice-step-form { display: grid; gap: 16px; }
.invoice-step-heading span { color: var(--text-soft); font-size: 10px; font-weight: 800; letter-spacing: 0.08em; }
.invoice-step-heading h4 { margin: 3px 0; font-size: 17px; }
.invoice-step-heading p { margin: 0; color: var(--text-soft); font-size: 12px; line-height: 1.55; }
.invoice-context-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--surface); }
.invoice-context-grid > div { min-width: 0; padding: 11px 13px; border-left: 1px solid var(--line); }
.invoice-context-grid > div:first-child { border-left: 0; }
.invoice-context-grid span, .invoice-context-grid strong { display: block; }
.invoice-context-grid span { color: var(--text-faint); font-size: 10px; }
.invoice-context-grid strong { margin-top: 3px; overflow-wrap: anywhere; font-size: 12px; }
.invoice-form-grid, .invoice-finance-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 15px; }
.invoice-form-grid.is-disabled { opacity: 0.55; }
.invoice-material-block { padding: 13px; border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--surface); }
.invoice-material-block h5 { margin: 0; font-size: 13px; }
.invoice-material-block > p { margin: 3px 0 10px; color: var(--text-soft); font-size: 11px; }
.invoice-material-options { display: grid; max-height: 210px; overflow-y: auto; gap: 6px; }
.invoice-material-options label { display: grid; grid-template-columns: 16px auto minmax(0, 1fr); align-items: start; gap: 8px; min-width: 0; padding: 7px; border-radius: 7px; background: var(--surface-subtle); cursor: pointer; }
.invoice-material-options input[type="checkbox"] { width: 16px; height: 16px; min-height: 16px; margin: 1px 0 0; padding: 0; accent-color: var(--primary); }
.invoice-material-options label > span:last-child { min-width: 0; overflow-wrap: anywhere; writing-mode: horizontal-tb; }
.invoice-material-options strong, .invoice-material-options small { display: block; }
.invoice-material-options strong { font-size: 11px; line-height: 1.45; }
.invoice-material-options small { margin-top: 2px; color: var(--text-faint); font-size: 10px; }
.material-type-tag { padding: 2px 5px; border-radius: 5px; background: var(--surface-subtle); color: var(--text-soft); font-size: 9px; font-weight: 800; white-space: nowrap; }
.invoice-empty-note { margin: 0; color: var(--text-soft); font-size: 11px; }
.invoice-request-summary { display: flex; flex-wrap: wrap; gap: 6px 14px; padding: 11px 13px; border-radius: var(--radius-small); background: var(--surface); font-size: 11px; }
.invoice-request-summary strong { width: 100%; }
.invoice-request-summary span { color: var(--text-soft); }
.invoice-finance-actions .button { align-self: flex-start; margin-top: 7px; }
.invoice-prototype-note { display: flex; gap: 9px; padding: 10px 12px; border-radius: var(--radius-small); background: var(--warning-soft); color: #6f582e; font-size: 11px; line-height: 1.55; }
.invoice-prototype-note strong { flex: 0 0 auto; }
.invoice-comparison { display: grid; gap: 6px; }
.invoice-comparison:empty { display: none; }
.invoice-comparison-row { display: grid; grid-template-columns: 80px 1fr 1fr auto; gap: 9px; align-items: center; padding: 8px 10px; border: 1px solid var(--line); border-radius: 7px; font-size: 10px; }
.invoice-comparison-row span { min-width: 0; overflow-wrap: anywhere; color: var(--text-soft); }
/* Preserve the inherited color formerly produced by the undefined --success. */
.invoice-comparison-row b { color: inherit; }
.invoice-comparison-row.is-warning { border-color: var(--warning-line); background: var(--warning-soft); }
.invoice-comparison-row.is-warning b { color: var(--warning); }

.toast { position: fixed; right: 24px; bottom: 24px; z-index: 20; max-width: min(360px, calc(100% - 32px)); padding: 12px 16px; border-radius: var(--radius-small); background: var(--text); color: #fff; box-shadow: var(--shadow); opacity: 0; pointer-events: none; transform: translateY(10px); transition: opacity 180ms ease, transform 180ms ease; }
.toast.is-visible { opacity: 1; transform: translateY(0); }
.toast[data-formal-feedback] { display: flex; align-items: center; gap: var(--space-3); pointer-events: auto; z-index: 100; max-width: min(440px, calc(100vw - 32px)); background: var(--surface); color: var(--text); border: 1px solid var(--line-strong); }
.toast[data-formal-feedback]:not(.is-visible) { visibility: hidden; pointer-events: none; }
.toast[data-formal-feedback] > span { min-width: 0; overflow-wrap: anywhere; }
.toast[data-formal-feedback] > button { min-width: 44px; min-height: 44px; flex-shrink: 0; border: 0; border-radius: var(--radius-small); background: transparent; color: inherit; cursor: pointer; }
.toast[data-formal-feedback="success"] { border-color: var(--success); background: var(--success-soft); }
.toast[data-formal-feedback="error"] { border-color: var(--danger); background: var(--danger-soft); }
.toast[data-formal-feedback="warning"] { border-color: var(--warning-line); background: var(--warning-soft); }
[data-formal-inline-feedback] { grid-column: 1 / -1; margin-block: var(--space-3) 0; }
@media (max-width: 600px) {
  .toast[data-formal-feedback] { right: 16px; bottom: max(16px, env(safe-area-inset-bottom)); }
  .formal-action-target { scroll-margin-top: 88px; }
}

@media (max-width: 1020px) {
  .overview-grid { grid-template-columns: 1fr; }
  .workbench-columns { grid-template-columns: 1fr; }
  .progress-facts { grid-template-columns: repeat(4, 1fr); }
  .task-row__header { grid-template-columns: 1fr 1fr auto; }
  .finance-item-row__header { grid-template-columns: 1fr 1fr auto; }
  .supplier-cost-row__header { grid-template-columns: 1fr 1fr auto; }
  .supplier-cost-row__header > div:first-child { grid-column: 1 / -1; }
  .task-identity { grid-column: 1 / -1; }
  .task-row__details { grid-template-columns: 1fr 1fr; }
  .finance-item-row__details { grid-template-columns: 1fr 1fr; }
  .supplier-cost-row__details { grid-template-columns: 1fr 1fr; }
  .task-progress-fields { grid-template-columns: 1fr 1fr; }
  .finance-progress-fields { grid-template-columns: 1fr 1fr; }
  .optional-context-fields { grid-template-columns: 1fr 1fr; }
  .project-finance-fields { grid-template-columns: 1fr; }
  .receipt-fields { grid-template-columns: 1fr 1fr; }
  .invoice-comparison-row { grid-template-columns: 70px 1fr 1fr; }
  .invoice-comparison-row b { grid-column: 2 / -1; }
  .opportunity-list-item { grid-template-columns: minmax(0, 1fr) auto; }
  .opportunity-list-item__next { grid-column: 1; }
  .opportunity-list-item__actions { grid-column: 2; grid-row: 1 / span 2; }
  .reimbursement-upload-form { align-items: stretch; flex-direction: column; }
  .reimbursement-upload-actions { justify-content: flex-start; }
  .reimbursement-recognition-grid { grid-template-columns: 1fr 1fr; }
  .reimbursement-payment-form { grid-template-columns: 1fr 1fr; }
  .reimbursement-payment-form .button { align-self: end; }
  .boss-company-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .boss-company-metric:nth-child(3) { padding-left: 0; border-top: 1px solid var(--line); border-left: 0; }
  .boss-company-metric:nth-child(4) { border-top: 1px solid var(--line); }
  .boss-insight-grid { grid-template-columns: 1fr; }
  .boss-funds-stack { grid-template-columns: 1fr 1fr; align-items: start; }
  .boss-project-row { grid-template-columns: minmax(200px, 0.9fr) minmax(360px, 1.5fr); }
  .boss-project-row__status { grid-column: 1 / -1; display: flex; align-items: center; justify-content: flex-end; }
  .boss-result-row { grid-template-columns: minmax(180px, 0.7fr) minmax(430px, 1.5fr); }
  .boss-result-row > .button { grid-column: 1 / -1; justify-self: end; }
}

@media (max-width: 720px) {
  body { font-size: 14px; }
  .app-bar__inner, .page-shell { width: min(100% - 24px, 1240px); }
  .page-shell { padding-top: 18px; }
  .brand small { display: none; }
  .app-actions .button { padding-inline: 10px; }
  body:has(#workbenchView:not([hidden])) .app-bar__inner { min-height: 62px; }
  body:has(#workbenchView:not([hidden])) .app-bar .brand > span:last-child { display: none; }
  body:has(#workbenchView:not([hidden])) .app-bar .brand::after { content: "工作台"; font-size: 13px; font-weight: 700; }
  body:has(#workbenchView[data-page="projects"]:not([hidden])) .app-bar .brand::after { content: "我的项目"; }
  body:has(#workbenchView:not([hidden])) .app-bar .brand__mark { width: 36px; height: 36px; }
  body:has(#workbenchView:not([hidden])) #showOpportunities, body:has(#workbenchView:not([hidden])) #showWorkbench { display: none; }
  body:has(#workbenchView:not([hidden])) #resetDemo { margin-right: 112px; padding-inline: 5px; }
  .workbench-identity { align-items: flex-start; flex-direction: column; gap: 12px; }
  .order-workspace-identity { gap: 10px; padding-bottom: 12px; }
  .order-workspace-identity h1 { font-size: 26px; }
  body[data-desktop-shell-role="order"]:is([data-desktop-shell-page="workbench"], [data-desktop-shell-page="projects"]) > .order-workspace-sidebar { display: block; width: min(100% - 24px, 1240px); margin: 14px auto 0; }
  .order-workspace-sidebar__brand, .order-workspace-sidebar__role-label, .order-workspace-sidebar__tools-label { display: none; }
  .order-workspace-sidebar__navigation { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  .order-workspace-sidebar__navigation button { min-height: 44px; padding: 7px 5px; border: 0; border-radius: var(--radius-small); background: transparent; color: var(--text-soft); font-size: 13px; font-weight: 700; }
  .order-workspace-sidebar__navigation button.is-active { background: var(--primary-soft); color: var(--primary); }
  body[data-desktop-shell-role="order"] > .order-workspace-sidebar .order-workspace-role-menu { position: fixed; z-index: 12; top: 9px; right: 12px; width: auto; }
  .order-workspace-role-menu > summary { min-height: 44px; gap: 7px; padding-inline: 6px; border: 0; background: transparent; color: var(--primary); }
  .order-workspace-role-menu > summary::after { width: 7px; height: 7px; border-right: 1px solid var(--primary); border-bottom: 1px solid var(--primary); content: ""; transform: rotate(45deg); }
  .order-workspace-role-context, .order-workspace-role-action { display: none; }
  .order-workspace-role-menu[open] > .workspace-role-switch { position: absolute; top: 44px; right: 0; width: min(320px, calc(100vw - 24px)); padding: 6px; }
  .order-workspace-summary { flex-wrap: nowrap; justify-content: space-between; gap: 8px; padding: 10px 11px; }
  #workbenchView .order-workspace-summary > div { min-height: 0; gap: 4px; border: 0; }
  .order-workspace .workbench-section, .order-workspace .order-workspace-projects { padding: 16px 15px; }
  .order-workspace .panel-heading { align-items: flex-start; flex-direction: row; gap: 10px; }
  .order-workspace .panel-heading > div { min-width: 0; }
  .order-workspace .panel-heading h2 { font-size: 18px; }
  .order-workspace .panel-heading p { font-size: 12px; }
  .order-workspace .workbench-item { padding-block: 13px; }
  .order-workspace .workbench-item__top { gap: 8px; }
  .order-workspace .workbench-item__project { font-size: 14px; }
  .order-workspace .workbench-item__action { margin-top: 8px; font-size: 15px; }
  .order-workspace .workbench-item__footer { gap: 8px; margin-top: 9px; }
  .order-workspace .workbench-item__footer .button, .order-workspace .order-workspace-project-row .button { min-height: 44px; }
  .order-workspace-secondary { grid-template-columns: 1fr; gap: 14px; margin-top: 14px; }
  .order-workspace-history { margin-top: 0; padding-block: 5px; }
  .workspace-role-control { width: 100%; min-width: 0; justify-items: stretch; }
  .workspace-role-switch { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  .workspace-role-switch button { min-width: 0; white-space: normal; }
  .boss-workspace > .panel, .boss-secondary-grid > .panel, .boss-insight-grid > .panel, .boss-funds-stack > .panel { padding: 18px 16px; }
  .boss-workspace__identity { align-items: stretch; gap: 10px; }
  .boss-workspace__identity .workspace-role-control > span, .boss-workspace__identity .workspace-role-control > small { display: none; }
  .boss-workspace__identity .workspace-role-switch { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); overflow-x: auto; }
  .boss-workspace__identity .workspace-role-switch button { min-height: 44px; padding-inline: 5px; font-size: 11px; }
  .boss-company-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .boss-company-metric { padding: 14px 12px; }
  .boss-company-metric:nth-child(odd) { padding-left: 0; border-left: 0; }
  .boss-company-metric:nth-child(n+3) { border-top: 1px solid var(--line); }
  .boss-company-metric > strong, .boss-company-metric--attention > strong { font-size: 22px; }
  .boss-company-metric > small { font-size: var(--type-meta); }
  .boss-insight-grid { grid-template-columns: 1fr; gap: 14px; margin-top: 14px; }
  .boss-funds-stack { display: block; }
  .boss-mobile-funds-summary { display: flex; min-height: 52px; align-items: center; justify-content: space-between; gap: 12px; padding: 0 15px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); color: var(--primary); font-size: 14px; font-weight: 800; cursor: pointer; list-style: none; }
  .boss-mobile-funds-summary::-webkit-details-marker { display: none; }
  .boss-mobile-funds-summary small { color: var(--text-soft); font-size: var(--type-meta); font-weight: var(--weight-semibold); }
  .boss-funds-stack[open] > .boss-mobile-funds-summary { margin-bottom: 14px; }
  .boss-funds-stack > .panel + .panel { margin-top: 14px; }
  .boss-receivable-summary, .boss-receivable-columns, .boss-secondary-grid { grid-template-columns: 1fr; }
  .boss-receivable-summary > div + div { padding-left: 0; border-top: 1px solid var(--line); border-left: 0; }
  .boss-receivable-summary strong { font-size: 30px; }
  .boss-receivable-columns { gap: 22px; }
  .boss-attention-row { grid-template-columns: 1fr; gap: 7px; padding-block: 12px; }
  .boss-attention-row > div:last-child { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 8px; text-align: left; }
  .boss-attention-row .button { min-height: 44px; padding-inline: 4px; }
  .boss-section-heading .read-only-label { align-self: flex-start; }
  .boss-filter { width: 100%; align-items: stretch; flex-direction: column; }
  .boss-filter select { width: 100%; min-height: 44px; }
  .boss-project-row, .boss-result-row { grid-template-columns: 1fr; gap: 12px; }
  .boss-project-row dl, .boss-result-row dl { grid-template-columns: 1fr 1fr; }
  .boss-project-row__status { grid-column: auto; display: grid; justify-items: stretch; }
  .boss-project-row__status .status-badge, .boss-project-row__status .boss-stale-label { justify-self: start; }
  .boss-project-row__status .button, .boss-result-row > .button { grid-column: auto; width: 100%; justify-self: stretch; }
  .boss-project-row__identity span, .boss-project-row__identity small, .boss-project-row dt { font-size: var(--type-meta); }
  .boss-project-row dd { font-size: 13px; }
  .boss-collection-row, .boss-opportunity-row, .boss-detail-row { align-items: flex-start; flex-direction: column; gap: 9px; }
  .boss-collection-row > div:last-child, .boss-opportunity-row > div:last-child, .boss-detail-row__value { width: 100%; justify-items: start; text-align: left; }
  .boss-collection-row .button, .boss-opportunity-row .button, .boss-detail-row .button { min-height: 44px; padding-left: 0; }
  .boss-fact-list > div { grid-template-columns: 1fr; }
  .boss-fact-list dd { grid-row: auto; grid-column: auto; margin-top: 3px; text-align: left; }
  .boss-operating-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .boss-operating-summary > div { padding: 9px 10px; }
  .boss-operating-summary > div:nth-child(odd) { padding-left: 0; border-left: 0; }
  .boss-operating-summary > div:nth-child(n+3) { border-top: 1px solid var(--line); }
  .boss-operating-results .panel-heading .button { width: 100%; }
  .order-workspace-projects { padding: 16px 15px; }
  .order-project-toolbar { align-items: flex-start; gap: 8px; }
  .order-project-search { min-width: 0; flex: 1; }
  .order-project-filter-disclosure { position: relative; flex: 0 0 auto; }
  .order-project-filter-disclosure > summary { display: flex; min-height: 44px; align-items: center; gap: 4px; padding: 0 9px; border: 1px solid var(--line); border-radius: var(--radius-small); color: var(--primary); font-size: 12px; cursor: pointer; list-style: none; }
  .order-project-filter-disclosure > summary::-webkit-details-marker { display: none; }
  .order-project-filter-disclosure[open] > .order-project-filter-fields { position: absolute; z-index: 4; top: 48px; right: 0; display: grid; width: min(270px, calc(100vw - 54px)); gap: 12px; padding: 12px; border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--surface); box-shadow: var(--shadow); }
  .order-project-filter-fields label { font-size: 11px; }
  .order-project-filter-fields select { min-height: 44px; }
  .order-project-categories { gap: 5px 4px; margin: 14px 0 8px; }
  .order-project-categories button { min-height: 38px; padding-inline: 6px; font-size: 11px; }
  .order-project-list-heading { display: none; }
  .order-workspace-project-row { grid-template-columns: 1fr auto; gap: 7px 10px; padding: 14px 0; }
  .order-workspace-project-row__identity { grid-column: 1 / -1; }
  .order-workspace-project-row__stage { grid-column: 1; grid-row: 2; }
  .order-workspace-project-row__todo { grid-column: 2; grid-row: 2; text-align: right; }
  .order-workspace-project-row__summary, .order-workspace-project-row__next { grid-column: 1 / -1; }
  .order-workspace-project-row__summary::before { color: var(--text-soft); content: "当前："; }
  .order-workspace-project-row__next::before { color: var(--text-soft); content: "下一步："; }
  .order-workspace-project-row__updated { grid-column: 1 / -1; }
  .order-workspace-project-row__actions { display: grid; grid-column: 1 / -1; grid-template-columns: 1fr; justify-items: stretch; }
  .order-workspace-project-row .button { width: 100%; }
  .reimbursement-identity { align-items: stretch; }
  .reimbursement-role-summary { align-items: flex-start; flex-direction: column; gap: 10px; }
  .supplier-ledger-panel, .supplier-ledger-view > .panel { padding: 20px 17px; }
  .supplier-inline-create { align-items: stretch; flex-direction: column; }
  .supplier-inline-create .button, .supplier-ledger-row__heading > .button { width: 100%; }
  .supplier-ledger-row__heading, .supplier-record-row__heading { flex-wrap: wrap; }
  .supplier-row-facts, .supplier-fact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .supplier-ledger-header-actions { width: 100%; flex-wrap: wrap; }
  .supplier-ledger-header-actions > .button { flex: 1; }
  .supplier-ledger-view .panel-heading { align-items: stretch; flex-direction: column; }
  .supplier-ledger-view .panel-heading > .button { width: 100%; }
  .supplier-form-grid { grid-template-columns: 1fr; }
  .supplier-form-grid .form-field--span-2 { grid-column: auto; }
  .supplier-ledger-form .task-progress-actions { align-items: stretch; flex-direction: column; }
  .supplier-form-actions { width: 100%; justify-content: stretch; }
  .supplier-form-actions > .button { flex: 1 1 100%; }
  .supplier-period-control { align-items: stretch; flex-direction: column; }
  .supplier-period-control select { min-height: 44px; }
  .supplier-record-actions { align-items: stretch; flex-direction: column; }
  .supplier-record-actions > .button { width: 100%; }
  .supplier-allocation-form > label { grid-template-columns: 1fr; }
  .reimbursement-section-actions { flex: 0 0 auto; }
  .opportunity-header-actions { width: 100%; justify-content: flex-start; }
  .workbench-summary { grid-template-columns: 1fr; }
  .workbench-summary > div { min-height: 54px; border-top: 1px solid var(--line); border-left: 0; }
  .workbench-summary > div:first-child { border-top: 0; }
  .workbench-section { padding: 20px 17px; }
  .workbench-item__footer { align-items: stretch; flex-direction: column; }
  .workbench-item__footer .button { width: 100%; }
  .processed-detail__facts { grid-template-columns: 1fr; }
  .processed-detail__actions .button { width: 100%; }
  .todo-process-fields { grid-template-columns: 1fr; }
  .form-field--full { grid-column: auto; }
  .project-identity { align-items: flex-start; }
  .project-identity__actions { align-items: flex-end; flex-direction: column; }
  .project-identity h1 { font-size: 25px; }
  .progress-panel, .finance-panel, .operating-result-section, .finance-items-section, .supplier-cost-section, .internal-labor-section, .cost-collection-section, .task-section, .startup-section, .todo-section, .supporting-section, .project-completion-section, .after-sales-section { padding: 20px 17px; }
  .project-lifecycle-summary, .project-completion-review { grid-template-columns: 1fr 1fr; }
  .project-lifecycle-actions .button, .after-sales-row__actions .button { width: 100%; }
  .after-sales-row__heading { flex-direction: column; }
  .operating-result-groups { grid-template-columns: 1fr; }
  .panel-heading { flex-direction: column; gap: 10px; }
  .panel-heading .button { width: 100%; }
  .panel-heading .button--text { width: auto; align-self: flex-start; padding-left: 0; }
  .progress-facts { grid-template-columns: 1fr 1fr; }
  .progress-facts > div { padding: 10px 12px; border-top: 1px solid var(--line); }
  .progress-facts > div:nth-child(odd) { padding-left: 0; border-left: 0; }
  .progress-facts > div:nth-child(-n+2) { border-top: 0; }
  .blocker-box { grid-template-columns: 1fr; }
  .next-step { border-top: 1px solid var(--warning-line); border-left: 0; }
  .blocker-box.is-clear .next-step { border-top-color: #b6d4cb; border-left: 0; }
  .blocker-form { grid-template-columns: 1fr; }
  .form-actions { padding-bottom: 0; }
  .form-actions .button { flex: 1; }
  .task-row__header { grid-template-columns: 1fr auto; gap: 12px; }
  .finance-item-row__header { grid-template-columns: 1fr auto; gap: 12px; }
  .supplier-cost-row__header { grid-template-columns: 1fr auto; gap: 12px; }
  .supplier-cost-row__header > div:first-child { grid-column: 1 / -1; }
  .supplier-cost-row__owner { grid-column: 1; }
  .supplier-cost-row__header .update-supplier-cost-button { grid-column: 1 / -1; width: 100%; }
  .task-owner { grid-column: 1; }
  .task-status { grid-column: 2; }
  .update-task-button { grid-column: 1 / -1; width: 100%; }
  .update-finance-button { grid-column: 1 / -1; width: 100%; }
  .finance-item-actions { grid-column: 1 / -1; align-items: stretch; }
  .finance-item-actions .button { width: 100%; }
  .task-row__details, .finance-item-row__details, .supplier-cost-row__details, .task-progress-fields, .finance-progress-fields, .supplier-cost-form-grid { grid-template-columns: 1fr; gap: 11px; }
  .supplier-cost-amounts { grid-template-columns: 1fr 1fr; }
  .supplier-cost-amounts > div { border-top: 1px solid var(--line); }
  .supplier-cost-amounts > div:nth-child(-n+2) { border-top: 0; }
  .supplier-cost-amounts > div:nth-child(odd) { border-left: 0; }
  .cost-collection-summary { grid-template-columns: 1fr; }
  .cost-collection-summary > div { border-top: 1px solid var(--line); }
  .cost-collection-summary > div:first-child { border-top: 0; }
  .cost-collection-summary > div { border-left: 0; }
  .cost-collection-panel__heading { flex-direction: column; gap: 8px; }
  .cost-source-row { grid-template-columns: 1fr; gap: 10px; }
  .cost-source-row__action { align-items: stretch; justify-content: flex-start; flex-direction: column; }
  .cost-source-row__action .button { width: 100%; }
  .cost-collection-question-grid, .cost-collection-followup, .cost-role-handoff { grid-template-columns: 1fr; }
  .startup-layout, .startup-task-fields { grid-template-columns: 1fr; }
  .startup-subheading { flex-direction: column; gap: 8px; }
  .startup-subheading small { max-width: none; text-align: left; }
  .startup-actions, .startup-direct-action { align-items: stretch; flex-direction: column; }
  .startup-actions .button, .startup-direct-action .button { width: 100%; }
  .task-material-references { flex-direction: column; gap: 3px; }
  .startup-heading-actions, .project-material-heading-actions { width: 100%; justify-content: space-between; }
  .section-heading-actions { width: 100%; justify-content: space-between; }
  .converted-project-context { align-items: flex-start; }
  .finance-item-row--complete .finance-item-row__details, .optional-context-fields { grid-template-columns: 1fr; }
  .receipt-fields { grid-template-columns: 1fr; }
  .receipt-facts { grid-template-columns: 1fr; }
  .receipt-facts > div { padding: 9px 0; border-top: 1px solid var(--line); border-left: 0; }
  .receipt-facts > div:first-child { border-top: 0; }
  .invoice-context-grid, .invoice-form-grid, .invoice-finance-actions { grid-template-columns: 1fr; }
  .invoice-context-grid > div { border-top: 1px solid var(--line); border-left: 0; }
  .invoice-context-grid > div:first-child { border-top: 0; }
  .invoice-comparison-row { grid-template-columns: 1fr; gap: 3px; }
  .invoice-comparison-row b { grid-column: auto; }
  .finance-invoice-record { align-items: flex-start; flex-direction: column; }
  .form-field--span-2 { grid-column: auto; }
  .task-row__details > div { padding-top: 10px; border-top: 1px solid var(--line); }
  .task-row__details > div:first-child { padding-top: 0; border-top: 0; }
  .finance-item-row__details > div { padding-top: 10px; border-top: 1px solid var(--line); }
  .finance-item-row__details > div:first-child { padding-top: 0; border-top: 0; }
  .task-progress-actions { align-items: stretch; flex-direction: column; }
  .form-actions-inline { align-items: stretch; flex-direction: column; }
  .todo-process-actions__buttons { align-items: stretch; flex-direction: column; }
  .task-progress-actions .button { width: 100%; }
  .source-project-context { padding: 20px 17px; }
  .opportunity-list-panel, .opportunity-detail-panel { padding: 20px 17px; }
  .opportunity-list-item { grid-template-columns: 1fr; gap: 10px; }
  .opportunity-list-item__next, .opportunity-list-item__actions { grid-column: auto; grid-row: auto; }
  .opportunity-list-item__actions { align-items: stretch; }
  .opportunity-list-item__actions .button { width: 100%; }
  .opportunity-form-grid, .opportunity-inquiry-fields, .opportunity-facts, .opportunity-now { grid-template-columns: 1fr; }
  .opportunity-facts > div { padding-inline: 0; }
  .opportunity-facts > div:nth-child(2) { border-top: 1px solid var(--line); }
  .opportunity-facts > div:nth-child(even) { border-left: 0; }
  .opportunity-now > div { border-top: 1px solid var(--line); border-left: 0; }
  .opportunity-now > div:first-child { border-top: 0; }
  .opportunity-detail-actions { align-items: stretch; flex-direction: column; }
  .opportunity-detail-actions .button { width: 100%; }
  .opportunity-detail-heading { align-items: flex-start; flex-direction: column; }
  .opportunity-back-button { width: 100%; justify-content: flex-start; }
  .opportunity-materials__heading { flex-direction: column; }
  .opportunity-materials__actions { width: 100%; justify-content: space-between; }
  .opportunity-material-list { grid-template-columns: 1fr; }
  .reimbursement-steps { grid-template-columns: 1fr 1fr; }
  .reimbursement-steps li:nth-child(3) { border-top: 1px solid var(--line); border-left: 0; }
  .reimbursement-steps li:nth-child(4) { border-top: 1px solid var(--line); }
  .role-business-work-panel, .reimbursement-upload, .whole-bill-panel, .reimbursement-merge-panel, .reimbursement-detail-panel, .reimbursement-batch-board-panel, .reimbursement-review-panel, .reimbursement-pending-panel, .reimbursement-payment-panel { padding: 20px 17px; }
  .role-business-work-card__heading { align-items: flex-start; flex-direction: column; }
  .role-business-work-card__facts { grid-template-columns: 1fr 1fr; }
  .role-business-work-card__actions .button { width: 100%; }
  .site-labor-panel { padding: 20px 17px; }
  .site-labor-form-grid { grid-template-columns: 1fr; }
  .site-labor-people > div { grid-template-columns: 1fr 1fr; }
  .site-labor-conflicts > label, .site-labor-project-row { grid-template-columns: 1fr; }
  .site-labor-project-row__actions { align-items: stretch; flex-direction: column; }
  .site-labor-project-row .button { width: 100%; }
  .site-labor-confirm-facts, .internal-labor-summary { grid-template-columns: 1fr 1fr; }
  .site-labor-confirm-facts > div:nth-child(odd), .internal-labor-summary > div:nth-child(odd) { border-left: 0; }
  .site-labor-confirm-facts > div:nth-child(n+3), .internal-labor-summary > div:nth-child(n+3) { border-top: 1px solid var(--line); }
  .site-labor-record-row { grid-template-columns: 1fr; gap: 5px; }
  .site-labor-record-row .button { width: 100%; }
  .internal-labor-actions { align-items: stretch; flex-direction: column; }
  .internal-labor-actions > div { align-items: stretch; flex-direction: column; }
  .internal-labor-actions .button { width: 100%; }
  .reimbursement-upload-actions { align-items: stretch; flex-direction: column; }
  .reimbursement-upload-actions .button { width: 100%; }
  .reimbursement-expense-row__heading, .reimbursement-review-row__heading { align-items: flex-start; flex-direction: column; gap: 6px; }
  .reimbursement-recognition-grid, .reimbursement-assignment-grid, .reimbursement-project-options, .reimbursement-review-row__facts { grid-template-columns: 1fr; }
  .reimbursement-recognition-actions { align-items: stretch; flex-direction: column; }
  .reimbursement-recognition-actions .button { width: 100%; }
  .reimbursement-batch-summary { grid-template-columns: 1fr 1fr; }
  .reimbursement-batch-summary > div:nth-child(3) { border-top: 1px solid var(--line); border-left: 0; }
  .reimbursement-batch-summary > div:nth-child(4) { border-top: 1px solid var(--line); }
  .reimbursement-merge-row, .reimbursement-pending-row { grid-template-columns: 1fr; align-items: stretch; }
  .reimbursement-merge-row .button, .reimbursement-pending-row .button { width: 100%; }
  .reimbursement-merge-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .voucher-preview-card { flex-basis: 124px; grid-template-rows: 76px auto auto; }
  .whole-bill-image { grid-template-columns: minmax(0, 1fr) 82px; }
  .voucher-preview-dialog__content { min-height: 220px; padding: 12px; }
  .voucher-preview-dialog__content > iframe { min-height: 460px; }
  .whole-bill-row { grid-template-columns: 22px minmax(0, 1fr) auto; }
  .whole-bill-row time { grid-column: 2; }
  .reimbursement-review-actions, .reimbursement-payment-form { grid-template-columns: 1fr; }
  .reimbursement-review-actions .button, .reimbursement-payment-form .button { width: 100%; }
  .reimbursement-batch-card__heading, .reimbursement-batch-card__actions { align-items: stretch; flex-direction: column; }
  .reimbursement-batch-card__actions .button { width: 100%; }
  .reimbursement-batch-card__facts, .reimbursement-payment-context { grid-template-columns: 1fr 1fr; }
  .reimbursement-payment-context > div:nth-child(3) { grid-column: 1 / -1; border-top: 1px solid var(--line); border-left: 0; }
  .reimbursement-batch-detail-row { grid-template-columns: 1fr auto; }
  .reimbursement-batch-detail-row .status-badge { grid-column: 1 / -1; justify-self: start; }
  .reimbursement-review-result { align-items: stretch; flex-direction: column; }
  .reimbursement-review-total { align-items: flex-start; flex-direction: column; gap: 4px; }
  .source-project-task__heading { flex-direction: column; gap: 10px; }
  .source-project-task__facts { grid-template-columns: 1fr; }
  .source-project-task__facts > div { padding-inline: 0; }
  .source-project-task__facts > div:nth-child(2) { border-top: 1px solid var(--line); }
  .source-project-task__facts > div:nth-child(even) { border-left: 0; }
  .progress-history__item { grid-template-columns: 1fr; gap: 3px; }
  .todo-item { grid-template-columns: 1fr; gap: 7px; }
  .todo-item__meta { text-align: left; }
}

@media (max-width: 460px) {
  #projectView > .project-identity { gap: 8px; padding-bottom: 13px; }
  #projectView .project-identity__actions { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 7px; }
  #projectView .project-identity__actions .project-back-button { grid-column: auto; justify-self: end; justify-content: flex-end; width: auto; min-height: 36px; padding-inline: 7px; }
  #projectView .project-subtitle { font-size: 12px; line-height: 1.5; }
  #projectView .overview-grid { gap: 10px; }
  #projectView .progress-panel, #projectView .finance-panel { padding: 14px 14px; }
  #projectView .progress-panel > .panel-heading, #projectView .finance-panel > .panel-heading, #projectView .todo-section > .panel-heading { flex-direction: row; align-items: center; gap: 8px; }
  #projectView .panel-heading h2 { font-size: 17px; }
  #projectView .panel-heading .button--text { flex-shrink: 0; padding-inline: 4px; font-size: 12px; }
  #projectView .project-overview-primary { grid-template-columns: minmax(0, 1fr); gap: 9px; }
  #projectView .situation-summary { padding: 11px 12px; }
  #projectView .situation-summary strong { margin-top: 3px; font-size: 16px; }
  #projectView .situation-summary p { display: -webkit-box; overflow: hidden; font-size: 12px; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  #projectView .project-next-action { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 8px; padding: 8px 0 0; border-top: 1px solid var(--line); border-left: 0; }
  #projectView .project-next-action > :is(span, strong, small) { grid-column: 1; }
  #projectView .project-next-action > strong { margin-top: 3px; }
  #projectView .project-next-action > .button { grid-column: 2; grid-row: 1 / 4; min-height: 44px; margin: 0; }
  #projectView .blocker-box { margin-top: 9px; }
  #projectView .blocker-box__main { padding: 8px 10px; }
  #projectView .blocker-box__main p { font-size: 11px; }
  #projectView .progress-facts { margin-top: 9px; padding-top: 7px; }
  #projectView .progress-facts > div { padding-block: 7px; }
  #projectView .progress-facts > :is(.stage-fact, div:last-child) { display: none; }
  #projectView .stage-fact small { display: none; }
  #projectView .project-finance-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); padding-block: 5px 2px; }
  #projectView .project-finance-summary > div { padding: 6px 9px; }
  #projectView .project-finance-summary > div:nth-child(odd) { padding-left: 0; border-left: 0; }
  #projectView .project-finance-summary > div:nth-child(n+3) { border-top: 1px solid var(--line); }
  #projectView .project-finance-summary dd { font-size: 17px; }
  #projectView .project-finance-detail > summary { min-height: 28px; }
  #projectView .todo-section { padding: 13px 14px; }
  #projectView .todo-item { grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
  #projectView .todo-item__meta { text-align: right; }
  #projectView .todo-item__meta strong { font-size: 11px; }
  #projectView .todo-item__meta > span { display: none; }
  #projectView .todo-item__meta .project-todo-action { min-height: 44px; padding-inline: 9px; }
  .project-identity { flex-direction: column; gap: 10px; }
  .project-identity__actions { width: 100%; align-items: stretch; }
  .project-identity__actions .button { width: 100%; }
  .app-actions { gap: 5px; }
  .brand > span:last-child { display: none; }
  .app-actions .button { min-height: 36px; padding-inline: 8px; font-size: 12px; }
  .project-identity h1 { font-size: 22px; }
  .situation-summary strong { font-size: 18px; }
  .money-grid { grid-template-columns: 1fr; }
  .money-grid > div:nth-child(odd) { padding-left: 12px; border-right: 0; }
  .money-primary--comparison { grid-template-columns: 1fr; }
  .money-primary--comparison > div { padding-inline: 0; border: 0; }
  .money-primary--comparison > div:not([hidden]) + div:not([hidden]) { border-top: 1px solid var(--line); }
  .operating-result-metrics, .operating-result-known, .operating-result-costs { grid-template-columns: 1fr; }
  .operating-result-metrics > div { padding-inline: 0; border-top: 1px solid var(--line); border-left: 0 !important; }
  .operating-result-metrics > div:first-child { border-top: 0; }
  .operating-result-metrics > div:nth-child(2) { border-top: 1px solid var(--line); }
  .operating-result-group__heading { align-items: flex-start; flex-direction: column; gap: 3px; }
  .operating-result-group__heading span { text-align: left; }
  .operating-result-details, .operating-result-history { padding-inline: 12px; }
  .form-actions { flex-direction: column; }
  .workspace-role-switch button, .reimbursement-review-actions .button, .reimbursement-merge-actions .button, .reimbursement-submit-actions .button, .reimbursement-pending-row .button { min-height: 44px; }
  .supplier-ledger-panel .button, .supplier-ledger-view .button { min-height: 44px; }
  .site-labor-reuse { align-items: stretch; }
  .site-labor-panel .button { min-height: 44px; }
  .site-labor-reuse .button, .site-labor-people label { min-height: 48px; }
  .site-labor-reuse small { text-align: left; }
}

#projectView > :is(.task-section, .finance-items-section, .supplier-cost-section, .internal-labor-section, .cost-collection-section, .project-completion-section, .operating-result-section, .supporting-section, .after-sales-section) {
  margin-top: 14px;
  padding: 16px 20px;
}
#projectView > :is(.task-section, .finance-items-section, .supplier-cost-section, .internal-labor-section, .cost-collection-section, .project-completion-section, .operating-result-section, .supporting-section, .after-sales-section) > .panel-heading {
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}
#projectView > :is(.task-section, .finance-items-section, .supplier-cost-section, .internal-labor-section, .cost-collection-section, .project-completion-section, .operating-result-section, .supporting-section, .after-sales-section) > .panel-heading h2 {
  font-size: 18px;
}
#projectView > :is(.task-section, .finance-items-section, .supplier-cost-section, .internal-labor-section, .cost-collection-section, .project-completion-section, .operating-result-section, .supporting-section, .after-sales-section) > .panel-heading p {
  margin-top: 3px;
  font-size: 12px;
}
#projectView :is(.task-row, .finance-item-row, .supplier-cost-row) { padding-block: 12px; }
#projectView :is(.task-row--attention, .finance-item-row--attention) { padding-block: 12px; }
#projectView :is(.task-row__header, .finance-item-row__header, .supplier-cost-row__header) { column-gap: 12px; }
#projectView :is(.task-identity h3, .supplier-cost-row__header h3) { font-size: 15px; }
#projectView :is(.task-row__details, .finance-item-row__details) { gap: 12px; margin-top: 10px; padding-top: 9px; }
#projectView .supplier-cost-row__details { gap: 10px 12px; margin-top: 9px; }
#projectView .supplier-cost-amounts { margin-top: 10px; }
#projectView .supplier-cost-amounts > div { padding: 8px 10px; }
#projectView .supplier-cost-row__links { margin-top: 8px; padding-top: 7px; }
#projectView .internal-labor-summary > div { padding: 9px 10px; }
#projectView .internal-labor-actions { margin-top: 9px; }
#projectView .cost-collection-summary { margin-top: 8px; }
#projectView .cost-collection-summary > div { padding: 9px 10px; }
#projectView .cost-collection-summary .section-empty { padding: 10px 12px; }
#projectView .project-lifecycle-summary { gap: 8px; margin-bottom: 10px; }
#projectView .project-lifecycle-summary > div { padding: 8px 10px; }
#projectView .project-lifecycle-actions { gap: 7px; }
#projectView .project-record-history { margin-top: 9px; }
#projectView .project-record-history > summary {
  min-height: 34px;
  align-items: center;
  color: var(--text-soft);
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
}
#projectView .progress-history.project-record-history { padding-block: 7px; }
#projectView .progress-history__heading > span:first-child { color: var(--text); font-size: 13px; font-weight: 700; }
#projectView .finance-invoice-history > summary { display: flex; }
#projectView .supporting-section .prototype-file-note {
  margin: 0 0 8px;
  padding: 0;
  background: transparent;
  color: var(--text-soft);
}
#projectView .project-material-list { gap: 8px; margin-top: 8px; }
#projectView .project-material-list .opportunity-material-item { grid-template-columns: 44px minmax(0, 1fr); gap: 9px; padding: 8px; }
#projectView .project-material-list :is(.opportunity-material-item img, .opportunity-material-item__file) { width: 44px; height: 42px; }
#projectView .project-material-list .opportunity-material-item__content > :is(a, strong) { margin-top: 3px; font-size: 12px; }
#projectView .project-material-history > summary { display: flex; }
#projectView .after-sales-row { padding-block: 11px; }
#projectView .after-sales-row__actions { margin-top: 7px; }
#projectView .after-sales-row--complete { opacity: 0.72; }

@media (max-width: 720px) {
  #projectView > :is(.task-section, .finance-items-section, .supplier-cost-section, .internal-labor-section, .cost-collection-section, .project-completion-section, .operating-result-section, .supporting-section, .after-sales-section) {
    margin-top: 10px;
    padding: 13px 14px;
  }
  #projectView > :is(.task-section, .finance-items-section, .supplier-cost-section, .internal-labor-section, .cost-collection-section, .project-completion-section, .operating-result-section, .supporting-section, .after-sales-section) > .panel-heading {
    align-items: stretch;
    gap: 7px;
    margin-bottom: 9px;
  }
  #projectView > :is(.task-section, .finance-items-section, .supplier-cost-section, .internal-labor-section, .cost-collection-section, .project-completion-section, .operating-result-section, .supporting-section, .after-sales-section) > .panel-heading h2 {
    font-size: 16px;
  }
  #projectView :is(.section-heading-actions, .project-material-heading-actions) { gap: 8px; }
  #projectView :is(.section-heading-actions, .project-material-heading-actions) > .button { width: auto; min-height: 44px; padding-inline: 10px; }
  #projectView :is(.task-row, .finance-item-row, .supplier-cost-row) { padding-block: 11px; }
  #projectView :is(.task-row__header, .finance-item-row__header, .supplier-cost-row__header) { gap: 7px 9px; }
  #projectView :is(.task-row__details, .finance-item-row__details, .supplier-cost-row__details) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 10px; }
  #projectView :is(.task-row__details, .finance-item-row__details) > div { padding-top: 0; border-top: 0; }
  #projectView :is(.task-row__details, .finance-item-row__details, .supplier-cost-row__details) > div:first-child { grid-column: 1 / -1; }
  #projectView .finance-item-row--complete .finance-item-row__details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #projectView .finance-item-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 8px; }
  #projectView .finance-item-actions > .update-finance-button { grid-column: 1 / -1; }
  #projectView :is(.update-task-button, .update-finance-button, .update-supplier-cost-button, .finance-item-actions .button, .project-lifecycle-actions .button, .after-sales-row__actions .button, .internal-labor-actions .button, .project-record-history > summary) { min-height: 44px; }
  #projectView .supplier-cost-amounts > div { padding: 7px 8px; }
  #projectView .project-lifecycle-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #projectView .project-lifecycle-actions .button { padding-inline: 7px; font-size: 11px; }
  #projectView .project-material-list { grid-template-columns: minmax(0, 1fr); }
  #projectView .project-material-list .opportunity-material-item { padding: 7px; }
  #projectView .after-sales-row__heading { flex-direction: row; }
}

#reimbursementView[data-workspace-role-view="employee"] { max-width: 760px; }
#reimbursementView[data-workspace-role-view="employee"] .reimbursement-identity { align-items: center; margin-bottom: 22px; }
#reimbursementView[data-workspace-role-view="employee"] .reimbursement-identity .context-label { display: none; }
#reimbursementView[data-workspace-role-view="employee"] .workspace-role-control { position: relative; min-width: 0; }
#reimbursementView[data-workspace-role-view="employee"] .workspace-role-control > span,
#reimbursementView[data-workspace-role-view="employee"] .workspace-role-control > small,
#reimbursementView[data-workspace-role-view="employee"] .workspace-role-control > .workspace-role-switch { display: none; }
#reimbursementView[data-workspace-role-view="employee"] .workspace-role-control.is-expanded > .workspace-role-switch { position: absolute; z-index: 8; top: calc(100% + 6px); right: 0; display: grid; width: 172px; padding: 5px; }
#reimbursementView[data-workspace-role-view="employee"] .workspace-role-control.is-expanded > .workspace-role-switch button { min-height: 44px; text-align: left; }
.employee-role-toggle { min-height: 44px; }
#reimbursementView[data-workspace-role-view="finance"] .employee-role-toggle { display: none; }
.employee-identity-control { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: -8px 0 16px; color: var(--text-soft); font-size: var(--type-meta); }
.employee-identity-control select { min-height: var(--control-height-touch); padding: 0 10px; border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--surface); color: var(--text); font: inherit; font-weight: var(--weight-medium); }
.employee-reimbursement-home { display: grid; gap: 24px; }
.employee-reimbursement-start { width: 100%; min-height: 50px; font-size: var(--type-body); }
.employee-reimbursement-section { min-width: 0; }
.employee-section-heading { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 11px; }
.employee-section-heading h2 { margin: 0; color: var(--text); font-size: var(--type-title-small); }
.employee-section-heading > span { color: var(--text-soft); font-size: var(--type-meta); }
.employee-empty-note { margin: 0; color: var(--text-soft); font-size: var(--type-body-small); line-height: var(--type-leading-body); }
.employee-returned-row { padding: 14px 15px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.employee-returned-row + .employee-returned-row { margin-top: 9px; }
.employee-returned-row__heading { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.employee-returned-row__heading > span, .employee-return-context__heading > span { padding: 3px 7px; border-radius: var(--radius-pill); background: var(--warning-soft); color: var(--warning); font-size: var(--type-meta); font-weight: var(--weight-semibold); }
.employee-returned-row__heading > strong { font-size: 14px; }
.employee-returned-row > p, .employee-return-context > p { margin: 8px 0; color: var(--danger); font-size: 12px; line-height: 1.55; }
.employee-returned-row > .button { min-height: 44px; }
.employee-reimbursement-status { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; padding: 14px 0; border-block: 1px solid var(--line); }
.employee-reimbursement-status > div { min-width: 0; padding-inline: 10px; }
.employee-reimbursement-status > div:first-child { padding-left: 0; }
.employee-reimbursement-status > div + div { border-left: 1px solid var(--line); }
.employee-reimbursement-status span, .employee-reimbursement-status strong { display: block; overflow-wrap: anywhere; }
.employee-reimbursement-status span { color: var(--text-soft); font-size: var(--type-meta); }
.employee-reimbursement-status strong { margin-top: 5px; color: var(--text); font-size: var(--type-body); }
.employee-recent-row { display: grid; gap: 5px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.employee-recent-row > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.employee-recent-row > div strong { font-size: var(--type-body-small); }
.employee-recent-row > div span, .employee-recent-row > small { color: var(--text-soft); font-size: var(--type-meta); }
.employee-recent-status { color: var(--neutral); font-size: var(--type-meta); }
.employee-recent-status.is-returned { color: var(--warning); }
.employee-history-toggle { min-height: 44px; margin-top: 5px; padding-inline: 0; }
.employee-compose-heading { margin: 0 0 13px; }
.employee-compose-heading > .button { min-height: 44px; padding-left: 0; }
.employee-compose-heading h2 { margin: 3px 0 0; font-size: 20px; }
.employee-return-context { margin-bottom: 15px; padding: 15px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.employee-return-context__heading h3 { margin: 0; font-size: 16px; }
.employee-return-context__heading > strong { display: block; margin-top: 9px; font-size: 14px; }
.employee-return-context__voucher-count { display: block; margin: 9px 0 5px; color: var(--text-soft); font-size: 12px; }
.employee-return-context__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.employee-return-context__actions .button { min-height: 44px; }
.employee-additional-expense { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 15px; padding: 12px 0; border-top: 1px solid var(--line); }
.employee-additional-expense h3 { margin: 0; font-size: 14px; }
.employee-additional-expense h3 > span { color: var(--text-soft); font-size: 12px; font-weight: 400; }
.employee-additional-expense p { margin: 5px 0 0; color: var(--text-soft); font-size: 12px; }
.employee-additional-expense > .button { min-height: 44px; }
.employee-upload-demo-tools { min-width: 0; }
.employee-upload-demo-tools > summary { display: flex; min-height: 44px; align-items: center; color: var(--text-soft); font-size: 12px; cursor: pointer; }
.employee-upload-demo-tools > div { display: flex; flex-wrap: wrap; gap: 8px; }
.employee-history-card .reimbursement-batch-card__facts { grid-template-columns: repeat(auto-fit, minmax(105px, 1fr)); }
.employee-history-card > details > summary { display: flex; min-height: 44px; align-items: center; }
.reimbursement-batch-summary.is-return-summary { display: block; }
.employee-resubmission-summary { display: grid; gap: 7px; }
.employee-resubmission-summary > span { color: var(--text-soft); font-size: 12px; }
.employee-resubmission-summary > strong:last-child { margin-top: 2px; }
.employee-unknown-amount { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 10px; color: var(--warning); font-size: 12px; }
.employee-unknown-amount .button { min-height: 44px; }
.reimbursement-expense-amount--unknown { color: var(--warning); font-size: 14px; }
.employee-submission-issues { display: grid; gap: 3px; margin-top: 14px; padding: 12px 13px; border-radius: var(--radius-small); background: var(--warning-soft); }
.employee-submission-issues > strong { color: var(--warning); font-size: 13px; }
.employee-submission-issues > button { min-height: 44px; padding: 5px 0; border: 0; background: transparent; color: var(--text); font: inherit; font-size: 12px; text-align: left; cursor: pointer; }

@media (min-width: 1021px) {
  #reimbursementView[data-workspace-role-view="employee"] { max-width: none; }
  #reimbursementView[data-workspace-role-view="employee"] .reimbursement-identity,
  #reimbursementView[data-workspace-role-view="employee"] .employee-identity-control,
  #reimbursementView[data-workspace-role-view="employee"] .employee-reimbursement-home,
  #reimbursementView[data-workspace-role-view="employee"] .employee-compose-heading,
  #reimbursementView[data-workspace-role-view="employee"] > :is(.employee-return-context, .employee-additional-expense, .reimbursement-upload, .whole-bill-panel, .reimbursement-merge-panel, .reimbursement-detail-panel, .reimbursement-batch-board-panel) {
    width: min(100%, 960px);
  }
  #reimbursementView[data-workspace-role-view="employee"] .employee-identity-control {
    margin-top: 0;
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--line);
    border-radius: var(--radius-medium);
    background: var(--surface);
  }
  #reimbursementView[data-workspace-role-view="employee"] .employee-reimbursement-home {
    gap: var(--space-5);
    padding: var(--space-5);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
    box-shadow: var(--shadow);
  }
}

#reimbursementView[data-workspace-role-view="site"] { max-width: 1120px; }
#reimbursementView[data-workspace-role-view="site"] .reimbursement-identity { align-items: center; margin-bottom: 20px; }
#reimbursementView[data-workspace-role-view="site"] .reimbursement-identity .context-label { display: none; }
#reimbursementView[data-workspace-role-view="site"] .workspace-role-control { position: relative; min-width: 0; }
#reimbursementView[data-workspace-role-view="site"] .workspace-role-control > span,
#reimbursementView[data-workspace-role-view="site"] .workspace-role-control > small,
#reimbursementView[data-workspace-role-view="site"] .workspace-role-control > .workspace-role-switch { display: none; }
#reimbursementView[data-workspace-role-view="site"] .workspace-role-control.is-expanded > .workspace-role-switch { position: absolute; z-index: 8; top: calc(100% + 6px); right: 0; display: grid; width: 172px; padding: 5px; }
#reimbursementView[data-workspace-role-view="site"] .workspace-role-control.is-expanded > .workspace-role-switch button { min-height: 44px; text-align: left; }
.site-workspace-intro { display: grid; gap: 13px; margin-bottom: 22px; }
.site-workspace-date { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.site-workspace-date > div > span, .site-workspace-date > div > strong { display: block; }
.site-workspace-date > div > span { color: var(--text-soft); font-size: 12px; }
.site-workspace-date > div > strong { margin-top: 5px; font-size: 22px; }
.site-workspace-date-switch { position: relative; display: inline-flex; min-height: var(--control-height-touch); align-items: center; padding-inline: 10px; border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--surface); color: var(--text); font-size: var(--type-meta); font-weight: var(--weight-semibold); cursor: pointer; }
.site-workspace-date-switch input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.site-workspace-date-switch:focus-within { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
.site-workspace-history-note { margin: -5px 0 0; color: var(--warning); font-size: 12px; font-weight: 700; }
.site-workspace-add { width: 100%; min-height: 48px; }
#reimbursementView[data-workspace-role-view="site"] .role-business-work-panel { margin-bottom: 19px; padding: 14px 16px; }
#reimbursementView[data-workspace-role-view="site"] .role-business-work-panel > .panel-heading { align-items: center; margin-bottom: 7px; }
#reimbursementView[data-workspace-role-view="site"] .role-business-work-panel > .panel-heading p { display: none; }
#reimbursementView[data-workspace-role-view="site"] .role-business-work-panel > .panel-heading h2 { font-size: 15px; }
#reimbursementView[data-workspace-role-view="site"] .role-business-work-empty { padding: 4px 0 2px; }
#reimbursementView[data-workspace-role-view="site"] .role-business-work-card { margin-top: 10px; }
.site-labor-review-card { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.site-labor-review-card h3 { margin: 6px 0 0; font-size: 14px; }
.site-labor-review-card p { margin: 5px 0 0; color: var(--text-soft); font-size: 12px; }
#reimbursementView[data-workspace-role-view="site"] .site-labor-panel { padding: 18px 20px; }
#reimbursementView[data-workspace-role-view="site"] .site-labor-panel > .panel-heading { margin-bottom: 8px; }
#reimbursementView[data-workspace-role-view="site"] .site-labor-panel > .panel-heading p { font-size: var(--type-meta); }
#reimbursementView[data-workspace-role-view="site"] .site-labor-today-list > .site-work-card { align-items: flex-start; gap: 12px; padding: 14px 0; }
.site-work-card__content { flex: 1; }
.site-work-card__heading { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.site-work-card__heading > strong { overflow-wrap: anywhere; font-size: 14px; }
.site-labor-today-list .site-work-card__heading > .site-work-type { display: inline-flex; min-height: 24px; align-items: center; margin: 0; padding: 2px 8px; border-radius: var(--radius-xs); background: var(--surface-subtle); color: var(--text-soft); font-size: var(--type-meta); font-weight: var(--weight-semibold); }
.site-work-card__content > p { margin: 8px 0 0; color: var(--text); font-size: 13px; }
.site-labor-today-list .site-work-card__content > .site-work-card__people { margin-top: 8px; color: var(--text-soft); font-size: 13px; }
.site-work-card__people > i { margin-left: 7px; color: var(--text-soft); font-size: 12px; font-style: normal; }
.site-labor-today-list .site-work-card > .site-work-card__actions { flex-direction: column; align-items: flex-end; gap: 4px; }
.site-work-card__actions > .button { min-height: var(--control-height-touch); padding-inline: 5px; }
.site-work-card__allocation.is-participation-only { max-width: 118px; color: var(--text-soft); font-size: 12px; font-weight: 600; text-align: right; }
.site-labor-project-participation { display: block; margin-top: 4px; color: var(--text-soft); font-size: 12px; }
#reimbursementView[data-workspace-role-view="site"] .reimbursement-pending-panel.is-empty { padding: 16px 18px; }
#reimbursementView[data-workspace-role-view="site"] .reimbursement-pending-panel.is-empty > .panel-heading { align-items: center; margin-bottom: 7px; }
#reimbursementView[data-workspace-role-view="site"] .reimbursement-pending-panel.is-empty > .panel-heading h2 { font-size: 15px; }
#reimbursementView[data-workspace-role-view="site"] .reimbursement-pending-panel.is-empty > .panel-heading p { display: none; }
#reimbursementView[data-workspace-role-view="site"] .reimbursement-pending-panel.is-empty .reimbursement-pending-list { border-top: 0; }
#reimbursementView[data-workspace-role-view="site"] .reimbursement-pending-panel.is-empty .reimbursement-empty-note { padding: 0; }
.site-labor-recent { margin-top: 4px; }
.site-labor-recent-row { display: flex; width: 100%; min-height: 46px; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 0; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: var(--text); font: inherit; text-align: left; cursor: pointer; }
.site-labor-recent-row > strong { font-size: 12px; }
.site-labor-recent-row > span { color: var(--text-soft); font-size: var(--type-meta); }

@media (min-width: 1024px) {
  #reimbursementView[data-workspace-role-view="site"] { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(310px, 0.85fr); grid-template-rows: auto auto auto minmax(0, 1fr); column-gap: 22px; align-items: start; }
  #reimbursementView[data-workspace-role-view="site"] > .reimbursement-identity,
  #reimbursementView[data-workspace-role-view="site"] > .site-workspace-intro { grid-column: 1 / -1; }
  #reimbursementView[data-workspace-role-view="site"] > .role-business-work-panel { grid-column: 2; grid-row: 3; margin-bottom: 0; }
  #reimbursementView[data-workspace-role-view="site"] > .site-labor-panel { grid-column: 1; grid-row: 3 / span 2; }
  #reimbursementView[data-workspace-role-view="site"] > .reimbursement-pending-panel { grid-column: 2; grid-row: 4; margin-top: 15px; }
  #reimbursementView[data-workspace-role-view="site"] .site-workspace-add { width: min(100%, 340px); }
  #reimbursementView[data-workspace-role-view="site"] .site-labor-project-row { grid-template-columns: minmax(0, 1fr) auto; align-items: start; }
  #reimbursementView[data-workspace-role-view="site"] .site-labor-project-row__actions { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
  #reimbursementView[data-workspace-role-view="finance"] { padding-top: 19px; }
  #reimbursementView[data-workspace-role-view="finance"] .reimbursement-identity { align-items: flex-start; flex-direction: row; gap: 9px; margin-bottom: 16px; }
  #reimbursementView[data-workspace-role-view="finance"] .reimbursement-identity > div:first-child { min-width: 0; }
  #reimbursementView[data-workspace-role-view="finance"] .reimbursement-identity h1 { font-size: 22px; }
  #reimbursementView[data-workspace-role-view="finance"] .reimbursement-identity > div:first-child > p:last-child { max-width: 235px; font-size: var(--type-meta); line-height: 1.5; }
  #reimbursementView[data-workspace-role-view="finance"] .workspace-role-control { position: relative; width: auto; min-width: 0; flex: 0 0 auto; }
  #reimbursementView[data-workspace-role-view="finance"] .workspace-role-control > span,
  #reimbursementView[data-workspace-role-view="finance"] .workspace-role-control > small,
  #reimbursementView[data-workspace-role-view="finance"] .workspace-role-control > .workspace-role-switch { display: none; }
  #reimbursementView[data-workspace-role-view="finance"] .employee-role-toggle { display: inline-flex; min-height: var(--control-height-touch); padding-inline: 8px; font-size: var(--type-meta); }
  #reimbursementView[data-workspace-role-view="finance"] .workspace-role-control.is-expanded > .workspace-role-switch { position: absolute; z-index: 8; top: calc(100% + 6px); right: 0; display: grid; width: 172px; padding: 5px; }
  #reimbursementView[data-workspace-role-view="finance"] .workspace-role-control.is-expanded > .workspace-role-switch button { min-height: 44px; text-align: left; }
  #reimbursementView[data-workspace-role-view="employee"] { padding-top: 19px; }
  #reimbursementView[data-workspace-role-view="employee"] .reimbursement-identity { align-items: flex-start; flex-direction: row; gap: 9px; margin-bottom: 18px; }
  #reimbursementView[data-workspace-role-view="employee"] .reimbursement-identity > div:first-child { min-width: 0; }
  #reimbursementView[data-workspace-role-view="employee"] .reimbursement-identity h1 { font-size: 22px; }
  #reimbursementView[data-workspace-role-view="employee"] .reimbursement-identity > div:first-child > p:last-child { max-width: 245px; font-size: 12px; line-height: 1.5; }
  #reimbursementView[data-workspace-role-view="employee"] .workspace-role-control { width: auto; flex: 0 0 auto; }
  #reimbursementView[data-workspace-role-view="employee"] .employee-role-toggle { padding-inline: 10px; }
  #reimbursementView[data-workspace-role-view="employee"] .employee-reimbursement-home { gap: 22px; }
  #reimbursementView[data-workspace-role-view="employee"] .employee-reimbursement-status { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; padding-block: 0; }
  #reimbursementView[data-workspace-role-view="employee"] .employee-reimbursement-status > div { padding: 12px 10px; }
  #reimbursementView[data-workspace-role-view="employee"] .employee-reimbursement-status > div:nth-child(odd) { padding-left: 0; border-left: 0; }
  #reimbursementView[data-workspace-role-view="employee"] .employee-reimbursement-status > div:nth-child(n+3) { border-top: 1px solid var(--line); }
  #reimbursementView[data-workspace-role-view="employee"] .employee-reimbursement-status span { font-size: 11px; }
  #reimbursementView[data-workspace-role-view="employee"] .employee-reimbursement-status strong { font-size: 14px; }
  #reimbursementView[data-workspace-role-view="employee"] :is(.reimbursement-upload, .reimbursement-detail-panel, .reimbursement-merge-panel, .reimbursement-batch-board-panel) { margin-top: 12px; padding: 15px 13px; }
  #reimbursementView[data-workspace-role-view="employee"] .panel-heading { margin-bottom: 11px; }
  #reimbursementView[data-workspace-role-view="employee"] .panel-heading p { font-size: var(--type-meta); }
  #reimbursementView[data-workspace-role-view="employee"] .prototype-file-note { margin-block: 0 10px; font-size: var(--type-meta); line-height: 1.5; }
  #reimbursementView[data-workspace-role-view="employee"] .reimbursement-upload-form { gap: 9px; }
  #reimbursementView[data-workspace-role-view="employee"] .reimbursement-upload-actions { gap: 6px; }
  #reimbursementView[data-workspace-role-view="employee"] .reimbursement-upload-actions .button { min-height: 44px; }
  #reimbursementView[data-workspace-role-view="employee"] .employee-upload-demo-tools > div { display: grid; gap: 6px; }
  #reimbursementView[data-workspace-role-view="employee"] .reimbursement-expense-row { padding-block: 13px; }
  #reimbursementView[data-workspace-role-view="employee"] .reimbursement-expense-row__heading { gap: 8px; }
  #reimbursementView[data-workspace-role-view="employee"] .reimbursement-expense-row__identity h3 { font-size: 14px; }
  #reimbursementView[data-workspace-role-view="employee"] .reimbursement-expense-amount { font-size: 16px; }
  #reimbursementView[data-workspace-role-view="employee"] .reimbursement-expense-amount--unknown { font-size: 12px; }
  #reimbursementView[data-workspace-role-view="employee"] .voucher-preview-list--compact .voucher-preview-card { flex-basis: 104px; grid-template-rows: 58px auto auto; }
  #reimbursementView[data-workspace-role-view="employee"] .voucher-preview-card > span { color: var(--text-soft); font-size: var(--type-meta); font-weight: 400; }
  #reimbursementView[data-workspace-role-view="employee"] .reimbursement-recognition > summary { min-height: 44px; }
  #reimbursementView[data-workspace-role-view="employee"] .reimbursement-recognition-grid { grid-template-columns: 1fr 1fr; }
  #reimbursementView[data-workspace-role-view="employee"] .reimbursement-assignment-grid { gap: 8px; margin-top: 9px; }
  #reimbursementView[data-workspace-role-view="employee"] .reimbursement-batch-summary { grid-template-columns: 1fr 1fr; margin-top: 12px; }
  #reimbursementView[data-workspace-role-view="employee"] .reimbursement-batch-summary > div { padding: 9px; }
  #reimbursementView[data-workspace-role-view="employee"] .reimbursement-batch-summary > div:nth-child(odd) { border-left: 0; }
  #reimbursementView[data-workspace-role-view="employee"] .reimbursement-batch-summary > div:nth-child(n+3) { border-top: 1px solid var(--line); }
  #reimbursementView[data-workspace-role-view="employee"] .reimbursement-batch-summary strong { font-size: 13px; }
  #reimbursementView[data-workspace-role-view="employee"] .reimbursement-submit-actions { gap: 8px; margin-top: 11px; }
  #reimbursementView[data-workspace-role-view="employee"] .reimbursement-submit-actions > span { font-size: var(--type-meta); }
  #reimbursementView[data-workspace-role-view="employee"] .reimbursement-submit-actions .button { min-height: 44px; }
  #reimbursementView[data-workspace-role-view="employee"] .employee-return-context__actions { display: grid; grid-template-columns: 1fr; }
  #reimbursementView[data-workspace-role-view="employee"] .employee-return-context__actions .button { padding-inline: 8px; }
  #reimbursementView[data-workspace-role-view="employee"] .employee-additional-expense { align-items: flex-start; flex-direction: column; gap: 8px; }
  #reimbursementView[data-workspace-role-view="site"] { padding-top: 19px; }
  #reimbursementView[data-workspace-role-view="site"] .reimbursement-identity { align-items: flex-start; flex-direction: row; gap: 9px; margin-bottom: 16px; }
  #reimbursementView[data-workspace-role-view="site"] .reimbursement-identity > div:first-child { min-width: 0; }
  #reimbursementView[data-workspace-role-view="site"] .reimbursement-identity h1 { font-size: 22px; }
  #reimbursementView[data-workspace-role-view="site"] .reimbursement-identity > div:first-child > p:last-child { max-width: 235px; font-size: var(--type-meta); line-height: 1.5; }
  #reimbursementView[data-workspace-role-view="site"] .workspace-role-control { width: auto; flex: 0 0 auto; }
  #reimbursementView[data-workspace-role-view="site"] .employee-role-toggle { min-height: var(--control-height-touch); padding-inline: 8px; font-size: var(--type-meta); }
  #reimbursementView[data-workspace-role-view="site"] .site-workspace-intro { gap: 10px; margin-bottom: 15px; }
  #reimbursementView[data-workspace-role-view="site"] .site-workspace-date > div > strong { font-size: 19px; }
  #reimbursementView[data-workspace-role-view="site"] .role-business-work-panel { margin-bottom: 12px; padding: 12px 13px; }
  #reimbursementView[data-workspace-role-view="site"] .role-business-work-panel > .panel-heading { flex-direction: row; gap: 8px; }
  #reimbursementView[data-workspace-role-view="site"] .site-labor-panel { padding: 15px 13px; }
  #reimbursementView[data-workspace-role-view="site"] .site-labor-panel > .panel-heading { margin-bottom: 7px; }
  #reimbursementView[data-workspace-role-view="site"] .site-labor-panel > .panel-heading h2 { font-size: 16px; }
  #reimbursementView[data-workspace-role-view="site"] .site-labor-panel > .panel-heading p { margin-top: 3px; }
  #reimbursementView[data-workspace-role-view="site"] .site-labor-today-list > .site-work-card { gap: 9px; padding-block: 14px; }
  #reimbursementView[data-workspace-role-view="site"] .site-work-card__heading { align-items: flex-start; flex-direction: column; gap: 5px; }
  #reimbursementView[data-workspace-role-view="site"] .site-work-card__heading > strong { font-size: 13px; }
  #reimbursementView[data-workspace-role-view="site"] .site-work-card > .site-work-card__actions { gap: 0; }
  #reimbursementView[data-workspace-role-view="site"] .site-work-card__actions > b { font-size: 12px; }
  #reimbursementView[data-workspace-role-view="site"] .site-work-card__actions > .button { padding-inline: 3px; font-size: 12px; }
  #reimbursementView[data-workspace-role-view="site"] .site-work-card__allocation.is-participation-only { max-width: 84px; line-height: 1.45; }
  #reimbursementView[data-workspace-role-view="site"] .site-labor-project-row { grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 8px 10px; padding-block: 14px; }
  #reimbursementView[data-workspace-role-view="site"] .site-labor-project-row > div:first-child > strong { font-size: 13px; }
  #reimbursementView[data-workspace-role-view="site"] .site-labor-project-row > div:first-child > span { font-size: 12px; }
  #reimbursementView[data-workspace-role-view="site"] .site-labor-project-row > .status-badge { justify-self: end; max-width: 128px; white-space: normal; }
  #reimbursementView[data-workspace-role-view="site"] .site-labor-project-row__actions { grid-column: 1 / -1; align-items: center; flex-direction: row; justify-content: space-between; gap: 7px; }
  #reimbursementView[data-workspace-role-view="site"] .site-labor-project-row .button { width: auto; padding-inline: 7px; font-size: 12px; }
  #reimbursementView[data-workspace-role-view="site"] .site-labor-project-row .complete-site-work { max-width: 205px; text-align: right; white-space: normal; }
  #reimbursementView[data-workspace-role-view="site"] .reimbursement-pending-panel.is-empty { margin-top: 12px; padding: 14px 13px; }
  #reimbursementView[data-workspace-role-view="site"] .reimbursement-pending-panel.is-empty > .panel-heading { flex-direction: row; gap: 8px; }
  #reimbursementView[data-workspace-role-view="site"] .reimbursement-pending-panel.is-empty .count-label { white-space: nowrap; }
  #reimbursementView[data-workspace-role-view="site"] .site-labor-form { padding: 12px; }
  #reimbursementView[data-workspace-role-view="site"] .site-labor-form-grid { gap: 11px; }
  #reimbursementView[data-workspace-role-view="site"] .site-labor-reuse { align-items: flex-start; }
  #reimbursementView[data-workspace-role-view="site"] .site-labor-reuse small { text-align: left; }
  #reimbursementView[data-workspace-role-view="site"] .site-labor-project-row__actions > .button,
  #reimbursementView[data-workspace-role-view="site"] .site-labor-review-card > .button { min-height: 44px; }
}

@media (min-width: 1021px) {
  body:is([data-desktop-shell-role="order"], [data-desktop-shell-role="boss"], [data-desktop-shell-role="finance"], [data-desktop-shell-role="site"], [data-desktop-shell-role="employee"]) > .page-shell:not([hidden]) {
    --desktop-content-max: var(--desktop-width-task);
    width: min(calc(100% - 220px - var(--desktop-shell-gutter) - var(--desktop-shell-gutter)), var(--desktop-content-max));
    margin-right: auto;
    margin-left: max(calc(220px + var(--desktop-shell-gutter)), calc((100vw + 220px - var(--desktop-content-max)) / 2));
  }

  body[data-desktop-shell-role="boss"] > #bossWorkspaceView,
  body[data-desktop-shell-role="finance"] > #reimbursementView,
  body[data-desktop-shell-role="finance"] > #supplierLedgerView {
    --desktop-content-max: var(--desktop-width-overview);
  }

  .order-workspace-content,
  .boss-insight-grid,
  .boss-secondary-grid,
  .finance-task-layout {
    gap: var(--desktop-column-gap);
  }

  #reimbursementView[data-workspace-role-view="site"] {
    max-width: none;
    column-gap: var(--desktop-column-gap);
  }

  #reimbursementView[data-workspace-role-view="employee"] .reimbursement-identity,
  #reimbursementView[data-workspace-role-view="employee"] .employee-reimbursement-home,
  body[data-desktop-shell-page="history"] #reimbursementView[data-workspace-role-view="employee"] > .reimbursement-batch-board-panel {
    width: min(100%, 1200px);
    margin-inline: auto;
  }

  #reimbursementView[data-workspace-role-view="employee"] .reimbursement-identity {
    align-items: flex-end;
  }

  #reimbursementView[data-workspace-role-view="employee"] .employee-identity-control {
    width: min(300px, 38%);
    flex: 0 0 min(300px, 38%);
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
  }

  #reimbursementView[data-workspace-role-view="employee"] .employee-identity-control label {
    flex: 0 0 auto;
  }

  #reimbursementView[data-workspace-role-view="employee"] .employee-identity-control select {
    min-width: 0;
    flex: 1;
  }

  #reimbursementView[data-workspace-role-view="employee"] .employee-compose-heading,
  #reimbursementView[data-workspace-role-view="employee"] > :is(.employee-return-context, .employee-additional-expense, .reimbursement-upload, .whole-bill-panel, .reimbursement-merge-panel, .reimbursement-detail-panel),
  body:not([data-desktop-shell-page="history"]) #reimbursementView[data-workspace-role-view="employee"] > .reimbursement-batch-board-panel {
    width: min(100%, var(--desktop-width-form));
    margin-inline: auto;
  }
}

@media (min-width: 1181px) {
  body:is([data-desktop-shell-role="order"], [data-desktop-shell-role="boss"], [data-desktop-shell-role="finance"], [data-desktop-shell-role="site"], [data-desktop-shell-role="employee"]) #projectView:has(.project-section-navigation:not([hidden])) {
    width: min(calc(100% - 270px), var(--desktop-width-project-detail));
    margin-right: auto;
    margin-left: max(244px, calc((100vw + 220px - var(--desktop-width-project-detail)) / 2));
    column-gap: var(--desktop-column-gap);
  }
}

@media (max-width: 1020px) {
  #reimbursementView[data-workspace-role-view="employee"] .reimbursement-identity {
    flex-wrap: wrap;
  }

  #reimbursementView[data-workspace-role-view="employee"] .employee-identity-control {
    order: 3;
    width: 100%;
    margin: 2px 0 0;
  }
}

/* Role Workspace V1: only formal employee/finance/owner/admin surfaces. */
.boss-attention h2 { margin: 0 0 var(--space-3); font-size: var(--type-title-small); }
.boss-attention ul { display: grid; gap: var(--space-3); list-style: none; margin: 0; padding: 0; }
.boss-attention li { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-2) var(--space-4); }
.boss-attention li strong { font-size: var(--type-body-small); color: var(--warning); }
.boss-attention li span { color: var(--text-soft); font-size: var(--type-body-small); }
.boss-metrics { border-block: 1px solid var(--line); padding-block: var(--space-5); }
.boss-metrics dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-5); margin: 0; }
.boss-metrics dl > div { min-width: 0; }
.boss-metrics dt, .boss-metrics small { color: var(--text-soft); font-size: var(--type-body-small); }
.boss-metrics dd { margin: var(--space-2) 0; font-size: 28px; font-weight: var(--weight-semibold); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.boss-metrics dd small { margin-left: var(--space-1); font-weight: var(--weight-regular); }
.boss-metrics .boss-metric-money { font-size: 22px; }
.boss-metrics dl > div > small { display: block; line-height: 1.6; }
.boss-overview :is(h3, p) { overflow-wrap: anywhere; }
.boss-overview h3 { margin: 0; font-size: var(--type-body); }
.boss-overview .role-workspace-secondary h2 { font-size: var(--type-title-small); }
.boss-object-list p { margin: var(--space-2) 0 0; color: var(--text-soft); font-size: var(--type-body-small); }
.boss-project-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: var(--space-3); padding-block: var(--space-4); border-bottom: 1px solid var(--line); }
.boss-project-row:last-child, .boss-payment-row:last-child { border-bottom: 0; }
.boss-payment-row { padding-block: var(--space-4); border-bottom: 1px solid var(--line); }
.boss-payment-row > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-2); }
.boss-payment-row > div > strong { font-variant-numeric: tabular-nums; }
.boss-overview [data-boss-payment-content] { border-top: 1px solid var(--line); }
.boss-overview [data-boss-payment-content]:empty { border: 0; }
@media (max-width: 1199px) {
  .boss-metrics dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .boss-metrics { padding-block: var(--space-4); }
  .boss-metrics dl { gap: var(--space-4); }
  .boss-attention li { display: grid; gap: var(--space-1); }
  .boss-project-row { grid-template-columns: minmax(0, 1fr) auto; }
  .boss-project-row > button { grid-column: 1 / -1; justify-self: start; min-height: 44px; }
  .boss-overview .button { min-height: 44px; }
}
.role-workspace { display: grid; gap: var(--space-5); min-width: 0; }
.role-workspace-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); gap: var(--space-5); align-items: start; }
.role-workspace-main, .role-workspace-secondary { display: grid; gap: var(--space-5); min-width: 0; }
.role-workspace :is(h2, h3) { margin-top: 0; }
.role-workspace .panel-heading { flex-wrap: wrap; gap: var(--space-3); }
.role-workspace .panel-heading > div { flex: 1 1 180px; min-width: 0; }
.role-workspace .formal-reimbursement-section { min-width: 0; }
.role-workspace-secondary .formal-reimbursement-section { padding: var(--space-4); }
.role-workspace-main .formal-attribution-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.role-workspace-secondary :is(.formal-admin-project-row, .formal-admin-form-grid) { grid-template-columns: minmax(0, 1fr); }
.role-workspace-secondary .formal-admin-project-row > .button { justify-self: start; }
.role-workspace-secondary .formal-admin-project-row > dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.role-workspace-secondary .formal-project-row button { align-items: flex-start; gap: var(--space-3); }
.role-workspace-secondary .formal-project-row button > span:last-child { flex-shrink: 0; font-size: var(--type-body-small); }
.role-workspace-secondary .formal-payment-history__item { grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: var(--space-3) var(--space-4); }
.role-workspace-secondary .formal-payment-history__item > * { min-width: 0; }
.role-workspace-secondary .formal-payment-history__item dl { grid-column: 1 / -1; width: 100%; }
.role-workspace-secondary .formal-payment-history__item .button { grid-column: 1 / -1; justify-self: start; }
.role-workspace .formal-payment-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.role-workspace .formal-attribution-card { border: 0; border-radius: 0; border-bottom: 1px solid var(--line); padding: var(--space-4) 0; }
.role-workspace .formal-attribution-card:last-child { border-bottom: 0; }
.role-workspace .formal-admin-assignment-row.is-unassigned { padding: var(--space-4) 0 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; background: transparent; }
.role-workspace-metrics { padding: var(--space-4) 0; }
.role-workspace-metrics h2, .role-workspace-records h2 { font-size: var(--type-title-small); }
.role-workspace-metrics dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); margin: var(--space-4) 0 0; }
.role-workspace-metrics dl > div { min-width: 0; }
.role-workspace-metrics dd { margin: 0 0 var(--space-1); font-size: 24px; font-weight: var(--weight-semibold); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.role-workspace-metrics dt, .role-workspace-note { color: var(--text-soft); font-size: var(--type-body-small); line-height: 1.6; }
.role-workspace-metrics .role-metric-amount { grid-column: 1 / -1; border-top: 1px solid var(--line); padding-top: var(--space-4); }
.role-workspace-metrics .role-metric-amount dd { font-size: 22px; }
.role-workspace-disclosure { border-top: 1px solid var(--line); min-width: 0; }
.role-workspace-disclosure > summary { padding: var(--space-4) 0; min-height: 44px; cursor: pointer; font-weight: var(--weight-semibold); }
.role-workspace-disclosure > summary .count-badge { margin-left: var(--space-2); }
.role-workspace-disclosure > summary:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.role-workspace-disclosure > div { padding-bottom: var(--space-4); }
.role-workspace-shortcut { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); padding: var(--space-4) 0; border-top: 1px solid var(--line); }
.role-workspace-shortcut h2 { margin-bottom: var(--space-1); font-size: var(--type-title-small); }
.role-workspace-shortcut p { margin: 0; color: var(--text-soft); font-size: var(--type-body-small); }
.role-return-alert { padding: var(--space-3) var(--space-4); background: var(--danger-soft); border: 1px solid var(--line); border-radius: var(--radius); }
.role-return-alert > strong { color: var(--danger); font-size: var(--type-body-small); }
.role-return-alert .formal-action-row { padding: var(--space-2) 0 0; border: 0; }
.role-return-alert small { color: var(--text-soft); }
.role-workspace--employee .formal-upload-hero h2 { margin: 0 0 var(--space-2); font-size: 22px; }
.role-workspace--employee .formal-upload-hero p { margin-bottom: var(--space-4); }
.role-workspace--employee .formal-employee-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.role-workspace--employee .formal-employee-summary > div { display: flex; flex-direction: column-reverse; border: 0; padding: 0; background: transparent; }
.role-recent-row { display: grid; gap: var(--space-2); border-top: 1px solid var(--line); padding: var(--space-4) 0; }
.role-recent-row strong { overflow-wrap: anywhere; font-size: var(--type-body-small); }
.role-recent-row .status-badge { justify-self: start; }
.role-recent-row small { color: var(--text-soft); }
.formal-shell:has(.role-workspace, .formal-business-tabs) .formal-workspace__heading > .status-badge { background: transparent; border-color: transparent; color: var(--text-soft); font-weight: var(--weight-regular); white-space: nowrap; padding: 0; }
.formal-shell:has(.role-workspace, .formal-business-tabs) .formal-workspace__heading p { font-size: var(--type-body-small); }
@media (max-width: 1199px) {
  .role-workspace-grid, .role-workspace .formal-voucher-layout { grid-template-columns: minmax(0, 1fr); }
  .role-workspace .formal-submit-column { position: static; }
}
@media (max-width: 600px) {
  .formal-shell:has(.role-workspace, .formal-business-tabs) .formal-workspace { padding-top: var(--space-4); }
  .formal-shell:has(.role-workspace, .formal-business-tabs) .formal-workspace__heading { display: flex; flex-wrap: wrap; gap: var(--space-1); }
  .formal-shell:has(.role-workspace, .formal-business-tabs) .formal-workspace__heading h1 { font-size: 22px; }
  .formal-shell:has(.role-workspace, .formal-business-tabs) .formal-workspace__heading > .status-badge { font-size: var(--type-meta); }
  .formal-shell:has(.role-workspace, .formal-business-tabs) .formal-mobile-header { padding-block: var(--space-2); }
  .role-workspace, .role-workspace-grid, .role-workspace-main, .role-workspace-secondary { gap: var(--space-4); }
  .role-workspace .formal-upload-hero { padding: var(--space-4); }
  .role-workspace .formal-upload-hero h2 { font-size: 20px; }
  .role-workspace .formal-payment-form, .role-workspace-main .formal-attribution-facts { grid-template-columns: minmax(0, 1fr); }
  .role-return-alert .formal-action-row { align-items: flex-start; }
  .role-return-alert .formal-action-row .button { flex-shrink: 0; }
  .role-workspace .formal-business-tabs { position: static; }
  .role-workspace .panel-heading > div { flex: 1 1 auto; }
  .role-return-alert .formal-action-row { flex-direction: row; }
  .role-workspace-records .panel-heading { flex-direction: row; align-items: center; }
  .role-workspace .formal-admin-project-row > dl { grid-template-columns: minmax(0, 1fr); }
  .role-workspace-secondary .formal-payment-history__item dl { grid-template-columns: minmax(0, 1fr); }
  .role-workspace-secondary .formal-payment-history__item .button { justify-self: stretch; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
}

@media (max-width: 600px) {
  .formal-shell__main > #projectView[data-formal-project-detail="true"] { width: 100%; padding: 16px 14px 48px; }
  #projectView[data-formal-project-detail="true"] .project-identity { align-items: flex-start; }
  #projectView[data-formal-project-detail="true"] .project-shell-tools { position: sticky; top: 64px; z-index: 5; background: var(--surface); }
  .formal-shell__main > #projectView[data-formal-project-detail="true"] .formal-project-actual-expenses { padding: 16px 14px; }
}
