/* UX-VIS-001: shared pastel-green visual language for the legacy ERP shell.
   The Operations workspace is the visual reference: calm paper surfaces,
   dark botanical navigation, green actions, and warm amber only for warnings. */
:root {
  color-scheme: light;
  --bg: #f5f4ef;
  --panel: #ffffff;
  --text: #18231f;
  --muted: #56615c;
  --gold: #275344;
  --violet: #7b9a8b;
  --line: #deded7;
  --good: #23825d;
  --erp-bg: #f5f4ef;
  --erp-sidebar: #172a24;
  --erp-panel: #ffffff;
  --erp-panel-2: #f1f7f4;
  --erp-panel-3: #eeede7;
  --erp-line: #deded7;
  --erp-line-strong: #c8cbc4;
  --erp-text: #18231f;
  --erp-muted: #56615c;
  --erp-faint: #708078;
  --erp-brand: #275344;
  --erp-brand-strong: #193e32;
  --erp-violet: #7b9a8b;
  --erp-good: #23825d;
  --erp-warning: #b78325;
  --erp-danger: #a12828;
  --erp-info: #3a7b63;
}

html,
body {
  background: var(--erp-bg);
  color: var(--erp-text);
  /* Keep translated, off-canvas drawers from widening the document.  This
     keeps a drawer anchored to the visible viewport in full-page captures and
     in real browser navigation, including when the ELZA dock is closed. */
  overflow-x: clip;
}

body {
  background: radial-gradient(circle at 85% -16%, rgb(103 158 129 / 14%), transparent 34rem), var(--erp-bg);
}

body > .erp-auth-root {
  background: transparent;
}

#login-view {
  color: var(--erp-text);
  background: linear-gradient(155deg, #ffffff, #edf6f1);
  border-color: var(--erp-line-strong);
  box-shadow: 0 18px 48px rgb(23 42 36 / 12%);
}

#login-view:before {
  color: var(--erp-brand);
}

#login-view:after {
  color: var(--erp-muted);
}

.erp-auth-root label,
#login-view label {
  color: var(--erp-muted);
}

input,
select,
textarea,
#login-view input,
#login-view select {
  color: var(--erp-text);
  background: #ffffff;
  border-color: var(--erp-line-strong);
}

button,
#login-view button,
.erp-content button {
  background: var(--erp-brand);
  color: #ffffff;
}

button.secondary,
#login-view button.secondary,
.erp-content button.secondary {
  color: var(--erp-brand);
  background: #ffffff;
  border-color: var(--erp-line-strong);
}

.erp-shell {
  background: var(--erp-bg);
}

.erp-sidebar {
  background: linear-gradient(180deg, #19392f, #122d26 72%, #10271f);
  border-right-color: #285344;
}

.erp-brand,
.erp-sidebar-footer {
  border-color: rgb(255 255 255 / 12%);
}

.erp-brand-mark {
  border-color: #a8d2be;
  box-shadow: inset 0 0 18px rgb(134 199 162 / 12%);
}

.erp-brand-mark i:first-child,
.erp-elza-presence i:first-child {
  background: #9ecdb4;
}

.erp-brand-mark i:last-child,
.erp-elza-presence i:last-child {
  background: #d4eadb;
}

.erp-brand-copy small,
.erp-sidebar-footer,
.erp-nav-group-head,
.erp-nav-pin {
  color: #a8bdb3;
}

.erp-nav-item {
  color: #d1ded8;
}

.erp-nav-item:hover {
  color: #ffffff;
  background: rgb(255 255 255 / 8%);
  border-color: rgb(255 255 255 / 8%);
}

.erp-nav-item.is-active {
  color: #ffffff;
  background: linear-gradient(90deg, rgb(132 194 158 / 22%), rgb(193 224 204 / 9%));
  border-color: rgb(161 211 181 / 34%);
}

.erp-nav-item.is-active:before {
  background: #9ecdb4;
}

.erp-nav-icon {
  color: #b4dac2;
  background: rgb(255 255 255 / 8%);
}

.erp-sidebar-footer strong {
  color: #a8d2be;
}

.erp-stage {
  background: var(--erp-bg);
}

.erp-topbar {
  background: rgb(245 244 239 / 94%);
  border-bottom-color: var(--erp-line);
}

.erp-breadcrumb small,
.erp-page-description,
.erp-view-meta,
.erp-content label,
.erp-content .item p,
.erp-content .item small,
.erp-content .asset small {
  color: var(--erp-muted);
}

.erp-context-select,
.erp-top-action,
.erp-content input,
.erp-content select,
.erp-content textarea {
  background: #ffffff;
  color: var(--erp-text);
  border-color: var(--erp-line-strong);
}

.erp-top-action {
  color: var(--erp-muted) !important;
}

.erp-top-action:hover {
  color: var(--erp-brand) !important;
  border-color: var(--erp-brand) !important;
}

.erp-top-action.is-primary,
.erp-content button:not(.secondary):not(.danger) {
  background: var(--erp-brand) !important;
  color: #ffffff !important;
  border-color: var(--erp-brand) !important;
}

.erp-avatar {
  background: linear-gradient(135deg, #6d9f86, #275344);
  color: #ffffff;
  border-color: #c7e1d0;
}

.erp-page-header,
.erp-subnav,
.erp-content details,
.erp-content table,
.erp-content td,
.erp-content th {
  border-color: var(--erp-line);
}

.erp-page-kicker,
.erp-content h3,
.erp-elza-context small,
.erp-elza-head small,
.erp-work-head small {
  color: var(--erp-brand);
}

.erp-content details {
  background: linear-gradient(180deg, #ffffff, #f2f8f4);
}

.erp-content details > summary {
  color: var(--erp-text);
}

.erp-content details > summary:before {
  color: var(--erp-brand);
  background: #e2ebe7;
}

.erp-content .item,
.erp-content .asset {
  background: #fbfcfb;
  border-color: var(--erp-line);
}

.erp-content .item:hover,
.erp-content .asset:hover {
  background: #f1f7f4;
  border-color: #abcdb9;
}

.erp-content pre {
  color: #1d5947;
  background: #edf5f1;
  border-color: var(--erp-line);
}

.erp-content .notice {
  color: var(--erp-muted);
  background: #f1f7f4;
  border-color: #cbded7;
  border-left-color: var(--erp-brand);
}

.erp-content .state,
.erp-subnav-item:hover,
.erp-subnav-item.is-active {
  color: var(--erp-brand) !important;
  background: #edf5f1 !important;
  border-color: #9fc4ad !important;
}

.erp-elza-dock {
  color: var(--erp-text);
  background: linear-gradient(180deg, #f4f8f5, #e8f0eb);
  border-left-color: var(--erp-line);
  box-shadow: -14px 0 38px rgb(23 42 36 / 12%);
}

.erp-elza-head,
.erp-elza-foot {
  border-color: var(--erp-line);
}

.erp-elza-context {
  background: #ffffff;
  border-color: var(--erp-line);
}

.erp-elza-context p,
.erp-elza-foot {
  color: var(--erp-muted);
}

.erp-elza-quick button,
.erp-elza-close {
  color: var(--erp-brand) !important;
  background: #ffffff !important;
  border-color: var(--erp-line-strong) !important;
}

.erp-elza-compose textarea {
  color: var(--erp-text);
  background: #ffffff;
  border-color: var(--erp-line-strong);
}

.erp-overlay {
  background: rgb(23 42 36 / 24%);
}

.erp-command,
.erp-command-head,
.erp-command-item,
.erp-saved-menu {
  color: var(--erp-text);
  background: #ffffff;
  border-color: var(--erp-line);
}

.erp-command-head,
.erp-saved-menu {
  background: #f1f7f4;
}

.erp-command-head input {
  color: var(--erp-text);
  background: #ffffff;
  border-color: var(--erp-line-strong);
}

.erp-command-item:hover,
.erp-command-item.is-selected,
.erp-saved-item:hover {
  background: #edf5f1;
  border-color: #cbded7;
}

.erp-notification-drawer,
.erp-work-drawer {
  color: var(--erp-text);
  background: linear-gradient(180deg, #f4f8f5, #e8f0eb);
  border-color: var(--erp-line);
  box-shadow: -18px 0 48px rgb(23 42 36 / 16%);
}

/* Keep the work status controls compact; the empty/list area owns the
   flexible drawer height instead of stretching two buttons into a tall band. */
.erp-work-drawer {
  grid-template-rows: auto auto auto auto auto auto auto auto auto minmax(0, 1fr) auto;
}

.erp-notification-head,
.erp-notification-overview,
.erp-notification-foot,
.erp-work-head,
.erp-work-overview,
.erp-work-foot {
  background: #edf5f1;
  border-color: var(--erp-line);
}

.erp-notification-head small,
.erp-notification-overview-head p,
.erp-notification-status,
.erp-notification-summary,
.erp-notification-source,
.erp-notification-evidence,
.erp-notification-foot,
.erp-work-overview-head p,
.erp-work-status,
.erp-work-summary,
.erp-work-owner,
.erp-work-deadline,
.erp-work-calendar,
.erp-work-foot {
  color: var(--erp-muted);
}

/* Long operational copy must wrap inside the fixed drawer instead of
   expanding the layout or disappearing beyond the viewport edge. */
.erp-notification-head div,
.erp-notification-overview-head,
.erp-work-head div,
.erp-work-overview-head,
.erp-notification-summary,
.erp-work-summary,
.erp-work-status {
  min-width: 0;
  overflow-wrap: anywhere;
}

.erp-notification-filter,
.erp-notification-card,
.erp-work-filter,
.erp-work-domain,
.erp-work-toolbar select,
.erp-work-toolbar button,
.erp-work-calendars,
.erp-work-governance,
.erp-work-coverage,
.erp-work-item,
.erp-work-load,
.erp-work-empty {
  color: var(--erp-text);
  background: #ffffff !important;
  border-color: var(--erp-line) !important;
}

.erp-notification-filter[aria-pressed="true"],
.erp-work-filter[aria-pressed="true"],
.erp-work-domain[aria-pressed="true"] {
  color: var(--erp-brand) !important;
  background: #e2ebe7 !important;
  border-color: #9fc4ad !important;
}

.erp-notification-card {
  border-left-color: #80a994 !important;
}

.erp-notification-card.is-action_required,
.erp-work-item.sla-at_risk {
  border-left-color: var(--erp-warning) !important;
}

.erp-notification-card.is-information,
.erp-work-item.sla-on_track {
  border-left-color: var(--erp-good) !important;
}

.erp-work-item.sla-breached,
.erp-work-item.sla-paused {
  border-left-color: var(--erp-danger) !important;
}

/* UX-VIS-002: the secondary drawers must use the same Operations language and
   surfaces when a person opens work, coverage, calendar or review states. */
.erp-notification-overview-stats .erp-notification-chip,
.erp-notification-chip,
.erp-notification-empty,
.erp-notification-events,
.erp-work-calendar-version,
.erp-work-coverage-card,
.erp-work-coverage-comparison,
.erp-work-coverage-exception,
.erp-work-coverage-metric,
.erp-work-coverage-metric-compare,
.erp-work-coverage-metric-create,
.erp-work-coverage-metric-policy-card,
.erp-work-governance-card {
  color: var(--erp-text);
  background: #ffffff !important;
  border-color: var(--erp-line) !important;
}

.erp-notification-ack,
.erp-notification-evidence,
.erp-work-calendar-reason,
.erp-work-review-note,
.erp-work-handoff-note,
.erp-work-pause-note,
.erp-work-ack-note,
.erp-work-action-note,
.erp-work-governance-boundary {
  color: var(--erp-muted);
  background: #edf5f1 !important;
  border-color: #cbded7 !important;
}

.erp-work-coverage-metric-head,
.erp-work-coverage-metric-values,
.erp-work-coverage-metric-policy,
.erp-work-coverage-times,
.erp-work-coverage-people,
.erp-work-governance-roles,
.erp-work-calendar-version-head,
.erp-work-meta,
.erp-work-priority,
.erp-work-sla-chip,
.erp-work-status {
  color: var(--erp-muted);
}

.erp-work-governance-form input,
.erp-work-governance-form select,
.erp-work-governance-form textarea,
.erp-work-coverage-form input,
.erp-work-coverage-form select,
.erp-work-coverage-form textarea,
.erp-work-coverage-exception-form input,
.erp-work-coverage-exception-form select,
.erp-work-coverage-exception-form textarea {
  color: var(--erp-text) !important;
  background: #ffffff !important;
  border-color: var(--erp-line-strong) !important;
}

.erp-work-coverage-metric .is-covered,
.erp-work-governance-health .is-covered {
  color: var(--erp-good) !important;
  border-color: #9fc4ad !important;
}

.erp-work-coverage-metric .is-warning,
.erp-work-governance-health .is-warning {
  color: var(--erp-warning) !important;
  border-color: #d8bd75 !important;
}

.erp-work-review-note,
.erp-work-handoff-note,
.erp-work-pause-note,
.erp-work-ack-note,
.erp-work-action-note,
.erp-work-governance-boundary {
  color: var(--erp-muted);
  background: #edf5f1;
}

.erp-work-actions button,
.erp-work-status-actions button,
.erp-work-empty-actions button,
.erp-work-load-row button,
.erp-work-governance-edit,
.erp-work-governance-form button,
.erp-work-coverage-handover button,
.erp-work-coverage-edit {
  color: var(--erp-brand);
  background: #ffffff;
  border-color: var(--erp-line-strong);
}

.erp-work-primary,
.erp-work-actions .erp-work-primary,
.erp-work-status-actions .erp-work-primary,
.erp-work-governance-form .erp-work-primary {
  color: #ffffff !important;
  background: var(--erp-brand) !important;
  border-color: var(--erp-brand) !important;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
  outline-color: #3f8f70 !important;
}

/* UX-VIS-003: close the remaining dark-shell escape hatches.  The base
   stylesheet is kept as a safe fallback for older clients, but every surface
   that a person can open in the current application must inherit the calm
   Operations palette: paper background, white cards, botanical text and
   green controls. Amber remains reserved for an actual warning state. */
.erp-content details,
.erp-content details > form,
.erp-content details > div,
.erp-content details > p,
.erp-content .erp-record-grid,
.erp-content .erp-record-editor,
.erp-content .erp-timeline-state,
.erp-content .erp-timeline-toolbar {
  color: var(--erp-text);
  background: #ffffff;
}

.erp-content .erp-record-row,
.erp-content .erp-record-drawer,
.erp-content .erp-grid-toolbar,
.erp-content .erp-timeline-item {
  color: var(--erp-text);
  background: #ffffff;
  border-color: var(--erp-line);
}

.erp-content .erp-record-row:hover,
.erp-content .erp-record-row:focus-visible,
.erp-content .erp-grid-queue.is-active,
.erp-content .erp-grid-pinned-only.is-active {
  color: var(--erp-brand);
  background: #edf5f1;
  border-color: #9fc4ad;
}

.erp-content .erp-status-in-progress,
.erp-content .erp-status-submitted,
.erp-content .erp-status-assigned,
.erp-content .erp-status-s2 {
  color: #23664f;
  background: #e5f2eb;
}

.erp-content .erp-status-active,
.erp-content .erp-status-approved,
.erp-content .erp-status-resolved,
.erp-content .erp-status-good,
.erp-content .erp-status-completed {
  color: #1f6b4f;
  background: #e3f3e9;
}

.erp-content .erp-edit-error,
.erp-content .erp-timeline-state.is-error,
.erp-content .erp-timeline-comparison-error {
  color: var(--erp-danger);
}

.erp-content .erp-timeline-comparison-error {
  background: #fff5f5;
  border-color: #e7b0aa;
}

#message {
  color: var(--erp-text);
  background: #edf5f1;
  border-color: #9fc4ad;
}

#review-view {
  color: var(--erp-text) !important;
  background: #ffffff !important;
  border-color: var(--erp-line-strong) !important;
}

.erp-notification-drawer {
  color: var(--erp-text);
  background: linear-gradient(180deg, #f4f8f5, #e8f0eb);
  border-color: var(--erp-line);
}

.erp-notification-head,
.erp-notification-overview,
.erp-notification-foot {
  color: var(--erp-text);
  background: #edf5f1;
  border-color: var(--erp-line);
}

.erp-notification-filter,
.erp-notification-card,
.erp-notification-empty,
.erp-notification-events {
  color: var(--erp-text);
  background: #ffffff;
  border-color: var(--erp-line);
}

.erp-notification-filter[aria-pressed="true"] {
  color: var(--erp-brand);
  background: #e2ebe7;
  border-color: #9fc4ad;
}

.erp-notification-title,
.erp-notification-summary,
.erp-notification-source,
.erp-notification-evidence,
.erp-notification-history summary,
.erp-notification-events {
  color: var(--erp-muted);
}

.erp-notification-title {
  color: var(--erp-text);
}

.erp-notification-evidence,
.erp-notification-ack {
  background: #edf5f1;
  border-color: #cbded7;
}

.erp-work-drawer {
  color: var(--erp-text);
  background: linear-gradient(180deg, #f4f8f5, #e8f0eb);
  border-color: var(--erp-line);
}

.erp-work-filter,
.erp-work-domain,
.erp-work-toolbar select,
.erp-work-toolbar button,
.erp-work-calendars,
.erp-work-governance,
.erp-work-coverage,
.erp-work-load,
.erp-work-empty {
  color: var(--erp-text) !important;
  background: #ffffff !important;
  border-color: var(--erp-line) !important;
}

.erp-work-filter[aria-pressed="true"],
.erp-work-domain[aria-pressed="true"] {
  color: var(--erp-brand) !important;
  background: #e2ebe7 !important;
  border-color: #9fc4ad !important;
}

.erp-work-overview {
  color: var(--erp-text);
  background: #edf5f1;
  border-color: var(--erp-line);
}

.erp-work-calendar-version,
.erp-work-item,
.erp-work-governance-card,
.erp-work-coverage-card,
.erp-work-coverage-metric,
.erp-work-coverage-metric-policy-card,
.erp-work-coverage-comparison {
  color: var(--erp-text);
  background: #ffffff;
  border-color: var(--erp-line);
}

.erp-work-calendar-version,
.erp-work-coverage-card,
.erp-work-coverage-metric,
.erp-work-coverage-metric-policy-card,
.erp-work-coverage-comparison {
  border-left-color: #80a994;
}

.erp-work-title,
.erp-work-governance-card strong,
.erp-work-coverage-card strong,
.erp-work-coverage-metric strong,
.erp-work-coverage-metric-policy-card strong,
.erp-work-coverage-comparison strong {
  color: var(--erp-text);
}

.erp-work-summary,
.erp-work-owner,
.erp-work-deadline,
.erp-work-calendar,
.erp-work-governance-reason,
.erp-work-coverage-people,
.erp-work-coverage-handover small,
.erp-work-coverage-exception small,
.erp-work-coverage-metric small,
.erp-work-coverage-metric p,
.erp-work-coverage-metric-policy-card small,
.erp-work-coverage-metric-policy-card p,
.erp-work-coverage-comparison small,
.erp-work-coverage-comparison p {
  color: var(--erp-muted);
}

.erp-work-review-note,
.erp-work-pause-note,
.erp-work-ack-note,
.erp-work-action-note,
.erp-work-handoff-note,
.erp-work-governance-boundary,
.erp-work-calendar-reason {
  color: var(--erp-muted);
  background: #edf5f1;
  border-color: #cbded7;
}

.erp-work-meta .erp-work-priority,
.erp-work-meta .erp-work-sla-chip.sla-at_risk {
  color: var(--erp-warning);
  border-color: #d8bd75;
}

.erp-work-meta .erp-work-sla-chip.sla-breached,
.erp-work-meta .erp-work-escalation {
  color: var(--erp-danger);
  border-color: #e7b0aa;
}

.erp-work-meta .erp-work-sla-chip.sla-on_track,
.erp-work-meta .erp-work-skill,
.erp-work-coverage-people .is-covered,
.erp-work-coverage-metric .is-covered,
.erp-work-governance-health .is-covered {
  color: var(--erp-good);
  border-color: #9fc4ad;
}

.erp-work-governance-health .is-warning,
.erp-work-coverage-metric .is-warning {
  color: var(--erp-warning);
  border-color: #d8bd75;
}

.erp-work-coverage-handover,
.erp-work-coverage-exception {
  border-color: var(--erp-line);
}

.erp-work-coverage-exception button,
.erp-work-coverage-exception-edit,
.erp-work-coverage-exception-form button,
.erp-work-coverage-metric-create,
.erp-work-coverage-metric-policy,
.erp-work-coverage-metric-compare {
  color: var(--erp-brand);
  background: #edf5f1;
  border-color: #9fc4ad;
}

.erp-work-foot {
  color: var(--erp-muted);
  background: #edf5f1;
  border-color: var(--erp-line);
}

.erp-shell.work-open:before {
  background: rgb(23 42 36 / 24%);
}
