:root {
  --ink: #18221e;
  --forest: #173d31;
  --forest-2: #0c2c22;
  --paper: #f4f2ec;
  --white: #fff;
  --gold: #d6b46d;
  --sage: #dfe8e1;
  --muted: #6d756f;
  --line: #e2e5df;
  --red: #b54a3d;
  --orange: #b87925;
  --blue: #376c86;
  --shadow: 0 16px 45px rgba(24,34,30,.08);
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); line-height: 1.45; }
button, input, select { font: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
.skip-link { position: fixed; top: -100px; left: 16px; z-index: 100; padding: 10px 16px; border-radius: 10px; background: var(--white); color: var(--forest); }
.skip-link:focus { top: 16px; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 270px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; padding: 22px 16px; overflow-y: auto; background: var(--forest-2); color: var(--white); }
.sidebar-head { display: flex; align-items: center; justify-content: space-between; padding: 0 8px 22px; }
.crm-brand { display: block; width: 175px; }
.crm-brand img { display: block; width: 100%; height: auto; }
.sidebar-close { display: none; width: 38px; height: 38px; border: 0; border-radius: 10px; background: rgba(255,255,255,.1); color: white; font-size: 1.4rem; }
.context-card { display: grid; grid-template-columns: 10px 1fr; gap: 12px; align-items: center; padding: 14px; margin-bottom: 18px; border: 1px solid rgba(255,255,255,.1); border-radius: 14px; background: rgba(255,255,255,.05); }
.context-dot { width: 9px; height: 9px; border-radius: 50%; background: #64cc87; box-shadow: 0 0 0 4px rgba(100,204,135,.12); }
.context-card strong, .context-card small { display: block; }
.context-card strong { font-size: .78rem; }
.context-card small { color: rgba(255,255,255,.5); font-size: .68rem; }
.sidebar-nav { display: grid; gap: 4px; }
.sidebar-nav a, .sidebar-nav button { display: flex; width: 100%; align-items: center; gap: 12px; padding: 10px 12px; border: 0; border-radius: 10px; background: transparent; color: rgba(255,255,255,.65); text-decoration: none; text-align: left; font: inherit; font-size: .82rem; font-weight: 650; cursor: pointer; }
.sidebar-nav a::before, .sidebar-nav button::before { content: attr(data-icon); display: grid; place-items: center; width: 24px; height: 24px; color: var(--gold); font-size: .9rem; }
.sidebar-nav a:hover, .sidebar-nav a.active, .sidebar-nav button:hover, .sidebar-nav button.active { background: rgba(255,255,255,.09); color: var(--white); }
.sidebar-nav button.locked { color: rgba(255,255,255,.38); cursor: not-allowed; }
.sidebar-nav button.locked::before { color: rgba(214,180,109,.5); }
.sidebar-nav button.locked::after { content: "🔒"; margin-left: auto; font-size: .64rem; filter: grayscale(1); opacity: .72; }
.sidebar-nav button.locked:hover { background: rgba(255,255,255,.035); color: rgba(255,255,255,.48); }
.sidebar-footer { display: grid; gap: 7px; padding: 18px 12px 0; margin-top: auto; border-top: 1px solid rgba(255,255,255,.09); }
.sidebar-footer a, .sidebar-footer span { color: rgba(255,255,255,.48); font-size: .7rem; text-decoration: none; }
.app-main { min-width: 0; }
.crm-header { position: sticky; top: 0; z-index: 30; min-height: 72px; display: flex; align-items: center; gap: 20px; padding: 10px 32px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.9); backdrop-filter: blur(14px); }
.sidebar-open { display: none; width: 42px; height: 42px; padding: 9px; border: 1px solid var(--line); border-radius: 10px; background: white; }
.sidebar-open span { display: block; height: 2px; margin: 5px 0; background: var(--forest); }
.global-search { width: min(560px, 48vw); display: flex; align-items: center; gap: 10px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 12px; background: #f8f8f5; color: var(--muted); }
.global-search input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--ink); }
.global-search.locked { opacity: .62; }
.global-search.locked input { cursor: not-allowed; }
.crm-header-actions { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.notification-center { position: relative; }
.icon-button { position: relative; display: grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: white; color: var(--muted); }
.icon-button:hover, .icon-button[aria-expanded="true"] { border-color: rgba(23,61,49,.35); background: #f6f8f4; color: var(--forest); }
.icon-button:disabled { cursor: not-allowed; opacity: .5; }
.notification-badge { position: absolute; top: -5px; right: -5px; min-width: 20px; height: 20px; padding: 0 5px; border: 2px solid white; border-radius: 999px; background: var(--red); color: white; font-size: .59rem; font-weight: 900; line-height: 16px; text-align: center; }
.notification-panel { position: absolute; top: calc(100% + 12px); right: 0; z-index: 45; width: min(390px, calc(100vw - 28px)); overflow: hidden; border: 1px solid var(--line); border-radius: 17px; background: white; box-shadow: 0 22px 70px rgba(12,35,27,.2); }
.notification-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 16px 17px 13px; border-bottom: 1px solid var(--line); }
.notification-panel-head strong, .notification-panel-head small { display: block; }
.notification-panel-head strong { font-family: Georgia, serif; font-size: 1.12rem; font-weight: 500; }
.notification-panel-head small { margin-top: 2px; color: var(--muted); font-size: .64rem; }
.notification-panel-head button { padding: 6px 0; border: 0; background: transparent; color: var(--forest); font-size: .64rem; font-weight: 850; }
.notification-list { max-height: min(480px, calc(100vh - 180px)); overflow-y: auto; }
.notification-item { display: grid; grid-template-columns: 9px minmax(0,1fr) auto; gap: 11px; width: 100%; padding: 14px 17px; border: 0; border-bottom: 1px solid #eef0ec; background: white; color: var(--ink); text-align: left; }
.notification-item:hover { background: #f8faf7; }
.notification-item-dot { width: 8px; height: 8px; margin-top: 5px; border-radius: 50%; background: transparent; }
.notification-item.unread .notification-item-dot { background: var(--gold); box-shadow: 0 0 0 4px rgba(214,180,109,.15); }
.notification-item strong, .notification-item span { display: block; }
.notification-item strong { font-size: .72rem; line-height: 1.35; }
.notification-item span { margin-top: 4px; color: var(--muted); font-size: .64rem; line-height: 1.45; }
.notification-item time { color: var(--muted); font-size: .58rem; white-space: nowrap; }
.notification-empty { padding: 34px 24px; color: var(--muted); font-size: .72rem; text-align: center; }
.notification-footnote { margin: 0; padding: 10px 17px; background: #fafaf7; color: var(--muted); font-size: .58rem; }
.profile-button { display: flex; align-items: center; gap: 10px; padding: 5px 9px 5px 5px; border: 0; border-radius: 12px; background: transparent; text-align: left; }
.avatar { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--sage); color: var(--forest); font-size: .76rem; font-weight: 900; }
.profile-copy { min-width: 0; max-width: 250px; }
.profile-copy strong, .profile-copy small { display: block; }
.profile-copy strong, .profile-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.profile-copy strong { font-size: .78rem; }
.profile-copy small { font-size: .64rem; }
.profile-login { color: var(--forest); font-weight: 850; }
.profile-role { color: var(--muted); }
.profile-capability { color: var(--orange); font-weight: 800; }
.crm-content { padding: 28px 32px 60px; }
.prototype-notice { display: flex; align-items: center; gap: 12px; padding: 10px 14px; margin-bottom: 24px; border: 1px solid rgba(184,121,37,.25); border-radius: 13px; background: #fff8e8; color: #6a5124; font-size: .73rem; }
.prototype-notice strong { white-space: nowrap; }
.prototype-notice span { color: #8a7247; }
.prototype-notice label { display: flex; align-items: center; gap: 8px; margin-left: auto; font-weight: 800; }
.prototype-notice select { padding: 7px 10px; border: 1px solid rgba(184,121,37,.3); border-radius: 9px; background: white; color: var(--ink); }
.notice-action { margin-left: auto; padding: 7px 12px; border: 1px solid rgba(184,121,37,.3); border-radius: 9px; background: white; color: #6a5124; font-weight: 800; cursor: pointer; }
.notice-action:hover { background: #fff2d1; }
.empty-table { padding: 28px !important; color: var(--muted); text-align: center; }
.hidden { display: none !important; }
.row-action { min-height: 34px; padding: 7px 11px; border: 1px solid rgba(24,58,45,.22); border-radius: 9px; background: white; color: var(--forest); font-size: .65rem; font-weight: 850; cursor: pointer; }
.row-action:hover { border-color: var(--forest); background: #f4f7f3; }
.row-action.primary { border-color: var(--forest); background: var(--forest); color: white; }
.row-action.danger { border-color: #a84237; background: #fff7f5; color: #91362d; }
.row-action.danger:hover { border-color: #91362d; background: #f8e5e1; }
.row-actions { display: flex; flex-wrap: wrap; gap: 6px; min-width: 180px; }
.role-switcher { display: grid; gap: 2px; min-width: 180px; color: var(--muted); font-size: .58rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.role-switcher select { min-height: 40px; max-width: 240px; padding: 6px 30px 6px 10px; border: 1px solid var(--line); border-radius: 10px; background: white; color: var(--ink); font: inherit; font-size: .7rem; text-transform: none; letter-spacing: normal; }
.manager-cell strong, .manager-cell small { display: block; }
.manager-cell small { margin-top: 2px; color: var(--muted); font-size: .62rem; }
.workflow-dialog { width: min(520px, calc(100vw - 28px)); padding: 0; border: 0; border-radius: 20px; color: var(--ink); box-shadow: 0 28px 100px rgba(12,35,27,.3); }
.workflow-dialog::backdrop { background: rgba(8,29,21,.6); backdrop-filter: blur(3px); }
.workflow-dialog form { display: grid; gap: 17px; padding: 26px; }
.workflow-dialog h2 { margin: 0; font-family: Georgia, serif; font-size: 1.8rem; font-weight: 500; }
.workflow-dialog p { margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.55; }
.dialog-head { display: flex; align-items: start; justify-content: space-between; gap: 20px; }
.dialog-head > button { width: 36px; height: 36px; border: 0; border-radius: 9px; background: #f0f2ed; color: var(--ink); font-size: 1.2rem; cursor: pointer; }
.workflow-dialog label { display: grid; gap: 7px; color: var(--ink); font-size: .74rem; font-weight: 850; }
.workflow-dialog select, .workflow-dialog input, .workflow-dialog textarea { width: 100%; min-height: 45px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: white; color: var(--ink); font: inherit; }
.workflow-dialog textarea { resize: vertical; line-height: 1.5; }
.dialog-help { margin: 0; color: var(--muted); font-size: .7rem; line-height: 1.5; }
.delete-account-warning { display: grid; gap: 10px; padding: 14px; border: 1px solid #d5a098; border-radius: 12px; background: #fff7f5; }
.delete-account-warning strong { color: #91362d; font-size: .82rem; }
.delete-account-warning code { color: #91362d; font: inherit; font-weight: 900; }
.workflow-dialog .delete-account-warning p { color: #744c46; font-size: .72rem; }
.workflow-dialog .delete-account-warning input { border-color: #d5a098; }
.customer-lead-services { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin: 0; padding: 14px; border: 1px solid var(--line); border-radius: 12px; }
.customer-lead-services legend { padding: 0 6px; color: var(--ink); font-size: .72rem; font-weight: 850; }
.workflow-dialog .customer-lead-services label { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 9px 10px; border-radius: 9px; background: #f7f9f5; font-weight: 750; }
.workflow-dialog .customer-lead-services input, .workflow-dialog .customer-lead-consent input { width: 18px; min-height: 18px; flex: 0 0 auto; padding: 0; accent-color: var(--forest); }
.workflow-dialog .customer-lead-consent { display: flex; grid-template-columns: auto 1fr; align-items: flex-start; gap: 10px; padding: 14px; border: 1px solid #c7d7cd; border-radius: 12px; background: #f3f8f4; font-size: .68rem; line-height: 1.5; }
.customer-lead-consent a { color: var(--forest); }
.dialog-fieldset { margin: 0; padding: 14px; border: 1px solid var(--line); border-radius: 12px; }
.dialog-fieldset legend { padding: 0 6px; color: var(--ink); font-size: .74rem; font-weight: 850; }
.service-checkboxes { display: flex; flex-wrap: wrap; gap: 10px 18px; }
.service-checkboxes label, .workflow-dialog .consent-confirmation { display: flex; align-items: flex-start; gap: 8px; font-weight: 700; }
.service-checkboxes input, .workflow-dialog .consent-confirmation input { width: 18px; min-height: 18px; margin: 1px 0 0; flex: 0 0 auto; }
.wide-dialog { width: min(780px, calc(100vw - 28px)); }
[data-work-order-dialog] { padding: 26px; }
.dialog-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.dialog-actions { display: flex; justify-content: flex-end; gap: 9px; }
.secondary-action { min-height: 42px; padding: 9px 16px; border: 1px solid var(--line); border-radius: 999px; background: white; color: var(--ink); font-weight: 800; cursor: pointer; }
.dialog-error { min-height: 18px; color: var(--red); font-size: .72rem; font-weight: 750; }
.toast-region { position: fixed; right: 22px; bottom: 22px; z-index: 90; max-width: min(420px, calc(100vw - 32px)); padding: 13px 16px; border-radius: 12px; background: var(--forest); color: white; box-shadow: 0 15px 50px rgba(0,0,0,.22); font-size: .76rem; font-weight: 750; opacity: 0; transform: translateY(12px); pointer-events: none; transition: .2s ease; }
.toast-region.show { opacity: 1; transform: translateY(0); }
.toast-region.error { background: #7b302d; }
.muted-action { color: var(--muted); font-size: .66rem; font-weight: 750; }
.project-detail { padding: 24px; }
.project-intake { margin-top: 24px; }
.project-intake-grid { display: grid; gap: 14px; }
.intake-card { padding: 18px; border: 1px solid var(--line); border-radius: 15px; background: #fbfcf9; }
.intake-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
.intake-card-head h3 { margin: 3px 0 0; font-family: Georgia, serif; font-size: 1.25rem; font-weight: 500; }
.intake-card-head p { margin: 0; color: var(--muted); font-size: .7rem; }
.intake-form { display: grid; gap: 12px; }
.intake-form label { display: grid; gap: 6px; color: var(--ink); font-size: .7rem; font-weight: 800; }
.intake-form input, .intake-form textarea, .intake-form select { width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 9px; background: white; color: var(--ink); font: inherit; }
.intake-form textarea { resize: vertical; line-height: 1.45; }
.intake-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.intake-form-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.intake-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.intake-error { min-height: 17px; color: var(--red); font-size: .7rem; font-weight: 750; }
.intake-summary { display: grid; gap: 7px; margin: 0; }
.intake-summary div { display: grid; grid-template-columns: minmax(110px, .35fr) 1fr; gap: 12px; padding-bottom: 7px; border-bottom: 1px solid rgba(24,58,45,.09); }
.intake-summary dt { color: var(--muted); font-size: .68rem; font-weight: 800; }
.intake-summary dd { margin: 0; color: var(--ink); font-size: .75rem; line-height: 1.45; }
.measurement-items { display: grid; gap: 9px; }
.measurement-item { display: grid; grid-template-columns: minmax(120px, 1.4fr) repeat(3, minmax(78px, .7fr)) minmax(110px, 1fr) auto; gap: 8px; align-items: end; padding: 10px; border: 1px solid rgba(24,58,45,.13); border-radius: 11px; background: white; }
.measurement-item label { font-size: .62rem; }
.measurement-item .row-action { min-height: 42px; }
.measurement-table { width: 100%; border-collapse: collapse; font-size: .7rem; }
.measurement-table th, .measurement-table td { padding: 8px; border-bottom: 1px solid var(--line); text-align: left; }
.project-proposal { min-width: 0; margin-top: 30px; padding-top: 24px; border-top: 1px solid var(--line); }
.project-commerce { min-width: 0; margin-top: 30px; padding-top: 24px; border-top: 1px solid var(--line); }
.commerce-stack { display: grid; gap: 14px; min-width: 0; }
.commerce-card { min-width: 0; padding: 18px; border: 1px solid var(--line); border-radius: 15px; background: #fbfcf9; }
.payment-line { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: 10px; background: var(--sage); font-size: .7rem; }
.payment-line span { color: var(--muted); }
.payment-line strong, .payment-line small { display: block; }
.payment-line small { margin-top: 3px; }
.customer-adjustments { display: grid; gap: 10px; margin-top: 10px; padding-top: 18px; border-top: 1px solid var(--line); }
.customer-adjustments .subsection-head { margin-bottom: 2px; }
.customer-adjustment-card.awaiting_ceo { border-color: #e0bd77; background: #fffdf7; }
.customer-adjustment-card.approved { border-color: #bfd3c2; background: #f0f6f1; }
.customer-adjustment-card.rejected { opacity: .8; }
.adjustment-history { margin: 12px 0; font-size: .68rem; }
.adjustment-history summary { color: var(--forest); font-weight: 850; cursor: pointer; }
.adjustment-history ol { display: grid; gap: 7px; margin: 10px 0 0; padding-left: 20px; }
.adjustment-history li strong, .adjustment-history li span { display: block; }
.adjustment-history li span { margin-top: 2px; color: var(--muted); font-size: .61rem; line-height: 1.45; }
.proposal-stack { display: grid; gap: 14px; min-width: 0; }
.proposal-card { min-width: 0; padding: 18px; border: 1px solid var(--line); border-radius: 15px; background: #fbfcf9; }
.proposal-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
.proposal-card-head p { margin: 0 0 3px; color: var(--muted); font-size: .67rem; }
.proposal-card-head h3 { margin: 0; font-family: Georgia, serif; font-size: 1.25rem; font-weight: 500; }
.design-preview { margin: 0 0 16px; overflow: hidden; border: 1px solid var(--line); border-radius: 13px; background: #eef1eb; }
.design-preview a { display: block; color: inherit; text-decoration: none; }
.design-preview img { display: block; width: 100%; max-height: 520px; aspect-ratio: 16 / 10; object-fit: cover; background: #e5eae3; }
.design-preview figcaption { padding: 9px 12px; color: var(--muted); font-size: .62rem; line-height: 1.4; }
.design-preview-empty { display: grid; gap: 4px; margin: 0 0 14px; padding: 14px; border: 1px dashed #c5b378; border-radius: 12px; background: #fff9e8; }
.design-preview-empty strong { color: #665420; font-size: .75rem; }
.design-preview-empty span, .field-note { color: var(--muted); font-size: .65rem; line-height: 1.45; }
.design-preview-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; margin: 14px 0; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: white; }
.design-preview-form label { display: grid; gap: 6px; color: var(--ink); font-size: .68rem; font-weight: 800; }
.design-preview-form input { width: 100%; min-height: 42px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 9px; background: #fbfcf9; font: inherit; }
.design-preview-form .intake-error { grid-column: 1 / -1; }
.proposal-description { margin: 0 0 14px; color: var(--ink); font-size: .78rem; line-height: 1.55; white-space: pre-wrap; }
.proposal-facts, .proposal-totals { display: grid; gap: 7px; margin: 0 0 14px; }
.proposal-facts div, .proposal-totals div { display: grid; grid-template-columns: minmax(110px, .35fr) 1fr; gap: 12px; padding-bottom: 7px; border-bottom: 1px solid rgba(24,58,45,.09); }
.proposal-facts dt, .proposal-totals dt { color: var(--muted); font-size: .67rem; font-weight: 800; }
.proposal-facts dd, .proposal-totals dd { margin: 0; font-size: .75rem; line-height: 1.45; }
.proposal-totals dd { text-align: right; font-weight: 800; }
.customer-comment, .discount-state, .linked-account { margin: 12px 0; padding: 11px 13px; border-radius: 10px; background: var(--sage); color: var(--forest); font-size: .72rem; line-height: 1.45; }
.decision-comment { display: grid; gap: 6px; margin-top: 13px; color: var(--ink); font-size: .7rem; font-weight: 800; }
.decision-comment textarea { width: 100%; padding: 9px 11px; border: 1px solid var(--line); border-radius: 9px; background: white; color: var(--ink); font: inherit; resize: vertical; }
.decision-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin-top: 10px; }
.inline-link-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; }
.inline-link-form label { display: grid; gap: 6px; color: var(--ink); font-size: .7rem; font-weight: 800; }
.inline-link-form input { width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 9px; background: white; font: inherit; }
.inline-link-form .intake-error { grid-column: 1 / -1; }
.estimate-items-editor { display: grid; gap: 9px; }
.estimate-item-editor { display: grid; grid-template-columns: minmax(100px, .75fr) minmax(160px, 1.5fr) minmax(78px, .65fr) minmax(70px, .55fr) minmax(105px, .8fr) minmax(105px, .8fr) auto; gap: 8px; align-items: end; padding: 10px; border: 1px solid rgba(24,58,45,.13); border-radius: 11px; background: white; }
.estimate-item-editor label { font-size: .62rem; }
.estimate-item-editor .row-action { min-height: 42px; }
.estimate-table { width: 100%; border-collapse: collapse; font-size: .68rem; }
.estimate-table th, .estimate-table td { padding: 8px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.estimate-table td small { display: block; margin-top: 3px; color: var(--muted); }
.stage-gate-note { margin: 9px 0 0; color: var(--muted); font-size: .68rem; }
.project-detail-head { display: grid; grid-template-columns: auto 1fr auto; align-items: start; gap: 24px; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.project-detail-head h1 { margin: 0; font-family: Georgia, serif; font-size: clamp(2rem, 4vw, 3.4rem); font-weight: 500; }
.project-detail-head p:last-child { margin: 8px 0 0; color: var(--muted); }
.back-action { padding: 8px 11px; border: 1px solid var(--line); border-radius: 9px; background: white; color: var(--forest); font-weight: 800; cursor: pointer; }
.project-status { padding: 7px 11px; border-radius: 999px; background: var(--sage); color: var(--forest); font-size: .7rem; font-weight: 850; }
.project-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr); gap: 34px; padding-top: 26px; }
.project-layout > div, .project-intake, .project-intake-grid, .project-work-orders, .project-acceptance { min-width: 0; }
.project-layout h2 { margin: 0 0 18px; font-size: .9rem; }
.project-work-orders { margin-top: 30px; padding-top: 24px; border-top: 1px solid var(--line); }
.subsection-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.subsection-head h2 { margin: 0; }
.work-order-cards { display: grid; gap: 10px; }
.project-acceptance { margin-top: 30px; padding-top: 24px; border-top: 1px solid var(--line); }
.acceptance-stack { display: grid; gap: 12px; min-width: 0; }
.acceptance-card { min-width: 0; padding: 18px; border: 1px solid var(--line); border-radius: 15px; background: #fbfcf9; }
.acceptance-card.accepted { border-color: #bfd3c2; background: #f0f6f1; }
.acceptance-card.changes { border-color: rgba(181,74,61,.35); background: #fff9f8; }
.acceptance-note { margin: 12px 0; padding: 11px 13px; border-radius: 10px; background: white; color: var(--ink); font-size: .72rem; line-height: 1.5; white-space: pre-wrap; }
.acceptance-evidence { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.acceptance-evidence a { padding: 8px 11px; border: 1px solid var(--line); border-radius: 9px; background: white; color: var(--forest); font-size: .68rem; font-weight: 800; text-decoration: none; }
.acceptance-evidence a:hover { border-color: var(--forest); }
.acceptance-actions, .commerce-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.work-order-card { display: grid; grid-template-columns: 1fr auto; gap: 9px 14px; padding: 14px; border: 1px solid var(--line); border-radius: 13px; background: #fbfcf9; }
.work-order-card.overdue { border-color: rgba(181,74,61,.38); background: #fff8f7; }
.work-order-card strong, .work-order-card small { display: block; }
.work-order-card strong { font-size: .78rem; }
.work-order-card small { margin-top: 4px; color: var(--muted); font-size: .65rem; line-height: 1.4; }
.work-order-card .project-status { align-self: start; justify-self: end; }
.work-order-card .row-action { justify-self: start; }
.work-order-empty { padding: 18px; border: 1px dashed var(--line); border-radius: 12px; color: var(--muted); font-size: .72rem; text-align: center; }
.work-order-summary { display: grid; gap: 10px; margin: 20px 0; padding: 16px; border-radius: 14px; background: #f5f7f2; }
.work-order-summary .project-status { justify-self: start; }
.work-order-summary p { color: var(--ink); }
.work-order-dialog-layout { display: grid; grid-template-columns: minmax(220px,.65fr) minmax(300px,1fr); gap: 28px; }
.work-order-dialog-layout h3 { margin: 0 0 14px; font-size: .82rem; }
.work-order-actions { display: flex; flex-wrap: wrap; gap: 9px; }
.work-order-evidence-panel { margin: 20px 0; padding: 20px; border: 1px solid var(--line); border-radius: 16px; background: #fafbf8; }
.evidence-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 15px; }
.evidence-heading h3 { margin: 0; font-size: 1rem; }
.evidence-heading strong { color: var(--forest); font-size: .72rem; }
.evidence-attempt-note { margin: 0 0 14px; padding: 10px 12px; border-radius: 10px; background: #fff4dd; color: #76551c; font-size: .68rem; }
.evidence-layout { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(260px,.9fr); gap: 20px; }
.quality-checklist { min-width: 0; margin: 0; padding: 0; border: 0; }
.quality-checklist legend { margin-bottom: 9px; font-size: .72rem; font-weight: 900; }
.quality-checklist > div { display: grid; gap: 8px; }
.quality-checklist-row { display: grid; grid-template-columns: auto 1fr; gap: 10px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 11px; background: white; cursor: pointer; }
.quality-checklist-row:has(input:checked) { border-color: rgba(24,58,45,.28); background: #eef4ef; }
.quality-checklist-row input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--forest); }
.quality-checklist-row strong, .quality-checklist-row small { display: block; }
.quality-checklist-row strong { font-size: .72rem; }
.quality-checklist-row small { margin-top: 3px; color: var(--muted); font-size: .62rem; line-height: 1.45; }
.quality-photo-required { color: #8b5c14 !important; font-weight: 800; }
.evidence-upload-column { min-width: 0; }
[data-work-order-evidence-form] { display: grid; gap: 10px; margin-bottom: 12px; padding: 13px; border: 1px dashed #cfc6b3; border-radius: 12px; background: white; }
[data-work-order-evidence-form] label { display: grid; gap: 5px; color: var(--muted); font-size: .66rem; font-weight: 800; }
[data-work-order-evidence-form] select, [data-work-order-evidence-form] input { width: 100%; }
[data-work-order-evidence-form] small { color: var(--muted); font-size: .6rem; line-height: 1.45; }
.evidence-gallery { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.evidence-photo { margin: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: white; }
.evidence-photo img { width: 100%; aspect-ratio: 4/3; display: block; object-fit: cover; background: #ecefe8; }
.evidence-photo figcaption { display: grid; gap: 2px; padding: 8px; }
.evidence-photo strong { font-size: .62rem; }
.evidence-photo small { color: var(--muted); font-size: .56rem; }
.evidence-empty { padding: 18px 12px; border: 1px dashed var(--line); border-radius: 11px; color: var(--muted); font-size: .65rem; text-align: center; }
.work-order-result-note { display: grid; gap: 6px; margin-top: 16px; color: var(--muted); font-size: .68rem; font-weight: 800; }
.previous-attempts { margin-top: 16px; border-top: 1px solid var(--line); padding-top: 14px; }
.previous-attempts summary { color: var(--forest); font-size: .7rem; font-weight: 900; cursor: pointer; }
.previous-attempt-card { margin-top: 9px; padding: 11px; border: 1px solid var(--line); border-radius: 11px; background: white; }
.previous-attempt-card strong, .previous-attempt-card small { display: block; }
.previous-attempt-card strong { font-size: .7rem; }
.previous-attempt-card small { margin-top: 4px; color: var(--muted); font-size: .6rem; }
.contracts-view { display: grid; gap: 18px; }
.contracts-heading { margin-bottom: 0; }
.contract-metrics { margin-bottom: 0; }
.contracts-panel { overflow: hidden; }
.document-templates-panel { overflow: hidden; }
.document-template-cards { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; padding: 0 20px 16px; }
.document-template-card { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px 16px; align-items: center; padding: 15px 16px; border: 1px solid var(--line); border-radius: 13px; background: #fafbf8; }
.document-template-card strong, .document-template-card small { display: block; }
.document-template-card strong { font-size: .74rem; }
.document-template-card small { margin-top: 4px; color: var(--muted); font-size: .61rem; line-height: 1.45; }
.document-template-card .row-action { grid-column: 2; grid-row: 1 / span 2; }
.document-template-hash { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.contract-cards { display: grid; gap: 0; }
.contract-card { display: grid; grid-template-columns: minmax(180px,.75fr) minmax(220px,1.1fr) minmax(150px,.65fr) minmax(130px,.55fr) auto; gap: 16px; align-items: center; padding: 17px 20px; border-bottom: 1px solid var(--line); }
.contract-card:last-child { border-bottom: 0; }
.contract-card:hover { background: #fafbf8; }
.contract-card strong, .contract-card small { display: block; }
.contract-card strong { font-size: .76rem; }
.contract-card small { margin-top: 4px; color: var(--muted); font-size: .64rem; }
.contract-card .project-status { justify-self: start; }
.contract-card.expiring { box-shadow: inset 4px 0 #d89b35; }
.contract-card.expired { box-shadow: inset 4px 0 var(--red); }
.contract-detail { padding: 24px; }
.contract-detail-grid { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(300px,.8fr); gap: 34px; padding-top: 26px; }
.contract-detail-grid h2 { margin: 0 0 16px; font-size: .9rem; }
.contract-summary-card { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; padding: 18px; border: 1px solid var(--line); border-radius: 15px; background: #fafbf8; }
.contract-summary-card div { display: grid; gap: 3px; }
.contract-summary-card span { color: var(--muted); font-size: .63rem; text-transform: uppercase; letter-spacing: .05em; }
.contract-summary-card strong { font-size: .76rem; }
.contract-actions { display: flex; flex-wrap: wrap; gap: 9px; margin: 18px 0 12px; }
.contract-actions .row-action { min-height: 42px; }
.contract-disclaimer { margin: 10px 0 18px; padding: 11px 13px; border-radius: 10px; background: #fff8e8; color: #785c2c; font-size: .67rem; line-height: 1.5; }
.contract-files { margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--line); }
.contract-file-list { display: grid; gap: 9px; }
.contract-file { display: grid; grid-template-columns: 1fr auto; gap: 9px 14px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 12px; background: white; }
.contract-file strong, .contract-file small { display: block; }
.contract-file strong { font-size: .73rem; }
.contract-file small { margin-top: 3px; color: var(--muted); font-size: .62rem; }
.contract-file .row-action { grid-row: span 2; align-self: center; }
.work-order-finance-summary { display: grid; grid-template-columns: minmax(160px,.7fr) minmax(0,1.3fr); gap: 12px; margin-top: 14px; padding: 14px 16px; border: 1px solid #d9d1bd; border-radius: 13px; background: #fffaf0; }
.work-order-finance-summary:empty { display: none; }
.work-order-finance-summary strong, .work-order-finance-summary small { display: block; }
.work-order-finance-summary strong { font-family: Georgia,serif; font-size: 1.15rem; }
.work-order-finance-summary small { margin-top: 3px; color: var(--muted); font-size: .62rem; line-height: 1.45; }
.settlements-view { display: grid; gap: 18px; }
.settlement-metrics { margin-bottom: 0; }
.settlement-tabs { display: flex; gap: 8px; overflow-x: auto; }
.settlement-tabs button { min-height: 42px; padding: 9px 15px; border: 1px solid var(--line); border-radius: 999px; background: white; color: var(--muted); font-weight: 800; white-space: nowrap; }
.settlement-tabs button.active { border-color: var(--forest); background: var(--forest); color: white; }
.settlements-panel { overflow: hidden; }
.settlement-cards { display: grid; }
.settlement-card { display: grid; grid-template-columns: minmax(175px,.7fr) minmax(220px,1.1fr) minmax(160px,.65fr) minmax(160px,.7fr) auto; gap: 16px; align-items: center; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.settlement-card:last-child { border-bottom: 0; }
.settlement-card:hover { background: #fafbf8; }
.settlement-card strong, .settlement-card small { display: block; }
.settlement-card strong { font-size: .76rem; }
.settlement-card small { margin-top: 4px; color: var(--muted); font-size: .62rem; line-height: 1.4; }
.settlement-amount { font-family: Georgia,serif; font-size: 1.08rem !important; }
.settlement-flow { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }
.settlement-flow span { padding: 4px 7px; border-radius: 999px; background: #eef1eb; color: var(--muted); font-size: .55rem; font-weight: 800; }
.settlement-flow span.active { background: #e7efe8; color: var(--forest); }
.settlement-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.settlement-empty { padding: 28px 20px; color: var(--muted); font-size: .72rem; text-align: center; }
.identity-view { display: grid; gap: 18px; }
.identity-access-note { margin: 0; padding: 12px 14px; border: 1px solid #c7d7cd; border-radius: 12px; background: #f3f8f4; color: var(--forest); font-size: .72rem; font-weight: 750; }
.identity-access-note.error { border-color: #e3b8ae; background: #fff2ee; color: var(--red); }
.identity-panel { overflow: hidden; }
.identity-cards { display: grid; }
.identity-card { display: grid; grid-template-columns: minmax(220px,1.2fr) minmax(170px,.7fr) minmax(170px,.7fr) auto; gap: 16px; align-items: center; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.identity-card:last-child { border-bottom: 0; }
.identity-card:hover { background: #fafbf8; }
.identity-card strong, .identity-card small { display: block; }
.identity-card strong { font-size: .76rem; }
.identity-card small { margin-top: 4px; color: var(--muted); font-size: .62rem; line-height: 1.45; }
.identity-badges { display: flex; flex-wrap: wrap; gap: 5px; }
.identity-badges span { padding: 5px 8px; border-radius: 999px; background: #eef1eb; color: var(--muted); font-size: .57rem; font-weight: 850; }
.identity-badges .ok { background: #e7efe8; color: var(--forest); }
.identity-badges .warn { background: #fff2d8; color: #8a5d15; }
.identity-badges .blocked { background: #f7e4df; color: #9c3f34; }
.identity-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.identity-empty { padding: 30px; color: var(--muted); text-align: center; }
.counterparties-view { display: grid; gap: 18px; }
.counterparties-view.hidden { display: none; }
.counterparty-registry { display: grid; }
.counterparty-registry-card { display: grid; gap: 13px; padding: 20px; border-bottom: 1px solid var(--line); }
.counterparty-registry-card:last-child { border-bottom: 0; }
.counterparty-registry-card:hover { background: #fafbf8; }
.counterparty-registry-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.counterparty-registry-head strong, .counterparty-registry-head small { display: block; }
.counterparty-registry-head strong { font-size: .86rem; }
.counterparty-registry-head small, .counterparty-registry-card > p { margin-top: 4px; color: var(--muted); font-size: .65rem; line-height: 1.5; }
.counterparty-registry-card > p { margin: 0; }
.counterparty-eligibility-list { display: grid; gap: 7px; }
.counterparty-eligibility-list > small { color: var(--muted); font-size: .63rem; }
.counterparty-eligibility { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: #f7f9f5; }
.counterparty-eligibility.active { border-color: #bfd3c2; background: #f0f6f1; }
.counterparty-eligibility.inactive { opacity: .72; }
.counterparty-eligibility strong, .counterparty-eligibility small { display: block; }
.counterparty-eligibility strong { font-size: .67rem; }
.counterparty-eligibility small { margin-top: 3px; color: var(--muted); font-size: .59rem; }
.audit-view { display: grid; gap: 18px; }
.audit-view.hidden { display: none; }
.audit-panel { overflow: hidden; }
.audit-filters { display: grid; grid-template-columns: minmax(220px,1fr) minmax(160px,.45fr) auto; gap: 12px; align-items: end; padding: 18px 20px; border-bottom: 1px solid var(--line); background: #fafbf8; }
.audit-filters label { display: grid; gap: 6px; color: var(--muted); font-size: .64rem; font-weight: 850; }
.audit-filters input, .audit-filters select { width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 9px; background: white; font: inherit; }
.audit-summary { padding: 13px 20px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: .65rem; }
.audit-events { display: grid; }
.audit-event { display: grid; gap: 10px; padding: 17px 20px; border-bottom: 1px solid var(--line); border-left: 4px solid #bfd3c2; }
.audit-event:last-child { border-bottom: 0; }
.audit-event.denied { border-left-color: #e0bd77; background: #fffdf7; }
.audit-event.failed { border-left-color: var(--red); background: #fff9f8; }
.audit-event-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.audit-event-head strong, .audit-event-head small { display: block; }
.audit-event-head strong { font: 800 .73rem/1.4 ui-monospace,monospace; color: var(--forest); }
.audit-event-head small { margin-top: 4px; color: var(--muted); font-size: .61rem; }
.audit-event-head > span { padding: 5px 8px; border-radius: 999px; background: #e7efe8; color: var(--forest); font-size: .58rem; font-weight: 850; }
.audit-event.denied .audit-event-head > span { background: #fff2d8; color: #8a5d15; }
.audit-event.failed .audit-event-head > span { background: #f7e4df; color: #9c3f34; }
.audit-event-facts { display: flex; flex-wrap: wrap; gap: 6px 14px; color: var(--muted); font-size: .6rem; }
.audit-event-facts code { overflow-wrap: anywhere; }
.audit-event details { font-size: .62rem; }
.audit-event summary { color: var(--forest); font-weight: 800; cursor: pointer; }
.audit-event pre { max-height: 240px; margin: 9px 0 0; padding: 11px; overflow: auto; border-radius: 9px; background: #f3f5f1; font: .6rem/1.5 ui-monospace,monospace; white-space: pre-wrap; }
.password-field { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.password-field button { min-width: 90px; border: 1px solid var(--line); border-radius: 10px; background: #f5f7f2; color: var(--forest); font-weight: 850; cursor: pointer; }
.password-reset-fields { display: grid; gap: 12px; }
.password-reset-fields > label { display: grid; gap: 6px; }
.password-reset-fields > p { margin: 0; }
.password-reset-fields .password-field button { min-width: 185px; padding: 9px 12px; }
.password-reset-state { padding: 11px 13px; border: 1px solid #e0bd77; border-radius: 11px; background: #fff9e8; color: #76551f; font-size: .68rem; line-height: 1.45; }
.password-reset-state strong { color: var(--ink); }
.password-generate-help { padding-left: 12px; border-left: 3px solid #d7c28b; }
.password-receipt-dialog { max-width: 680px; }
.password-receipt-facts { display: grid; gap: 10px; margin: 16px 0; }
.password-receipt-facts > div { display: grid; grid-template-columns: minmax(150px,.45fr) minmax(0,1fr); gap: 12px; padding: 13px 15px; border: 1px solid var(--line); border-radius: 12px; background: #fafbf8; }
.password-receipt-facts dt { color: var(--muted); font-size: .64rem; font-weight: 850; }
.password-receipt-facts dd { margin: 0; color: var(--ink); font-size: .72rem; line-height: 1.5; overflow-wrap: anywhere; }
.password-receipt-facts code { color: var(--forest); font: 800 .76rem/1.4 ui-monospace,monospace; }
.password-receipt-secret { display: grid; gap: 9px; }
.password-receipt-secret input { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: white; font: 800 .76rem/1.4 ui-monospace,monospace; }
.password-receipt-secret span { display: flex; flex-wrap: wrap; gap: 8px; }
.password-receipt-secret button { min-height: 38px; padding: 8px 12px; }
.security-status { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.security-status article { padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: white; }
.security-status strong, .security-status small { display: block; }
.security-status strong { font-size: .82rem; }
.security-status small { margin-top: 5px; color: var(--muted); font-size: .66rem; line-height: 1.45; }
.security-status article.required { border-color: #e0bd77; background: #fff9eb; }
.security-gate { display: grid; grid-template-columns: auto 1fr; gap: 14px; align-items: center; margin-bottom: 18px; padding: 17px 19px; border: 1px solid #d9b764; border-radius: 15px; background: #fff9e8; box-shadow: 0 10px 30px rgba(150,116,60,.08); }
.security-gate-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--forest); color: white; font-size: 1rem; font-weight: 900; }
.security-gate strong { display: block; font-family: Georgia,serif; font-size: 1.15rem; font-weight: 500; }
.security-gate p { margin: 3px 0 0; color: var(--muted); font-size: .72rem; line-height: 1.5; }
.security-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; align-items: start; }
.security-grid.mfa-required { grid-template-columns: minmax(250px,.62fr) minmax(0,1.38fr); }
.security-card { display: grid; gap: 14px; padding: 22px; }
.security-card h2 { margin: 0; font-family: Georgia,serif; font-size: 1.6rem; font-weight: 500; }
.security-card p { margin: 6px 0 0; color: var(--muted); font-size: .72rem; line-height: 1.55; }
.security-card label { display: grid; gap: 6px; color: var(--ink); font-size: .7rem; font-weight: 850; }
.security-card input { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; font: inherit; }
.security-card form { display: grid; gap: 12px; }
.password-change-card { display: block; padding: 0; overflow: hidden; }
.password-change-card summary { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 12px; align-items: center; padding: 18px 20px; cursor: pointer; list-style: none; }
.password-change-card summary::-webkit-details-marker { display: none; }
.password-change-card summary .eyebrow { display: block; margin: 0 0 2px; }
.password-change-card summary strong, .password-change-card summary small { display: block; }
.password-change-card summary strong { font-family: Georgia,serif; font-size: 1.08rem; font-weight: 500; }
.password-change-card summary small:last-child { margin-top: 2px; color: var(--muted); font-size: .66rem; }
.security-step-mark { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #e5f0e7; color: var(--forest); font-weight: 900; }
.password-card-toggle { color: var(--forest); font-size: .66rem; font-weight: 850; }
.password-change-card[open] .password-card-toggle::after { content: " ↑"; }
.password-change-card:not([open]) .password-card-toggle::after { content: " ↓"; }
.password-change-card.required { border-color: #e0bd77; background: #fffdf7; }
.password-change-card.required .security-step-mark { background: #fff0c9; color: #8a611e; }
.password-change-form { display: grid; gap: 14px; padding: 0 20px 20px; border-top: 1px solid var(--line); }
.password-change-form > p { margin-top: 17px; }
.security-grid.mfa-required [data-mfa-card] { border-color: rgba(23,61,49,.24); box-shadow: 0 18px 45px rgba(24,34,30,.1); }
.mfa-setup-guide { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.mfa-setup-guide li, .mfa-enrollment-step { display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 10px; align-items: start; }
.mfa-setup-guide li > span, .mfa-enrollment-step > span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--sage); color: var(--forest); font-size: .68rem; font-weight: 900; }
.mfa-setup-guide strong, .mfa-setup-guide small, .mfa-enrollment-step strong, .mfa-enrollment-step small { display: block; }
.mfa-setup-guide strong, .mfa-enrollment-step strong { font-size: .71rem; }
.mfa-setup-guide small, .mfa-enrollment-step small { margin-top: 2px; color: var(--muted); font-size: .63rem; line-height: 1.45; }
.mfa-enrollment { display: grid; gap: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.mfa-qr-panel { display: grid; justify-items: center; gap: 9px; margin: 0; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.mfa-qr-code { display: block; width: min(100%,320px); height: auto; aspect-ratio: 1; padding: 8px; border-radius: 10px; background: #fff; image-rendering: pixelated; }
.mfa-qr-panel figcaption { max-width: 440px; color: var(--muted); font-size: .63rem; line-height: 1.5; text-align: center; }
.mfa-manual-fallback { padding: 10px 12px; border: 1px dashed var(--line); border-radius: 10px; background: #fafbf8; }
.mfa-manual-fallback > summary { margin-bottom: 0; }
.mfa-manual-fallback[open] > summary { margin-bottom: 12px; }
.mfa-manual-fallback label, .mfa-manual-fallback details { margin-top: 10px; }
.mfa-enrollment output, .mfa-enrollment code, .mfa-enrollment pre { display: block; max-width: 100%; padding: 11px; overflow-wrap: anywhere; border-radius: 9px; background: #f3f5f1; color: var(--forest); font: 700 .72rem/1.5 ui-monospace,monospace; }
.mfa-enrollment pre { white-space: pre-wrap; }
.mfa-enrollment summary { color: var(--forest); font-size: .7rem; font-weight: 850; cursor: pointer; }
.mfa-copy-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; align-items: stretch; }
.mfa-copy-row .secondary-action { border-radius: 10px; }
.three-columns { grid-template-columns: repeat(3,1fr); }
.project-stages, .history-list { margin: 0 0 22px; padding: 0; list-style: none; }
.project-stages { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.project-stages li { min-height: 76px; display: grid; align-content: center; gap: 4px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; color: var(--muted); font-size: .68rem; }
.project-stages li strong { color: inherit; }
.project-stages li.done { border-color: rgba(24,58,45,.25); background: #eef4ef; color: var(--forest); }
.project-stages li.active { border-color: rgba(184,121,37,.45); background: #fff7e8; color: #815c1d; }
.history-list { display: grid; gap: 0; }
.history-list li { position: relative; display: grid; gap: 4px; padding: 0 0 20px 24px; color: var(--muted); font-size: .68rem; }
.history-list li::before { content: ""; position: absolute; left: 4px; top: 5px; width: 8px; height: 8px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 4px #fff4df; }
.history-list li::after { content: ""; position: absolute; left: 7px; top: 16px; bottom: 0; width: 1px; background: var(--line); }
.history-list li:last-child::after { display: none; }
.history-list strong { color: var(--ink); font-size: .75rem; }
.page-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 28px; }
.eyebrow { margin: 0 0 5px; color: #96743c; font-size: .68rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.page-heading h1 { margin: 0; font-family: Georgia, serif; font-size: clamp(2rem, 3.4vw, 3.3rem); font-weight: 500; line-height: 1.05; }
.page-heading p:last-child { margin: 8px 0 0; color: var(--muted); font-size: .85rem; }
.primary-action { min-height: 44px; padding: 11px 18px; border: 0; border-radius: 999px; background: var(--forest); color: white; font-weight: 800; }
.primary-action:disabled, .secondary-action:disabled { cursor: wait; opacity: .58; }
.panel { border: 1px solid var(--line); border-radius: 18px; background: var(--white); box-shadow: var(--shadow); }
.panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.panel-heading > div { display: flex; align-items: center; gap: 9px; }
.panel-heading h2 { margin: 0; font-size: .88rem; }
.panel-heading span { color: var(--muted); font-size: .67rem; }
.panel-heading button { border: 0; background: transparent; color: var(--forest); font-size: .7rem; font-weight: 800; }
.action-panel { margin-bottom: 18px; border: 1px solid rgba(181,74,61,.2); border-radius: 18px; background: #fff; box-shadow: var(--shadow); overflow: hidden; }
.attention-marker { width: 9px; height: 9px; border-radius: 50%; background: var(--red); box-shadow: 0 0 0 5px rgba(181,74,61,.1); }
.action-list { display: grid; grid-template-columns: repeat(3, 1fr); }
.action-item { display: grid; grid-template-columns: 36px 1fr auto; align-items: center; gap: 11px; padding: 17px 19px; border-right: 1px solid var(--line); }
.action-item:last-child { border-right: 0; }
.action-icon { display: grid; place-items: center; width: 35px; height: 35px; border-radius: 11px; background: #f5ebe8; color: var(--red); font-weight: 900; }
.action-item strong, .action-item small { display: block; }
.action-item strong { font-size: .76rem; }
.action-item small { margin-top: 3px; color: var(--muted); font-size: .65rem; }
.action-item button { border: 0; background: transparent; color: var(--forest); font-weight: 900; }
.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 18px; }
.metric-card { min-height: 132px; display: flex; flex-direction: column; justify-content: space-between; padding: 18px; border: 1px solid var(--line); border-radius: 17px; background: white; box-shadow: var(--shadow); }
.metric-card > span { color: var(--muted); font-size: .7rem; }
.metric-card strong { display: block; margin-top: 8px; font-family: Georgia, serif; font-size: 2rem; font-weight: 500; }
.metric-card small { color: var(--forest); font-size: .65rem; }
.metric-card.alert small { color: var(--red); }
.dashboard-grid { min-width: 0; display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(270px, .7fr); gap: 18px; margin-bottom: 18px; }
.orders-panel, .schedule-panel { min-width: 0; }
.table-wrap { max-width: 100%; overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: .72rem; }
th, td { padding: 14px 18px; border-bottom: 1px solid var(--line); text-align: left; white-space: nowrap; }
th { color: var(--muted); font-size: .62rem; letter-spacing: .05em; text-transform: uppercase; }
tbody tr:last-child td { border-bottom: 0; }
.project-cell strong, .project-cell small { display: block; }
.project-cell small { color: var(--muted); }
.status { display: inline-flex; padding: 5px 9px; border-radius: 999px; background: var(--sage); color: var(--forest); font-size: .62rem; font-weight: 800; }
.status.wait { background: #fff2d8; color: #8a5d15; }
.status.risk { background: #f7e4df; color: #9c3f34; }
.schedule-list { padding: 8px 18px 18px; }
.schedule-item { display: grid; grid-template-columns: 46px 10px 1fr; gap: 10px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.schedule-button { width: 100%; border-width: 0 0 1px; border-radius: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.schedule-button:hover, .schedule-button:focus-visible { background: rgba(36, 91, 65, .06); }
.schedule-item:last-child { border: 0; }
.schedule-item time { color: var(--forest); font-size: .72rem; font-weight: 900; }
.schedule-dot { width: 8px; height: 8px; margin-top: 5px; border-radius: 50%; background: var(--gold); }
.schedule-item strong, .schedule-item small { display: block; }
.schedule-item strong { font-size: .72rem; }
.schedule-item small { margin-top: 3px; color: var(--muted); font-size: .63rem; }
.process-panel { overflow: hidden; }
.process-track { display: grid; grid-template-columns: repeat(8, 1fr); margin: 0; padding: 28px 24px 34px; list-style: none; }
.process-track li { position: relative; display: grid; justify-items: center; gap: 8px; color: var(--muted); font-size: .65rem; text-align: center; }
.process-track li::before { content: ""; position: absolute; top: 15px; left: 0; right: 0; height: 2px; background: var(--line); }
.process-track li:first-child::before { left: 50%; }
.process-track li:last-child::before { right: 50%; }
.process-track span { position: relative; z-index: 1; display: grid; place-items: center; width: 32px; height: 32px; border: 2px solid var(--line); border-radius: 50%; background: white; font-weight: 900; }
.process-track .done::before, .process-track .active::before { background: var(--gold); }
.process-track .done span { border-color: var(--forest); background: var(--forest); color: white; }
.process-track .active span { border-color: var(--gold); color: #805e23; }
.process-track .done strong, .process-track .active strong { color: var(--ink); }

@media (max-width: 1080px) {
  .app-shell { grid-template-columns: 1fr; }
  .sidebar { position: fixed; left: 0; top: 0; z-index: 60; width: 280px; transform: translateX(-105%); transition: transform .22s ease; box-shadow: 20px 0 70px rgba(0,0,0,.25); }
  .sidebar.open { transform: translateX(0); }
  .sidebar-close, .sidebar-open { display: block; }
  .action-list { grid-template-columns: 1fr; }
  .action-item { border-right: 0; border-bottom: 1px solid var(--line); }
  .action-item:last-child { border-bottom: 0; }
  .identity-card { grid-template-columns: minmax(220px,1fr) minmax(180px,.8fr); }
  .identity-badges, .identity-actions { justify-content: flex-start; }
}
@media (max-width: 820px) {
  .crm-header { padding-inline: 16px; }
  .global-search { width: auto; flex: 1; }
  .profile-copy { display: block; max-width: 170px; }
  .profile-copy [data-user-name], .profile-capability { display: none; }
  .crm-content { padding: 20px 16px 50px; }
  .prototype-notice { align-items: start; flex-wrap: wrap; }
  .prototype-notice span { flex-basis: calc(100% - 200px); }
  .prototype-notice label { width: 100%; margin-left: 0; }
  .page-heading { align-items: stretch; flex-direction: column; }
  .primary-action { align-self: flex-start; }
  .metric-grid { grid-template-columns: 1fr 1fr; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .process-track { grid-template-columns: repeat(4, 1fr); gap: 24px 0; }
  .project-detail-head { grid-template-columns: 1fr; }
  .project-status { justify-self: start; }
  .project-layout { grid-template-columns: minmax(0, 1fr); }
  .contract-card { grid-template-columns: 1fr 1fr auto; }
  .document-template-cards { grid-template-columns: 1fr; }
  .contract-card > div:nth-child(2) { grid-column: span 2; }
  .contract-detail-grid { grid-template-columns: 1fr; }
  .settlement-card { grid-template-columns: 1fr 1fr; }
  .settlement-card .settlement-actions { grid-column: span 2; justify-content: flex-start; }
  .evidence-layout { grid-template-columns: 1fr; }
  .security-grid, .security-grid.mfa-required { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .global-search { padding-inline: 10px; }
  .global-search input { min-width: 0; }
  .notification-panel { position: fixed; top: 66px; right: 8px; left: 8px; width: auto; }
  .prototype-notice > strong, .prototype-notice > span { flex-basis: 100%; }
  .prototype-notice label { align-items: stretch; flex-direction: column; }
  .metric-grid { grid-template-columns: 1fr; }
  .process-track { grid-template-columns: repeat(2, 1fr); }
  .project-stages { grid-template-columns: 1fr 1fr; }
  .dialog-actions { align-items: stretch; flex-direction: column-reverse; }
  .dialog-grid, .three-columns, .work-order-dialog-layout { grid-template-columns: 1fr; }
  .project-detail { padding: 16px; }
  .intake-card { min-width: 0; padding: 14px; }
  .intake-form-grid, .intake-form-grid.three { grid-template-columns: 1fr; }
  .measurement-item { grid-template-columns: 1fr 1fr; }
  .measurement-item label:first-child, .measurement-item label:nth-child(5), .measurement-item .row-action { grid-column: 1 / -1; }
  .measurement-table, .estimate-table { display: block; max-width: 100%; overflow-x: auto; }
  .proposal-card { padding: 14px; }
  .commerce-card { padding: 14px; }
  .proposal-card-head, .decision-actions { align-items: stretch; flex-direction: column; }
  .payment-line { align-items: flex-start; flex-direction: column; }
  .payment-line span { text-align: left; }
  .inline-link-form { grid-template-columns: 1fr; }
  .estimate-item-editor { grid-template-columns: 1fr 1fr; }
  .estimate-item-editor label:nth-child(2), .estimate-item-editor .row-action { grid-column: 1 / -1; }
  .workflow-dialog { width: calc(100vw - 16px); max-height: calc(100vh - 16px); }
  .workflow-dialog form, [data-work-order-dialog] { padding: 20px; }
  .work-order-card { grid-template-columns: 1fr; }
  .work-order-card .project-status { justify-self: start; }
  .work-order-actions .row-action { min-height: 44px; flex: 1 1 100%; }
  .work-order-evidence-panel { padding: 15px; }
  .evidence-heading { align-items: start; flex-direction: column; gap: 7px; }
  .evidence-gallery { grid-template-columns: 1fr; }
  [data-work-order-evidence-form] .row-action { min-height: 44px; }
  .contract-card { grid-template-columns: 1fr; gap: 9px; }
  .contract-card > div:nth-child(2) { grid-column: auto; }
  .contract-card .row-action { min-height: 44px; justify-self: stretch; }
  .document-template-cards { padding-inline: 14px; }
  .document-template-card { grid-template-columns: 1fr; }
  .document-template-card .row-action { grid-column: auto; grid-row: auto; min-height: 44px; }
  .contract-summary-card { grid-template-columns: 1fr; }
  .contract-actions .row-action { flex: 1 1 100%; min-height: 44px; }
  .contract-file { grid-template-columns: 1fr; }
  .contract-file .row-action { grid-row: auto; min-height: 44px; }
  .work-order-finance-summary { grid-template-columns: 1fr; }
  .settlement-card { grid-template-columns: 1fr; gap: 10px; }
  .settlement-card .settlement-actions { grid-column: auto; }
  .settlement-actions .row-action { width: 100%; min-height: 44px; }
  .settlement-tabs button { min-height: 44px; }
  .identity-card, .security-status { grid-template-columns: 1fr; }
  .identity-actions .row-action { flex: 1 1 100%; min-height: 44px; }
  .password-field { align-items: stretch; flex-direction: column; }
  .password-field button { min-height: 44px; }
  .security-card { padding: 18px; }
  .mfa-copy-row { grid-template-columns: 1fr; }
}

.privacy-heading-actions { display: flex; gap: .65rem; align-items: center; flex-wrap: wrap; }
.privacy-request-list, .privacy-hold-list, .privacy-retention-list { display: grid; gap: .85rem; }
.privacy-request-card, .privacy-hold-card {
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--surface);
  padding: 1rem;
  display: grid;
  gap: .85rem;
}
.privacy-request-card.overdue { border-color: #d79275; box-shadow: inset 3px 0 0 #b75d3d; }
.privacy-request-card > header { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; }
.privacy-request-card h3 { margin: .15rem 0 0; font-size: 1.03rem; }
.privacy-request-meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; }
.privacy-request-meta > div {
  display: grid;
  gap: .18rem;
  padding: .7rem;
  border-radius: 12px;
  background: var(--surface-muted);
}
.privacy-request-meta span, .privacy-decision span { color: var(--muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; }
.privacy-request-meta small { color: var(--muted); }
.privacy-request-text, .privacy-decision p, .privacy-hold-card p { margin: 0; line-height: 1.55; white-space: pre-wrap; }
.privacy-decision { border-left: 3px solid var(--accent); padding-left: .8rem; display: grid; gap: .3rem; }
.privacy-execution-result { border: 1px solid #bfd3c2; border-left: 4px solid var(--forest); border-radius: 12px; padding: .75rem .85rem; background: #f0f6f1; display: grid; gap: .3rem; }
.privacy-execution-result span { color: var(--forest); font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.privacy-execution-result p { margin: 0; color: var(--ink); font-size: .72rem; line-height: 1.5; overflow-wrap: anywhere; }
.privacy-execution-result small { color: var(--muted); }
.privacy-request-details { border-top: 1px solid var(--line); padding-top: .85rem; }
.privacy-request-details h4 { margin: 0 0 .65rem; }
.privacy-request-details .history-list { margin: 0; }
.privacy-hold-card { grid-template-columns: minmax(0, 1fr) auto; align-items: start; }
.privacy-hold-card > div { display: grid; gap: .35rem; }
.privacy-hold-card.released { opacity: .72; }
.privacy-hold-card .row-action { margin-top: .45rem; justify-self: end; }
.privacy-request-card .identity-actions a.row-action { text-decoration: none; display: inline-flex; align-items: center; }
.privacy-retention-card { border: 1px solid var(--line); border-radius: 14px; padding: .9rem; background: var(--surface); display: grid; gap: .65rem; }
.privacy-retention-card > header, .privacy-retention-card > footer { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.privacy-retention-card > header > div { display: grid; gap: .2rem; }
.privacy-retention-card > p { margin: 0; line-height: 1.5; }
.privacy-retention-card > div { display: grid; grid-template-columns: minmax(110px,.22fr) minmax(0,1fr); gap: .7rem; padding-top: .5rem; border-top: 1px solid var(--line); }
.privacy-retention-card > div small { color: var(--muted); font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.privacy-retention-card > div span { overflow-wrap: anywhere; font-size: .75rem; line-height: 1.45; }
.privacy-retention-card > footer { color: var(--muted); }
.privacy-retention-card > footer small { max-width: 78%; line-height: 1.45; }
.privacy-retention-card > footer span { font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.privacy-execution-fields { display: grid; gap: .85rem; }
.execution-warning { padding: .85rem; border: 1px solid #e0bd77; border-radius: 12px; background: #fff8e8; line-height: 1.5; }
.execution-warning.critical { border-color: #d79275; background: #fff4f1; display: grid; gap: .35rem; }
.execution-warning.critical strong { color: #93432d; }

@media (max-width: 820px) {
  .privacy-request-meta { grid-template-columns: 1fr; }
  .privacy-hold-card { grid-template-columns: 1fr; }
  .privacy-hold-card .row-action { justify-self: start; }
  .privacy-retention-card > div { grid-template-columns: 1fr; gap: .2rem; }
}

@media (max-width: 520px) {
  .privacy-heading-actions { width: 100%; }
  .privacy-heading-actions > * { flex: 1 1 auto; }
  .privacy-request-card > header { flex-direction: column; }
}

.project-procurement { margin-top: 30px; padding-top: 26px; border-top: 1px solid var(--line); }
.procurement-stack { display: grid; gap: 12px; }
.procurement-project-card { padding: 17px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.stage-gate-card.ready { border-color: #bfd3c2; background: #f0f6f1; }
.procurement-view { display: grid; gap: 18px; }
.procurement-metrics { margin-bottom: 0; }
.procurement-panel { overflow: hidden; }
.procurement-cards { display: grid; }
.procurement-card { display: grid; grid-template-columns: minmax(150px,.7fr) minmax(210px,1.1fr) minmax(160px,.7fr) minmax(140px,.6fr) auto; gap: 16px; align-items: center; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.procurement-card:last-child { border-bottom: 0; }
.procurement-card:hover { background: #fafbf8; }
.procurement-card strong, .procurement-card small { display: block; }
.procurement-card strong { font-size: .76rem; }
.procurement-card small { margin-top: 4px; color: var(--muted); font-size: .62rem; line-height: 1.45; }
.purchase-order-detail { padding: 24px; }
.purchase-order-detail-grid { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(280px,.55fr); gap: 30px; padding-top: 26px; }
.purchase-order-detail-grid > * { min-width: 0; }
.purchase-order-detail-grid h2, .purchase-order-form-items h3 { margin: 22px 0 12px; font-size: .88rem; }
.purchase-order-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.purchase-order-summary article { padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: #fafbf8; }
.purchase-order-summary span, .purchase-order-summary strong { display: block; }
.purchase-order-summary span { color: var(--muted); font-size: .6rem; text-transform: uppercase; letter-spacing: .05em; }
.purchase-order-summary strong { margin-top: 5px; font-size: .76rem; }
.purchase-order-summary p { grid-column: 1 / -1; margin: 0; padding: 12px 14px; border-radius: 10px; background: #fff8e8; font-size: .68rem; line-height: 1.5; }
.purchase-order-summary .risk-note { background: #f7e4df; color: #8e3f35; }
.purchase-order-actions { display: flex; flex-wrap: wrap; gap: 9px; margin: 18px 0; }
.purchase-order-items table small { display: block; margin-top: 3px; color: var(--muted); font-size: .6rem; }
.purchase-order-receipts > div { display: grid; gap: 10px; }
.receipt-card { display: grid; grid-template-columns: minmax(140px,.5fr) minmax(0,1fr); gap: 8px 18px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: #fafbf8; }
.receipt-card strong, .receipt-card small { display: block; }
.receipt-card strong { font-size: .7rem; }
.receipt-card small, .receipt-card p, .receipt-card li { color: var(--muted); font-size: .63rem; line-height: 1.5; }
.receipt-card p { margin: 0; }
.receipt-card ul { grid-column: 1 / -1; margin: 0; padding-left: 18px; }
.counterparty-documents-panel { min-width: 0; margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--line); }
.supplier-payable-panel { min-width: 0; margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--line); }
.counterparty-document-list { display: grid; gap: 9px; }
.counterparty-document-card { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px 16px; align-items: start; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: #fafbf8; }
.counterparty-document-card.accepted { border-color: #bfd3c2; background: #f0f6f1; }
.counterparty-document-card.rejected { border-color: rgba(181,74,61,.35); background: #fff9f8; }
.counterparty-document-card strong, .counterparty-document-card small { display: block; }
.counterparty-document-card strong { font-size: .74rem; }
.counterparty-document-card small { margin-top: 4px; color: var(--muted); font-size: .62rem; line-height: 1.45; }
.counterparty-document-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.project-cases { min-width: 0; margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--line); }
.project-cases .subsection-head h2, .project-cases .subsection-head h3 { margin: 0; font-size: .92rem; }
.case-card-list { display: grid; gap: 9px; }
.project-case-card { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px 18px; align-items: center; padding: 14px 15px; border: 1px solid var(--line); border-left: 4px solid #c8d2ca; border-radius: 12px; background: #fafbf8; }
.project-case-card.awaiting_makosha { border-left-color: var(--red); background: #fff9f8; }
.project-case-card.awaiting_counterparty { border-left-color: var(--gold); background: #fffaf0; }
.project-case-card.in_progress { border-left-color: var(--forest); background: #f1f6f2; }
.project-case-card.resolved, .project-case-card.closed { opacity: .82; }
.project-case-card strong, .project-case-card small { display: block; }
.project-case-card strong { font-size: .75rem; }
.project-case-card small { margin-top: 4px; color: var(--muted); font-size: .62rem; line-height: 1.45; }
.case-dialog { width: min(920px, calc(100vw - 28px)); padding: 26px; }
.case-dialog > section { margin-top: 24px; }
.case-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.case-summary article { min-width: 0; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: #fafbf8; }
.case-summary article.case-resolution { grid-column: 1 / -1; border-color: #bfd3c2; background: #f0f6f1; }
.case-summary span, .case-summary strong { display: block; }
.case-summary span { color: var(--muted); font-size: .58rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.case-summary strong { margin-top: 5px; overflow-wrap: anywhere; font-size: .72rem; line-height: 1.4; }
.case-attachment-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.case-attachment { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: #fafbf8; color: var(--ink); text-decoration: none; }
.case-attachment img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: #eef1eb; }
.case-attachment span { display: block; padding: 9px 10px; overflow-wrap: anywhere; color: var(--muted); font-size: .6rem; line-height: 1.4; }
.case-message-list { display: grid; gap: 9px; max-height: 360px; overflow-y: auto; padding-right: 4px; }
.case-message { max-width: 88%; padding: 12px 14px; border: 1px solid var(--line); border-radius: 13px 13px 13px 4px; background: white; }
.case-message.internal { margin-left: auto; border-color: #e0bd77; border-radius: 13px 13px 4px; background: #fff8e8; }
.case-message > div { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 12px; }
.case-message strong { font-size: .7rem; }
.case-message span, .case-message time { color: var(--muted); font-size: .58rem; }
.case-message p { margin: 7px 0; color: var(--ink); font-size: .72rem; white-space: pre-wrap; }
.case-dialog > .case-message-form, .case-dialog > .case-attachment-form { grid-template-columns: minmax(0,1fr) minmax(180px,.32fr) auto; align-items: end; gap: 10px; margin-top: 16px; padding: 15px; border: 1px solid var(--line); border-radius: 13px; background: #fafbf8; }
.case-dialog > .case-message-form .dialog-error, .case-dialog > .case-attachment-form .dialog-error { grid-column: 1 / -1; }
.case-dialog > .case-message-form button, .case-dialog > .case-attachment-form button { min-height: 44px; }
.case-status-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.purchase-order-form-items { display: grid; gap: 9px; margin: 8px 0 16px; }
.purchase-order-line, .purchase-order-decision-line, .purchase-order-receive-line { display: grid; grid-template-columns: minmax(0,1fr) minmax(120px,.32fr); gap: 12px; align-items: center; padding: 12px 14px; border: 1px solid var(--line); border-radius: 11px; background: #fafbf8; }
.purchase-order-decision-line, .purchase-order-receive-line { grid-template-columns: minmax(0,1fr) minmax(115px,.28fr) minmax(135px,.34fr); }
.purchase-order-line strong, .purchase-order-line small, .purchase-order-decision-line strong, .purchase-order-decision-line small, .purchase-order-receive-line strong, .purchase-order-receive-line small { display: block; }
.purchase-order-line strong, .purchase-order-decision-line strong, .purchase-order-receive-line strong { font-size: .72rem; }
.purchase-order-line small, .purchase-order-decision-line small, .purchase-order-receive-line small { margin-top: 3px; color: var(--muted); font-size: .61rem; }
.purchase-order-line input, .purchase-order-decision-line input, .purchase-order-receive-line input { width: 100%; min-height: 40px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 9px; background: white; font: inherit; }
.purchase-order-decision-line label, .purchase-order-receive-line label { display: grid; gap: 4px; color: var(--muted); font-size: .61rem; font-weight: 800; }
.ai-project-block { display: grid; gap: 12px; margin-bottom: 20px; padding: 18px; border: 1px solid #c7d7cd; border-radius: 15px; background: linear-gradient(145deg,#f2f7f3,#fbfaf6); }
.ai-project-block .subsection-head { margin-bottom: 0; }
.ai-job-card, .ai-request-card { border-color: #c8d8ce; background: rgba(255,255,255,.86); }
.ai-prompt, .ai-consent-box { margin: 12px 0; padding: 13px 14px; border: 1px solid var(--line); border-radius: 11px; background: #f8faf7; }
.ai-prompt strong, .ai-consent-box strong { font-size: .7rem; }
.ai-prompt p, .ai-consent-box p { margin: 7px 0 0; color: var(--muted); font-size: .68rem; line-height: 1.55; white-space: pre-wrap; }
.ai-egress-form { display: grid; gap: 16px; max-width: 920px; }
.ai-egress-form small { color: var(--muted); line-height: 1.45; }
.ai-egress-form input, .ai-egress-form select { width: 100%; min-height: 44px; }
.technical-overview { display: grid; gap: 18px; }
.technical-overview.hidden { display: none; }
.technical-overview-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr); gap: 18px; align-items: start; }
.technical-services-panel, .technical-events-panel { grid-column: 1; }
.technical-access-panel, .technical-ai-panel { grid-column: 2; }
.technical-check-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 18px 20px 20px; }
.technical-check { min-width: 0; display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 1px 9px; align-items: center; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: #f8faf7; }
.technical-check > span { grid-row: span 2; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #dfece1; color: var(--forest); font-weight: 900; }
.technical-check.failed { border-color: #e5b7ae; background: #fff9f8; }
.technical-check.failed > span { background: #f7e4df; color: var(--red); }
.technical-check strong { min-width: 0; overflow-wrap: anywhere; font-size: .68rem; }
.technical-check small { color: var(--muted); font-size: .58rem; }
.technical-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 18px 20px 12px; }
.technical-summary > div:not(.identity-empty) { display: grid; gap: 4px; padding: 12px; border-radius: 11px; background: #f7f9f5; }
.technical-summary span { color: var(--muted); font-size: .59rem; }
.technical-summary strong { color: var(--forest); font-size: .72rem; overflow-wrap: anywhere; }
.technical-boundary { margin: 0; padding: 0 20px 20px; color: var(--muted); font-size: .62rem; line-height: 1.55; }
.technical-event-list { display: grid; }
.technical-event { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: center; padding: 13px 20px; border-top: 1px solid var(--line); }
.technical-event > span { padding: 5px 8px; border-radius: 999px; background: #fff2d8; color: #8a5d15; font-size: .56rem; font-weight: 850; }
.technical-event.failed > span { background: #f7e4df; color: var(--red); }
.technical-event strong, .technical-event small { display: block; overflow-wrap: anywhere; }
.technical-event strong { font: 800 .66rem/1.4 ui-monospace, monospace; }
.technical-event small { margin-top: 3px; color: var(--muted); font-size: .58rem; }
.technical-advanced { padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: #f8faf7; }
.technical-advanced summary { color: var(--forest); font-size: .68rem; font-weight: 850; cursor: pointer; }
.technical-advanced > p { margin: 10px 0 14px; color: var(--muted); font-size: .64rem; line-height: 1.55; }
.technical-advanced .dialog-grid { margin-top: 4px; }

@media (max-width: 920px) {
  .technical-overview-grid { grid-template-columns: 1fr; }
  .technical-services-panel, .technical-events-panel, .technical-access-panel, .technical-ai-panel { grid-column: 1; }
  .technical-check-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .procurement-card { grid-template-columns: 1fr 1fr; }
  .procurement-card .row-action { justify-self: start; }
  .purchase-order-detail-grid { grid-template-columns: 1fr; }
  .purchase-order-summary { grid-template-columns: 1fr 1fr; }
  .case-summary { grid-template-columns: 1fr 1fr; }
  .case-attachment-grid { grid-template-columns: 1fr 1fr; }
  .case-dialog > .case-message-form, .case-dialog > .case-attachment-form { grid-template-columns: 1fr 1fr; }
  .case-dialog > .case-message-form button, .case-dialog > .case-attachment-form button { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  .technical-check-list, .technical-summary { grid-template-columns: 1fr; }
  .design-preview-form { grid-template-columns: 1fr; }
  .customer-lead-services { grid-template-columns: 1fr; }
  .audit-filters { grid-template-columns: 1fr; }
  .audit-event-head { flex-direction: column; }
  .design-preview-form .secondary-action { width: 100%; }
  .procurement-card { grid-template-columns: 1fr; gap: 9px; }
  .purchase-order-detail { padding: 16px; }
  .purchase-order-summary { grid-template-columns: 1fr; }
  .purchase-order-line, .purchase-order-decision-line, .purchase-order-receive-line { grid-template-columns: 1fr; }
  .purchase-order-actions > button { width: 100%; }
  .receipt-card { grid-template-columns: 1fr; }
  .receipt-card ul { grid-column: auto; }
  .counterparty-document-card { grid-template-columns: 1fr; }
  .counterparty-document-actions { justify-content: stretch; }
  .counterparty-document-actions .row-action { flex: 1 1 100%; min-height: 44px; }
  .counterparty-registry-head, .counterparty-eligibility { align-items: stretch; flex-direction: column; }
  .counterparty-registry-card .counterparty-document-actions { justify-content: stretch; }
  .counterparty-registry-card .row-action { flex: 1 1 100%; min-height: 44px; }
  .project-case-card { grid-template-columns: 1fr; }
  .project-case-card .row-action { min-height: 44px; justify-self: stretch; }
  .case-dialog { width: calc(100vw - 16px); max-height: calc(100vh - 16px); padding: 18px; }
  .case-summary, .case-attachment-grid, .case-dialog > .case-message-form, .case-dialog > .case-attachment-form { grid-template-columns: 1fr; }
  .case-summary article.case-resolution { grid-column: auto; }
  .case-message { max-width: 100%; }
  .case-status-actions .row-action { flex: 1 1 100%; min-height: 44px; }
  .password-receipt-facts > div { grid-template-columns: 1fr; gap: 5px; }
  .password-receipt-secret span { display: grid; grid-template-columns: 1fr; }
}
.mfa-app-links { display: grid; gap: 8px; padding: 12px; border: 1px solid #d9e2dc; border-radius: 12px; background: #f7faf7; }
.mfa-app-links a { color: var(--forest); font-size: .69rem; font-weight: 850; line-height: 1.4; }
.mfa-app-links a::after { content: " ↗"; color: var(--gold); }
.mfa-recovery-panel { display: grid; gap: 12px; padding: 14px; border: 1px solid #b9d2c2; border-radius: 12px; background: #f3faf5; }
/* Web-admin public portfolio */
.portfolio-admin-actions { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.portfolio-admin-actions a { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; }
.portfolio-admin-panel { margin-top:24px; }
.portfolio-admin-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; padding:20px; }
.portfolio-admin-card { overflow:hidden; border:1px solid #dde4df; border-radius:22px; background:#fff; box-shadow:0 12px 32px rgba(20,47,35,.06); }
.portfolio-admin-media { position:relative; min-height:210px; background:linear-gradient(145deg,#102f22,#1f6044); }
.portfolio-admin-media img { width:100%; height:210px; display:block; object-fit:cover; }
.portfolio-admin-placeholder { min-height:210px; display:grid; place-items:center; align-content:center; gap:10px; padding:20px; color:rgba(255,255,255,.78); text-align:center; }
.portfolio-admin-placeholder img { width:min(72%,200px); height:auto; object-fit:contain; }
.portfolio-admin-copy { padding:18px; }
.portfolio-admin-meta { display:flex; flex-wrap:wrap; align-items:center; gap:7px; margin-bottom:10px; }
.portfolio-admin-badge { display:inline-flex; border-radius:999px; padding:5px 9px; background:#eef3ef; color:#436052; font-size:12px; font-weight:800; }
.portfolio-admin-badge.published { color:#175b37; background:#e1f4e8; }
.portfolio-admin-badge.draft { color:#805b19; background:#fff2d7; }
.portfolio-admin-badge.warning { color:#8b2f28; background:#fde8e5; }
.portfolio-admin-card h3 { margin:0 0 9px; font-family:Georgia,"Times New Roman",serif; font-size:25px; font-weight:400; line-height:1.1; }
.portfolio-admin-card p { display:-webkit-box; overflow:hidden; margin:0 0 14px; color:#738078; line-height:1.55; -webkit-line-clamp:3; -webkit-box-orient:vertical; }
.portfolio-admin-card small { color:#87918b; }
.portfolio-admin-card-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.portfolio-admin-card-actions .danger { color:#8a2924; border-color:#e8c7c4; }
.portfolio-editor-dialog label small { display:block; margin-top:6px; color:#7d8881; line-height:1.45; }
.portfolio-editor-dialog input[type=file] { padding:12px; background:#f7f9f7; }
@media (max-width:1100px) { .portfolio-admin-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:700px) { .portfolio-admin-grid { grid-template-columns:1fr; padding:14px; } .portfolio-admin-actions { justify-content:flex-start; } }
/* Director lists and aggregates share the cabinet's soft visual theme. */
.director-filters {display:flex;flex-wrap:wrap;gap:14px;align-items:end;margin:20px 0;}
.director-filters label {display:grid;gap:7px;min-width:170px;flex:1;font-size:13px;}
.director-filters input,.director-filters select {width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);}
.director-table {overflow:auto;}.director-table table {width:100%;border-collapse:collapse;}.director-table th,.director-table td {padding:16px;text-align:left;border-bottom:1px solid var(--line);}.director-table small {display:block;margin-top:6px;color:var(--muted);}
.director-pagination {display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:20px 0;}.director-pagination button:disabled {opacity:.5;cursor:default;}
.director-cards {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:20px;margin:24px 0;}.director-card,.director-empty {padding:24px;}.director-card h2 {font-size:24px;margin-bottom:16px;}.director-card p {font-size:14px;color:var(--muted);}.director-summary-row {display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);}.director-card .row-action {margin-top:14px;}
