/* Hành chính — info-hub: CSS riêng của mục này, nạp ngay sau hanh-chinh.css và hanh-chinh-assets.css, hanh-chinh-insurance.css, hanh-chinh-payroll.css, hanh-chinh-requests.css.
   Tách từ hanh-chinh.css ngày 2026-10-10 (tools/crm-visual/extract-module.cjs); thứ tự cascade đã kiểm. */

.info-hub-empty-state {
        grid-column: 1 / -1;
        padding: 14px 16px;
        border: 1px dashed #D9C8A8;
        border-radius: 14px;
        background: #FCF8F1;
        color: var(--muted);
        font-style: italic;
    }

/* ===== Department workspace concept sync ===== */

/* Sinh nhat & Ngay le trong thang — giao dien porcelain, scoped de khong anh huong module khac. */
#moduleInfoHub.info-hub-v2 {
    --ih-bg: #F8F5F0;
    --ih-card: #FFFFFF;
    --ih-border: #EBDDCF;
    --ih-accent: #9C572B;
    --ih-accent-soft: #F5E7DB;
    --ih-green: #4E7A5D;
    --ih-green-soft: #E9F1EB;
    --ih-ink: #2B2927;
    --ih-muted: #000;
    padding: 16px;
    border-radius: 22px;
    background: var(--ih-bg);
    color: var(--ih-ink);
}
#moduleInfoHub .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.info-hub-v2__filters,
.info-hub-v2__section-head { display:flex; align-items:flex-end; gap:12px; flex-wrap:wrap; }
.info-hub-v2__overview { display:grid; grid-template-columns:minmax(0,7fr) minmax(390px,5fr); gap:14px; align-items:stretch; }
.info-hub-v2__control-card { min-width:0; display:flex; flex-direction:column; justify-content:space-between; padding:16px 18px; border:1px solid var(--ih-border); border-radius:18px; background:var(--ih-card); box-shadow:0 5px 16px rgba(72,48,30,.035); }
.info-hub-v2__toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-bottom:13px; border-bottom:1px solid #F2E9DF; }
.info-hub-v2__toolbar-primary,
.info-hub-v2__toolbar-actions { display:flex; align-items:center; gap:9px; min-width:0; }
.info-hub-v2__field { display:flex; flex-direction:column; gap:6px; min-width:150px; }
.info-hub-v2__field > span { color:var(--ih-muted); font-size:11px; font-weight:800; letter-spacing:.55px; text-transform:uppercase; }
.info-hub-v2__field input,
.info-hub-v2__field select { width:100%; min-height:36px; padding:7px 10px; border:1px solid var(--ih-border); border-radius:10px; background:#fff; color:var(--ih-ink); font:500 12.5px/1.3 'Inter',sans-serif; outline:none; }
.info-hub-v2__field input:focus,
.info-hub-v2__field select:focus { border-color:var(--ih-accent); box-shadow:0 0 0 3px rgba(156,87,43,.1); }
.info-hub-v2__month-field { min-width:0; flex-direction:row; align-items:center; gap:9px; }
.info-hub-v2__month-field > span { white-space:nowrap; }
.info-hub-v2__month-field input { width:178px; min-width:150px; background:#F8F5F0; font-weight:750; }
.info-hub-v2__button { min-height:36px; padding:8px 13px; border:1px solid var(--ih-border); border-radius:10px; background:#fff; color:var(--ih-ink); font:750 12px/1 'Inter',sans-serif; white-space:nowrap; cursor:pointer; transition:transform .14s ease,border-color .14s ease,background .14s ease; }
.info-hub-v2__button:hover { border-color:#CDAE98; transform:translateY(-1px); }
.info-hub-v2__button:disabled { opacity:.55; cursor:wait; transform:none; }
.info-hub-v2__button--primary { border-color:var(--ih-accent); background:var(--ih-accent); color:#fff; }
.info-hub-v2__button--soft { border-color:#E7CEBE; background:#F8EFEA; color:var(--ih-accent); }
.info-hub-v2__save-state { color:var(--ih-green); font-size:10.5px; font-weight:700; white-space:nowrap; }
.info-hub-v2__save-state:empty { display:none; }
.info-hub-v2__summary { display:flex; align-items:center; gap:7px; flex-wrap:wrap; margin-top:18px; }
.info-hub-v2__summary-chip { box-sizing:border-box; display:inline-flex; align-items:center; min-height:28px; padding:5px 11px; border:1px solid #E5D5C5; border-radius:999px; background:#F3ECE2; color:#000; font:650 11.5px/1.1 'Inter',sans-serif; white-space:nowrap; }
button.info-hub-v2__summary-chip { cursor:pointer; transition:transform .14s ease,opacity .14s ease; }
button.info-hub-v2__summary-chip:hover { opacity:.86; transform:translateY(-1px); }
.info-hub-v2__summary-chip--staff { border-color:#FDE68A; background:#FEF3C7; color:#92400E; font-weight:800; }
.info-hub-v2__summary-chip--customer { border-color:#BBF7D0; background:#DCFCE7; color:#166534; font-weight:800; }
.info-hub-v2__summary-chip--holiday { border-color:#FED7AA; background:#FFEDD5; color:#9A3412; font-weight:800; }
.info-hub-v2__summary-chip--missing { border-color:#FECACA; background:#FEE2E2; color:#991B1B; font-weight:800; }
.info-hub-v2__budget { min-width:0; display:flex; flex-direction:column; justify-content:space-between; padding:15px 17px; border:2px solid #E8CEBC; border-radius:18px; background:#FAF4EE; box-shadow:0 5px 16px rgba(105,66,38,.035); }
.info-hub-v2__budget-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding-bottom:9px; border-bottom:1px solid #EBDDCF; }
.info-hub-v2__budget-copy > span { display:block; color:var(--ih-accent); font-size:10.5px; font-weight:850; letter-spacing:.55px; text-transform:uppercase; }
.info-hub-v2__budget-copy > small { display:block; margin-top:2px; color:var(--ih-muted); font-size:10.5px; }
.info-hub-v2__auto-badge { flex:0 0 auto; padding:3px 8px; border:1px solid #C8E6C9; border-radius:999px; background:#E8F5E9; color:#1E4620; font-size:9.5px; font-weight:800; text-transform:capitalize; }
.info-hub-v2__budget-breakdown { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:10px 0; }
.info-hub-v2__budget-breakdown > div { min-width:0; padding:10px 8px; border:1px solid var(--ih-border); border-radius:12px; background:rgba(255,255,255,.8); text-align:center; }
.info-hub-v2__budget-breakdown > .info-hub-v2__budget-total { border-color:#E7CEBE; background:#F8EFEA; }
.info-hub-v2__budget-breakdown span,
.info-hub-v2__budget-breakdown small { display:block; overflow:hidden; color:var(--ih-muted); font-size:9.5px; text-overflow:ellipsis; white-space:nowrap; }
.info-hub-v2__budget-breakdown strong { display:block; margin:4px 0 2px; overflow:hidden; color:#6F371B; font-size:14px; font-variant-numeric:tabular-nums; text-overflow:ellipsis; white-space:nowrap; }
.info-hub-v2__budget-total span,
.info-hub-v2__budget-total strong,
.info-hub-v2__budget-total small { color:var(--ih-accent); font-weight:800; }
.info-hub-v2__budget-note { color:var(--ih-muted); font-size:10px; line-height:1.35; }
.info-hub-v2__budget-note strong { color:#854D0E; }
.info-hub-v2__missing { width:100%; display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:13px; padding:11px 14px; border:1px solid #F5DC9E; border-radius:13px; background:#FFF8E7; color:#000; font-size:11.5px; }
.info-hub-v2__missing > div:first-child > strong { color:#854D0E; }
.info-hub-v2__missing-actions { display:flex; align-items:center; gap:8px; flex:0 0 auto; }
.info-hub-v2__missing-actions button { min-height:30px; padding:6px 12px; border:0; border-radius:8px; background:var(--ih-accent); color:#fff; font:750 11px/1 'Inter',sans-serif; cursor:pointer; }
.info-hub-v2__missing-actions .info-hub-v2__missing-close { width:30px; padding:0; background:transparent; color:#000; font-size:18px; font-weight:400; }
.info-hub-v2__quick-add { margin-top:13px; padding:17px; border:1px solid var(--ih-border); border-radius:17px; background:#fff; }
.info-hub-v2__quick-add[hidden] { display:none; }
.info-hub-v2__section-head { justify-content:space-between; align-items:flex-start; }
.info-hub-v2__section-head strong,
.info-hub-v2__section-head small { display:block; }
.info-hub-v2__section-head small { margin-top:3px; color:var(--ih-muted); font-size:11.5px; }
.info-hub-v2__text-button { border:0; background:transparent; color:var(--ih-accent); font-weight:750; cursor:pointer; }
.info-hub-v2__quick-grid { display:grid; grid-template-columns:140px 160px minmax(180px,1fr) minmax(180px,1fr) minmax(160px,.8fr) 150px 170px auto; gap:10px; align-items:end; margin-top:14px; }
.info-hub-v2__workspace { margin-top:14px; border:1px solid var(--ih-border); border-radius:19px; background:#fff; overflow:hidden; }
.info-hub-v2__tabs { display:flex; gap:4px; padding:10px 12px 0; overflow-x:auto; border-bottom:1px solid var(--ih-border); }
.info-hub-v2__tabs button { flex:0 0 auto; padding:10px 12px 11px; border:0; border-bottom:2px solid transparent; background:transparent; color:var(--ih-muted); font:750 12px/1.2 'Inter',sans-serif; cursor:pointer; }
.info-hub-v2__tabs button span { margin-left:4px; padding:2px 6px; border-radius:999px; background:#F2ECE6; font-size:10px; }
.info-hub-v2__tabs button.active { border-bottom-color:var(--ih-accent); color:var(--ih-accent); }
.info-hub-v2__tabs button.active span { background:var(--ih-accent-soft); }
.info-hub-v2__filters { padding:13px 15px; align-items:end; background:#FCFAF7; }
.info-hub-v2__search { flex:1 1 280px; }
.info-hub-v2__result-count { margin-left:auto; align-self:center; color:var(--ih-muted); font-size:12px; font-weight:700; }
.info-hub-v2__table-wrap { overflow-x:auto; }
.info-hub-v2__table { width:100%; min-width:1180px; border-collapse:separate; border-spacing:0; font-size:12px; }
.info-hub-v2__table th { padding:10px 12px; border-top:1px solid var(--ih-border); border-bottom:1px solid var(--ih-border); background:#F8F3ED; color:#000; font-size:10.5px; letter-spacing:.45px; text-align:left; text-transform:uppercase; white-space:nowrap; }
.info-hub-v2__table td { padding:11px 12px; border-bottom:1px solid #F0E7DF; vertical-align:top; color:var(--ih-ink); }
.info-hub-v2__table tr:last-child td { border-bottom:0; }
.info-hub-v2__table tbody tr:hover td { background:#FFFCF9; }
.info-hub-v2__table th:first-child,
.info-hub-v2__table td:first-child { width:34px; padding-right:3px; }
.info-hub-v2__date { display:flex; flex-direction:column; gap:4px; min-width:78px; }
.info-hub-v2__date strong { color:var(--ih-accent); font-size:13px; }
.info-hub-v2__type,
.info-hub-v2__status { display:inline-flex; padding:3px 7px; border-radius:999px; font-size:9.5px; font-weight:850; letter-spacing:.25px; text-transform:uppercase; }
.info-hub-v2__type--holiday { background:#EEEAF5; color:#65517E; }
.info-hub-v2__person strong,
.info-hub-v2__person small,
.info-hub-v2__contact span,
.info-hub-v2__contact small { display:block; }
.info-hub-v2__person strong { font-size:13px; line-height:1.35; }
.info-hub-v2__person small,
.info-hub-v2__contact small { margin-top:3px; color:var(--ih-muted); font-size:10.5px; }
.info-hub-v2__gift-input { width:100%; min-width:145px; padding:7px 8px; border:1px solid #E8D9CC; border-radius:8px; background:#FFFEFC; font:500 12px 'Inter',sans-serif; }
.info-hub-v2__cost-input { width:115px; padding:7px 8px; border:1px solid #E8D9CC; border-radius:8px; background:#FFFEFC; text-align:right; font:600 12px 'Inter',sans-serif; }
.info-hub-v2__status--today { background:#FBE3D4; color:#8C3E17; }
.info-hub-v2__actions { display:flex; flex-wrap:wrap; gap:5px; min-width:150px; }
.info-hub-v2__action { padding:5px 8px; border:1px solid #DFCDBC; border-radius:8px; background:#fff; color:#70401F; font:700 10.5px 'Inter',sans-serif; cursor:pointer; }
.info-hub-v2__action--green { border-color:#555; color:#356747; }
.info-hub-v2__action--danger { border-color:#E5C6C1; color:#9B3F32; }
.info-hub-v2__action:disabled { opacity:.48; cursor:not-allowed; }
.info-hub-v2__missing-panel { padding:22px; color:var(--ih-muted); line-height:1.6; }
.info-hub-v2__reminder-modal { position:relative; width:min(540px,100%); padding:26px; border:1px solid #EBDDCF; border-radius:20px; background:#FFFDFC; box-shadow:0 30px 70px rgba(45,30,20,.24); }
.info-hub-v2__reminder-close { position:absolute; top:18px; right:20px; }
.info-hub-v2__reminder-eyebrow { color:#9C572B; font-size:10.5px; font-weight:850; letter-spacing:.7px; text-transform:uppercase; }
.info-hub-v2__reminder-modal h3 { margin:6px 0 18px; color:#000; font-family:'Cormorant Garamond',serif; font-size:27px; }
.info-hub-v2__reminder-modal textarea { width:100%; padding:12px; border:1px solid #EBDDCF; border-radius:12px; resize:vertical; color:#000; font:500 13px/1.55 'Inter',sans-serif; }
.info-hub-v2__reminder-note { color:#000; font-size:11.5px; line-height:1.55; }
.info-hub-v2__reminder-actions { display:flex; justify-content:flex-end; gap:9px; margin-top:16px; }

@media (max-width:1500px) {


    .info-hub-v2__quick-grid { grid-template-columns:repeat(4,minmax(150px,1fr)); }
}

@media (max-width:1180px) {


    .info-hub-v2__overview { grid-template-columns:1fr; }
}

@media (max-width:980px) {


    #moduleInfoHub.info-hub-v2 { padding:10px; }
    .info-hub-v2__quick-grid { grid-template-columns:repeat(2,minmax(140px,1fr)); }
}

@media (max-width:640px) {


    .info-hub-v2__toolbar,
    .info-hub-v2__toolbar-primary,
    .info-hub-v2__toolbar-actions { width:100%; align-items:stretch; flex-direction:column; }
    .info-hub-v2__toolbar-primary > *,
    .info-hub-v2__toolbar-actions > *,
    .info-hub-v2__toolbar .info-hub-v2__field { width:100%; }
    .info-hub-v2__month-field { align-items:flex-start; flex-direction:column; }
    .info-hub-v2__month-field input { width:100%; }
    .info-hub-v2__budget-breakdown,
    .info-hub-v2__quick-grid { grid-template-columns:1fr; }
    .info-hub-v2__missing { flex-direction:column; }
    .info-hub-v2__missing-actions { width:100%; justify-content:space-between; }
    .info-hub-v2__filters .info-hub-v2__field { flex:1 1 100%; }
    .info-hub-v2__result-count { width:100%; margin-left:0; }
}
body:not(.hc-mobile-mode) #moduleInfoHub {
    box-sizing: border-box;
    padding-inline: clamp(18px, 1.35vw, 30px) clamp(12px, 1vw, 22px);
}
