/* Read-only composition (displayMode: 'readOnly'): Workdesk-style view-only canvas. Scoped to the composition attribute; interactive composition, standalone components and the HM Theme are unaffected. Canvas geometry follows the measured Workdesk layout (1920 × 914.5, axis X 935); spacing that differs from Workdesk is a DESIGN_ADAPTATION to the confirmed card sizes. */ .hm-orgchart-composition[data-display-mode="readOnly"] { --hm-orgchart-group-title-font-size: 20px; --hm-orgchart-group-title-font-weight: 700; --hm-orgchart-group-title-line-height: 19.7px; background: var(--hm-orgchart-fixed-canvas-background, var(--hm-orgchart-bg-content, #F5F8FB)); } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-stage { position: relative; isolation: isolate; display: grid; /* Heading | zero-width axis column at X 935 | side. */ grid-template-columns: 935px 0 minmax(0, 1fr); grid-template-rows: auto auto 1fr auto; grid-template-areas: "heading axis side" "tree tree tree" "status status status" "footer footer footer"; column-gap: 0; width: max-content; min-width: 1920px; min-height: 914.5px; padding: 12px 0; background: var(--hm-orgchart-fixed-canvas-background, var(--hm-orgchart-bg-content, #F5F8FB)); } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-heading { grid-area: heading; justify-self: start; align-self: start; max-width: calc(100% - 52px - 96px); margin: 0 0 0 52px; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-title { font-size: 32px; line-height: 40px; letter-spacing: -0.5px; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-date { margin: 4px 0 0; font-size: 14px; line-height: 20px; } /* Top leader and hub on the canvas axis, joined by one dashed line. */ .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-axis { grid-area: axis; justify-self: center; position: relative; display: flex; flex-direction: column; align-items: center; gap: 24px; width: max-content; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-axis::before { content: ''; position: absolute; top: 0; bottom: 0; left: 50%; border-left: 1px dashed var(--hm-orgchart-resolved-stroke-default); pointer-events: none; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-top-leaders { position: relative; z-index: 1; grid-column: auto; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-hub { grid-area: auto; margin: auto 0 18px; white-space: nowrap; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-hub::before { content: none; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-slot-side { grid-area: side; justify-self: end; align-self: start; margin-right: 20px; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-slot-belowTree { grid-area: status; align-self: end; margin: 12px 0 0 52px; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-slot-footer { grid-area: footer; margin: 8px 57px 0; } /* Hierarchy: no scroll frame; columns are positioned by measured header centers. */ .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-main > .hm-orgchart-viewport { grid-area: tree; padding: 0; border: 0; border-radius: 0; overflow: visible; } /* Positioned columns are visually translated; keep their layout overhang out of the canvas width. */ .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-viewport:has(> .hm-orgchart-forest[data-layout="workdesk"]) { contain: inline-size; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-forest[data-layout="workdesk"] { display: grid; position: relative; width: 100%; min-width: 0; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-forest[data-layout="workdesk"] > .hm-orgchart-tree { grid-area: 1 / 1; justify-self: start; width: max-content; margin-left: var(--hm-orgchart-column-center); translate: -50% 0; } /* One hub branch bar from the first to the last column center. */ .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-forest[data-layout="workdesk"]::before { content: ''; position: absolute; top: 0; left: var(--hm-orgchart-branch-start); width: calc(var(--hm-orgchart-branch-end) - var(--hm-orgchart-branch-start)); border-top: 1px dashed var(--hm-orgchart-resolved-stroke-default); pointer-events: none; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-forest[data-layout="workdesk"] > .hm-orgchart-tree::before { content: none; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-engine.orgchart { min-width: 0; padding: 0; } /* Organization nodes: header + people only, no group card frame. */ .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-engine.orgchart .node[data-depth] { width: max-content; min-width: 108px; margin: 0 8px 16px; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-engine.orgchart .node[data-header-role="organization"] { --hm-orgchart-title-height: 36px; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-engine.orgchart .node[data-depth] .hm-orgchart-organization { display: flex; flex-direction: column; align-items: center; width: auto; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-engine.orgchart .node[data-depth] .hm-orgchart-organization-name { align-self: stretch; margin: 0; } /* Workdesk 1Depth typography; vertical padding must not enlarge the 36px header. */ .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-engine.orgchart .node[data-header-role="organization"] .hm-orgchart-organization-name { min-width: 146px; height: 36px; padding: 0 12px; font-size: 20px; font-weight: 700; line-height: 36px; white-space: nowrap; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-engine.orgchart .node[data-header-role="group"] { --hm-orgchart-group-header-height: 30.4px; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-engine.orgchart .node[data-header-role="group"] .hm-orgchart-organization-name { align-self: center; width: 114px; min-width: 114px; min-height: 30.4px; padding: 0; background: var(--hm-orgchart-group-title-background, var(--hm-orgchart-current-gradient)); border-radius: 7.1px; box-shadow: 0 3.6px 8px rgba(45, 73, 104, 0.2); font-size: var(--hm-orgchart-group-title-font-size); font-weight: var(--hm-orgchart-group-title-font-weight); line-height: var(--hm-orgchart-group-title-line-height); letter-spacing: normal; text-align: center; } /* Workdesk .hw/.hr labels share compact typography; .sw/.ux retain 20px/700. */ .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-engine.orgchart .node[data-header-role="group"][data-organization-id^="business-planning-"] .hm-orgchart-organization-name, .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-engine.orgchart .node[data-header-role="group"][data-organization-id^="talent-growth-"] .hm-orgchart-organization-name { font-size: 18px; font-weight: 700; line-height: 16.9px; } /* Stacked cells: the vertical spine follows the 16px node gap. */ .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-engine.orgchart .hierarchy:has(> .node[data-depth]) > .nodes > .hierarchy::before { top: -16px; height: 16px; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-engine.orgchart .node[data-depth] .hm-orgchart-leader { margin: 8px 0 0; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-engine.orgchart .node[data-depth] .hm-orgchart-employees { flex-direction: column; flex-wrap: nowrap; align-items: center; gap: 8px; margin-top: 8px; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-engine.orgchart .node[data-depth] .hm-orgchart-employees:empty { display: none; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-engine.orgchart .node[data-depth] .hm-orgchart-employee { margin-top: 0; } /* Final external gap: this must follow the generic employee margin reset. Keeping semantic leader class preserves badges while SVG size uses ancestry. */ .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-engine.orgchart .node[data-depth] .hm-orgchart-employee.hm-orgchart-leader { margin: 8px 0 0; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-engine.orgchart .node[data-header-role="group"] .hm-orgchart-employee.hm-orgchart-leader { margin-top: 8px; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-engine.orgchart .node[data-header-role="group"] .hm-orgchart-employees:first-of-type { margin-top: 8px; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-employee-details { gap: 0; } /* Cells/teams of Div and Design: one horizontal row with the engine's sibling bar. */ .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-engine.orgchart .hierarchy:has(> .node[data-children-layout="horizontal"]) > .nodes { flex-direction: row; align-items: flex-start; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-engine.orgchart .hierarchy:has(> .node[data-children-layout="horizontal"]) > .nodes > .hierarchy::before { top: -9px; left: 0; width: 100%; height: auto; border-width: 2px 0 0 0; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-engine.orgchart .hierarchy:has(> .node[data-children-layout="horizontal"]) > .nodes > .hierarchy:first-child::before { left: calc(50% - 1px); width: calc(50% + 1px); } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-engine.orgchart .hierarchy:has(> .node[data-children-layout="horizontal"]) > .nodes > .hierarchy:last-child::before { left: 0; width: calc(50% + 1px); } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-engine.orgchart .hierarchy:has(> .node[data-children-layout="horizontal"]) > .nodes > .hierarchy:only-child::before { left: calc(50% - 1px); width: 2px; } /* Workdesk compact artwork. Preserve flow placement for unknown organizations; the measured preset alone enables this original 1920×914.5 coordinate layer. */ .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-stage[data-workdesk-artwork] { grid-template-rows: 224.2px auto 1fr auto; height: var(--hm-orgchart-workdesk-stage-height, 914.5px); } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-stage[data-workdesk-artwork] .hm-orgchart-axis { width: 198px; height: 224.2px; z-index: 12; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-stage[data-workdesk-artwork] .hm-orgchart-top-leaders { position: absolute; top: 35.3px; z-index: 35; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-stage[data-workdesk-artwork] .hm-orgchart-hub { position: absolute; top: 176px; left: 50%; translate: -50% 0; z-index: 12; box-sizing: border-box; display: flex; align-items: center; justify-content: center; width: max-content; /* The fixed 198px axis is a center anchor, not a text-width constraint. */ max-width: none; min-width: 198px; height: 42px; margin: 0; padding: 9px 24px 9px 22px; border-radius: 892.1px; background: linear-gradient(-28.46deg, #809dd7, #45639f 79.33%); gap: 8px; } .hm-orgchart-hub-icon { width: 20px; height: 20px; flex: 0 0 20px; stroke: #f8fcff; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 0 8px rgba(0, 0, 0, 0.38)); } .hm-orgchart-hub-label { position: relative; font-size: 21px; font-weight: 700; line-height: 24px; letter-spacing: normal; background: linear-gradient(180deg, #dbeeff, #f8fcff 15.38%, #fff 48.08%, #f4faff 79.33%, #dbeeff); background-clip: text; -webkit-text-fill-color: transparent; filter: drop-shadow(0 0 10px rgba(0, 0, 0, 0.5)); } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-stage[data-workdesk-artwork] .hm-orgchart-axis::before, .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-stage[data-workdesk-artwork] .hm-orgchart-hub::after, .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-stage[data-workdesk-artwork] .hm-orgchart-forest::before, .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-stage[data-workdesk-artwork] .hm-orgchart-tree::after { content: none; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-stage[data-workdesk-artwork] .hm-orgchart-viewport { position: relative; z-index: 7; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-stage[data-workdesk-artwork] .hm-orgchart-heading, .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-stage[data-workdesk-artwork] .hm-orgchart-slot-footer { position: relative; z-index: 7; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-stage[data-workdesk-artwork] .hm-orgchart-slot-side { position: relative; z-index: 18; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-stage[data-workdesk-artwork] .hm-orgchart-slot-belowTree { position: relative; z-index: 32; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-stage[data-workdesk-artwork] .hm-orgchart-slot-belowTree { position: absolute; left: 32px; bottom: 82px; width: 240px; margin: 0; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-stage[data-workdesk-artwork] .hm-orgchart-status-summary { gap: 12px; flex-wrap: nowrap; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-stage[data-workdesk-artwork] .hm-orgchart-slot-footer { position: absolute; left: 57px; right: 57px; bottom: 12px; margin: 0; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-person-role, .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-person-name, .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-job-title { white-space: nowrap; } /* Keep the logo above the unchanged position row. */ .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-employee[data-card-asset-size="leader"] .hm-orgchart-affiliation-mark { top: 0; } .hm-orgchart-workdesk-overlay { position: absolute; inset: 0; width: 1920px; height: 914.5px; z-index: 4; pointer-events: none; } .hm-orgchart-workdesk-overlay path[data-connector] { stroke: var(--hm-orgchart-fixed-line-color, #45639F); } .hm-orgchart-workdesk-overlay path[data-arrow-head] { fill: var(--hm-orgchart-fixed-line-color, #45639F); } .hm-orgchart-workdesk-decoration { position: absolute; z-index: 0; pointer-events: none; user-select: none; object-fit: contain; } .hm-orgchart-workdesk-ring { top: 0; left: 50%; width: 1757px; height: 901px; translate: -50% 0; mix-blend-mode: multiply; } .hm-orgchart-workdesk-sky { inset: 0; width: 100%; height: 100%; object-position: top center; opacity: 0.1; } .hm-orgchart-workdesk-meeting { left: 68px; bottom: 32px; width: 557px; height: 344px; opacity: 0.8; mix-blend-mode: multiply; } .hm-orgchart-workdesk-grid { left: 62px; bottom: 18.9px; width: 1768px; height: 275px; } .hm-orgchart-workdesk-hub-frame { inset: 0; width: 100%; height: 100%; z-index: -1; object-position: top; } /* One base-coordinate central layer; top and bottom modules keep their own anchors. Decorations retain their original size and 914.5px coordinates. */ .hm-orgchart-stage[data-workdesk-artwork] :is(.hm-orgchart-axis,.hm-orgchart-viewport,.hm-orgchart-workdesk-overlay,.hm-orgchart-workdesk-decoration:not(.hm-orgchart-workdesk-hub-frame)) { transform: translateY(var(--hm-orgchart-workdesk-center-offset, 0px)); } .hm-orgchart-stage[data-workdesk-artwork] .hm-orgchart-workdesk-sky { bottom: auto; height: 914.5px; } .hm-orgchart-stage[data-workdesk-artwork] .hm-orgchart-workdesk-meeting { top: 538.5px; bottom: auto; } .hm-orgchart-stage[data-workdesk-artwork] .hm-orgchart-workdesk-grid { top: 620.6px; bottom: auto; } /* P3: artwork owns representative/hub/top-level routes. Hide every engine hierarchy route in readOnly only, including upstream pseudo-element paths. */ .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-engine.orgchart .hierarchy::before, .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-engine.orgchart .hierarchy::after, .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-engine.orgchart .node::before, .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-engine.orgchart .node::after { content: none; display: none; } /* Organization totals (compact presenter of the shared Summary). */ .hm-orgchart-organization-totals { width: 332px; overflow: hidden; border: var(--hm-orgchart-resolved-border-width) solid var(--hm-orgchart-resolved-table-divider-color); border-radius: var(--hm-orgchart-resolved-radius-container); background: var(--hm-orgchart-resolved-table-background); color: var(--hm-orgchart-resolved-table-text); } .hm-orgchart-organization-totals-title { margin: 0; padding: 3px 8px; background: var(--hm-orgchart-resolved-table-header-text); color: var(--hm-orgchart-resolved-on-action-primary); font-size: 13px; line-height: 18px; font-weight: var(--hm-orgchart-resolved-font-weight-bold); text-align: center; } .hm-orgchart-organization-totals-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; } .hm-orgchart-organization-total { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; padding: 3px 10px; border-top: var(--hm-orgchart-resolved-table-divider-width) solid var(--hm-orgchart-resolved-table-divider-color); font-size: var(--hm-orgchart-resolved-table-font-size); line-height: var(--hm-orgchart-resolved-table-line-height); } .hm-orgchart-organization-total:nth-child(odd) { border-right: var(--hm-orgchart-resolved-table-divider-width) solid var(--hm-orgchart-resolved-table-divider-color); } .hm-orgchart-organization-total:nth-child(odd):last-child { grid-column: 1 / -1; border-right: 0; } .hm-orgchart-organization-total dt { min-width: 0; overflow-wrap: anywhere; } .hm-orgchart-organization-total dd { flex: 0 0 auto; margin: 0; font-variant-numeric: tabular-nums; font-weight: var(--hm-orgchart-resolved-font-weight-medium); } .hm-orgchart-organization-total-sum { background: var(--hm-orgchart-resolved-table-footer-background); font-weight: var(--hm-orgchart-resolved-font-weight-bold); } .hm-orgchart-organization-total-sum dd { font-weight: var(--hm-orgchart-resolved-font-weight-bold); } /* Status groups: header pill + cards, no surrounding card. Title/card colors come from the confirmed status styles in summary-sections.css. */ .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-status-summary { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 12px 48px; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-status-group { display: grid; justify-items: start; gap: 8px; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-status-group > .hm-orgchart-summary-title { display: flex; align-items: center; justify-content: center; width: 108px; min-height: 24px; margin: 0; border-radius: var(--hm-orgchart-resolved-radius-container); color: var(--hm-orgchart-status-title-color, var(--hm-orgchart-resolved-on-action-primary)); font-size: var(--hm-orgchart-group-title-font-size); font-weight: var(--hm-orgchart-group-title-font-weight); line-height: var(--hm-orgchart-group-title-line-height); } .hm-orgchart-composition[data-display-mode="readOnly"] .hm-orgchart-status-employees { gap: 12px; margin: 0; } /* Affiliation bar: one untitled line of logo · name · count and the total. */ .hm-orgchart-affiliation-bar { padding: 8px 24px; border: var(--hm-orgchart-resolved-border-width) solid var(--hm-orgchart-resolved-stroke-input-default); border-radius: var(--hm-orgchart-resolved-radius-container); background: var(--hm-orgchart-resolved-bg-surface); } .hm-orgchart-affiliation-bar-list { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; row-gap: 4px; margin: 0; } .hm-orgchart-affiliation-bar-item { display: flex; align-items: center; gap: 6px; padding: 0 20px; font-size: 16px; line-height: 24px; white-space: nowrap; } .hm-orgchart-affiliation-bar-item + .hm-orgchart-affiliation-bar-item { border-left: var(--hm-orgchart-resolved-border-width) solid var(--hm-orgchart-resolved-stroke-default); } .hm-orgchart-affiliation-bar-item dt { display: flex; align-items: center; gap: 6px; } .hm-orgchart-affiliation-bar-item dd { margin: 0; font-variant-numeric: tabular-nums; } .hm-orgchart-affiliation-bar-total { font-weight: var(--hm-orgchart-resolved-font-weight-bold); } .hm-orgchart-affiliation-bar .hm-orgchart-affiliation-mark { position: relative; display: inline-flex; flex: 0 0 24px; align-items: center; justify-content: center; width: 24px; height: 20px; font-size: 9px; }