// Rôle : stylise la carte de noeud, ses états et ses actions au survol. .goal-tree-node { position: relative; display: flex; --goal-tree-card-color: var(--color-accent-gold); min-width: 104px; flex-direction: column; align-items: center; } .goal-tree-canvas.is-horizontal .goal-tree-node { flex-direction: row; align-items: center; } .goal-tree-node.is-text { --goal-tree-card-color: var(--color-accent-cyan); } .goal-tree-node.is-checklist { --goal-tree-card-color: #34d399; } .goal-tree-node-card { position: relative; z-index: 1; display: grid; width: 104px; grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); grid-template-areas: "main"; gap: 6px; align-items: stretch; align-content: stretch; min-width: 0; min-height: 104px; padding: 7px; border: 1px solid color-mix(in srgb, var(--goal-tree-card-color) 38%, rgba(150, 165, 205, 0.16)); border-radius: var(--radius-lg); background: linear-gradient(135deg, color-mix(in srgb, var(--goal-tree-card-color) 10%, transparent), transparent 44%), linear-gradient(160deg, rgba(139, 92, 246, 0.12), rgba(16, 20, 38, 0.72)); cursor: pointer; box-shadow: 0 12px 22px rgba(0, 0, 0, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.04); transition: border-color var(--duration-fast) var(--ease-standard), background var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard); } .goal-tree-node-card.has-actions { grid-template-rows: minmax(0, 1fr) 22px; grid-template-areas: "main" "actions"; } .goal-tree-node-hover-actions { position: absolute; z-index: 3; right: 6px; bottom: 7px; left: 6px; display: flex; justify-content: space-between; gap: 4px; opacity: 0; pointer-events: none; transition: opacity var(--duration-fast) var(--ease-standard); } .goal-tree-node-card:hover .goal-tree-node-hover-actions, .goal-tree-node-card:focus-within .goal-tree-node-hover-actions { opacity: 1; } .goal-tree-node-hover-actions button { width: 24px; min-width: 24px; min-height: 24px; padding: 0; border-color: rgba(165, 180, 252, 0.14); background: rgba(7, 10, 24, 0.78); pointer-events: none; } .goal-tree-node-card:hover .goal-tree-node-hover-actions button, .goal-tree-node-card:focus-within .goal-tree-node-hover-actions button { pointer-events: auto; } .goal-tree-node-hover-actions .ui-icon { width: 13px; height: 13px; } .goal-tree-node.is-text, .goal-tree-node.is-checklist { min-width: 184px; } .goal-tree-node.is-text > .goal-tree-node-card, .goal-tree-node.is-checklist > .goal-tree-node-card { width: 184px; } .goal-tree-node-card.is-viewing { grid-template-columns: minmax(0, 1fr); } .goal-tree-node.is-selected > .goal-tree-node-card { border-color: color-mix(in srgb, var(--goal-tree-card-color) 72%, rgba(246, 196, 83, 0.24)); box-shadow: 0 0 0 1px color-mix(in srgb, var(--goal-tree-card-color) 22%, transparent), 0 12px 22px rgba(0, 0, 0, 0.18); } .goal-tree-node.is-selected > .goal-tree-node-card.is-editing { border-color: color-mix(in srgb, var(--goal-tree-card-color) 86%, var(--color-accent-gold)); background: linear-gradient(135deg, color-mix(in srgb, var(--goal-tree-card-color) 20%, transparent), transparent 48%), linear-gradient(160deg, rgba(139, 92, 246, 0.18), rgba(16, 20, 38, 0.82)); box-shadow: 0 0 0 2px color-mix(in srgb, var(--goal-tree-card-color) 36%, transparent), 0 0 22px color-mix(in srgb, var(--goal-tree-card-color) 18%, transparent), 0 16px 28px rgba(0, 0, 0, 0.22); } .goal-tree-node.is-complete > .goal-tree-node-card { border-color: color-mix(in srgb, var(--goal-tree-card-color) 54%, rgba(34, 211, 238, 0.3)); background: linear-gradient(135deg, color-mix(in srgb, var(--goal-tree-card-color) 12%, transparent), transparent 44%), linear-gradient(160deg, rgba(139, 92, 246, 0.1), rgba(16, 20, 38, 0.72)); } .goal-tree-node-card:hover, .goal-tree-node-card:focus-within { border-color: color-mix(in srgb, var(--goal-tree-card-color) 68%, rgba(246, 196, 83, 0.24)); background: linear-gradient(135deg, color-mix(in srgb, var(--goal-tree-card-color) 16%, transparent), transparent 48%), linear-gradient(160deg, rgba(139, 92, 246, 0.14), rgba(16, 20, 38, 0.78)); box-shadow: 0 0 0 1px color-mix(in srgb, var(--goal-tree-card-color) 16%, transparent), 0 14px 26px rgba(0, 0, 0, 0.2); }