/* ==== tree: button in calendar toolbar ==== */
.btn-tree-open{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 18px;margin-left:8px;
  border:1px solid #2f3446;border-radius:8px;
  background:linear-gradient(180deg,#39405a 0%,#262b3c 100%);
  color:#e8ecf6;font-weight:600;letter-spacing:.2px;
  cursor:pointer;transition:filter .15s,transform .05s;
}
.btn-tree-open:hover{filter:brightness(1.18);}
.btn-tree-open:active{transform:translateY(1px);}
.btn-tree-open__icon{font-size:14px;color:#8fb8ff;}

/* ==== tree: fullscreen viewport ==== */
.tree-overlay{position:fixed;inset:0;z-index:99999;display:none;background:#14161c;}
.tree-overlay.is-open{display:flex;flex-direction:column;}
.tree-topbar{
  display:flex;align-items:center;justify-content:space-between;
  height:48px;padding:0 16px;flex:0 0 48px;
  background:#1b1e26;border-bottom:1px solid #2a2f3d;
  color:#d7dcea;font:600 14px/1 system-ui,Arial,sans-serif;
}
.tree-close{
  width:32px;height:32px;line-height:1;font-size:22px;
  background:transparent;border:1px solid #333a4c;border-radius:6px;
  color:#aab2c6;cursor:pointer;
}
.tree-close:hover{background:#262b38;color:#fff;}
.tree-canvas{
  flex:1 1 auto;position:relative;overflow:hidden;
  background-color:#1b1d23;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px),
    linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px);
  background-size:160px 160px,160px 160px,20px 20px,20px 20px;
}

/* ==== tree: layers + hud ==== */
.tree-world{position:absolute;left:0;top:0;width:0;height:0;transform-origin:0 0;will-change:transform;}
.tree-edges{position:absolute;left:0;top:0;overflow:visible;pointer-events:none;}
.tree-canvas.is-panning{cursor:grabbing;}
.tree-hud{
  position:absolute;left:12px;bottom:12px;display:flex;align-items:center;gap:10px;
  padding:6px 10px;border:1px solid #2b3140;border-radius:8px;
  background:rgba(20,22,28,.78);color:#8d97ad;
  font:12px/1 ui-monospace,Menlo,Consolas,monospace;user-select:none;
}
.tree-hud__z{color:#cfd6e6;min-width:44px;}
.tree-hud__btn{
  border:1px solid #333a4c;background:transparent;color:#aab2c6;
  border-radius:6px;padding:4px 9px;cursor:pointer;font:inherit;
}
.tree-hud__btn:hover{background:#262b38;color:#fff;}

/* izmeritel vidimoy oblasti: nikogda ne menyaet razmer */
.tree-probe{position:fixed;left:0;top:0;width:1px;height:100%;
  pointer-events:none;opacity:0;z-index:-1;}

/* ==== tree: node ==== */
.tree-node{
  position:absolute;width:232px;border:1px solid #39405a;border-radius:10px;
  background:linear-gradient(180deg,#2a3040 0%,#232836 100%);
  box-shadow:0 6px 18px rgba(0,0,0,.45);
  font:13px/1.35 system-ui,-apple-system,Arial,sans-serif;color:#e8ecf6;
  user-select:none;
}
.tree-node__bar{position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:9px 0 0 9px;background:#f0a63c;}
.tree-node--pending     .tree-node__bar{background:#f0a63c;}
.tree-node--in-progress .tree-node__bar{background:#4a9eff;}
.tree-node--review      .tree-node__bar{background:#b07de0;}
.tree-node--done        .tree-node__bar{background:#4cc38a;}
.tree-node--cancelled   .tree-node__bar{background:#6b7280;}
.tree-node__body{padding:11px 13px 11px 17px;}
.tree-node__title{font-weight:600;margin:0 0 8px;overflow:hidden;text-overflow:ellipsis;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.tree-node__meta{display:flex;justify-content:space-between;gap:10px;
  color:#8d97ad;font-size:11px;white-space:nowrap;}
.tree-node__who{overflow:hidden;text-overflow:ellipsis;}
.tree-node__port{
  position:absolute;top:50%;width:11px;height:11px;margin-top:-6px;border-radius:50%;
  background:#171a21;border:2px solid #6f7d9c;
}
.tree-node__port--in{left:-7px;}
.tree-node__port--out{right:-7px;}

/* ==== tree: node v2 - ugolok + mesto pod dannye ==== */
.tree-node{width:292px;}
.tree-node__bar{border-radius:9px 0 0 0;}
.tree-node__bar--b{
  top:auto;left:0;right:0;bottom:0;width:auto;height:4px;
  border-radius:0 0 9px 9px;
}
.tree-node__body{padding:12px 14px 16px 18px;}
.tree-node__sep{height:1px;background:#363d52;margin:11px 0 9px;}
.tree-node__sum{
  color:#828da3;font-size:11.5px;line-height:1.5;min-height:52px;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.tree-node__sum--empty{color:#5c6478;font-style:italic;}
.tree-node__foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:11px;}
.tree-node__task{color:#5c6478;font:11px/1 ui-monospace,Menlo,Consolas,monospace;}
.tree-node__chat{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 11px;border:1px solid #3d465e;border-radius:7px;
  background:#2f3648;color:#c6cfe2;font-size:11.5px;cursor:pointer;
}
.tree-node__chat:hover{background:#3a4258;color:#fff;}
