.tooltip{position:fixed;z-index:800;background:var(--bg2);border:1px solid var(--border);
  border-radius:6px;padding:5px 10px;font-size:11.5px;color:var(--text);
  pointer-events:none;white-space:nowrap;box-shadow:0 4px 14px rgba(0,0,0,.4);}
.modal-overlay{position:fixed;inset:0;z-index:800;background:rgba(0,0,0,.55);
  display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);
  animation:fadeIn .15s ease;}
.modal{background:var(--bg2);border:1px solid var(--border);border-radius:12px;
  padding:24px;min-width:300px;max-width:440px;box-shadow:0 20px 60px rgba(0,0,0,.5);
  animation:fadeUp .2s ease;}
.modal h3{font-size:16px;color:var(--text-bright);margin-bottom:10px;}
.modal p{font-size:13px;color:var(--text);line-height:1.65;white-space:pre-line;}
.modal-footer{display:flex;gap:10px;justify-content:flex-end;margin-top:18px;}
.btn-ghost{padding:8px 16px;border:1px solid var(--border);border-radius:7px;
  color:var(--text-dim);font-family:inherit;font-size:12.5px;transition:all .15s;}
.btn-ghost:hover{border-color:var(--border2);color:var(--text);}
.btn-danger{padding:8px 16px;background:var(--red);color:#fff;border-radius:7px;
  font-family:inherit;font-size:12.5px;font-weight:700;border:none;transition:opacity .15s;}
.btn-danger:hover{opacity:.85;}
/* drag-select */
.drag-sel{position:fixed;border:1px solid var(--cyan);background:rgba(94,230,208,.07);
  border-radius:3px;pointer-events:none;z-index:5;}
/* popup animation */
@keyframes popIn{from{opacity:0;transform:scale(.95) translateY(4px)}to{opacity:1;transform:scale(1) translateY(0)}}
.pop-in{animation:popIn .15s ease;}
/* loading bar */
.loading-bar{width:100%;height:3px;background:var(--border);border-radius:2px;overflow:hidden;}
.loading-bar-fill{height:100%;background:linear-gradient(90deg,var(--cyan),var(--magenta));width:0;
  animation:loadBar 2s ease-in-out infinite;}
@keyframes loadBar{0%{width:0;margin-left:0}50%{width:60%}100%{width:0;margin-left:100%}}
