:root {
    --ant-primary-color: #1890ff;
    --ant-primary-color-hover: #40a9ff;
    --ant-primary-color-active: #096dd9;
}

.ant-btn,
.ant-btn-lg,
.ant-btn-sm,
.ant-btn-round,
.ant-input,
.ant-input-lg,
.ant-input-sm,
.ant-input-affix-wrapper,
.ant-input-affix-wrapper-lg,
.ant-input-affix-wrapper-sm,
.ant-input-number,
.ant-input-number-lg,
.ant-input-number-sm,
.ant-picker,
.ant-picker-large,
.ant-picker-small,
.ant-cascader-picker,
textarea.ant-input {
    border-radius: 4px;
}

.ant-select-selector,
.ant-pagination-item,
.ant-pagination-item-link,
.ant-select-auto-complete .ant-select-selector {
    border-radius: 4px !important;
}

.ant-btn-group>.ant-btn:first-child:not(:last-child) {
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
}

.ant-btn-group>.ant-btn:last-child:not(:first-child) {
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
}

/* =============================================
   Button: căn giữa icon trong button cho toàn hệ thống.
   ============================================= */

.ant-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px;
}

.ant-btn>.anticon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    vertical-align: middle;
    line-height: 0;
}

/* =============================================
   Ẩn thanh header extra của AntDesign.
   ============================================= */

.ant-page-header-heading-extra {
    display: none !important;
}

/* =============================================
   Table Header: căn title sang trái cho toàn hệ thống,
   ngoại trừ cột checkbox.
   ============================================= */

.ant-table-thead>tr>th:not(.ant-table-selection-column) {
    text-align: left !important;
}

/* =============================================
   Custom Icon Overrides (CSS Mask)
   Ghi đè icon mặc định của AntDesign bằng SVG tùy chỉnh.
   - Ẩn <svg> gốc, dùng mask-image để render icon mới.
   - currentColor giúp icon tự kế thừa màu text/hover/active.
   - Thêm icon mới: thêm class vào 2 nhóm selector bên dưới + 1 dòng mask-image.
   ============================================= */

/* 1. Ẩn SVG gốc của AntDesign */
.anticon-eye svg,
.anticon-edit svg,
.anticon-tool svg,
.anticon-download svg,
.anticon-more svg,
.anticon-delete svg,
.anticon-control svg,
.anticon-partition svg,
.anticon-dash svg,
.anticon-safety svg,
.anticon-undo svg,
.anticon-file-protect svg,
.anticon-copy svg,
.anticon-history svg,
.anticon-file-text svg,
.anticon-bell svg,
.anticon-setting svg,
.anticon-form svg,
.anticon-info-circle svg,
.anticon-interaction svg,
.anticon-plus-circle svg,
.anticon-check svg,
.anticon-environment svg,
.anticon-picture svg,
.anticon-archive-book svg,
.anticon-award svg,
.anticon-clock svg,
.anticon-folder svg,
.anticon-note-favorite svg,
.anticon-people svg,
.anticon-personalcard svg {
    display: none !important;
}

/* 2. Style chung cho tất cả icon custom */
.anticon-eye,
.anticon-edit,
.anticon-tool,
.anticon-download,
.anticon-more,
.anticon-delete,
.anticon-control,
.anticon-partition,
.anticon-dash,
.anticon-safety,
.anticon-undo,
.anticon-file-protect,
.anticon-history,
.anticon-copy,
.anticon-bell,
.anticon-form,
.anticon-setting,
.anticon-file-text,
.anticon-info-circle,
.anticon-interaction,
.anticon-plus-circle,
.anticon-check,
.anticon-environment,
.anticon-picture,
.anticon-archive-book,
.anticon-award,
.anticon-clock,
.anticon-folder,
.anticon-note-favorite,
.anticon-people,
.anticon-personalcard {
    display: inline-block;
    width: 1.21em;
    height: 1.21em;
    background-color: currentColor;
    mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
}

/* 3. Mask-image riêng cho từng icon */
.anticon-eye {
    mask-image: url('/image/icons/eye.svg');
    -webkit-mask-image: url('/image/icons/eye.svg');
}

.anticon-edit {
    mask-image: url('/image/icons/edit.svg');
    -webkit-mask-image: url('/image/icons/edit.svg');
}

.anticon-tool {
    mask-image: url('/image/icons/tool.svg');
    -webkit-mask-image: url('/image/icons/tool.svg');
}

.anticon-download {
    mask-image: url('/image/icons/download.svg');
    -webkit-mask-image: url('/image/icons/download.svg');
}

.anticon-more {
    mask-image: url('/image/icons/more.svg');
    -webkit-mask-image: url('/image/icons/more.svg');
}

.anticon-delete {
    mask-image: url('/image/icons/delete.svg');
    -webkit-mask-image: url('/image/icons/delete.svg');
}

.anticon-control {
    mask-image: url('/image/icons/control.svg');
    -webkit-mask-image: url('/image/icons/control.svg');
}

.anticon-partition {
    mask-image: url('/image/icons/partition.svg');
    -webkit-mask-image: url('/image/icons/partition.svg');
}

.anticon-interaction {
    mask-image: url('/image/icons/interaction.svg');
    -webkit-mask-image: url('/image/icons/interaction.svg');
}

.anticon-dash {
    mask-image: url('/image/icons/dash.svg');
    -webkit-mask-image: url('/image/icons/dash.svg');
}

.anticon-safety {
    mask-image: url('/image/icons/safety.svg');
    -webkit-mask-image: url('/image/icons/safety.svg');
}

.anticon-undo {
    mask-image: url('/image/icons/undo.svg');
    -webkit-mask-image: url('/image/icons/undo.svg');
}

.anticon-copy {
    mask-image: url('/image/icons/copy.svg');
    -webkit-mask-image: url('/image/icons/copy.svg');
}

.anticon-file-protect {
    mask-image: url('/image/icons/file-protect.svg');
    -webkit-mask-image: url('/image/icons/file-protect.svg');
}

.anticon-history {
    mask-image: url('/image/icons/history.svg');
    -webkit-mask-image: url('/image/icons/history.svg');
}

.anticon-info-circle {
    mask-image: url('/image/icons/info-circle.svg');
    -webkit-mask-image: url('/image/icons/info-circle.svg');
}

.anticon-file-text {
    mask-image: url('/image/icons/file-text.svg');
    -webkit-mask-image: url('/image/icons/file-text.svg');
}

.anticon-bell {
    mask-image: url('/image/icons/bell.svg');
    -webkit-mask-image: url('/image/icons/bell.svg');
}

.anticon-setting {
    mask-image: url('/image/icons/setting.svg');
    -webkit-mask-image: url('/image/icons/setting.svg');
}

.anticon-form {
    mask-image: url('/image/icons/form.svg');
    -webkit-mask-image: url('/image/icons/form.svg');
}

.anticon-plus-circle {
    mask-image: url('/image/icons/plus-circle.svg');
    -webkit-mask-image: url('/image/icons/plus-circle.svg');
}

.anticon-check {
    mask-image: url('/image/icons/check.svg');
    -webkit-mask-image: url('/image/icons/check.svg');
}

.anticon-environment {
    mask-image: url('/image/icons/environment.svg');
    -webkit-mask-image: url('/image/icons/environment.svg');
}

.anticon-picture {
    mask-image: url('/image/icons/picture.svg');
    -webkit-mask-image: url('/image/icons/picture.svg');
}

.anticon-archive-book {
    mask-image: url('/image/icons/archive-book.svg');
    -webkit-mask-image: url('/image/icons/archive-book.svg');
}

.anticon-award {
    mask-image: url('/image/icons/award.svg');
    -webkit-mask-image: url('/image/icons/award.svg');
}

.anticon-clock {
    mask-image: url('/image/icons/clock.svg');
    -webkit-mask-image: url('/image/icons/clock.svg');
}

.anticon-folder {
    mask-image: url('/image/icons/folder.svg');
    -webkit-mask-image: url('/image/icons/folder.svg');
}

.anticon-note-favorite {
    mask-image: url('/image/icons/note-favorite.svg');
    -webkit-mask-image: url('/image/icons/note-favorite.svg');
}

.anticon-people {
    mask-image: url('/image/icons/people.svg');
    -webkit-mask-image: url('/image/icons/people.svg');
}

.anticon-personalcard {
    mask-image: url('/image/icons/personalcard.svg');
    -webkit-mask-image: url('/image/icons/personalcard.svg');
}

/* =============================================
   Steps Icon: Đảm bảo kích thước đồng nhất cho tất cả icon trong Steps
   ============================================= */

.ant-steps-item-custom .ant-steps-item-icon>.ant-steps-icon .anticon {
    width: 1em !important;
    height: 1em !important;
    font-size: 1em !important;
}

.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon>.ant-steps-icon .anticon {
    width: 1em !important;
    height: 1em !important;
    font-size: 1em !important;
}