/* DispaKit internal product theme. The two brand anchors come directly from the logo SVG. */
:root {
  --dispakit-dark: #171915;
  --dispakit-dark-hover: #242721;
  --dispakit-lime: #d8ff64;
  --dispakit-lime-hover: #c7ee53;
  --dispakit-lime-soft: #f3f8df;
  --dispakit-lime-ring: rgba(216, 255, 100, 0.32);
  --dispakit-ink: #22251f;
  --dispakit-muted: #687064;
  --dispakit-line: #d9ddd2;
  --dispakit-canvas: #f4f5f1;
}

body.webharvy-ui .pool-docs-link {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  gap: 7px;
  padding: 7px 10px;
  border: 1px solid #394139;
  border-radius: 7px;
  background: #20241f;
  color: #f4f6ee;
  font-size: 11px;
  font-weight: 750;
  text-decoration: none;
}

body.webharvy-ui .pool-docs-link:hover {
  border-color: #68735f;
  background: #2a3028;
  color: #fff;
}

body.webharvy-ui .pool-docs-link svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@media (max-width: 620px) {
  body.webharvy-ui .pool-docs-link span { display: none; }
}

body.dispakit-tool {
  --nav: var(--dispakit-dark);
  --nav2: var(--dispakit-dark-hover);
  --nav-2: var(--dispakit-dark-hover);
  --blue: var(--dispakit-lime);
  --blue2: var(--dispakit-lime-soft);
  --blue-soft: var(--dispakit-lime-soft);
  --accent: var(--dispakit-lime);
  --accent2: var(--dispakit-lime);
  --primary: var(--dispakit-lime);
  --primary2: var(--dispakit-lime-hover);
  --ink: var(--dispakit-ink);
  --text: var(--dispakit-ink);
  --muted: var(--dispakit-muted);
  --line: var(--dispakit-line);
  --soft: var(--dispakit-canvas);
  --bg: var(--dispakit-canvas);
}

body.tool-ui.dispakit-tool {
  --tool-bg: var(--dispakit-canvas);
  --tool-surface: #fff;
  --tool-surface-muted: #f8f9f5;
  --tool-surface-strong: #eef0ea;
  --tool-ink: var(--dispakit-ink);
  --tool-muted: var(--dispakit-muted);
  --tool-line: var(--dispakit-line);
  --tool-line-strong: #c7cec0;
  --tool-nav: var(--dispakit-dark);
  --tool-nav-hover: var(--dispakit-dark-hover);
  --tool-accent: var(--dispakit-lime);
  --tool-accent-hover: var(--dispakit-lime-hover);
  --tool-accent-soft: var(--dispakit-lime-soft);
  --tool-accent-ink: var(--dispakit-dark);
  --tool-accent-readable: #586b18;
}

body.dispakit-tool :where(input, select, textarea):focus {
  border-color: #9bb83e;
  box-shadow: 0 0 0 3px var(--dispakit-lime-ring);
}

body.dispakit-tool :where(button, a, input, select, textarea):focus-visible {
  outline: 2px solid var(--dispakit-lime);
  outline-offset: 2px;
}

/* Primary actions use the logo's lime with dark ink for accessible contrast. */
body.dispatch-ui .btn:not(.secondary):not(.danger) {
  border-color: var(--dispakit-lime);
  background: var(--dispakit-lime);
  color: var(--dispakit-dark);
}

body.dispatch-ui .btn:not(.secondary):not(.danger):hover {
  border-color: var(--dispakit-lime-hover);
  background: var(--dispakit-lime-hover);
  color: var(--dispakit-dark);
}

body.dispakit-tool :where(.btn.secondary, .btn.dark, button.ghost) {
  border-color: var(--dispakit-line);
  background: #fff;
  color: #343a31;
}

body.dispakit-tool :where(.btn.secondary, .btn.dark, button.ghost):hover {
  border-color: #aeb6a7;
  background: #f7f8f4;
}

body.dispakit-tool :where(input[type="checkbox"], input[type="radio"]) {
  accent-color: #91ad36;
}

body.webharvy-ui #save-process-update {
  border-color: #c4da78;
  background: var(--dispakit-lime-soft);
  color: #4d5f13;
}

body.webharvy-ui #save-process-update:hover { background: #e8f4bf; }

body.webharvy-ui .progress-view-tab.active {
  background: var(--dispakit-dark);
  color: var(--dispakit-lime);
  box-shadow: 0 4px 12px rgba(23, 25, 21, 0.14);
}

body.webharvy-ui .pa-hero {
  background: var(--dispakit-dark);
  box-shadow: 0 12px 28px rgba(23, 25, 21, 0.16);
}

body.webharvy-ui .pa-ring::before { background: var(--dispakit-dark-hover); }

/* Pool Database: one neutral visual system, with lime reserved for selection and focus. */
body.webharvy-ui #database-workspace,
body.webharvy-ui #database-workspace > .main {
  background: #fff;
}

body.webharvy-ui #database-workspace .process-head h1,
body.webharvy-ui #database-workspace .results-head h2,
body.webharvy-ui #database-workspace .patch-rule-card b {
  color: #24271f;
}

body.webharvy-ui #database-workspace .process-head p,
body.webharvy-ui #database-workspace #database-selected-count,
body.webharvy-ui #database-workspace #database-selected-patch-count {
  color: #62695e;
}

body.webharvy-ui #database-workspace .database-subnav {
  gap: 6px;
}

body.webharvy-ui #database-workspace .database-subtab {
  min-height: 38px;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: transparent;
  color: #454c40;
  box-shadow: none;
}

body.webharvy-ui #database-workspace .database-subtab:hover {
  border-bottom-color: #c4c8be;
  background: transparent;
  color: #24271f;
}

body.webharvy-ui #database-workspace .database-subtab.active {
  border-bottom-color: var(--dispakit-lime);
  background: transparent;
  color: var(--dispakit-dark);
  box-shadow: none;
}

body.webharvy-ui #database-workspace :where(.results, .database-overview, .patch-rule-card) {
  border-color: #d9dbd3;
  background: #fff;
  box-shadow: none;
}

body.webharvy-ui #database-workspace :where(.results-head, .pager, .patch-rule-summary) {
  border-color: #e0e2da;
  background: #f8f8f5;
}

body.webharvy-ui #database-workspace :where(input[type="text"], input[type="number"], select, textarea) {
  border-color: #c9cdc2;
  background: #fff;
  color: #292d25;
}

body.webharvy-ui #database-workspace :where(input[type="text"], input[type="number"], select, textarea):focus {
  border-color: #98b43c;
  box-shadow: 0 0 0 3px var(--dispakit-lime-ring);
}

body.webharvy-ui #database-workspace .btn.secondary {
  border-color: #d2d5cc;
  background: #fff;
  color: #3f463b;
}

body.webharvy-ui #database-workspace .btn.secondary:hover {
  border-color: #aeb4a7;
  background: #f7f8f4;
  color: #24271f;
}

body.webharvy-ui #database-workspace table {
  border-color: #dedfd8;
  background: #fff;
}

body.webharvy-ui #database-workspace th {
  border-right-color: #dedfd8;
  border-bottom-color: #d5d8cf;
  background: #f2f3ee;
  color: #454c40;
}

body.webharvy-ui #database-workspace td {
  border-right-color: #e5e6df;
  border-bottom-color: #e1e3dc;
  background: #fff;
  color: #2d322a;
}

body.webharvy-ui #database-workspace tbody tr:hover,
body.webharvy-ui #database-workspace tbody tr:hover td,
body.webharvy-ui #database-workspace tbody tr:hover .actions-column-cell {
  background: #f8faef !important;
}

body.webharvy-ui #database-workspace .actions-column {
  background: #f2f3ee !important;
  box-shadow: -4px 0 8px rgba(23, 25, 21, 0.06);
}

body.webharvy-ui #database-workspace .actions-column-cell {
  background: #fff !important;
  box-shadow: -4px 0 8px rgba(23, 25, 21, 0.05);
}

body.webharvy-ui #database-workspace .database-process-toggle {
  border-color: #ccd1c3;
  background: #f5f6f1;
  color: #48513e;
  box-shadow: none;
}

body.webharvy-ui #database-workspace .database-process-toggle b { color: #343b30; }
body.webharvy-ui #database-workspace .database-process-toggle small { color: #6d7569; }
body.webharvy-ui #database-workspace .database-process-toggle input { background: #aeb4a7; }
body.webharvy-ui #database-workspace .database-process-toggle input:checked { background: #91ad36; }

body.webharvy-ui #database-workspace .patch-rule-summary {
  border-color: #dedfd8;
  background: #f5f6f1;
}

body.webharvy-ui #database-workspace .patch-rule-example {
  border-color: #d3d7cc;
  background: #f7f8f4;
  color: #555e50;
}

body.webharvy-ui #database-workspace .database-overview-head {
  border-color: #dcddd6;
  background: #f1f2ed;
}

body.webharvy-ui #database-workspace .database-overview-summary {
  border-color: #dcddd6;
  background: #f7f8f4;
}

body.webharvy-ui #database-workspace .database-overview-summary > div,
body.webharvy-ui #database-workspace .database-overview-coverage-item,
body.webharvy-ui #database-workspace .database-overview-row {
  border-color: #e2e4dc;
}

body.webharvy-ui #database-workspace .database-overview-summary dd,
body.webharvy-ui #database-workspace .database-overview-coverage-item > b,
body.webharvy-ui #database-workspace .database-overview-row-label {
  color: #30362d;
}

body.webharvy-ui #database-workspace .database-overview-coverage .database-overview-section-head {
  border-color: #dce3c6;
  background: #f0f4e4;
}

body.webharvy-ui #database-workspace .database-overview-grid {
  gap: 1px;
  background: #dedfd8;
}

body.webharvy-ui #database-workspace .database-overview-grid .database-overview-section:nth-child(1) .database-overview-section-head {
  border-color: #dce3c6;
  background: #f2f5e8;
}

body.webharvy-ui #database-workspace .database-overview-grid .database-overview-section:nth-child(2) .database-overview-section-head {
  border-color: #d8e1d4;
  background: #eef3ea;
}

body.webharvy-ui #database-workspace .database-overview-grid .database-overview-section:nth-child(3) .database-overview-section-head {
  border-color: #e5dcc8;
  background: #f7f2e6;
}

body.webharvy-ui #database-workspace .database-overview-grid .database-overview-section:nth-child(4) .database-overview-section-head {
  border-color: #dfddd4;
  background: #f3f1eb;
}

body.webharvy-ui #database-workspace .database-overview-grid .database-overview-section:nth-child(5) .database-overview-section-head {
  border-color: #d9ddd0;
  background: #f0f2e9;
}

body.webharvy-ui #database-workspace .database-overview-grid .database-overview-section:nth-child(6) .database-overview-section-head {
  border-color: #e5d9cf;
  background: #f6efe9;
}

body.webharvy-ui #database-workspace .database-overview-row:hover { background: #fafbf6; }

body.webharvy-ui #database-workspace :where(.database-overview-track, .database-overview-row-bar) {
  background: #e4e6df;
}

body.webharvy-ui #database-workspace :where(.database-overview-track, .database-overview-row-bar) i {
  background: #68735f;
}

body.webharvy-ui .database-delete-mark-all,
body.webharvy-ui .database-delete-checklist-tools button {
  color: #566a18;
}

body.webharvy-ui .database-delete-mark-all input,
body.webharvy-ui .database-delete-checklist-option input {
  accent-color: #91ad36;
}

body.webharvy-ui .database-delete-checklist {
  border-color: #cdd1c7;
}

body.webharvy-ui .database-delete-checklist:focus-visible {
  border-color: #98b43c;
  outline-color: var(--dispakit-lime-ring);
}

body.webharvy-ui .database-delete-checklist-option {
  border-color: #e5e7e0;
  color: #343a31;
}

body.webharvy-ui .database-delete-checklist-option:hover { background: #f8f9f4; }
body.webharvy-ui .database-delete-checklist-option:has(input:checked) { background: var(--dispakit-lime-soft); color: #30362d; }

/* All Tools directory */
body.tools-ui .tool {
  border-color: var(--dispakit-line);
  border-radius: 9px;
  box-shadow: 0 3px 12px rgba(23, 25, 21, 0.06);
}

body.tools-ui .tool:hover {
  border-color: #aeca55;
  box-shadow: 0 9px 24px rgba(23, 25, 21, 0.11);
}

body.tools-ui .tool-icon,
body.tools-ui .tool.web .tool-icon,
body.tools-ui .tool.dispatch .tool-icon,
body.tools-ui .tool.email .tool-icon,
body.tools-ui .tool.admin .tool-icon {
  border: 1px solid #30332e;
  border-radius: 7px;
  background: var(--dispakit-dark);
  color: var(--dispakit-lime);
}

body.tools-ui .badge {
  background: var(--dispakit-lime-soft);
  color: #4d5f13;
}

body.tools-ui .open { color: #4d5f13; }
body.tools-ui .hero h1,
body.tools-ui .tool h2 { color: var(--dispakit-ink); }

/* Dispatch: blue is a workflow status, so status pills remain semantic. */
body.dispatch-ui {
  --blue: #2474d2;
  --blue-soft: #eaf3ff;
  background: var(--dispakit-canvas);
}

body.dispatch-ui .summary-bar,
body.dispatch-ui .workspace,
body.dispatch-ui .modal-card,
body.dispatch-ui .form-section,
body.dispatch-ui .directory-main,
body.dispatch-ui .carrier-profile-bar,
body.dispatch-ui .carrier-tabs {
  border-color: var(--dispakit-line);
  background: #fff;
}

body.dispatch-ui .summary-bar > div {
  border-color: #e5e8e0;
  background: #fff;
}

body.dispatch-ui .filters,
body.dispatch-ui .modal-body,
body.dispatch-ui .directory-sidebar,
body.dispatch-ui .carrier-assignment-bar,
body.dispatch-ui .calculated {
  border-color: var(--dispakit-line);
  background: #f7f8f4;
}

body.dispatch-ui .filters label > span,
body.dispatch-ui .form-grid label > span,
body.dispatch-ui .calculated > span,
body.dispatch-ui th {
  color: #4e5749;
}

body.dispatch-ui input,
body.dispatch-ui select,
body.dispatch-ui textarea,
body.dispatch-ui .money-input,
body.dispatch-ui .suffix-input {
  border-color: #cbd1c5;
  background: #fff;
  color: var(--dispakit-ink);
}

body.dispatch-ui input:focus,
body.dispatch-ui select:focus,
body.dispatch-ui textarea:focus,
body.dispatch-ui .money-input:focus-within,
body.dispatch-ui .suffix-input:focus-within {
  border-color: #9bb83e;
  box-shadow: 0 0 0 3px var(--dispakit-lime-ring);
}

body.dispatch-ui .table-status,
body.dispatch-ui .pager {
  border-color: #e5e8e0;
  background: #fff;
  color: var(--dispakit-muted);
}

body.dispatch-ui th {
  border-color: #e0e4da;
  background: #f1f3ed;
}

body.dispatch-ui td {
  border-color: #e8ebe4;
  background: #fff;
}

body.dispatch-ui tbody tr:hover td { background: #fafbf7; }

body.dispatch-ui .load-id b,
body.dispatch-ui .carrier-cell b,
body.dispatch-ui .route-cell b,
body.dispatch-ui .schedule-cell b,
body.dispatch-ui .money-cell b,
body.dispatch-ui .carrier-profile-identity h3,
body.dispatch-ui .directory-placeholder b {
  color: #30362d;
}

body.dispatch-ui .icon-button {
  border-color: #cbd1c5;
  background: #fff;
  color: #3e473a;
}

body.dispatch-ui .carrier-item:hover { background: #f0f2ec; }
body.dispatch-ui .carrier-item.selected { border-left-color: #718d1e; background: #fff; }
body.dispatch-ui .carrier-monogram { background: var(--dispakit-dark); color: var(--dispakit-lime); }

/* Team Messages keeps green presence/red call states, while navigation and actions use the brand. */
body.messages-ui .team-chat-title-row h1,
body.messages-ui .team-chat-head-action:hover,
body.messages-ui .team-sidebar-tabs button.active,
body.messages-ui .team-new-user > span:last-child {
  color: #556916;
}

body.messages-ui .team-sidebar-tabs button.active,
body.messages-ui .team-chat-filters button.active,
body.messages-ui .team-chat-row:hover,
body.messages-ui .team-chat-row.active {
  background: var(--dispakit-lime-soft);
}

body.messages-ui .team-chat-filters button.active { border-color: #bfd967; color: #556916; }
body.messages-ui .team-chat-search input:focus,
body.messages-ui .team-compose textarea:focus { box-shadow: 0 0 0 2px #c8df7a; }
body.messages-ui .team-message.outgoing { background: #ecf8c9; }
body.messages-ui .team-send { background: var(--dispakit-dark); color: var(--dispakit-lime); }
body.messages-ui .team-send:hover { background: var(--dispakit-dark-hover); }
body.messages-ui .team-new-chat-head { background: var(--dispakit-dark); color: #fff; }
body.messages-ui .team-new-chat-head p { color: #c4c9bf; }

/* Preserve destructive and operational state colours everywhere. */
body.dispakit-tool :where(.btn.danger, button.danger) {
  background: #fff;
  color: var(--red, #b52e38);
}
