/* NODWISE · DIMENSIONS · both classification planes */

:root {
  /* 01 · Strategy & Impact · green */
  --dim-strategy-100: #E1EFDC;
  --dim-strategy-300: #81CF65;
  --dim-strategy-500: #59A53B;   /* BRAND */
  --dim-strategy-700: #2B7700;
  --dim-strategy-900: #0E2600;

  /* 02 · Human Resource · cyan-teal */
  --dim-human-100: #D1EFEE;
  --dim-human-300: #00D6CD;
  --dim-human-500: #00A8A1;   /* BRAND */
  --dim-human-700: #007671;
  --dim-human-900: #002624;

  /* 03 · Business · orange */
  --dim-business-100: #F6E7D1;
  --dim-business-300: #FBA02D;
  --dim-business-500: #CE7800;   /* BRAND */
  --dim-business-700: #925100;
  --dim-business-900: #2F1A00;

  /* 04 · Governance & Compliance · warm gray */
  --dim-governance-100: #ECEBE9;
  --dim-governance-300: #BBB8A9;
  --dim-governance-500: #938F82;   /* BRAND */
  --dim-governance-700: #666357;
  --dim-governance-900: #21201C;

  /* 05 · information & Knowledge · olive */
  --dim-information-100: #EFEBD1;
  --dim-information-300: #D0B80E;
  --dim-information-500: #A68F00;   /* BRAND */
  --dim-information-700: #746300;
  --dim-information-900: #252000;

  /* 06 · Application · cyan-blue */
  --dim-application-100: #D1EDFA;
  --dim-application-300: #28C6FF;
  --dim-application-500: #009CE1;   /* BRAND */
  --dim-application-700: #006CA2;
  --dim-application-900: #002334;

  /* 07 · Technology · slate */
  --dim-technology-100: #E5ECF2;
  --dim-technology-300: #96BBE3;
  --dim-technology-500: #6E93B9;   /* BRAND */
  --dim-technology-700: #43668A;
  --dim-technology-900: #15212C;

  /* 08 · Physical Assets · indigo */
  --dim-physical-100: #DAE1FC;
  --dim-physical-300: #8FB4FF;
  --dim-physical-500: #345BEE;   /* BRAND */
  --dim-physical-700: #385BBD;
  --dim-physical-900: #121D3C;

  /* 09 · External Entity · pink-rose */
  --dim-external-100: #F9E2E9;
  --dim-external-300: #FF88AA;
  --dim-external-500: #DC5F82;   /* BRAND */
  --dim-external-700: #A82E57;
  --dim-external-900: #360F1C;

  /* 10 · Artificial Intelligence · lavender */
  --dim-ai-100: #EAE8FB;
  --dim-ai-300: #B0A9FF;
  --dim-ai-500: #897DEB;   /* BRAND */
  --dim-ai-700: #5F4FB8;
  --dim-ai-900: #1E193B;
}

/* Per-dimension aliases — apply one of these classes on an */
.dim-strategy {
  --dim-100: var(--dim-strategy-100);
  --dim-300: var(--dim-strategy-300);
  --dim-500: var(--dim-strategy-500);
  --dim-700: var(--dim-strategy-700);
  --dim-900: var(--dim-strategy-900);
  --dim-icon-url: url('/images/icons/strategy-icon.svg');
  --icon-url: var(--dim-icon-url);
}

.dim-human {
  --dim-100: var(--dim-human-100);
  --dim-300: var(--dim-human-300);
  --dim-500: var(--dim-human-500);
  --dim-700: var(--dim-human-700);
  --dim-900: var(--dim-human-900);
  --dim-icon-url: url('/images/icons/human-resource-icon.svg');
  --icon-url: var(--dim-icon-url);
}

.dim-business {
  --dim-100: var(--dim-business-100);
  --dim-300: var(--dim-business-300);
  --dim-500: var(--dim-business-500);
  --dim-700: var(--dim-business-700);
  --dim-900: var(--dim-business-900);
  --dim-icon-url: url('/images/icons/business-icon.svg');
  --icon-url: var(--dim-icon-url);
}

.dim-governance {
  --dim-100: var(--dim-governance-100);
  --dim-300: var(--dim-governance-300);
  --dim-500: var(--dim-governance-500);
  --dim-700: var(--dim-governance-700);
  --dim-900: var(--dim-governance-900);
  --dim-icon-url: url('/images/icons/governance-icon.svg');
  --icon-url: var(--dim-icon-url);
}

.dim-information {
  --dim-100: var(--dim-information-100);
  --dim-300: var(--dim-information-300);
  --dim-500: var(--dim-information-500);
  --dim-700: var(--dim-information-700);
  --dim-900: var(--dim-information-900);
  --dim-icon-url: url('/images/icons/data-knowledge-icon.svg');
  --icon-url: var(--dim-icon-url);
}

.dim-application {
  --dim-100: var(--dim-application-100);
  --dim-300: var(--dim-application-300);
  --dim-500: var(--dim-application-500);
  --dim-700: var(--dim-application-700);
  --dim-900: var(--dim-application-900);
  --dim-icon-url: url('/images/icons/application-icon.svg');
  --icon-url: var(--dim-icon-url);
}

.dim-technology {
  --dim-100: var(--dim-technology-100);
  --dim-300: var(--dim-technology-300);
  --dim-500: var(--dim-technology-500);
  --dim-700: var(--dim-technology-700);
  --dim-900: var(--dim-technology-900);
  --dim-icon-url: url('/images/icons/technology-icon.svg');
  --icon-url: var(--dim-icon-url);
}

.dim-physical {
  --dim-100: var(--dim-physical-100);
  --dim-300: var(--dim-physical-300);
  --dim-500: var(--dim-physical-500);
  --dim-700: var(--dim-physical-700);
  --dim-900: var(--dim-physical-900);
  --dim-icon-url: url('/images/icons/physical-icon.svg');
  --icon-url: var(--dim-icon-url);
}
.dim-external {
  --dim-100: var(--dim-external-100);
  --dim-300: var(--dim-external-300);
  --dim-500: var(--dim-external-500);
  --dim-700: var(--dim-external-700);
  --dim-900: var(--dim-external-900);
  --dim-icon-url: url('/images/icons/external-icon.svg');
  --icon-url: var(--dim-icon-url);
}

.dim-ai {
  --dim-100: var(--dim-ai-100);
  --dim-300: var(--dim-ai-300);
  --dim-500: var(--dim-ai-500);
  --dim-700: var(--dim-ai-700);
  --dim-900: var(--dim-ai-900);
  --dim-icon-url: url('/images/icons/ai-icon.svg');
  --icon-url: var(--dim-icon-url);

}

/* NODWISE · NEUTRAL PALETTE */
.dim-neutral {
  --dim-100: var(--gray-100);
  --dim-300: var(--gray-300);
  --dim-500: var(--gray-500);
  --dim-700: var(--gray-700);
  --dim-900: var(--gray-900);
  --dim-glass: #000;
  --dim-glass-reflex: var(--gray-900);
}

/* NODWISE · FUNCTION DIMENSIONS · 12 icon slots */
.dim-func-actor {
  --dim-func-icon-url: url('/images/icons/actor-icon.svg');
  --func-icon-url: var(--dim-func-icon-url);
}

.dim-func-environment {
  --dim-func-icon-url: url('/images/icons/environment-icon.svg');
  --func-icon-url: var(--dim-func-icon-url);
}

.dim-func-skill {
  --dim-func-icon-url: url('/images/icons/skill-feature-icon.svg');
  --func-icon-url: var(--dim-func-icon-url);
}

.dim-func-task {
  --dim-func-icon-url: url('/images/icons/task-icon.svg');
  --func-icon-url: var(--dim-func-icon-url);
}

.dim-func-resource {
  --dim-func-icon-url: url('/images/icons/resource-icon.svg');
  --func-icon-url: var(--dim-func-icon-url);
}

.dim-func-service {
  --dim-func-icon-url: url('/images/icons/service-icon.svg');
  --func-icon-url: var(--dim-func-icon-url);
}

.dim-func-information {
  --dim-func-icon-url: url('/images/icons/information-icon.svg');
  --func-icon-url: var(--dim-func-icon-url);
}

.dim-func-event {
  --dim-func-icon-url: url('/images/icons/event-icon.svg');
  --func-icon-url: var(--dim-func-icon-url);
}

.dim-func-knowledge {
  --dim-func-icon-url: url('/images/icons/knowledge-icon.svg');
  --func-icon-url: var(--dim-func-icon-url);
}

.dim-func-group {
  --dim-func-icon-url: url('/images/icons/group-icon.svg');
  --func-icon-url: var(--dim-func-icon-url);
}

.dim-func-constraint {
  --dim-func-icon-url: url('/images/icons/constraint-icon.svg');
  --func-icon-url: var(--dim-func-icon-url);
}

.dim-func-motivation {
  --dim-func-icon-url: url('/images/icons/motivation-icon.svg');
  --func-icon-url: var(--dim-func-icon-url);
}

/* NODWISE · ORGANIZATION CATEGORIES · palette OVERRIDES */
:root {
  --cat-blocker-100: #FEE2E2;   /* tailwind red-100 */
  --cat-blocker-300: #FCA5A5;   /* tailwind red-300 */
  --cat-blocker-500: #EF4444;   /* tailwind red-500 · BRAND */
  --cat-blocker-700: #B91C1C;   /* tailwind red-700 */
  --cat-blocker-900: #450A0A;   /* tailwind red-950 — see note above */
}


.dim-strategy.cat-driver {
  --icon-url: url('/images/icons/driver-icon.svg');
}

.dim-strategy.cat-intention {
  --icon-url: url('/images/icons/intention-icon.svg');
}


.dim-strategy.cat-measurement {
  --icon-url: url('/images/icons/measurement-icon.svg');
}

.dim-strategy.cat-result-outcome {
  --icon-url: url('/images/icons/result-outcome-icon.svg');
}

.dim-strategy.cat-blocker {
  --dim-100: var(--cat-blocker-100);
  --dim-300: var(--cat-blocker-300);
  --dim-500: var(--cat-blocker-500);
  --dim-700: var(--cat-blocker-700);
  --dim-900: var(--cat-blocker-900);
  --icon-url: url('/images/icons/blocker-icon.svg');
}

/* Human Resource (seq 6..8) · all three carry their own glyph and keep the
   dimension's cyan-teal ramp. */
.dim-human.cat-individual-contributor {
  --icon-url: url('/images/icons/person-icon.svg');
}

.dim-human.cat-collective-contributor {
  --icon-url: url('/images/icons/team-icon.svg');
}

.dim-human.cat-qualifications-credentials {
  --icon-url: url('/images/icons/badge-icon.svg');
}

.dim-business.cat-business-capability {
  --icon-url: url('/images/icons/business-capability-icon.svg');
}

.dim-business.cat-actor-skill {
  --icon-url: url('/images/icons/actor-skill-icon.svg');
}

.dim-business.cat-business-process {
  --icon-url: url('/images/icons/business-process-icon.svg');
}

.dim-business.cat-business-service {
  --icon-url: url('/images/icons/business-service-icon.svg');
}

.dim-business.cat-product-offering {
  --icon-url: url('/images/icons/product-offering-icon.svg');
}

.dim-business.cat-project-initiative {
  --icon-url: url('/images/icons/project-initiative-icon.svg');
}

.dim-business.cat-business-asset {
  --icon-url: url('/images/icons/business-asset-icon.svg');
}

.dim-business.cat-financial-asset {
  --icon-url: url('/images/icons/financial-icon.svg');
}

.dim-business.cat-business-segments {
  --icon-url: url('/images/icons/business-segments-icon.svg');
}

.dim-business.cat-commercial-service-interactions {
  --icon-url: url('/images/icons/interaction-icon.svg');
}

.dim-governance.cat-governance-framework-policy {
  --icon-url: url('/images/icons/policy-icon.svg');
}

.dim-governance.cat-regulation-standard-guidance {
  --icon-url: url('/images/icons/standard-icon.svg');
}

.dim-governance.cat-control-activity {
  --icon-url: url('/images/icons/control-icon.svg');
}

.dim-governance.cat-risk-issue {
  --icon-url: url('/images/icons/risk-icon.svg');
}

.dim-governance.cat-compliance-assessment {
  --icon-url: url('/images/icons/compliance-assessment-icon.svg');
}

.dim-governance.cat-privacy-data-protection {
  --icon-url: url('/images/icons/data-protection-icon.svg');
}

.dim-information.cat-semantic-layer {
  --icon-url: url('/images/icons/semantic-icon.svg');
}

.dim-information.cat-reference-data {
  --icon-url: url('/images/icons/reference-data-icon.svg');
}

.dim-information.cat-graph-data {
  --icon-url: url('/images/icons/graph-data-icon.svg');
}

.dim-information.cat-unstructured-data {
  --icon-url: url('/images/icons/unstructured-data-icon.svg');
}

.dim-information.cat-content-knowledge {
  --icon-url: url('/images/icons/content-knowledge-icon.svg');
}

.dim-information.cat-data-mesh {
  --icon-url: url('/images/icons/data-mesh-icon.svg');
}

.dim-information.cat-data-collection {
  --icon-url: url('/images/icons/data-collection-icon.svg');
}

.dim-information.cat-data-structure {
  --icon-url: url('/images/icons/data-structure-icon.svg');
}

.dim-information.cat-data-element {
  --icon-url: url('/images/icons/data-element-icon.svg');
}

.dim-information.cat-data-mapping {
  --icon-url: url('/images/icons/data-mapping-icon.svg');
}

.dim-information.cat-data-query {
  --icon-url: url('/images/icons/data-query-icon.svg');
}

.dim-information.cat-data-optimisation-mechanisms {
  --icon-url: url('/images/icons/data-optimization-mechanisms-icon.svg');
}

/* `data-report-icon.svg` is `data-info-icon.svg` renamed — same bytes, a name that says which
   category it serves. The old name was referenced nowhere, so nothing followed it. */
.dim-information.cat-data-report {
  --icon-url: url('/images/icons/data-report-icon.svg');
}

.dim-information.cat-data-report-component {
  --icon-url: url('/images/icons/report-component-icon.svg');
}

.dim-information.cat-data-workspace {
  --icon-url: url('/images/icons/data-workspace-icon.svg');
}

.dim-application.cat-business-application {
  --icon-url: url('/images/icons/business-application-icon.svg');
}

.dim-application.cat-application-component {
  --icon-url: url('/images/icons/application-component-icon.svg');
}

.dim-application.cat-application-interface {
  --icon-url: url('/images/icons/application-interface-icon.svg');
}

.dim-application.cat-automation-flow {
  --icon-url: url('/images/icons/automation-flow-icon.svg');
}


.dim-technology.cat-compute-hosting {
  --icon-url: url('/images/icons/servers-icon.svg');
}

.dim-technology.cat-platform-service {
  --icon-url: url('/images/icons/platform-service-icon.svg');
}

.dim-technology.cat-network-security {
  --icon-url: url('/images/icons/network-security-icon.svg');
}

.dim-technology.cat-database-storage {
  --icon-url: url('/images/icons/database-icon.svg');
}

.dim-technology.cat-database-management-systems {
  --icon-url: url('/images/icons/database-management-system-icon.svg');
}

/* A map of memory cells rather than an object — the one glyph in this dimension that reads as
   texture at 24px instead of as a thing. */
.dim-technology.cat-in-memory-cache-stores {
  --icon-url: url('/images/icons/cachestore-icon.svg');
}

.dim-technology.cat-archival-backup-storage {
  --icon-url: url('/images/icons/backup-icon.svg');
}

.dim-physical.cat-equipment-machinery {
  --icon-url: url('/images/icons/machine-icon.svg');
}

.dim-physical.cat-facilities-environments {
  --icon-url: url('/images/icons/facilities-icon.svg');
}

.dim-physical.cat-vehicles-fleet {
  --icon-url: url('/images/icons/vehicle-icon.svg');
}

.dim-physical.cat-inventory-material {
  --icon-url: url('/images/icons/inventory-icon.svg');
}

.dim-external.cat-customer {
  --icon-url: url('/images/icons/customer-icon.svg');
}

.dim-external.cat-partner-supplier {
  --icon-url: url('/images/icons/supplier-icon.svg');
}

.dim-external.cat-authority-regulator {
  --icon-url: url('/images/icons/authority-icon.svg');
}

.dim-external.cat-other-stakeholder {
  --icon-url: url('/images/icons/stakeholder-icon.svg');
}

.dim-ai.cat-ai-foundation-models {
  --icon-url: url('/images/icons/ai-model-icon.svg');
}

.dim-ai.cat-ai-applications-agents {
  --icon-url: url('/images/icons/ai-application-icon.svg');
}

.dim-ai.cat-ai-interaction-orchestration {
  --icon-url: url('/images/icons/ai-interaction-icon.svg');
}

.dim-ai.cat-ai-evaluation-observability {
  --icon-url: url('/images/icons/ai-observability-icon.svg');
}

.dim-ai.cat-ai-governance-safety {
  --icon-url: url('/images/icons/ai-governance-icon.svg');
}

/* PLACEHOLDERS — the organization plane has none. Every category of */


/* NODWISE · FUNCTION CATEGORIES · glyph OVERRIDES */

/* Actor (function dimension 1) · People seq 1, Engine seq 2, Organization seq 3. */
.dim-func-actor.cat-func-people {
  --func-icon-url: url('/images/icons/people-icon.svg');
}

.dim-func-actor.cat-func-engine {
  --func-icon-url: url('/images/icons/engine-icon.svg');
}

.dim-func-actor.cat-func-organization {
  --func-icon-url: url('/images/icons/organization-icon.svg');
}

.dim-func-environment.cat-func-physical-environment {
  --func-icon-url: url('/images/icons/physical-environment-icon.svg');
}

.dim-func-environment.cat-func-virtual-environment {
  --func-icon-url: url('/images/icons/virtual-environment-icon.svg');
}

.dim-func-skill.cat-func-skill {
  --func-icon-url: url('/images/icons/skill.svg');
}

.dim-func-skill.cat-func-feature {
  --func-icon-url: url('/images/icons/feature-icon.svg');
}

/* Task (function dimension 4) · Simple Task seq 8, Process seq 9. */
.dim-func-task.cat-func-simple-task {
  --func-icon-url: url('/images/icons/simple-task-icon.svg');
}

.dim-func-task.cat-func-process {
  --func-icon-url: url('/images/icons/process-task-icon.svg');
}

/* Resource (function dimension 5) · Physical seq 10, Virtual seq 11. */
.dim-func-resource.cat-func-physical-resource {
  --func-icon-url: url('/images/icons/physical-resource-icon.svg');
}

.dim-func-resource.cat-func-virtual-resource {
  --func-icon-url: url('/images/icons/virtual-resource-icon.svg');
}

/* Service (function dimension 6) · Physical seq 12, Virtual seq 13. */
.dim-func-service.cat-func-physical-service {
  --func-icon-url: url('/images/icons/physical-service-icon.svg');
}

.dim-func-service.cat-func-virtual-service {
  --func-icon-url: url('/images/icons/virtual-service-icon.svg');
}

.dim-func-information.cat-func-concept {
  --func-icon-url: url('/images/icons/concept-icon.svg');
}

.dim-func-information.cat-func-data {
  --func-icon-url: url('/images/icons/data-icon.svg');
}

.dim-func-information.cat-func-reference {
  --func-icon-url: url('/images/icons/reference-data-icon.svg');
}

/* Event (function dimension 8) · Internal Event seq 16, External Event seq 17. */
.dim-func-event.cat-func-internal-event {
  --func-icon-url: url('/images/icons/internal-event-icon.svg');
}

.dim-func-event.cat-func-external-event {
  --func-icon-url: url('/images/icons/external-event-icon.svg');
}

.dim-func-knowledge.cat-func-explicit-knowledge {
  --func-icon-url: url('/images/icons/explicit-knowledge-icon.svg');
}

.dim-func-knowledge.cat-func-tacit-knowledge {
  --func-icon-url: url('/images/icons/tacit-knowledge-icon.svg');
}

/* Group (function dimension 10) · Conceptual seq 20, Concrete seq 21. */
.dim-func-group.cat-func-conceptual-group {
  --func-icon-url: url('/images/icons/conceptual-group-icon.svg');
}

.dim-func-group.cat-func-concrete-group {
  --func-icon-url: url('/images/icons/concrete-group-icon.svg');
}

.dim-func-constraint.cat-func-regulatory-restriction {
  --func-icon-url: url('/images/icons/regulatory-restriction-icon.svg');
}

.dim-func-constraint.cat-func-technical-limitation {
  --func-icon-url: url('/images/icons/technical-limitation-icon.svg');
}

.dim-func-constraint.cat-func-financial-limitation {
  --func-icon-url: url('/images/icons/financial-limitation-icon.svg');
}

.dim-func-constraint.cat-func-contractual-restriction {
  --func-icon-url: url('/images/icons/contractual-restriction-icon.svg');
}

/* Motivation (function dimension 12) · Goal seq 26, Principle seq 27
   (`principles-icon.svg` is the asset's name; the category is singular). */
.dim-func-motivation.cat-func-goal {
  --func-icon-url: url('/images/icons/goal-icon.svg');
}

.dim-func-motivation.cat-func-principle {
  --func-icon-url: url('/images/icons/principles-icon.svg');
}

/* PLACEHOLDERS — the functional plane has none either. Every */
