/* ════════════════════════════════════════════════════════════════
   HR OS — Thư viện form Word (js/hr/hr-forms.js): modal Thêm form / Chọn nhân sự áp dụng /
   Thư viện form / Thay file, nhóm ⑥ "Form & tài liệu" và ô Link hợp đồng (③) của popup nhân sự.
   Modal gắn trong #workspace-hr-os (hrRoot()) nên nhận token của hr-os.css (--primary,
   --surface, --border…). Mọi luật scope #workspace-hr-os; phần nằm trong popup nhân sự scope
   #hr-staffcard (popup đó cũng gắn trong #workspace-hr-os).
   Khung .hrm-overlay / .hrm-card / .hrm-head / .hrm-foot là luật TOÀN CỤC ở hr-os.css — file này
   chỉ chồng thêm bằng class .hf-*, không sửa luật gốc.
   ════════════════════════════════════════════════════════════════ */
#workspace-hr-os{--hf-err-fg:#B42318;--hf-err-bd:#FDA29B;--hf-warn-fg:#9a5a00;--hf-warn-bd:#F5C57A;--hf-info-fg:#1c5fb8;--hf-ok-fg:#0b7a4b;}

/* ── khung modal: đầu + chân cố định, thân cuộn ── */
#workspace-hr-os .hrm-card.hf-card{display:flex;flex-direction:column;max-height:calc(100vh - 64px);}
#workspace-hr-os .hrm-card.hf-md{max-width:640px;}
#workspace-hr-os .hrm-card.hf-lg{max-width:1080px;}
#workspace-hr-os .hrm-card.hf-xl{max-width:1240px;}
#workspace-hr-os .hf-card .hrm-head{flex-shrink:0;}
#workspace-hr-os .hf-htxt{flex:1;min-width:0;}
#workspace-hr-os .hf-htxt h3{margin:0;font-size:16px;font-weight:700;color:var(--text);}
#workspace-hr-os .hf-hsub{margin-top:2px;font-size:12.5px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
#workspace-hr-os .hf-hsub b{color:var(--text);}
#workspace-hr-os .hf-body{flex:1;min-height:0;overflow-y:auto;padding:16px;background:var(--app-bg);}
#workspace-hr-os .hf-foot{flex-shrink:0;align-items:center;}
#workspace-hr-os .hf-footl,#workspace-hr-os .hf-footr{display:flex;align-items:center;gap:8px;min-width:0;}
#workspace-hr-os .hf-busy{font-size:12.5px;color:var(--text-muted);}
#workspace-hr-os .hf-diff{font-size:12.5px;color:var(--text-muted);font-variant-numeric:tabular-nums;}
#workspace-hr-os .hf-card .btn:disabled,
#workspace-hr-os .hf-st .btn:disabled{opacity:.5;cursor:not-allowed;}

/* ── ô nhập (Thêm form / Thay file) ── */
#workspace-hr-os .hf-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);}
#workspace-hr-os .hf-grid .hf-full,
#workspace-hr-os .hf-grid > [data-hf-insp]{grid-column:1 / -1;}
#workspace-hr-os .hf-grid > [data-hf-insp]:empty{display:none;}
#workspace-hr-os .hf-pick{display:flex;align-items:center;gap:8px;min-height:36px;}
#workspace-hr-os .hf-pickname{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--text-soft);}
#workspace-hr-os .hf-pickname.on{color:var(--text);font-weight:700;}

/* ── tách "Tải form mới" / "Chọn form có sẵn" (popup nhân sự) ── */
#workspace-hr-os .hf-seg{display:inline-flex;gap:4px;margin-bottom:12px;padding:4px;border-radius:var(--radius-pill);background:var(--surface-3);}
#workspace-hr-os .hf-seg button{padding:6px 14px;border:none;border-radius:var(--radius-pill);background:none;
  font-family:var(--font);font-size:12.5px;font-weight:700;color:var(--text-muted);cursor:pointer;}
#workspace-hr-os .hf-seg button.on{background:var(--surface);color:var(--primary);box-shadow:var(--shadow-sm);}
#workspace-hr-os .hf-seg button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring);}

/* ── kết quả đọc mã trường ── */
#workspace-hr-os .hf-insp{display:flex;flex-direction:column;gap:8px;}
#workspace-hr-os .hf-insp-h{font-size:12.5px;color:var(--text-muted);}
#workspace-hr-os .hf-insp-h b{color:var(--text);}
#workspace-hr-os .hf-codes{display:flex;flex-wrap:wrap;gap:4px;max-height:136px;overflow-y:auto;}
#workspace-hr-os .hf-code{display:inline-flex;align-items:center;height:22px;padding:0 8px;border:1px solid var(--border);border-radius:var(--radius-pill);
  background:var(--surface-2);font:700 11.5px/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--text);}
#workspace-hr-os .hf-code.sal{border-color:var(--hf-warn-bd);background:var(--working-bg);color:var(--hf-warn-fg);}
#workspace-hr-os .hf-code.bad{border-color:var(--hf-err-bd);background:var(--stuck-bg);color:var(--hf-err-fg);}
#workspace-hr-os .hf-msg{display:flex;align-items:flex-start;gap:8px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);
  background:var(--surface-2);font-size:12.5px;line-height:1.45;color:var(--text-muted);}
#workspace-hr-os .hf-msg .ic{flex:none;margin-top:2px;}
#workspace-hr-os .hf-msg.err{border-color:var(--hf-err-bd);background:var(--stuck-bg);color:var(--hf-err-fg);}
#workspace-hr-os .hf-msg.warn{border-color:var(--hf-warn-bd);background:var(--working-bg);color:var(--hf-warn-fg);}
#workspace-hr-os .hf-msg.sal{border-color:#B9D4FB;background:var(--info-bg);color:var(--hf-info-fg);}
#workspace-hr-os .hf-msg.ok{border-color:#A6E3C7;background:var(--done-bg);color:var(--hf-ok-fg);}
#workspace-hr-os .hf-hint{margin-top:8px;}

/* ── nhãn nhỏ dùng chung ── */
#workspace-hr-os .hf-kind{flex:none;padding:2px 8px;border-radius:var(--radius-sm);background:var(--surface-2);font-size:11px;font-weight:700;color:var(--text-muted);white-space:nowrap;}
#workspace-hr-os .hf-fname{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700;color:var(--text);}
#workspace-hr-os .hf-tag{display:inline-flex;align-items:center;flex:none;height:20px;padding:0 8px;border-radius:var(--radius-pill);font-size:11px;font-weight:700;white-space:nowrap;}
#workspace-hr-os .hf-tag.sal{background:var(--working-bg);color:var(--hf-warn-fg);}
#workspace-hr-os .hf-tag.ok{background:var(--done-bg);color:var(--hf-ok-fg);}
#workspace-hr-os .hf-tag.off{background:var(--dark-bg);color:var(--text-muted);}
#workspace-hr-os .hf-muted{font-size:12px;color:var(--text-soft);}
#workspace-hr-os .hf-empty{padding:24px;text-align:center;font-size:13px;color:var(--text-muted);}
#workspace-hr-os .hf-empty.sm{padding:8px 0;text-align:left;font-size:12.5px;}

/* ── chọn form có sẵn ── */
#workspace-hr-os .hf-liblist{display:flex;flex-direction:column;gap:6px;}
#workspace-hr-os .hf-libitem{display:flex;align-items:center;gap:8px;min-height:42px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);
  background:var(--surface);font-size:13px;cursor:pointer;}
#workspace-hr-os .hf-libitem:hover{border-color:var(--primary);}
#workspace-hr-os .hf-libitem.done{background:var(--surface-2);cursor:default;}
#workspace-hr-os .hf-libitem.done:hover{border-color:var(--border);}
#workspace-hr-os .hf-libitem input{flex:none;width:16px;height:16px;margin:0;accent-color:var(--primary);cursor:pointer;}

/* ── bộ lọc + danh sách (chọn người áp dụng, thư viện) ── */
#workspace-hr-os .hf-filters,
#workspace-hr-os .hf-libtools{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;}
#workspace-hr-os .hf-filters .tsearch{flex:1 1 220px;}
#workspace-hr-os .hf-filters select,
#workspace-hr-os .hf-libtools select{height:32px;max-width:220px;padding:0 8px;border:1px solid var(--border-2);border-radius:var(--radius-sm);
  background:var(--surface);font-family:var(--font);font-size:12.5px;color:var(--text);}
#workspace-hr-os .hf-filters select:focus,
#workspace-hr-os .hf-libtools select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--focus-ring);}
#workspace-hr-os .hf-selbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;}
#workspace-hr-os .hf-selbar .spacer,
#workspace-hr-os .hf-libtools .spacer,
#workspace-hr-os .hf-st .spacer{flex:1;}
#workspace-hr-os .hf-count{font-size:12.5px;color:var(--text-muted);}
#workspace-hr-os .hf-count b{color:var(--text);}
#workspace-hr-os .hf-listwrap{max-height:52vh;overflow:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);}
#workspace-hr-os .hf-libwrap{max-height:none;}
#workspace-hr-os table.hf-list{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:13px;}
#workspace-hr-os table.hf-list th{position:sticky;top:0;z-index:1;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--surface-2);
  text-align:left;font-size:11px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;}
#workspace-hr-os table.hf-list td{height:44px;padding:8px 12px;border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text);}
#workspace-hr-os table.hf-list tbody tr:last-child td{border-bottom:none;}
#workspace-hr-os table.hf-list tbody tr:hover td{background:var(--surface-2);}
#workspace-hr-os table.hf-list .r{text-align:right;}
#workspace-hr-os table.hf-list input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--primary);cursor:pointer;}
#workspace-hr-os table.hf-list tr[data-hfp-row]{cursor:pointer;}
#workspace-hr-os table.hf-list tr[data-hfp-row].on td{background:#F0F7FF;}
#workspace-hr-os table.hf-list tr[data-hfp-row].on:hover td{background:var(--primary-soft);}
#workspace-hr-os table.hf-list td > *{max-width:100%;}
#workspace-hr-os .hf-cname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700;color:var(--text);}
#workspace-hr-os .hf-pos,
#workspace-hr-os .hf-dept{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
#workspace-hr-os .hf-dept{font-size:12px;color:var(--text-muted);}
#workspace-hr-os table.hf-libtbl tr.off td{color:var(--text-soft);}
#workspace-hr-os table.hf-libtbl tr.off .hf-cname{color:var(--text-muted);}
#workspace-hr-os .hf-filelink{display:inline-flex;align-items:center;gap:4px;max-width:100%;margin-top:2px;padding:0;border:none;background:none;
  font-family:var(--font);font-size:12px;color:var(--primary);cursor:pointer;}
#workspace-hr-os .hf-filelink span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
#workspace-hr-os .hf-filelink:hover span{text-decoration:underline;text-underline-offset:2px;}
#workspace-hr-os .hf-filelink:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring);border-radius:var(--radius-sm);}
#workspace-hr-os .hf-by{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;}
/* Thư viện: 3 nút trên MỘT dòng; màn hẹp thì bảng cuộn ngang thay vì bóp cột Tên form còn vài chữ. */
#workspace-hr-os table.hf-libtbl{min-width:1120px;}
#workspace-hr-os td.hf-acts{white-space:nowrap;}
#workspace-hr-os td.hf-acts .btn{margin:2px 4px 2px 0;}

/* ════════════════════════════════════════════════════════════════
   Popup nhân sự (#hr-staffcard)
   ════════════════════════════════════════════════════════════════ */
/* ③ Link hợp đồng (SharePoint): ô + nút mở tab mới; sai dạng = viền đỏ + chữ đỏ dưới ô */
#hr-staffcard .hf-curl{display:flex;align-items:center;gap:8px;}
#hr-staffcard .hf-curl input{flex:1;min-width:0;}
#hr-staffcard .hrm-field .hf-curl input.hf-bad{border-color:var(--stuck);}
#hr-staffcard .hrm-field .hf-curl input.hf-bad:focus{box-shadow:0 0 0 3px rgba(226,68,92,.25);}
#hr-staffcard .hf-curl-open{display:grid;place-items:center;flex:none;width:36px;height:36px;border:1px solid var(--border-2);border-radius:var(--radius-sm);
  background:var(--surface);color:var(--primary);cursor:pointer;}
#hr-staffcard .hf-curl-open:hover:not(:disabled){border-color:var(--primary);background:var(--primary-soft);}
#hr-staffcard .hf-curl-open:disabled{background:var(--surface-2);color:var(--text-soft);cursor:not-allowed;}
#hr-staffcard .hf-curl-open:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring);}
#hr-staffcard .sc-hint.hf-err{color:var(--hf-err-fg);font-weight:700;}
#hr-staffcard .hrm-field .hf-curl-ro{font-weight:400;overflow:hidden;}
#hr-staffcard .hf-curl-ro a{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--primary);}

/* ⑥ Form & tài liệu */
#hr-staffcard .hf-st-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;}
#hr-staffcard .hf-st-title{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--text);}
#hr-staffcard .hf-n{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--radius-pill);
  background:var(--surface-2);font-size:11px;font-weight:700;color:var(--text-muted);}
#hr-staffcard .hf-st-forms{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;}
#hr-staffcard .hf-st-forms li{display:flex;align-items:center;gap:8px;min-height:40px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);
  background:var(--surface);font-size:13px;}
#hr-staffcard .hf-st-sub{margin:16px 0 8px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);}
#hr-staffcard .hf-hist{min-height:24px;}
@media (max-width:900px){
  #workspace-hr-os .hf-grid{grid-template-columns:1fr;}
  #workspace-hr-os .hf-filters select{max-width:none;flex:1 1 160px;}
}
/* styles.css:380 .btn-primary{background:var(--accent)!important} (--accent = hổ phách toàn app) thắng #workspace-hr-os .btn-primary
   ⇒ nút Thêm form / Lưu của popup form ra màu cam. Đè BIẾN tại chỗ (cùng cách tab Bảng lương theo tháng). */
#workspace-hr-os [data-hrforms-add], #workspace-hr-os .hf-ov, #workspace-hr-os #sc-forms { --accent: var(--primary); --accent-2: var(--primary-hover); --accent-soft: var(--primary-soft); }
