/* Shared palette and controls for the SaaS console and tenant workspace. */
:root {
    --tt-primary:#2563eb; --tt-primary-hover:#1d4ed8; --tt-heading:#172b4d;
    --tt-text:#344054; --tt-muted:#667085; --tt-soft-muted:#98a2b3;
    --tt-border:#e4e7ec; --tt-border-soft:#f0f1f4; --tt-input-border:#d0d5dd;
    --tt-canvas:#f3f4f6; --tt-soft:#f5f6f8; --tt-sidebar:#14294b;
    --tt-sidebar-soft:#f9fafb; --tt-selected:#eff6ff; --tt-hover:#f5f8ff;
    --tt-info:#64748b; --tt-shadow:0 8px 28px #172b4d0c;
    --brand:#2563eb; --brand-dark:#172b4d; --brand-soft:#eff6ff;
    --text:#344054; --muted:#667085; --line:#e4e7ec; --canvas:#f3f4f6;
    --hr-control-height:36px; --hr-control-radius:6px;
}
body.hr-admin, body.hr-admin.hr-workspace-v2, body.console-body { color:var(--tt-text) !important; background:#f3f4f6 !important; }
body.hr-admin.hr-workspace-v2:not(.tenant-login) { background:#f3f4f6 !important; }
body#tabs.hr-shell .tt-secondary-link.is-active { color:#1d4ed8 !important; background:#eff6ff !important; }
body#tabs.hr-shell :is(.tt-nav-link,.tt-secondary-link,.tt-breadcrumb,.tt-nav-caption) { color:#667085; }
body#tabs.hr-shell .tt-sidebar .tt-nav-link { color:#b7c8e3; }
body#tabs.hr-shell .tt-sidebar .tt-nav-link.is-active, body#tabs.hr-shell .tt-sidebar .is-active > .tt-nav-link { color:#fff; background:#ffffff14; }
body#tabs.hr-shell .tt-sidebar-account .tt-avatar { background:#2b4c81; }
body.hr-admin .layui-tab-title .layui-this { color:#1d4ed8 !important; }
body.hr-admin .layui-tab-title .layui-this::after { background:#2563eb !important; }
body.hr-admin .panel-intro .nav-tabs > li.active > a { color:#1d4ed8 !important; }
body.hr-admin .panel-intro .nav-tabs > li.active > a::after { background:#2563eb !important; }
body.hr-admin .hr-admin-tabs > li { padding:0; }
body.hr-admin .hr-admin-tabs > li > a { position:relative; z-index:1; min-height:56px; padding:16px 12px; line-height:24px; }
body.hr-admin .hr-admin-tabs > li::after { pointer-events:none; }
body.hr-admin .tt-sidebar, .console-body .sidebar { background:#14294b; color:#dce6f5; }
body.hr-admin .tt-brand-mark, .console-body .brand-symbol { background:#e8f0ff; color:#2563eb; }
body.hr-admin .tt-nav-link.is-active, body.hr-admin .tt-nav-group.is-active > .tt-nav-link,
body.hr-admin .tt-secondary-link.is-active, .console-body .main-nav > a.selected { color:#1d4ed8; background:#eff6ff; }
body.hr-admin .tt-secondary, body.hr-admin .tt-secondary-heading { background:#fff; border-color:#e4e7ec; color:#344054; }
body.hr-admin :is(a,button,input,textarea,select):focus-visible, .console-body :is(a,button,input,select):focus-visible { outline:3px solid #93b4ff; outline-offset:2px; }
body.hr-admin :is(.layui-card,.panel,.hr-static-table,.layui-table-view) { border-color:#e4e7ec; border-radius:12px; }
body.hr-admin .layui-card-header, body.hr-admin .layui-table-header th { background:#f8f9fb; color:#667085; border-color:#e4e7ec; }
body.hr-admin :is(.layui-input,.layui-select,.layui-textarea,.form-control), body.hr-admin .layui-form-select .layui-input { border-color:#d0d5dd; color:#344054; background:#fff; border-radius:8px; }
body.hr-admin :is(.layui-input,.layui-textarea,.form-control):focus { border-color:#7da5fb; box-shadow:0 0 0 3px #2563eb12; }
body.hr-admin .layui-form-select dl { border-color:#e4e7ec; background:#fff; box-shadow:0 12px 28px #172b4d14; }
body.hr-admin .layui-form-select dl dd:is(:hover,.layui-this) { color:#1d4ed8; background:#eff6ff; }
body.hr-admin :is(.layui-btn,.btn,.hr-act-btn), body.hr-admin.hr-workspace-v2 :is(.layui-btn,.btn,.hr-act-btn) {
    display:inline-flex; align-items:center; justify-content:center; gap:6px;
    height:36px !important; min-height:36px !important; min-width:72px; width:auto;
    margin:0; padding:0 12px !important; border-radius:6px !important;
    font-size:13px !important; font-weight:500; line-height:1 !important; box-shadow:none;
}
body.hr-admin :is(.layui-btn,.btn-primary,.btn-success,.formsubmit), body.hr-admin.hr-workspace-v2 :is(.btn-primary,.btn-success,.layui-btn-warm,.formsubmit) { color:#fff; background:#2563eb; border-color:#2563eb; }
body.hr-admin :is(.layui-btn,.btn-primary,.btn-success,.formsubmit):hover { color:#fff; background:#1d4ed8; border-color:#1d4ed8; }
body.hr-admin :is(.layui-btn-primary,.layui-btn-normal,.btn-default,.category-row-link), body.hr-admin.hr-workspace-v2 :is(.layui-btn-primary,.layui-btn-normal,.btn-default,.category-row-link) { color:#475467; background:#fff; border-color:#d0d5dd; }
body.hr-admin :is(.layui-btn-primary,.layui-btn-normal,.btn-default,.category-row-link):hover { color:#1d4ed8; background:#eff6ff; border-color:#b7ceff; }
body.hr-admin :is(.layui-btn-danger,.btn-danger), body.hr-admin.hr-workspace-v2 :is(.layui-btn-danger,.btn-danger) { color:#b54747; background:#fff5f5; border-color:#efcdcd; }
body.hr-admin :is(.layui-btn-danger,.btn-danger):hover { color:#a33030; background:#feecec; border-color:#e6b4b4; }
body.hr-admin :is(.hr-list-toolbar,.hr-unified-toolbar), body.hr-admin.hr-workspace-v2 :is(.hr-list-toolbar,.hr-unified-toolbar) { display:flex; flex-wrap:wrap; align-items:center; gap:12px; min-height:36px; }
body.hr-admin .hr-filter-toolbar, body.hr-admin.hr-workspace-v2 .hr-filter-toolbar { padding:16px; background:#f8f9fb; border:1px solid #e4e7ec; border-radius:10px; }
body.hr-admin .hr-unified-toolbar .hr-list-actions { display:flex; flex-direction:row; flex-wrap:wrap; flex:0 0 auto; align-items:center; gap:8px; width:auto !important; margin:0 0 0 auto !important; }
body.hr-admin .hr-unified-toolbar .hr-table-utilities { flex:0 0 auto; width:auto; margin-left:auto !important; }
body.hr-admin .hr-unified-toolbar .hr-search-fields { flex:0 1 auto; }
body.hr-admin .hr-list-toolbar :is(.layui-input-inline,.layui-inline,.layui-form) { margin-top:0 !important; margin-bottom:0 !important; vertical-align:middle; }
/* Row actions use a smaller scale than toolbar and form controls. */
body.hr-admin :is(.layui-table tbody,.table tbody,.hr-row-actions,.content-actions,.category-row-actions) :is(.btn,.layui-btn,.hr-act-btn,.hr-rec-btn,.category-row-link),
body.hr-admin.hr-workspace-v2 :is(.layui-table tbody,.table tbody,.hr-row-actions,.content-actions,.category-row-actions) :is(.btn,.layui-btn,.hr-act-btn,.hr-rec-btn,.category-row-link) {
    box-sizing:border-box; flex:0 0 auto; width:auto !important; min-width:48px;
    height:28px !important; min-height:28px !important; margin:0 !important; padding:0 8px !important;
    border-radius:6px !important; font-size:12px !important; line-height:1 !important;
}
body.hr-admin :is(.hr-row-actions,.content-actions,.category-row-actions) { gap:6px; }
body.hr-admin .hr-audit-status { box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center; gap:6px; height:28px; min-width:64px; padding:0 10px; border:1px solid transparent; border-radius:6px; font-family:inherit; font-size:12px; font-weight:400; line-height:1; vertical-align:middle; white-space:nowrap; }
body.hr-admin .hr-audit-status.is-pass { color:#1d4ed8; background:#eff6ff; }
body.hr-admin .hr-audit-status.is-wait { color:#946200; background:#fff7e5; }
body.hr-admin .hr-audit-status.is-reject { color:#b54747; background:#fff1f1; }
body.hr-admin button.hr-audit-review { min-width:82px; cursor:pointer; }
body.hr-admin button.hr-audit-review::after { content:""; width:5px; height:5px; margin-left:1px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg) translateY(-2px); }
body.hr-admin button.hr-audit-review:hover { border-color:currentColor; filter:brightness(.98); }
body.hr-admin button.hr-audit-review:disabled { opacity:.5; cursor:wait; }
@media(max-width:720px) {
    body.hr-admin .hr-unified-toolbar > .hr-list-actions { width:100% !important; margin-left:0 !important; }
    body.hr-admin .hr-unified-toolbar .hr-search-fields { flex:1 1 100%; }
}

/* One compact approval badge keeps the status readable without stretching the row. */
body.hr-admin .layui-table-body td[data-field="statustitle"] .layui-table-cell{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:6px;height:auto !important;min-height:34px;overflow:visible;white-space:nowrap}
body.hr-admin .layui-table-body td[data-field="statustitle"] :is(.hr-audit-status,.hr-audit-review){flex-shrink:0}

/* Text gets room to wrap; dates, statuses and row actions keep a steady scale. */
body.hr-admin.hr-workspace-v2 .layui-table-body td.hr-text-cell > .layui-table-cell { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; min-height:0; max-height:44px; overflow:hidden; white-space:normal; overflow-wrap:anywhere; line-height:22px; text-align:left; }
body.hr-admin.hr-workspace-v2 .layui-table-body td:is([data-field="time"],[data-field="utime"],[data-field="creattime"],[data-field="times"],[data-field="cmttime"],[data-field="lastvisit"]) .layui-table-cell { white-space:nowrap; font-variant-numeric:tabular-nums; }
body.hr-admin.hr-workspace-v2 .layui-table-body td[data-field="uinfo"] .layui-table-cell { display:flex; align-items:center; gap:10px; white-space:normal; text-align:left; }
body.hr-admin.hr-workspace-v2 .layui-table-body td[data-field="uinfo"] img { flex:0 0 40px; width:40px !important; height:40px; border-radius:50%; object-fit:cover; }
body.hr-admin.hr-workspace-v2 .layui-table-body td[data-field="statustitle"] .layui-icon-ok-circle { display:inline-flex; align-items:center; justify-content:center; min-width:64px; height:28px; padding:0 10px; border:1px solid transparent; border-radius:6px; color:#1d4ed8 !important; background:#eff6ff; font-size:0 !important; line-height:1; vertical-align:middle; }
body.hr-admin.hr-workspace-v2 .layui-table-body td[data-field="statustitle"] .layui-icon-ok-circle::after { content:"已通过"; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif; font-size:12px; font-weight:400; }


/* Short approval decisions stay together in a full-height side drawer. */
body.hr-admin .layui-layer.hr-review-drawer { top:0 !important; right:0 !important; bottom:0; left:auto !important; max-width:100vw; height:100vh !important; height:100dvh !important; margin:0; overflow:hidden; border-radius:12px 0 0 12px; box-shadow:-8px 0 32px #172b4d18; }
body.hr-admin .hr-review-drawer .layui-layer-content { height:100% !important; max-height:100%; overflow-y:auto; background:#fff; }
body.hr-admin .hr-review-drawer .layui-layer-setwin { top:22px; right:20px; height:32px; }
body.hr-admin .hr-review-drawer .layui-layer-setwin .layui-layer-close { position:relative; top:auto; right:auto; width:32px; height:32px; margin:0; color:#667085; background:transparent !important; box-shadow:none; }
body.hr-admin .hr-review-drawer .layui-layer-setwin .layui-layer-close::before,
body.hr-admin .hr-review-drawer .layui-layer-setwin .layui-layer-close::after { content:""; position:absolute; top:50%; left:50%; display:block; width:14px; height:2px; margin:0; border:0; border-radius:1px; color:inherit; background:currentColor; transform:translate(-50%,-50%) rotate(45deg); }
body.hr-admin .hr-review-drawer .layui-layer-setwin .layui-layer-close::after { transform:translate(-50%,-50%) rotate(-45deg); }
body.hr-admin .hr-review-drawer .layui-layer-setwin .layui-layer-close:hover { color:#1d4ed8; background:#eff6ff !important; }
body.hr-admin .hr-review-panel { box-sizing:border-box; display:flex; flex-direction:column; min-height:100%; margin:0; padding:24px; color:#344054; font-family:inherit; }
body.hr-admin .hr-review-panel [hidden] { display:none !important; }
body.hr-admin .hr-review-heading { margin:0 28px 20px 0; color:#172b4d; font-size:18px; font-weight:600; line-height:28px; }
body.hr-admin .hr-review-record { margin:0 0 16px; padding:12px 14px; border:1px solid #e4e7ec; border-radius:8px; color:#475467; background:#f8f9fb; font-size:13px; line-height:21px; overflow-wrap:anywhere; }
body.hr-admin .hr-review-current { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:0 0 24px; color:#667085; font-size:13px; line-height:20px; }
body.hr-admin :is(.hr-review-field-label,.hr-review-fieldlabel) { display:block; margin:0 0 10px; color:#344054; font-size:13px; font-weight:500; line-height:20px; }
body.hr-admin .hr-review-options { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; margin:0 0 20px; }
body.hr-admin .hr-review-option { box-sizing:border-box; display:flex; align-items:center; gap:10px; min-width:0; min-height:56px; margin:0; padding:12px 14px; border:1px solid #d0d5dd; border-radius:8px; color:#475467; background:#fff; font-size:14px; font-weight:400; line-height:22px; cursor:pointer; transition:border-color .16s ease,background-color .16s ease; }
body.hr-admin .hr-review-option:hover { border-color:#b7ceff; background:#f8faff; }
body.hr-admin .hr-review-option.is-selected { color:#1d4ed8; background:#eff6ff; border-color:#7da5fb; }
body.hr-admin .hr-review-option input[type=radio] { display:inline-block !important; flex:0 0 16px; width:16px !important; min-width:16px; height:16px !important; min-height:16px; margin:0; padding:0 !important; border:0; accent-color:#2563eb; appearance:auto; cursor:pointer; }
body.hr-admin .hr-review-option:focus-within { outline:2px solid #93b4ff; outline-offset:2px; }
body.hr-admin .hr-review-option:has(input:disabled) { cursor:wait; opacity:.65; }
body.hr-admin .hr-review-reason { display:block; margin:0 0 16px; color:#344054; font-size:13px; font-weight:400; line-height:20px; }
body.hr-admin .hr-review-reason[hidden] { display:none !important; }
body.hr-admin .hr-review-reason > span { display:block; margin-bottom:8px; }
body.hr-admin .hr-review-reason textarea { display:block; box-sizing:border-box; width:100%; height:120px !important; min-height:120px; max-height:240px; margin:0; padding:10px 12px; border:1px solid #d0d5dd; border-radius:8px; color:#344054; background:#fff; font:inherit; font-size:14px; line-height:22px; resize:vertical; }
body.hr-admin .hr-review-reason textarea:focus { border-color:#7da5fb; outline:0; box-shadow:0 0 0 3px #2563eb12; }
body.hr-admin .hr-review-reason textarea:disabled { color:#98a2b3; background:#f9fafb; cursor:wait; }
body.hr-admin .hr-review-error { margin:0 0 16px; color:#b54747; font-size:12px; line-height:20px; }
body.hr-admin .hr-review-error:empty { display:none; }
body.hr-admin .hr-review-footer { display:flex; justify-content:flex-end; align-items:center; gap:8px; margin-top:auto; padding-top:20px; border-top:1px solid #e4e7ec; }
body.hr-admin .hr-review-footer .layui-btn { min-width:72px; height:36px !important; min-height:36px !important; margin:0; padding:0 14px !important; border-radius:6px !important; font-size:13px !important; }
body.hr-admin .hr-review-footer .layui-btn:disabled { opacity:.5; cursor:wait; }
@media(max-width:480px) {
    body.hr-admin .layui-layer.hr-review-drawer { border-radius:0; }
    body.hr-admin .hr-review-panel { padding:20px; }
    body.hr-admin .hr-review-drawer .layui-layer-setwin { top:22px; right:20px; }
}

body.hr-admin.hr-workspace-v2 :is(.layui-table,.layui-form-label,.control-label,.tt-form-section-title){color:#344054}
body.hr-admin.hr-workspace-v2 :is(.layui-btn-warm,.btn-primary,.btn-success,.formsubmit){background:#2563eb;border-color:#2563eb;color:#fff}
body.hr-admin.hr-workspace-v2 .layui-table .btn-editone{color:#1d4ed8 !important;background:#eff6ff !important;border-color:#c7d8fa !important}
body.hr-admin.hr-workspace-v2 .layui-table :is(.btn-delone,.layui-btn-danger){color:#b54747 !important;background:#fff5f5 !important;border-color:#efcdcd !important}
body.hr-admin.hr-workspace-v2 .layui-table .layui-btn-normal{color:#1d4ed8 !important;background:#fff !important;border-color:#c7d8fa !important}

/* The material picker uses the same primary action and search dimensions. */
body.hr-admin.tenant-attachment-page .ta-panel .btn-success:not([disabled]),
body.hr-admin.tenant-attachment-page .ta-panel #faupload-image:not([disabled]),
body.hr-admin.tenant-attachment-page .ta-panel #ta-group-save{color:#fff;background:#2563eb;border-color:#2563eb}
body.hr-admin.tenant-attachment-page .ta-panel .btn-success:not([disabled]):hover,
body.hr-admin.tenant-attachment-page .ta-panel #faupload-image:not([disabled]):hover,
body.hr-admin.tenant-attachment-page .ta-panel #ta-group-save:hover{background:#1d4ed8;border-color:#1d4ed8}
body.hr-admin.tenant-attachment-page .ta-panel .ta-search-form{height:36px;border-radius:6px}
body.hr-admin.tenant-attachment-page .ta-panel :is(.ta-search-input,.ta-search-btn,.ta-search-clear){height:34px;line-height:34px}

/* Platform pages share the tenant workspace control scale. */
body.console-body .button{height:36px !important;min-height:36px !important;min-width:72px;padding:0 12px;border-radius:6px !important;font-size:13px;line-height:1;gap:6px}
body.console-body :is(.button.primary,.tenant-row-button.primary):not(:disabled){color:#fff;background:#2563eb;border-color:#2563eb}
body.console-body :is(.button.primary,.tenant-row-button.primary):not(:disabled):hover{background:#1d4ed8;border-color:#1d4ed8}
body.console-body .tenant-filter-toolbar :is(.search-box,.filter-select-trigger,select){height:36px;min-height:36px;border-radius:6px}
body.console-body .tenant-filter-toolbar .search-box input{height:34px}
body.console-body .section-fields :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]),select){height:40px;border-radius:8px;font-size:14px}
body.console-body :is(.tenant-list-actions,.tenant-row-actions){gap:6px}
body.console-body :is(.tenant-row-button,.tenant-list-actions .edit-action,.tenant-list-actions .enter-button,.tenant-row-actions .row-action,.tenant-row-actions .edit-action,.tenant-row-actions .enter-button){height:28px !important;min-height:28px !important;min-width:48px;padding:0 8px;border-radius:6px !important;font-size:12px;line-height:1}
body.console-body :is(.form-surface,.tenant-panel,.overview-panel,.preview-card){border-radius:12px}
@media(min-width:1281px){body.console-body :is(.tenant-list-head,.tenant-list-row){grid-template-columns:minmax(230px,1.35fr) minmax(160px,1fr) 105px minmax(150px,.95fr) 310px}}
