/* ========================================
   ATLAS TREE — шаджара (ТЗ Атлас v1.0 §7.5)
   ======================================== */

.atl-tree-wrap { flex: 1; display: flex; flex-direction: column; }

.atl-tree {
    flex: 1;
    border: 1px solid var(--atl-border);
    border-radius: 12px;
    background: var(--atl-bg-elevated);
    box-shadow: var(--atl-shadow);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.atl-tree-svg {
    display: block;
    width: 100%;
    max-width: none !important; /* глобальный reset svg{max-width:100%} */
    cursor: grab;
    touch-action: none; /* pan/zoom обрабатываем сами (pointer events) */
    direction: ltr; /* координатная система древа не зеркалится в RTL */
}
.atl-tree-svg.dragging { cursor: grabbing; }

/* ── Узлы ── */
.atl-tree-node { cursor: pointer; }

.atl-tree-node-rect {
    fill: var(--atl-panel-bg);
    stroke-width: 2;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.12));
    transition: stroke-width 0.15s ease;
}
.atl-tree-node:hover .atl-tree-node-rect { stroke-width: 3.5; }

.atl-tree-node-label {
    fill: var(--atl-text);
    font-family: 'Inter', sans-serif;
    font-size: 12.5px;
    font-weight: 500;
    text-anchor: middle;
    dominant-baseline: central;
    pointer-events: none;
}

/* ── Рёбра ── */
.atl-tree-edge {
    stroke-width: 1.4;
    opacity: 0.85;
}
.atl-tree-edge.primary { stroke-width: 2.6; } /* «основное» ребро — толще (§7.5) */

/* ── Приглушение фильтрами: не убираем из раскладки (§7.5) ── */
.atl-tree-node.dimmed { opacity: 0.2; }
.atl-tree-edge.dimmed { opacity: 0.12; }

/* ── Линии-подписи поколений ── */
.atl-tree-gen-line {
    stroke: var(--atl-border);
    stroke-width: 1;
    stroke-dasharray: 5 6;
    opacity: 0.7;
}
.atl-tree-gen-label {
    fill: var(--atl-text-muted); /* без opacity: токены дают ≥4.5:1 во всех темах */
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

/* ── «Вне древа (связи ещё не внесены)» ── */
.atl-tree-out {
    border-top: 1px solid var(--atl-border);
    padding: 12px 16px 16px;
    background: var(--atl-panel-bg);
}

.atl-tree-out-title {
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--atl-text-muted);
    margin-bottom: 10px;
}

.atl-tree-out-list {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.atl-tree-out-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 11px;
    border: 1px solid var(--atl-border);
    border-radius: 999px;
    background: var(--atl-bg-elevated);
    color: var(--atl-text);
    font-family: 'Inter', sans-serif;
    font-size: 12.5px;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease;
}
.atl-tree-out-chip:hover {
    border-color: var(--atl-accent);
    background: var(--atl-accent-bg);
}
.atl-tree-out-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    flex-shrink: 0;
}

@media (max-width: 767px) {
    .atl-tree-out { padding: 10px 12px 12px; }
}
