.task-lineage-map { min-width: 0; color: var(--chu, #0f172a); letter-spacing: 0; }
.task-lineage-map .tlm-toolbar { display: flex; flex-direction: column; align-items: stretch; gap: 8px; padding: 10px; background: #fff; border: 1px solid #d9e2dc; border-radius: 6px; }
.task-lineage-map .tlm-search { display: flex; gap: 6px; align-items: center; min-width: 0; }
.task-lineage-map .tlm-search input { min-width: 80px; flex: 1; width: 100%; max-width: none; height: 36px; }
.task-lineage-map .tlm-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; }
.task-lineage-map .tlm-control-group { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; padding: 3px; background: #f7f9fb; border: 1px solid #e2e8f0; border-radius: 4px; min-width: 0; max-width: 100%; }
.task-lineage-map .tlm-control-group .btn { height: 30px; flex-shrink: 0; font-size: 12px; }
.task-lineage-map .tlm-control-group .tlm-icon { width: 30px; flex-basis: 30px; }
.task-lineage-map .tlm-control-group .tlm-command { width: auto; flex-basis: auto; gap: 5px; padding: 0 8px; white-space: nowrap; }
.task-lineage-map .tlm-readable, .task-lineage-map .tlm-expand-all { padding: 0 8px; white-space: nowrap; }
.task-lineage-map .tlm-icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 36px; width: 36px; height: 36px; padding: 0; }
.task-lineage-map .tlm-gov-icon { width: 18px; height: 18px; flex: 0 0 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.task-lineage-map .tlm-chevron-right { transform: rotate(-90deg); }
.task-lineage-map .tlm-symbol { display: inline-block; width: 18px; font-family: Arial, sans-serif; font-size: 22px; font-weight: 400; line-height: 1; text-align: center; }
.task-lineage-map button[aria-pressed="true"] { color: #1b5e20; background: #e8f5e9; border-color: #1b5e20; }
.task-lineage-map .tlm-result { font-size: 12px; min-width: 42px; overflow-wrap: anywhere; }
.task-lineage-map .tlm-scale { width: 48px; text-align: center; font-size: 12px; }
.task-lineage-map .tlm-notice { color: #64706a; padding: 4px 0; font-size: 12px; line-height: 1.4; }
.task-lineage-map .tlm-depth-controls { display: flex; flex-wrap: nowrap; align-items: center; gap: 4px; max-width: 100%; overflow-x: auto; }
.task-lineage-map .tlm-depth-label { color: #57615b; font-size: 12px; white-space: nowrap; margin-right: 4px; }
.task-lineage-map .tlm-depth-button { width: 30px; height: 30px; padding: 0; flex: 0 0 30px; font-size: 12px; }
.task-lineage-map .tlm-counts, .task-lineage-map .tlm-breadcrumb { padding: 6px 0; font-size: 12px; color: #475569; overflow-wrap: anywhere; }
.task-lineage-map .tlm-breadcrumb { display: block; box-sizing: border-box; height: 36px; min-height: 36px; max-height: 36px; line-height: 24px; padding: 6px 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.task-lineage-map .tlm-viewport { height: min(68vh, 720px); min-height: 320px; overflow: auto; overscroll-behavior: contain; border: 1px solid #d9e2dc; background-color: #fbfdfb; background-image: radial-gradient(#dbe4dd .8px, transparent .8px); background-size: 20px 20px; position: relative; border-radius: 4px; }
.task-lineage-map[data-mode="graph"] .tlm-viewport { cursor: grab; touch-action: none; }
.task-lineage-map .tlm-viewport.tlm-dragging { cursor: grabbing; user-select: none; }
.task-lineage-map .tlm-node { cursor: default; }
.portal-app .task-lineage-map.tlm-expanded, .tacnghiep-app .task-lineage-map.tlm-expanded { position: fixed; inset: 0; z-index: 450; display: flex; flex-direction: column; padding: 12px; background: #f6f8fb; box-sizing: border-box; overflow: hidden; overscroll-behavior: contain; }
.task-lineage-map.tlm-expanded .tlm-viewport { flex: 1 1 auto; height: auto; min-height: 0; }
.task-lineage-map.tlm-expanded .tlm-toolbar, .task-lineage-map.tlm-expanded .tlm-counts, .task-lineage-map.tlm-expanded .tlm-breadcrumb, .task-lineage-map.tlm-expanded .tlm-notice, .task-lineage-map.tlm-expanded .tlm-legend { flex-shrink: 0; }
.task-lineage-map .tlm-frame { position: relative; min-width: 100%; min-height: 100%; }
.task-lineage-map[data-mode="graph"] .tlm-frame { overflow: hidden; min-width: 0; margin-inline: auto; }
.task-lineage-map .tlm-canvas { position: relative; transform-origin: 0 0; }
.task-lineage-map .tlm-nodes { margin: 0; padding: 0; list-style: none; }
.task-lineage-map .tlm-node { --node-accent: #368442; --node-tint: #f0f8f1; box-sizing: border-box; width: 236px; position: absolute; padding: 8px 10px; border: 1px solid #ccdad0; border-left: 3px solid var(--node-accent); border-radius: 6px; background: var(--node-tint); overflow-wrap: anywhere; font-size: 13px; box-shadow: 0 1px 3px #183b2410; }
.task-lineage-map .tlm-node[data-type="SOURCE"], .task-lineage-map .tlm-node[data-type="NGUON_GIAO_VIEC"] { --node-accent: #1b5e20; --node-tint: #e6f2e7; }
.task-lineage-map .tlm-node[data-type="DOCUMENT"], .task-lineage-map .tlm-node[data-type="VAN_BAN_GIAO_VIEC"] { --node-accent: #246ca0; --node-tint: #eef6fc; }
.task-lineage-map .tlm-node[data-type="PROGRAM"], .task-lineage-map .tlm-node[data-type="CHUONG_TRINH"] { --node-accent: #977215; --node-tint: #fff9e8; }
.task-lineage-map .tlm-node[data-type="DISPATCH_DOCUMENT"], .task-lineage-map .tlm-node[data-type="VAN_BAN_PHAN_KHAI"] { --node-accent: #147b7e; --node-tint: #edf9f8; }
.task-lineage-map .tlm-node[data-type="BAO_CAO"], .task-lineage-map .tlm-node[data-type="MINH_CHUNG"], .task-lineage-map .tlm-node[data-type="SAN_PHAM"] { --node-accent: #65736a; --node-tint: #f5f7f5; }
.task-lineage-map .tlm-node:hover { border-color: var(--node-accent); box-shadow: 0 2px 8px #183b2420; }
.task-lineage-map .tlm-node-head { display: flex; gap: 6px; align-items: center; min-height: 22px; }
.task-lineage-map .tlm-node-head .tlm-icon { width: 24px; height: 24px; flex-basis: 24px; border: 0; background: transparent; }
.task-lineage-map .tlm-type { font-size: 11px; font-weight: 600; color: var(--node-accent); }
.task-lineage-map .tlm-label { font-size: 13px; font-weight: 600; line-height: 1.45; margin: 4px 0; white-space: pre-wrap; }
.task-lineage-map[data-mode="graph"] .tlm-label { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.task-lineage-map .tlm-unit { font-size: 11px; line-height: 1.4; color: #58665c; margin: 3px 0; }
.task-lineage-map .tlm-status { display: inline-block; white-space: normal; font-size: 10px; margin: 3px 0; }
.task-lineage-map .tlm-pending { background: #fef3c7; color: #b45309; }
.task-lineage-map .tlm-danger { background: #fef2f2; color: #d32f2f; }
.task-lineage-map .tlm-open { margin-top: 5px; max-width: 100%; white-space: normal; font-size: 11px; padding: 3px 6px; background: #fff; }
.task-lineage-map .tlm-match { border-color: #f59e0b; background: #fffbeb; }
.task-lineage-map .tlm-selected { outline: 2px solid #1b5e20; outline-offset: 2px; }
.task-lineage-map :focus-visible { outline: 2px solid #1b5e20; outline-offset: 3px; }
.task-lineage-map .tlm-edges { position: absolute; inset: 0; pointer-events: none; fill: none; stroke: #7fae88; stroke-width: 1.7; }
.task-lineage-map .tlm-edges path[data-type="CHUONG_TRINH"] { stroke: #bca351; }
.task-lineage-map .tlm-edges path[data-type="VAN_BAN_GIAO_VIEC"] { stroke: #7da6c4; }
.task-lineage-map .tlm-edges path[data-type="VAN_BAN_PHAN_KHAI"] { stroke: #68a9a9; }
.task-lineage-map .tlm-cross-edge { stroke: #b45309; stroke-dasharray: 5 4; }
.task-lineage-map .tlm-links { margin-top: 4px; font-size: 11px; }
.task-lineage-map .tlm-links summary { cursor: pointer; color: #475569; }
.task-lineage-map .tlm-link { display: block; max-width: 100%; text-align: left; white-space: normal; overflow-wrap: anywhere; margin-top: 4px; font-size: 11px; }
.task-lineage-map .tlm-empty { margin: 16px; font-size: 14px; }
.task-lineage-map .tlm-legend { display: flex; flex-wrap: wrap; gap: 12px; padding: 8px 0; font-size: 12px; color: #475569; }
.task-lineage-map .tlm-legend span { display: inline-flex; align-items: center; gap: 6px; }
.task-lineage-map .tlm-legend span::before { content: ''; width: 24px; border-top: 2px solid #64748b; }
.task-lineage-map .tlm-legend .tlm-legend-cross::before { border-top: 2px dashed #b45309; }
.task-lineage-map[data-mode="list"] .tlm-nodes { padding: 12px; }
.task-lineage-map[data-mode="list"] .tlm-node { position: relative; width: auto; margin: 0 0 12px min(calc(var(--tlm-depth) * 16px), 96px); }
@media (max-width: 767px) {
  .task-lineage-map { padding-bottom: 70px; }
  .task-lineage-map .tlm-search { flex-basis: 100%; flex-wrap: wrap; }
  .task-lineage-map .tlm-search input { max-width: none; flex: 1 1 120px; width: 120px; }
  .task-lineage-map .tlm-viewport { height: 62vh; }
  .task-lineage-map[data-mode="list"] .tlm-node { margin-left: min(calc(var(--tlm-depth) * 10px), 40px); }
  .task-lineage-map .tlm-icon { width: 40px; height: 40px; flex-basis: 40px; }
}
@media (prefers-reduced-motion: reduce) { .task-lineage-map * { scroll-behavior: auto; } }
