/* /d · kpi_muc_tieu.css — KPI mục tiêu (mig 247). Token từ shared/tokens.css, không hex. */
.kmt-page .kmt-tbl th.kmt-th{text-align:right;line-height:1.25;font-size:var(--fs-xs)}
.kmt-page .kmt-tbl td{vertical-align:top;padding-top:6px;padding-bottom:6px}
.kmt-o{display:flex;flex-direction:column;align-items:flex-end;gap:3px;min-width:0}
.kmt-o .input.sm{width:100%;height:26px;padding:0 6px;font-size:var(--fs-sm)}
.kmt-o .kmt-ts{width:56px}
.kmt-o.doi .input{background:var(--warn-bg);border-color:var(--warn-vivid)}
.kmt-o.khoa .kmt-gt{opacity:.7}
.kmt-gt{font-size:var(--fs-sm);white-space:nowrap}
.kmt-tc{font-size:10.5px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.kmt-ts-tong{font-weight:700;font-variant-numeric:tabular-nums}
.kmt-ts-tong.ok{color:var(--good)} .kmt-ts-tong.sai{color:var(--bad)}
.kmt-bm{padding:7px 0;border-bottom:1px solid var(--line)} .kmt-bm:last-child{border-bottom:0}
.kmt-page .kpi-line{display:flex;align-items:center;gap:8px;margin-top:4px}

/* ---- Ô KPI đã chốt (PA-A · docs/PHR_SC_KPI_UI_Chot_v3.html): thanh 8px = cả tháng,
   vạch navy 2px = mốc pace hôm nay, số % cùng dòng, số tuyệt đối dòng dưới. ---- */
.kmt-cell{display:flex;flex-direction:column;gap:3px;min-width:0}
.kmt-row{display:flex;align-items:center;gap:7px;min-width:0}
.kmt-bt{position:relative;flex:1;height:8px;background:var(--panel-2);border-radius:2px;min-width:0}
.kmt-bt .zone{position:absolute;left:0;top:0;bottom:0;background:var(--line);border-radius:2px 0 0 2px}
.kmt-bt .fill{position:absolute;left:0;top:1px;bottom:1px;border-radius:1px}
.kmt-bt .fill.g{background:var(--good-vivid)} .kmt-bt .fill.w{background:var(--warn-vivid)}
.kmt-bt .fill.b{background:var(--bad-vivid)} .kmt-bt .fill.n{background:var(--none-vivid)}
.kmt-bt .mark{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--brand-navy);margin-left:-1px}
.kmt-val{flex:0 0 48px;text-align:right;font-weight:600;font-size:var(--fs-sm);line-height:1.2;white-space:nowrap;font-variant-numeric:tabular-nums}
.kmt-val.g{color:var(--good)} .kmt-val.w{color:var(--warn)} .kmt-val.b{color:var(--bad)} .kmt-val.n{color:var(--none)}
.kmt-sub{font-size:10.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.kmt-tbl tr.kmt-nguoi{cursor:pointer}
.kmt-dai{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:var(--fs-xs);color:var(--muted);margin-bottom:8px}
.kmt-dai .kmt-bt{flex:0 0 220px}
.kmt-legend{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);color:var(--muted)}
.kmt-legend i{display:inline-block;width:16px;height:8px;border-radius:2px;margin-left:8px}
.kmt-legend i.g{background:var(--good-vivid)} .kmt-legend i.w{background:var(--warn-vivid)} .kmt-legend i.b{background:var(--bad-vivid)}
.kmt-legend u{display:inline-block;width:2px;height:12px;background:var(--brand-navy);margin-left:8px}
.kmt-page .kpi .val.bad{color:var(--bad)}
/* chú giải màu dưới bảng (CEO 14/09) */
.kmt-chu-giai{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;font-size:var(--fs-xs);color:var(--muted);padding:10px 14px}
.kmt-chu-giai>b{color:var(--ink);margin-right:4px}
.kmt-chu-giai .sw{display:inline-block;width:16px;height:8px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.kmt-chu-giai .sw.g{background:var(--good-vivid)} .kmt-chu-giai .sw.w{background:var(--warn-vivid)}
.kmt-chu-giai .sw.b{background:var(--bad-vivid)} .kmt-chu-giai .sw.n{background:var(--none-vivid)}
.kmt-chu-giai .sw.ray{background:var(--line)} .kmt-chu-giai .sw.vach{width:2px;height:12px;background:var(--brand-navy);vertical-align:-3px}

/* ---- Bảng KPI (tab Bảng) — CEO 15/09: cột Người rộng + dính trái, tiêu đề dính trên,
   cột chỉ tiêu bằng nhau (tiêu đề dài thì xuống dòng), thanh dài theo mục tiêu / max cột.
   Khung cuộn có max-height để sticky top hoạt động (sticky chỉ dính với ancestor cuộn gần nhất). */
.kmt-cuon{overflow:auto;max-height:calc(100vh - 250px)}
.kmt-bang{border-collapse:separate;border-spacing:0;table-layout:fixed}
.kmt-bang thead th{position:sticky;top:0;z-index:3;background:var(--panel);
  border-bottom:1.5px solid var(--line);vertical-align:bottom}
.kmt-page .kmt-bang th.kmt-th{white-space:normal;word-break:normal;overflow-wrap:anywhere}
.kmt-bang .kmt-c1{position:sticky;left:0;z-index:2;background:var(--panel);
  border-right:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kmt-bang thead th.kmt-c1{z-index:4}
.kmt-bang tbody tr:hover .kmt-c1{background:var(--panel-2)}
/* thanh tỉ lệ: ô bọc chiếm phần còn lại của dòng, thanh bên trong rộng theo % mục tiêu / max cột,
   tối thiểu 6px để mục tiêu lẻ (500 so 15.000) vẫn nhìn thấy */
.kmt-bt-o{flex:1;min-width:0}
.kmt-bt-o .kmt-bt{min-width:6px}
/* đệm ngang 8px + ô % 44px để thanh dài nhất được ~63px trong cột 130px */
.kmt-page .kmt-bang td{padding-left:8px;padding-right:8px}
.kmt-bang .kmt-val{flex-basis:44px}
/* dòng Tổng cộng (CEO 15/09): bảng KPI dính đáy khung cuộn, kẻ đậm; ô Người của dòng tổng cũng dính trái */
.kmt-tbl tfoot tr.kmt-tong td{border-top:2px solid var(--line);border-bottom:none;background:var(--panel-2);vertical-align:top}
.kmt-bang tfoot tr.kmt-tong td{position:sticky;bottom:0;z-index:3}
.kmt-bang tfoot tr.kmt-tong td.kmt-c1{z-index:4;background:var(--panel-2)}
