/* KPI Flow — style port từ CRM_KPI_demo (1).html, dùng chung với Bootstrap 5 */
:root{
  --bg:#F3F5FA;
  --surface:#FFFFFF;
  --sidebar-1:#0E1330;
  --sidebar-2:#1B2354;
  --ink:#101828;
  --muted:#667085;
  --faint:#98A2B3;
  --border:#E4E7EC;
  --primary:#2F6FED;
  --primary-ink:#1849B8;
  --primary-tint:#EAF1FE;
  --success:#17B26A;
  --success-tint:#E7F8EF;
  --warning:#F79009;
  --warning-tint:#FFF4E5;
  --danger:#F04438;
  --danger-tint:#FEECEC;
  --grey-tint:#F2F4F7;
  --radius:14px;
  --shadow:0 1px 2px rgba(16,24,40,.04), 0 1px 3px rgba(16,24,40,.06);
}
body{background:var(--bg);color:var(--ink);font-family:'Inter',sans-serif;font-size:14px;-webkit-font-smoothing:antialiased;}
h1,h2,h3,.brand,.side-nav-item span,.card-label,.section-title{font-family:'Sora',sans-serif;}
.mono{font-family:'JetBrains Mono',monospace;}

/* ---------- Login ---------- */
.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(180deg,var(--sidebar-1),var(--sidebar-2));}
.login-card{background:var(--surface);border-radius:16px;padding:36px 34px;width:400px;max-width:92vw;box-shadow:0 20px 60px rgba(16,24,40,.35);}
.login-wrap .brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:17px;}

/* ---------- Layout ---------- */
.app{display:grid;grid-template-columns:260px 1fr;min-height:100vh;transition:grid-template-columns .2s ease;}
.app.sidebar-collapsed{grid-template-columns:76px 1fr;}
.sidebar{
  background:linear-gradient(180deg,var(--sidebar-1),var(--sidebar-2));
  color:#C6CBEA;padding:20px 14px;position:sticky;top:0;height:100vh;
  display:flex;flex-direction:column;gap:22px;overflow-y:auto;overflow-x:hidden;
  border-right:1px solid rgba(255,255,255,.06);
}
.brand-row{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.brand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:700;font-size:16.5px;padding:2px 0 2px 8px;white-space:nowrap;min-width:0;overflow:hidden;}
.brand-mark{
  width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#3A7BF5,#7B5CFA);
  display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono',monospace;font-weight:700;color:#fff;font-size:14px;flex-shrink:0;
  box-shadow:0 4px 10px rgba(58,123,245,.35);
}
.nav-group-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:#6E75A8;font-weight:700;padding:0 12px;margin-bottom:8px;white-space:nowrap;}
.side-nav{display:flex;flex-direction:column;gap:3px;}
.side-nav-item{
  display:flex;text-decoration:none;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;
  font-size:13.5px;font-weight:500;color:#AEB4DC;transition:background .15s,color .15s;cursor:pointer;white-space:nowrap;
}
.side-nav-item:hover,.side-nav-item:focus,.side-nav-item:active{text-decoration:none;}
.side-nav-item svg{width:18px;height:18px;flex-shrink:0;opacity:.9;}
.side-nav-item:hover{background:rgba(255,255,255,.07);color:#fff;}
.side-nav-item.active{background:linear-gradient(90deg,rgba(58,123,245,.28),rgba(58,123,245,.08));color:#fff;box-shadow:inset 3px 0 0 var(--primary);}
.side-nav-item.disabled{opacity:.4;cursor:default;}
.sidebar-foot{
  margin-top:auto;padding:12px;border-radius:12px;background:rgba(255,255,255,.05);
  font-size:12px;color:#9DA3D1;line-height:1.5;display:flex;align-items:center;gap:10px;
}
.sidebar-foot b{color:#fff;}
.sidebar-foot-avatar{
  width:34px;height:34px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,#FFB25E,#F76A3C);
  display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:13px;font-family:'Sora',sans-serif;
}
.sidebar-foot-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sidebar-collapse-btn{
  display:flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;border-radius:8px;
  background:rgba(255,255,255,.06);color:#9DA3D1;border:none;cursor:pointer;transition:background .15s,color .15s;
}
.sidebar-collapse-btn:hover{background:rgba(255,255,255,.12);color:#fff;}
.sidebar-collapse-btn svg{width:15px;height:15px;flex-shrink:0;transition:transform .2s;}

/* Sidebar thu gọn: chỉ hiện icon, ẩn nhãn/tiêu đề nhóm/footer text */
.app.sidebar-collapsed .sidebar{padding:20px 10px;}
.app.sidebar-collapsed .brand-row{flex-direction:column;gap:14px;}
.app.sidebar-collapsed .brand{padding:0;}
.app.sidebar-collapsed .brand span,
.app.sidebar-collapsed .nav-group-label,
.app.sidebar-collapsed .side-nav-item span,
.app.sidebar-collapsed .sidebar-foot-text{display:none;}
.app.sidebar-collapsed .side-nav-item{justify-content:center;padding:10px;}
.app.sidebar-collapsed .sidebar-foot{justify-content:center;}
.app.sidebar-collapsed .sidebar-collapse-btn svg{transform:rotate(180deg);}

.main{display:flex;flex-direction:column;min-height:100vh;}
.topbar{background:var(--surface);border-bottom:1px solid var(--border);padding:14px 28px;display:flex;align-items:center;justify-content:space-between;gap:16px;position:sticky;top:0;z-index:20;}
.topbar-title h1{font-size:18px;margin:0;font-weight:700;}
.topbar-title p{margin:2px 0 0;color:var(--muted);font-size:12.5px;}
.topbar-right{display:flex;align-items:center;gap:14px;}
.search-box{display:flex;align-items:center;gap:8px;background:var(--grey-tint);border:1px solid transparent;border-radius:9px;padding:8px 12px;width:260px;}
.search-box input{border:none;background:none;outline:none;font-size:13px;width:100%;color:var(--ink);}
.avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#FFB25E,#F76A3C);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:13px;font-family:'Sora',sans-serif;}
.content{padding:24px 28px 60px;flex:1;}

/* ---------- Filter bar ---------- */
.filterbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;margin-bottom:20px;box-shadow:var(--shadow);}
.filter-group{display:flex;align-items:center;gap:8px;}
.filter-label{font-size:12px;color:var(--muted);font-weight:600;}
.segmented{display:flex;background:var(--grey-tint);border-radius:9px;padding:3px;gap:2px;}
.segmented button{border:none;background:none;padding:6px 14px;border-radius:7px;font-size:12.5px;font-weight:600;color:var(--muted);transition:all .15s;}
.segmented button.active{background:var(--surface);color:var(--primary-ink);box-shadow:var(--shadow);}
.spacer{flex:1;}
.pill-btn{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:7px 13px;font-size:12.5px;font-weight:600;color:var(--ink);display:inline-flex;align-items:center;gap:6px;}
.pill-btn:hover{border-color:var(--primary);color:var(--primary-ink);}
.pill-btn-primary{background:var(--primary);color:#fff;border-color:var(--primary);}
.pill-btn-success{background:var(--success);color:#fff;border-color:var(--success);}
.pill-btn-success:hover{background:#149a5c;border-color:#149a5c;color:#fff;}

/* ---------- Cards ---------- */
.cards{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:20px;}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 14px;box-shadow:var(--shadow);display:flex;align-items:center;gap:12px;min-width:0;}
.card-body{flex:1;min-width:0;}
.card-label{font-size:11.5px;color:var(--muted);font-weight:600;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.card-value{font-size:22px;font-weight:700;font-family:'JetBrains Mono',monospace;line-height:1.1;}
.card-delta{font-size:10.5px;margin-top:3px;font-weight:600;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ring-wrap{position:relative;width:46px;height:46px;flex-shrink:0;}
.ring-wrap svg{transform:rotate(-90deg);}
.ring-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;}
.icon-box{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.icon-box svg{width:17px;height:17px;}

/* ---------- Charts ---------- */
.charts-row{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;margin-bottom:16px;}
.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow);}
.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.section-title{font-size:14.5px;font-weight:700;margin:0;}
.section-sub{font-size:12px;color:var(--muted);margin:2px 0 0;}
.legend-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;}
.legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);}
.legend-dot{width:8px;height:8px;border-radius:50%;}
.trend-panel{margin-bottom:16px;}

/* ---------- Table ---------- */
.table-panel{padding:0;overflow:hidden;}
.table-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 12px;}
.table-foot{display:flex;justify-content:flex-end;padding:14px 20px;border-top:1px solid var(--border);}
.kpi-table{width:100%;border-collapse:collapse;font-size:13px;}
.kpi-table thead th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:10px 20px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:#FAFBFD;font-weight:700;}
.kpi-table tbody td{padding:13px 20px;border-bottom:1px solid var(--border);vertical-align:middle;}
.kpi-table tbody tr{transition:background .12s;cursor:pointer;}
.kpi-table tbody tr:hover{background:#F8FAFF;}
.dept-tag{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:4px 9px;border-radius:7px;background:var(--primary-tint);color:var(--primary-ink);white-space:nowrap;}

/* ---------- Search Select (dropdown chọn 1 giá trị có tìm kiếm, tự viết — xem searchSelect() trong core.js) ---------- */
/* Thay cho Choices.js: dùng thư viện ngoài từng gặp CSS mặc định (word-break:break-all) làm tên nhân viên
   bị bẻ từng ký tự xuống dòng, khó kiểm soát/ghi đè triệt để dù đã sửa nhiều lần. Tự viết để giữ toàn bộ
   style trong tay, khớp hệt các .form-select-sm khác trong hệ thống. */
.search-select{position:relative;min-width:140px;width:100%;font-size:13px;}
.filter-group .search-select{width:auto;}
.search-select-control{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface);cursor:pointer;}
.search-select-control:hover{border-color:var(--primary);}
.search-select-control.open{border-color:var(--primary);}
.search-select-label{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left;}
.search-select-caret{flex-shrink:0;color:var(--muted);transition:transform .12s;}
.search-select-control.open .search-select-caret{transform:rotate(180deg);}
.search-select-panel{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);overflow:hidden;min-width:260px;}
.search-select-search-wrap{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--border);color:var(--muted);}
.search-select-input{border:none;outline:none;background:none;font-size:13px;width:100%;color:var(--ink);}
.search-select-list{max-height:260px;overflow-y:auto;}
.search-select-item{padding:8px 12px;font-size:13px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;}
.search-select-item:hover{background:#F8FAFF;}
.search-select-item.active{background:var(--primary-tint);color:var(--primary-ink);font-weight:600;}
.search-select-disabled .search-select-control{cursor:not-allowed;opacity:.55;background:var(--grey-tint);}
.search-select-empty{padding:12px;font-size:12.5px;color:var(--muted);text-align:center;}

/* ---------- Flatpickr (locale vn: tên tháng dài hơn tiếng Anh, mặc định width:75%/height:34px của thư
   viện làm chữ tháng đè lên số năm) ---------- */
.flatpickr-current-month{width:100%;left:0;height:auto;padding-top:6px;font-size:112%;}
.flatpickr-current-month .cur-month{margin-right:4px;}
.flatpickr-current-month .numInputWrapper{width:62px;}

/* ---------- Goal list (Mục tiêu KPI) ---------- */
.goal-list-row{display:flex;align-items:center;gap:12px;padding:13px 20px;border-top:1px solid var(--border);cursor:pointer;transition:background .12s;}
.goal-list-row:hover{background:#F8FAFF;}
.goal-list-row:first-child{border-top:none;}
.plan-cell{max-width:230px;}
.plan-title{font-weight:600;color:var(--ink);}
.plan-sub{font-size:11.5px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:230px;}
.person-cell{display:flex;align-items:center;gap:8px;}
.person-dot{width:26px;height:26px;border-radius:50%;background:var(--grey-tint);color:var(--muted);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;font-family:'Sora',sans-serif;flex-shrink:0;}
.num-cell{font-family:'JetBrains Mono',monospace;font-weight:600;white-space:nowrap;}
.pct-bar-wrap{display:flex;align-items:center;gap:8px;}
.pct-bar-track{width:52px;height:5px;border-radius:3px;background:var(--grey-tint);overflow:hidden;}
.pct-bar-fill{height:100%;border-radius:3px;}
.status-pill{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;padding:5px 10px;border-radius:20px;white-space:nowrap;}
.status-dot{width:6px;height:6px;border-radius:50%;}
.st-dat{background:var(--success-tint);color:#0B7A45;}
.st-dat .status-dot{background:var(--success);}
.st-dang{background:var(--warning-tint);color:#966114;}
.st-dang .status-dot{background:var(--warning);}
.st-chua{background:var(--danger-tint);color:#B3261E;}
.st-chua .status-dot{background:var(--danger);}
.st-none{background:var(--grey-tint);color:var(--muted);}
.st-none .status-dot{background:var(--faint);}
.date-cell{color:var(--muted);white-space:nowrap;}
.empty-state{padding:60px 20px;text-align:center;color:var(--muted);}

/* ---------- Assignment history timeline (panel "Lịch sử" — Việc được giao cho tôi) ---------- */
.history-timeline{position:relative;padding-left:22px;max-height:420px;overflow-y:auto;}
.history-timeline::before{content:"";position:absolute;left:5px;top:4px;bottom:4px;width:2px;background:var(--border);}
.history-item{position:relative;padding-bottom:16px;}
.history-item:last-child{padding-bottom:0;}
.history-item-dot{position:absolute;left:-22px;top:3px;width:10px;height:10px;border-radius:50%;background:var(--primary);border:2px solid var(--surface);box-shadow:0 0 0 1px var(--border);}
.history-item-body{padding-left:2px;}

/* ---------- Icon-only action buttons (cột Hành động — Việc được giao cho tôi) ---------- */
/* Chỉ chứa icon + tooltip (title) thay vì nhãn chữ, để cột gọn lại, nhường không gian cho các cột dữ
   liệu quan trọng hơn (chỉ tiêu/kết quả/%) — đặc biệt cần khi nhiều nút xuất hiện cùng lúc trên 1 dòng. */
.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;flex-shrink:0;}

/* Panel gọn "Việc được giao cho tôi" ở Tổng quan — 2 thẻ/dòng thay vì 1 thẻ/dòng, tận dụng chiều ngang.
   Panel cha (.table-panel) có padding:0, nên bù lại padding ở đây. */
.my-tasks-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:16px 20px;}
@media (max-width:900px){.my-tasks-grid{grid-template-columns:1fr;}}

/* ---------- Departments ---------- */
.dept-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;}
.dept-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow);cursor:pointer;transition:border-color .15s,transform .15s;}
.dept-card:hover{border-color:var(--primary);transform:translateY(-2px);}
.dept-card-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:12px;}
.dept-name{font-family:'Sora',sans-serif;font-weight:700;font-size:15px;margin:0 0 4px;}
.dept-head{font-size:12.5px;color:var(--muted);}
.dept-status{font-size:11px;font-weight:700;padding:4px 9px;border-radius:20px;white-space:nowrap;}
.dept-status.on{background:var(--success-tint);color:#0B7A45;}
.dept-status.off{background:var(--grey-tint);color:var(--muted);}
.dept-desc{font-size:12.5px;color:var(--muted);line-height:1.5;margin-bottom:14px;min-height:36px;}
.dept-stats{display:flex;gap:10px;border-top:1px solid var(--border);padding-top:12px;}
.dept-stat{flex:1;text-align:center;}
.dept-stat-val{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:16px;}
.dept-stat-lbl{font-size:10.5px;color:var(--muted);margin-top:2px;}
.dept-actions{display:flex;gap:6px;margin-top:10px;}

/* ---------- Drawer (offcanvas) ---------- */
.drawer-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;margin-bottom:6px;}
.drawer-value{font-size:13.5px;line-height:1.55;}
.drawer-progress{background:var(--grey-tint);border-radius:10px;padding:14px;}
.drawer-progress-top{display:flex;justify-content:space-between;font-size:12.5px;margin-bottom:8px;color:var(--muted);}
.drawer-progress-track{height:8px;border-radius:5px;background:#E4E7EC;overflow:hidden;}
.drawer-progress-fill{height:100%;border-radius:5px;}

/* ---------- Reports ---------- */
.report-layout{display:grid;grid-template-columns:280px 1fr;gap:16px;align-items:start;}
.report-config{position:sticky;top:90px;}
.report-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.rs-item{text-align:center;padding:10px;border-radius:10px;background:var(--grey-tint);}
.rs-val{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:20px;}
.rs-lbl{font-size:11px;color:var(--muted);margin-top:4px;}
@media (max-width:960px){.report-layout{grid-template-columns:1fr;} .report-config{position:static;}}

/* ---------- Tài khoản của tôi ---------- */
.account-layout{display:grid;grid-template-columns:280px 1fr;gap:16px;align-items:start;}
.account-card{
  background:linear-gradient(160deg,var(--primary),#7B5CFA);color:#fff;text-align:center;
  padding:28px 22px;position:sticky;top:90px;
}
.account-avatar{
  width:76px;height:76px;border-radius:50%;background:rgba(255,255,255,.18);
  display:flex;align-items:center;justify-content:center;margin:0 auto 14px;
  font-size:28px;font-weight:700;font-family:'Sora',sans-serif;border:3px solid rgba(255,255,255,.35);
}
.account-name{font-family:'Sora',sans-serif;font-weight:700;font-size:17px;}
.account-username{font-size:12.5px;color:rgba(255,255,255,.75);margin-top:2px;margin-bottom:20px;}
.account-info-list{display:flex;flex-direction:column;gap:14px;text-align:left;border-top:1px solid rgba(255,255,255,.2);padding-top:16px;}
.account-info-item{display:flex;align-items:flex-start;gap:10px;}
.account-info-item svg{width:16px;height:16px;flex-shrink:0;margin-top:2px;opacity:.85;}
.account-info-label{font-size:10.5px;color:rgba(255,255,255,.7);text-transform:uppercase;letter-spacing:.04em;}
.account-info-value{font-size:13px;font-weight:600;}
@media (max-width:960px){.account-layout{grid-template-columns:1fr;} .account-card{position:static;}}

/* ---------- Responsive ---------- */
@media (max-width:1240px){.cards{grid-template-columns:repeat(3,1fr);}}
@media (max-width:1080px){.charts-row{grid-template-columns:1fr;} .cards{grid-template-columns:repeat(2,1fr);}}
@media (max-width:820px){.app{grid-template-columns:1fr;} .sidebar{display:none;} .cards{grid-template-columns:1fr;}}

/* ---------- Lập kế hoạch (Tháng > Tuần > Ngày) ---------- */
.plan-breadcrumb{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);margin-bottom:14px;flex-wrap:wrap;}
.plan-breadcrumb a{color:var(--primary-ink);font-weight:600;text-decoration:none;cursor:pointer;}
.plan-breadcrumb a:hover{text-decoration:underline;}
.plan-breadcrumb .crumb-sep{color:var(--faint);}
.plan-breadcrumb .crumb-current{font-weight:700;color:var(--ink);}
.plan-card-progress{margin-top:10px;}
.plan-card-progress-top{display:flex;justify-content:space-between;font-size:11.5px;color:var(--muted);margin-bottom:4px;}
.plan-card-progress-track{width:100%;height:7px;border-radius:4px;background:var(--grey-tint);overflow:hidden;}
.plan-card-progress-fill{height:100%;border-radius:4px;transition:width .2s;}
.plan-week-count{font-size:11.5px;color:var(--muted);margin-top:8px;}
.day-cell-input{width:100px;}

/* ---------- Mục tiêu KPI (cây Target đệ quy — Goal > Target(s) lồng nhau > Entry lá) ---------- */
.target-node{border-left:2px solid var(--border);margin-left:6px;}
.target-node-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;transition:background .12s;}
.target-node-row:hover{background:#F8FAFF;}
.target-node-toggle{width:20px;height:20px;flex:0 0 20px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--muted);border:none;background:none;}
.target-node-toggle svg{transition:transform .15s;}
.target-node.expanded>.target-node-row .target-node-toggle svg{transform:rotate(90deg);}
.target-node-body{flex:1;min-width:0;}
.target-node-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;}
.target-node-period{font-weight:700;color:var(--ink);}
.target-node-range{color:var(--muted);font-size:11.5px;}
.target-node-meta{display:flex;align-items:center;gap:14px;font-size:11.5px;color:var(--muted);margin-top:3px;}
.target-node-actions{display:flex;gap:6px;flex:0 0 auto;}
.target-node-children{margin-left:22px;display:none;}
.target-node.expanded>.target-node-children{display:block;}
.target-node-progress{width:120px;flex:0 0 120px;}
.target-node-progress-track{width:100%;height:6px;border-radius:4px;background:var(--grey-tint);overflow:hidden;}
.target-node-progress-fill{height:100%;border-radius:4px;transition:width .2s;}
.target-node-progress-label{font-size:11px;color:var(--muted);margin-top:2px;text-align:right;}
.target-locked-badge{font-size:10.5px;color:#B3261E;font-weight:700;}
