
*{box-sizing:border-box}body{margin:0;background:#f4f7fb;color:#102a56;font:14px "Microsoft YaHei",Arial,sans-serif}.top{position:sticky;top:0;z-index:10;background:#fff;box-shadow:0 1px 5px #9aa9be}.brandline{height:43px;display:flex;align-items:center;padding:0 27px;gap:18px}.sys{font-size:13px;color:#172d55}.brand{font-size:18px;font-weight:700;white-space:nowrap}.nav{display:flex;align-items:end;gap:4px;height:54px;padding:0 28px}.nav button{border:0;background:transparent;padding:17px 18px;height:54px;font-weight:700;font-size:16px;color:#071d42;cursor:pointer}.nav button.active{background:#102f6e;color:#fff;border-radius:14px 14px 0 0}.current{margin-left:auto;text-align:right;line-height:18px;color:#43628c;font-size:13px}.sub{height:56px;background:#102f6e;color:#fff;display:flex;align-items:center;gap:24px;padding:0 44px;position:sticky;top:97px;z-index:9}.sub b{font-size:20px}.sub span{opacity:.9}.sub .actions{margin-left:auto;display:flex;gap:12px}.sub button{border:0;background:transparent;color:#fff;font:inherit;cursor:pointer;padding:8px 12px}.page{padding:26px 48px}.title{font-size:29px;font-weight:800;margin:4px 0 7px}.muted{color:#7086aa;margin:0 0 21px}.card{background:#fff;border:1px solid #e0e8f4;border-radius:12px;padding:22px;margin:18px 0;box-shadow:0 2px 8px #d6dfec55}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.right{margin-left:auto}.btn{border:1px solid #cddcf1;background:#fff;color:#153e78;border-radius:8px;padding:9px 15px;font:inherit;cursor:pointer}.primary{background:#1877ed;border-color:#1877ed;color:#fff}.danger{background:#dc3545;border-color:#dc3545;color:#fff}.table{width:100%;border-collapse:collapse;margin-top:15px}.table th{color:#60769d;text-align:left;font-weight:500;padding:12px 9px;border-bottom:2px solid #bdc8d8}.table td{padding:13px 9px;border-bottom:1px solid #bcc7d7;vertical-align:top}.name{font-weight:700;color:#0e3774;cursor:pointer}.tag{background:#eaf2ff;color:#185bb6;border-radius:7px;padding:3px 7px;margin:2px;display:inline-block;font-size:12px}.badge{border-radius:15px;padding:5px 10px;display:inline-block;background:#edf4ed;color:#168452}.archive-category,.archive-status{font-size:14px}.borrow{background:#d93843;color:white}.copy{background:#f7c948;color:#222}.filters{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:16px}.filters label,.field{display:flex;flex-direction:column;gap:7px;color:#203d69;font-weight:700}.field input,.field textarea,.field select,.filters input,.filters select{padding:10px 12px;border:1px solid #cbd9ed;border-radius:7px;font:inherit;color:#16325d;background:white}.field textarea{min-height:62px}.archive-searchline{display:flex;align-items:center;gap:10px;margin-bottom:18px}.archive-searchline .muted{margin:0;flex:1}.archive-searchline input{width:min(430px,45vw);padding:10px 12px;border:1px solid #cbd9ed;border-radius:7px;font:inherit;color:#16325d;background:#fff}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.listrow{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #e5ebf4}.listrow span{flex:1}.empty{padding:36px;text-align:center;color:#8596ae}.modalbg{position:fixed;inset:0;background:#10244c88;z-index:20;display:flex;align-items:center;justify-content:center}.modal{width:min(720px,92vw);max-height:88vh;overflow:auto;background:#fff;border:1px solid #8ca5c9;border-radius:10px;box-shadow:0 18px 48px #0006}.modalhead{height:38px;background:#eaf4ff;border-bottom:1px solid #b7cce8;padding:8px 14px;display:flex;justify-content:space-between;align-items:center;cursor:move;user-select:none;touch-action:none}.modalhead button{border:0;background:transparent;font-size:21px;cursor:pointer}.modalbody{padding:22px}.modalfoot{padding:12px 22px 22px;display:flex;justify-content:flex-end;gap:10px}.modal .btn{background:#1877ed!important;border-color:#1877ed!important;color:#fff!important;box-shadow:0 4px 10px #1769c255;transform:translateY(-1px)}.modal .btn:hover:not(:disabled){background:#0f68d8!important;border-color:#0f68d8!important;box-shadow:0 6px 14px #1769c266;transform:translateY(-2px)}.modal .btn:active:not(:disabled){box-shadow:0 2px 5px #1769c244;transform:translateY(0)}.modal .btn:disabled{box-shadow:none;transform:none}.hidden{display:none!important}.notice{position:fixed;right:25px;bottom:25px;background:#102f6e;color:#fff;padding:13px 18px;border-radius:8px;z-index:30}.permissions{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;padding:14px;background:#eef4ff;border-radius:9px}.login{width:min(392px,92vw)}
#login .login{padding:28px 20px 16px;border-radius:12px}
.login-brand{display:flex;flex-direction:column;align-items:center;gap:8px;margin:0 0 28px;text-align:center}
.login-icon{width:64px;height:64px;border-radius:0;background:transparent;display:block;overflow:visible;padding:0}
.login-icon img{width:100%;height:100%;display:block}
.login-title{font-size:19px;color:#102a56}
.login-subtitle{font-size:13px;color:#60769d}
.login-fields{display:flex;flex-direction:column;gap:12px}
.login-field{display:flex;align-items:center;gap:10px;font-weight:700;font-size:13px;color:#203d69}
.login-field span{flex:0 0 56px;text-align:right}
.login-field input,.login-field select{flex:1;min-width:0;height:38px;padding:0 11px;border:1px solid #cbd9ed;border-radius:6px;font:inherit;font-weight:700;color:#16325d;background:#fff;width:100%;text-align:left}
.login-actions{margin-top:16px}
#loginSubmit{width:100%;height:38px;border:0;border-radius:6px;background:#1877ed;color:#fff;font-size:15px;font-weight:700;letter-spacing:6px;text-indent:6px;cursor:pointer;transition:background .15s ease}
#loginSubmit:hover:not(:disabled){background:#0f68d8}
#loginSubmit:active:not(:disabled){background:#0c5cc0}
#loginSubmit:disabled{opacity:.6;cursor:default}
.login-footnote{margin:14px 0 0;text-align:center;font-size:12px;color:#8ba0bf}@media(max-width:900px){.nav{overflow:auto;padding:0 10px}.nav button{padding:14px 10px;font-size:14px}.page{padding:18px}.grid2,.grid3,.filters{grid-template-columns:1fr}.archive-searchline{align-items:stretch;flex-wrap:wrap}.archive-searchline .muted{flex-basis:100%}.archive-searchline input{width:100%}.current{display:none}.sub{padding:0 18px}.table{font-size:13px}}
body:has(#main .archive-table){font-size:14px}body:has(#main .archive-table) input::placeholder,body:has(#main .archive-table) textarea::placeholder,body:has(#main .archive-table) .filters .choice summary,body:has(#main .archive-table) select:has(option[value=""]:checked){font-size:14px}
#main:has(#sq) .filters input:not([type="checkbox"]),#main:has(#sq) .filters select,#main:has(#sq) .filters .choice summary,#main:has(#sq) .search-inline-actions .btn,#main:has(#sq) .toolbar>.btn{height:38px;line-height:20px;padding-top:8px;padding-bottom:8px}#main:has(#sq) .filters .choice summary{min-height:38px}

/* Shared control dimensions: match the Search Center, including dialogs. */
@layer controlSizing {
  :is(.btn,.sub button,#main .toolbar button):not(.archive-op):not(.trash-op):not(.user-management-modal .table td:last-child .btn) {height:32px!important;min-height:32px!important;padding-top:3px!important;padding-bottom:3px!important;}
  @media(max-width:900px){.nav button {height:32px!important;min-height:32px!important;padding-top:3px!important;padding-bottom:3px!important;}}
  .platform-row-action {height:32px!important;min-height:32px!important;padding-top:3px!important;padding-bottom:3px!important;}
  .archive-op, .trash-op, .user-management-modal .table td:last-child .btn {height:26px!important;min-height:26px!important;padding-top:2px!important;padding-bottom:2px!important;}
  input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not([type="range"]):not([type="color"]), select:not(#platformModeSelect):not(#platformEnterMode), .choice > summary {
    box-sizing:border-box!important;height:38px!important;min-height:38px!important;line-height:20px!important;padding:8px 12px!important;
  }
  textarea {box-sizing:border-box!important;line-height:20px!important;padding:8px 12px!important;}
  button, input[type="button"], input[type="submit"], input[type="reset"] {
    box-sizing:border-box!important;height:38px!important;min-height:38px!important;line-height:20px!important;padding:8px 15px!important;
  }
}
.archive-edit-modal .grid2:has(#fno),.archive-edit-modal .grid2:has(#fstatus){grid-template-columns:minmax(0,1fr) minmax(0,3fr)}.archive-edit-modal .grid2 .field{min-width:0}.archive-edit-modal .grid2 input,.archive-edit-modal .grid2 select{width:100%;min-width:0}@media(max-width:580px){.archive-edit-modal .grid2:has(#fno),.archive-edit-modal .grid2:has(#fstatus){grid-template-columns:minmax(0,1fr)}}
.user-edit-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.user-edit-fields .field{min-width:0}.user-edit-fields input{width:100%;min-width:0}@media(max-width:580px){.user-edit-fields{grid-template-columns:minmax(0,1fr)}}
#current{display:flex;align-items:center;align-self:center;gap:16px;flex-shrink:0;text-align:left}#current .current-organization{font-size:16px;line-height:24px;white-space:nowrap}#current .current-account{display:flex;flex-direction:column;font-size:12px;line-height:18px;white-space:nowrap}@media(max-width:900px){#current{display:none}}
.platform-mode-control{display:inline; margin:0;padding:0}.platform-mode-control #platformModeSelect{display:inline-block;vertical-align:baseline;box-sizing:content-box;width:calc(4em + 2px);min-width:calc(4em + 2px);height:auto!important;min-height:0!important;margin:0!important;padding:0!important;font:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;border:1px solid #fff!important;border-right-width:0!important;border-radius:0;background:#fff;appearance:none;-webkit-appearance:none}.platform-mode-control #platformModeSelect option{color:inherit;font:inherit;background:#fff}
.platform-user-scroll{height:360px;width:100%;overflow-y:scroll;overflow-x:auto;scrollbar-gutter:stable;margin-top:16px;border:1px solid #e0e8f4}.platform-user-scroll .table{margin-top:0;min-width:1080px}.platform-user-scroll th{position:sticky;top:0;background:#f4f7fb;z-index:1}.platform-user-scroll td{white-space:nowrap}
.member-disabled{display:inline-block;color:#a61b1b;border:1px solid #a61b1b;border-radius:999px;padding:1px 8px;line-height:18px;white-space:nowrap}
.table td.status-cell{text-align:center}
.clear-data-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.clear-data-columns>section{min-width:0;border:1px solid #a9c4e8;border-radius:8px;padding:16px;background:#f8fbff}.clear-data-columns h3{font-size:16px;margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid #d6e3f4}
 .organization-limits-row{display:grid;grid-template-columns:120px 150px minmax(0,1fr);gap:16px;align-items:start}.organization-limits-row .field{min-width:0}.organization-limits-row input,.organization-limits-row select{width:100%;min-width:0}@media(max-width:600px){.organization-limits-row{grid-template-columns:1fr 1fr}.organization-limits-row>.field:last-child{grid-column:1/-1}}
.organization-admin-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.organization-admin-fields .field{min-width:0}.organization-admin-fields input{width:100%;min-width:0}@media(max-width:600px){.organization-admin-fields{grid-template-columns:1fr}}.organization-expiry{display:inline-block;white-space:nowrap;padding:3px 8px;border-radius:4px}.organization-expiry.expiry-expired{background:#fff;color:#757575}.organization-expiry.expiry-urgent{background:#c62828;color:#fff}.organization-expiry.expiry-warning{background:#ffdf60;color:#000}

/* MoreSalary adaptations; base stylesheet copied from Morefiles. */

#app{position:sticky;top:0;z-index:10}.top,.sub{position:static}.nav{height:auto;min-height:70px;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 28px 0}.brand{display:flex;gap:9px;align-items:center}.brand-icon{display:grid;place-items:center;background:#1769c2;color:white;border-radius:9px;width:38px;height:38px;font-size:28px}.brand-copy{display:flex;flex-direction:column;line-height:19px}.brand-copy small{font-size:13px}.brand-subline{display:flex;align-items:baseline;gap:5px;white-space:nowrap}.brand-version{color:#60769d;font-size:9px;line-height:10px;white-space:nowrap}#navigation{display:flex;align-self:stretch;align-items:end;flex-wrap:wrap;margin-left:20px}#navigation button{white-space:nowrap;padding:12px 13px!important;height:48px!important}.nav #logout,.nav #backToPlatform{margin-left:0;align-self:center}#current{margin-left:auto}.sub{min-height:56px;height:auto;padding:12px 28px;flex-wrap:wrap;gap:12px}.sub .actions{flex-wrap:wrap}.context-bar{display:flex;align-items:center;gap:18px;flex-wrap:wrap;background:#edf3fc;border-bottom:1px solid #d8e3f3;padding:8px 28px;font-size:12px;color:#526a8e}.context-bar label{display:flex;align-items:center;gap:8px}.context-bar input{font:inherit}.stage-label{color:#1769c2;font-weight:700}.page{padding:24px 36px}.table-scroll{overflow:auto}.table th,.table td{white-space:nowrap}.row-actions{display:flex;gap:8px}.btn+.btn{margin-left:8px}.stat h2{font-size:28px;margin:0 0 8px}.modalbody .table-scroll{max-height:55vh}.modal:has(.table){width:min(1080px,95vw)}.modalfoot{flex-wrap:wrap}.modalbody{overflow-wrap:anywhere}.demo-help{margin-top:18px;border-top:1px solid #dbe5f2;padding-top:12px;color:#657e9e;font-size:12px}.demo-help summary{cursor:pointer}#loginMessage{margin:10px 0 0;text-align:center;font-size:13px;line-height:1.6;color:#c62828;font-weight:600}button:disabled{opacity:.48;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #73b1ff;outline-offset:2px}.field input,.field select,.field textarea{width:100%}
.field textarea{min-height:110px;padding:7px 9px;border:1px solid #cbd9ed;border-radius:6px;background:#fff;color:#16325d;font:inherit;line-height:1.5;resize:vertical}.notice{max-width:min(500px,90vw)}@media(max-width:1000px){.nav{padding:10px 15px 0}#navigation{order:3;width:100%;margin:0;overflow-x:auto;flex-wrap:nowrap}#current{display:flex;font-size:12px}.sub span{display:none}.page{padding:18px}.context-bar{padding:8px 15px}}@media(max-width:580px){#current .current-organization{font-size:12px}.brand-copy strong{font-size:16px}.nav{gap:8px}.context-bar .right{margin:0}.sub{padding:12px 15px}.organization-limits-row{grid-template-columns:1fr}.organization-limits-row>.field:last-child{grid-column:auto}.grid2,.grid3{grid-template-columns:1fr}}

/* Directory-style maintenance view for organization base data. */
.base-directory{display:grid;grid-template-columns:190px minmax(0,1fr);gap:18px;align-items:start}.base-directory-nav{display:flex;flex-direction:column;background:#fff;border:1px solid #e0e8f4;border-radius:10px;padding:8px;box-shadow:0 2px 8px #d6dfec55}.base-directory-nav button{border:0;background:transparent;color:#203d69;text-align:left;padding:12px 14px;font:inherit;cursor:pointer;border-radius:7px}.base-directory-nav button:hover{background:#f3f7fd}.base-directory-nav button.active{background:#eaf2ff;color:#1769c2;font-weight:700}.base-directory-content{min-width:0}.base-directory-content .card{margin:0}@media(max-width:700px){.base-directory{grid-template-columns:1fr}.base-directory-nav{flex-direction:row;overflow-x:auto}.base-directory-nav button{white-space:nowrap;flex:0 0 auto}}
.base-data-directory .base-directory-content .btn{background:#1877ed!important;border-color:#1877ed!important;color:#fff!important;box-shadow:0 4px 10px #1769c255;transform:translateY(-1px)}.base-data-directory .base-directory-content .btn:hover:not(:disabled){background:#0f68d8!important;border-color:#0f68d8!important;box-shadow:0 6px 14px #1769c266;transform:translateY(-2px)}.base-data-directory .base-directory-content .btn:active:not(:disabled){box-shadow:0 2px 5px #1769c244;transform:translateY(0)}.base-data-directory .base-directory-content .btn:disabled{box-shadow:none;transform:none}
.settings-directory .base-directory-content .btn{background:#1877ed!important;border-color:#1877ed!important;color:#fff!important;box-shadow:0 4px 10px #1769c255;transform:translateY(-1px)}.settings-directory .base-directory-content .btn:hover:not(:disabled){background:#0f68d8!important;border-color:#0f68d8!important;box-shadow:0 6px 14px #1769c266;transform:translateY(-2px)}.settings-directory .base-directory-content .btn:active:not(:disabled){box-shadow:0 2px 5px #1769c244;transform:translateY(0)}.settings-directory .base-directory-content .btn:disabled{background:#aebdce!important;border-color:#aebdce!important;color:#f7f9fc!important;box-shadow:none;transform:none}
.payroll-grid .table{margin-top:0}.payroll-cell{width:110px;min-width:90px;border:1px solid #cbd9ed;border-radius:4px;padding:6px 8px;color:#16325d;font:inherit;text-align:right}.payroll-grid td{padding:7px 8px}.payroll-sheet h3{margin:20px 0 0;font-size:16px}

.payroll-grid{max-width:100%;border:1px solid #d8e3f2;border-radius:7px}.payroll-grid .table th{position:sticky;top:0;background:#eef4fc;z-index:1}.payroll-grid .table th:first-child,.payroll-grid .table td:first-child{position:sticky;left:0;min-width:92px;width:92px;max-width:92px;background:#fff;z-index:2}.payroll-grid .table th:first-child{background:#eef4fc;z-index:3}.payroll-grid .table th:nth-child(2),.payroll-grid .table td:nth-child(2){position:sticky;left:92px;min-width:96px;background:#fff;z-index:2}.payroll-grid .table th:nth-child(2){background:#eef4fc;z-index:3}.payroll-grid .table th,.payroll-grid .table td{min-width:75px}.payroll-row-select{min-width:125px;max-width:165px;border:1px solid #cbd9ed;border-radius:4px;background:#fff;color:#16325d;font:inherit}.payroll-computed{background:#f2f6fb;font-weight:700;text-align:right}.payroll-grid input:focus,.payroll-grid select:focus{outline:2px solid #1877ed;outline-offset:0}.grid-save-note{display:none}.payroll-sheet[data-dirty="true"] .grid-save-note{font-weight:700}
.base-directory-content .card+.card{margin-top:18px}.formula-card h2{margin:0 0 10px}.formula-layout{display:grid;grid-template-columns:minmax(220px,1fr) minmax(300px,1.5fr);gap:20px;margin:18px 0}.formula-palette,.formula-editor{min-width:0;border:1px solid #d8e3f2;border-radius:8px;padding:16px;background:#f8fbff}.formula-palette h3{font-size:15px;margin:0 0 10px}.formula-palette h3:not(:first-child){margin-top:18px}.formula-buttons{display:flex;flex-wrap:wrap;gap:8px}.formula-buttons .btn{margin:0}.formula-editor{display:flex;flex-direction:column;gap:14px}.formula-editor textarea{width:100%;min-height:110px;resize:vertical}.formula-editor>.btn{align-self:flex-start}.formula-card .table code{white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:780px){.formula-layout{grid-template-columns:1fr}}
.base-data-directory .formula-item-buttons .btn{background:#fff!important;border-color:#cbd9ed!important;color:#111!important;box-shadow:0 3px 8px #7285a233}.base-data-directory .formula-item-buttons .btn:hover:not(:disabled){background:#f3f7fd!important;border-color:#8ba9d1!important;color:#000!important;box-shadow:0 5px 12px #7285a244}
.help-layout{display:grid;grid-template-columns:260px minmax(0,1fr);align-items:start;gap:18px}.help-directory{position:sticky;top:171px;max-height:calc(100vh - 190px);margin:0;padding:14px 10px;overflow:auto}.help-directory h2{margin:0 8px 12px;color:#082b62;font-size:18px}.help-directory button{border:0;background:transparent;color:#24466f;font:inherit;cursor:pointer;text-align:left}.help-tree-home{display:block;width:100%;padding:7px 10px;border-radius:6px!important;font-weight:700!important}.help-tree-group{margin:2px 0}.help-tree-branch{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:start}.help-tree-toggle,.help-tree-toggle-spacer{width:24px;min-height:30px;padding:5px 2px;text-align:center!important;color:#6281aa!important}.help-tree-link{padding:6px 5px;border-radius:6px!important;font-weight:700!important}.help-tree-children{margin:1px 0 5px 12px;padding-left:15px;border-left:1px solid #bfd0e5}.help-tree-children button{display:block;width:100%;padding:5px 7px;border-radius:5px!important;font-size:13px}.help-directory button:hover,.help-directory button.active{background:#e8f2ff;color:#075fbe}.help-document{min-width:0;max-width:none;margin:0;color:#19365f;line-height:1.8}.help-document h1{margin:0 0 8px;color:#082b62;font-size:30px}.help-document h2{scroll-margin-top:175px;margin:30px 0 12px;padding-bottom:7px;border-bottom:1px solid #cbd9ed;color:#0d3f7c;font-size:22px}.help-document h3{scroll-margin-top:175px;margin:22px 0 8px;color:#17599f;font-size:17px}.help-document h1{scroll-margin-top:175px}.help-document p{margin:8px 0 12px}.help-document ul,.help-document ol{margin:8px 0 16px;padding-left:28px}.help-document li{margin:4px 0}.help-document blockquote{margin:12px 0;padding:10px 14px;border-left:4px solid #68a5e8;background:#eef6ff;color:#526c91}.help-document code{padding:1px 4px;border-radius:4px;background:#edf2f8;color:#963b24}.help-document pre{overflow:auto;padding:14px;border:1px solid #cfdaea;border-radius:8px;background:#f6f8fb;line-height:1.55}.help-document pre code{padding:0;background:transparent;color:#17345d}.help-document .help-table{margin:8px 0 18px}.help-document .help-table th{background:#eaf2ff;color:#183d70;font-weight:700}.help-document .help-table td{white-space:normal;vertical-align:top}@media(max-width:900px){.help-layout{grid-template-columns:1fr}.help-directory{position:relative;top:auto;max-height:320px}.help-document{margin:0}}
#login.modalbg{justify-content:center;padding:clamp(18px,4vw,64px);background-color:#0b1524;background-repeat:no-repeat;background-position:center;background-size:100% auto}body.login-background-visible #login.modalbg{background-image:var(--login-background-image)}#login .login{margin:0;border-color:#91acd0;box-shadow:0 2px 8px #0008,0 18px 42px #0009,0 34px 80px #02091499;background:#fffffffa}@media(max-width:820px){#login.modalbg{justify-content:center;padding:18px;background-position:center;background-size:cover}body.login-background-visible #login.modalbg{background-image:linear-gradient(#ffffffc7,#fffffff0),var(--login-background-image)}#login .login{margin:0}}
body.login-background-hidden #login.modalbg{background-image:none!important;background-color:#f4f7fb}
body.application-active.app-background-visible:not(.payroll-printing) #main{min-height:calc(100vh - 158px);background-color:#0b1524;background-image:var(--app-background-image);background-repeat:no-repeat;background-position:center top;background-size:100% auto}body.application-active.app-background-visible #main>.title{color:#fff;text-shadow:0 2px 5px #000b}body.application-active.app-background-visible #main>.title+p{color:#edf4ff;text-shadow:0 1px 4px #000b}
.platform-background-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.platform-background-setting{display:flex;flex-direction:column;align-items:stretch;gap:14px}.background-setting-top{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.platform-background-setting label{display:inline-flex;align-items:center;gap:8px;color:#16325d;font-weight:700;cursor:pointer}.platform-background-setting input[type="checkbox"]{width:16px;height:16px;margin:0;cursor:pointer}.background-file-row{display:flex;align-items:center;gap:12px;min-width:0}.background-file{min-width:0}.background-file input[type="file"]{max-width:360px;color:#526a8e;font-weight:400;cursor:pointer}.background-file-row .muted{white-space:nowrap}.background-preview{border:1px solid #cbd8ea;border-radius:8px;overflow:hidden;background:#f4f7fb}.background-preview img{display:block;width:100%;height:160px;object-fit:cover}@media(max-width:900px){.platform-background-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:650px){.background-setting-top,.background-file-row{align-items:flex-start;flex-direction:column}.background-file input[type="file"]{max-width:65vw}}
.report-field-selector{display:grid;grid-template-columns:minmax(135px,.75fr) minmax(220px,1.2fr) minmax(300px,2fr) minmax(150px,.8fr);gap:12px;padding:14px;margin:12px 0 18px;border:1px solid #d8e3f2;border-radius:8px;background:#f8fbff}.report-parameter-panel{min-width:0;border:1px solid #d8e3f2;border-radius:7px;background:#fff;padding:10px}.report-parameter-panel h4{margin:0 0 10px}.report-field-selector label{display:flex;align-items:center;gap:5px}.report-row-field-list{display:flex;flex-direction:column;gap:6px;min-height:42px}.report-row-field-list>button{border:1px solid #cbd9ed;border-radius:6px;background:#fff;color:#153e78;padding:7px 9px;text-align:left;cursor:pointer}.report-row-field-list>button:hover{background:#eaf2ff}.report-row-field-selected{display:flex;align-items:center;gap:5px;border:1px solid #d8e3f2;border-radius:6px;padding:5px;background:#f8fbff}.report-row-field-selected span{flex:1;font-weight:700}.report-row-field-selected .btn{height:28px!important;min-height:28px!important;padding:2px 7px!important;margin:0!important}.report-column-options{display:block;column-count:3;column-gap:10px}.report-column-options label{break-inside:avoid;margin:0 0 8px}.report-other-options{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.report-other-options .btn{margin:4px 0 0!important}.report-base-row td{font-size:12px;font-style:italic;color:#657e9e;background:#f7f9fc}.report-subtotal-row td{font-weight:700;background:#f4f7fb;border-top:1px solid #aebed4}.report-total-row td{font-weight:700;background:#eaf2ff;border-top:2px solid #8ba9d1}@media(max-width:1050px){.report-field-selector{grid-template-columns:1fr 1fr}.report-column-options{column-count:2}}@media(max-width:620px){.report-field-selector{grid-template-columns:1fr}.report-column-options{column-count:2}}
.report-title-toolbar h2{margin:0}.report-title-toolbar .right{display:flex;gap:8px}.report-title-toolbar .report-action-btn{margin:0!important;background:#1877ed;border-color:#1877ed;color:#fff;box-shadow:0 4px 10px #1769c255;transform:translateY(-1px)}.report-title-toolbar .report-action-btn:hover:not(:disabled){background:#0f68d8;border-color:#0f68d8;box-shadow:0 6px 14px #1769c266;transform:translateY(-2px)}.report-title-toolbar .report-action-btn:active:not(:disabled){box-shadow:0 2px 5px #1769c244;transform:translateY(0)}
.payslip-field-picker{display:grid;grid-template-columns:calc(20% + 100px) minmax(0,1fr);gap:14px;margin-top:14px}.payslip-field-picker .report-row-field-list{max-height:52vh;overflow:auto}.payslip-available-columns{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.payslip-available-column{display:flex;flex-direction:column;gap:6px;min-width:0}.payslip-available-column button{border:1px solid #cbd9ed;border-radius:6px;background:#fff;color:#153e78;padding:7px 9px;text-align:left;cursor:pointer}.payslip-available-column button:hover{background:#eaf2ff}.payslip-field-picker section:nth-child(2) .report-row-field-list{display:grid;grid-template-columns:repeat(3,minmax(190px,1fr));gap:0;align-content:start}.payslip-selected-column{display:flex;flex-direction:column;gap:4px;min-width:0;padding:0 18px}.payslip-selected-column:first-child{padding-left:0}.payslip-selected-column+.payslip-selected-column{border-left:5px solid #e5e8ec}.payslip-field-picker section:nth-child(2) .report-row-field-selected{width:100%;min-width:0;padding-top:2px;padding-bottom:2px;background:#fff;color:#153e78}.payslip-field-picker section:nth-child(2) .report-row-field-selected>span:first-child{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;cursor:default}.payslip-field-picker section:nth-child(2) .report-row-field-selected>span:first-child:hover{text-decoration:underline}.payslip-field-move{display:flex;align-items:center;gap:5px;margin-left:auto;flex:0 0 auto}@media(max-width:900px){.payslip-field-picker{grid-template-columns:1fr}.payslip-available-columns{grid-template-columns:1fr}.payslip-field-picker section:nth-child(2) .report-row-field-list{grid-template-columns:1fr}.payslip-selected-column{padding:0;border-left:0!important}.payslip-field-picker section:nth-child(2) .report-row-field-selected{width:100%}}
.modal:has(.payslip-field-picker){width:min(1180px,95vw)}.modal:has(.period-init-modal){width:min(540px,92vw);height:min(330px,72vh);display:flex;flex-direction:column}.modal:has(.period-init-modal) .modalbody{flex:1;display:flex;align-items:center;justify-content:center}.period-init-modal{width:100%;display:flex;justify-content:center}.period-init-modal input[type="month"]{width:50%;align-self:center;padding:10px 12px;border:1px solid #cbd9ed;border-radius:7px;background:#fff;color:#16325d;font-weight:700}
select,select option,select optgroup,.field select,.filters select{font-weight:700}
.payslip-field-picker section:nth-child(2){width:100%;max-width:100%;justify-self:stretch}
@media(max-width:900px){.payslip-field-picker section:nth-child(2){width:100%}}
.payslip-field-picker .report-row-field-selected[draggable="true"]{cursor:grab}
.payslip-field-picker .report-row-field-selected[draggable="true"]:active{cursor:grabbing}
.payslip-field-picker .report-row-field-selected.payslip-field-dragging{opacity:.45;outline:2px dashed #1877ed;outline-offset:-2px}
.modal .payslip-field-picker .report-row-field-selected .btn{background:#fff!important;border-color:#cbd9ed!important;color:#111!important;box-shadow:none!important;transform:none!important}.modal .payslip-field-picker .report-row-field-selected .btn:hover:not(:disabled){background:#f3f5f8!important;border-color:#9dadc3!important;color:#000!important;box-shadow:none!important;transform:none!important}
.payslip-report-preview{margin-top:20px;padding-top:14px;border-top:1px solid #d8e3f2}.payslip-report-preview h3{margin:0}.payslip-report-preview>.toolbar{margin-bottom:10px}.payslip-report-preview .table-scroll{max-height:52vh;overflow-x:scroll;overflow-y:auto;scrollbar-gutter:stable}.payslip-report-preview .table{width:max-content;min-width:100%}.payslip-report-preview .table th{position:sticky;top:0;background:#eef4fc;z-index:1}
.report-number{text-align:right!important;font-variant-numeric:tabular-nums}
.comparison-report-table .report-number{text-align:left!important}.comparison-report-table .table th{vertical-align:middle}.comparison-period-heading span{display:block;line-height:1.45}
.enter-mode-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding:0;margin:0;background:transparent;font:inherit;color:inherit;cursor:pointer}.enter-mode-select:focus{outline:none}.enter-mode-select::-ms-expand{display:none}
.comparison-title-toolbar{flex-wrap:nowrap;margin-bottom:14px}.comparison-title-toolbar h2{margin:0}.comparison-item-selector{display:flex;align-items:center;gap:10px;margin-left:auto;padding:0;border:0;background:transparent}.comparison-item-selector label{color:#203d69;font-weight:700;white-space:nowrap}.comparison-item-selector select{width:min(320px,55vw);padding:7px 10px;border:1px solid #b9cbe3;border-radius:7px;background:#fff;color:#16325d;font:inherit}
.page-heading{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;margin:4px 0 21px}.page-heading>.title{margin:0}.page-heading>.muted{margin:0 0 3px}body.application-active.app-background-visible #main>.page-heading .title{color:#fff;text-shadow:0 2px 5px #000b}body.application-active.app-background-visible #main>.page-heading>.muted{color:#edf4ff;text-shadow:0 1px 4px #000b}.payroll-fixed-display #main>.page-heading{display:none}body.payroll-printing #main>.page-heading{display:none!important}
.interface-settings-row{display:flex;align-items:flex-end;gap:24px;flex-wrap:wrap}.interface-settings-row .default-page-field{width:33.333%;min-width:180px}.interface-settings-row .default-page-field select{width:100%}.main-heading-option{display:flex;align-items:center;gap:7px;min-height:39px;color:#203d69;font-weight:700}.main-heading-option input{width:16px;height:16px;margin:0}.hide-main-heading #main>.page-heading{display:none}
.import-duplicate-options{display:flex;align-items:center;gap:24px;margin:18px 0;padding:12px 14px;border:1px solid #d8e3f2;border-radius:8px}.import-duplicate-options legend{padding:0 5px;color:#203d69;font-weight:700}.import-duplicate-options label{display:flex;align-items:center;gap:6px;color:#203d69}.import-duplicate-options input{margin:0}
.salary-report-table .table{width:100%;min-width:100%;table-layout:auto}.salary-report-table .table th,.salary-report-table .table td{width:auto;min-width:0;max-width:none;padding-left:10px;padding-right:10px;white-space:nowrap;vertical-align:middle}.salary-report-table .table-scroll{width:100%;overflow-x:auto}.salary-report-display{background:#fff}.salary-report-table .salary-report-filler{padding-left:0;padding-right:0}.salary-report-table .salary-report-filler-col{background:#fff}
.base-card-toolbar{align-items:center}.base-card-toolbar h2{margin:0}.base-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.base-inline-create{display:flex;justify-content:flex-end;align-items:center;gap:6px;margin:0}
.base-card-actions .payroll-transfer-menu{flex:0 0 auto;margin-left:2px}
.base-card-actions .payroll-transfer-menu summary{background:#1877ed;border-color:#1877ed;color:#fff;box-shadow:0 4px 10px #1769c255}
.base-card-actions .payroll-transfer-menu summary:hover,.base-card-actions .payroll-transfer-menu[open] summary{background:#0f68d8;border-color:#0f68d8;color:#fff}
/* 下拉项保持白底黑字，避免被基础资料页按钮统一配色覆盖 */
.base-data-directory .base-directory-content .payroll-transfer-options .btn,.base-card-actions .payroll-transfer-options .btn{background:#fff!important;border:0!important;color:#111!important;box-shadow:none!important;transform:none!important}
.base-data-directory .base-directory-content .payroll-transfer-options .btn:hover:not(:disabled),.base-card-actions .payroll-transfer-options .btn:hover:not(:disabled){background:#f3f7fd!important;border:0!important;color:#000!important;box-shadow:none!important;transform:none!important}.base-inline-create input{min-width:0;padding:9px 7px;border:1px solid #cbd9ed;border-radius:7px;font:inherit;color:#16325d;background:#fff}.base-inline-create input:first-child{width:100px}.base-inline-create input:nth-child(2){width:220px}.base-inline-create .btn{flex:0 0 auto;margin:0!important}@media(max-width:720px){.base-card-toolbar{align-items:flex-start}.base-card-actions{width:100%}}

.payroll-cell{font-variant-numeric:tabular-nums}.payroll-cell.invalid{border-color:#d33b3b;background:#fff4f4}
.payroll-cell[type="number"]{appearance:textfield;-moz-appearance:textfield}.payroll-cell[type="number"]::-webkit-inner-spin-button,.payroll-cell[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}

.employee-import-menu{position:relative;align-self:center}.employee-import-menu summary{list-style:none;cursor:pointer;padding:6px 12px;white-space:nowrap}.employee-import-menu summary::-webkit-details-marker{display:none}.employee-import-menu summary::after{content:" ▾"}.employee-import-options{position:absolute;right:0;top:100%;min-width:155px;padding:6px;background:#fff;border:1px solid #cddcf1;border-radius:8px;box-shadow:0 8px 20px #102a5633;z-index:30}.sub .employee-import-options button{display:block;width:100%;height:auto!important;min-height:32px!important;text-align:left;color:#153e78;background:#fff;border:0;margin:0!important;padding:6px 10px!important;white-space:nowrap}.sub .employee-import-options button:hover{background:#edf4ff}.sub .employee-import-options button:disabled{color:#9eacc3;cursor:not-allowed}
.payroll-transfer-menu{position:relative;align-self:center;flex:0 0 auto;width:max-content}.payroll-transfer-menu summary{list-style:none;cursor:pointer;padding:7px 9px;white-space:nowrap;color:#174579;background:#fff;border:1px solid #c5d6ec;border-radius:8px;box-shadow:0 3px 8px #173c6b24}.payroll-transfer-menu summary::-webkit-details-marker{display:none}.payroll-transfer-menu summary::after{content:" ▾"}.payroll-transfer-menu[open] summary,.payroll-transfer-menu summary:hover{color:#0c5eb8;border-color:#79a9e4;background:#f5f9ff}.payroll-transfer-options{position:absolute;right:0;top:calc(100% + 4px);width:max-content;min-width:100%;padding:4px;background:#fff;border:1px solid #cddcf1;border-radius:8px;box-shadow:0 8px 20px #102a5633;z-index:40}.payroll-transfer-options .btn{display:block;width:100%;height:auto!important;min-height:30px!important;text-align:left;color:#153e78!important;background:#fff!important;border:0!important;box-shadow:none!important;transform:none!important;margin:0!important;padding:5px 7px!important;white-space:nowrap}.payroll-transfer-options .btn:hover:not(:disabled){color:#0c5eb8!important;background:#edf4ff!important}.payroll-transfer-options .btn:disabled{color:#9eacc3!important;cursor:not-allowed}
.payroll-grid{max-height:min(68vh,720px);overflow-x:auto;overflow-y:scroll;scrollbar-gutter:stable}
.modal:has(.sheet-structure-picker){width:min(1000px,95vw)}
.sheet-structure-picker{display:grid;grid-template-columns:minmax(220px,1fr) minmax(380px,1.6fr);gap:18px}
.sheet-structure-picker>section{min-width:0;border:1px solid #d8e3f2;border-radius:8px;background:#f8fbff;padding:14px}
.sheet-structure-picker h3{font-size:15px;margin:0 0 10px}
.sheet-structure-list{max-height:min(52vh,480px);overflow:auto;display:flex;flex-direction:column;gap:7px}
.sheet-structure-option{display:flex;gap:12px;align-items:center;width:100%;padding:9px 11px;border:1px solid #cbd9ed;border-radius:6px;background:#fff;color:#153e78;text-align:left;font:inherit;cursor:pointer}
.sheet-structure-option:hover:not(:disabled){background:#eaf2ff;border-color:#7caef0}
.sheet-structure-option:disabled{opacity:.5;cursor:default}
.sheet-structure-option strong,.sheet-structure-name strong{min-width:72px}
.sheet-structure-row{display:flex;align-items:center;gap:10px;padding:8px;border:1px solid #d8e3f2;border-radius:6px;background:#fff}
.sheet-structure-name{display:flex;align-items:center;gap:9px;flex:1;min-width:0}
.sheet-structure-name span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sheet-structure-name small{color:#b45f12}
.sheet-structure-row select{width:76px;min-width:76px;padding:5px;border:1px solid #cbd9ed;border-radius:5px;background:#fff;color:#153e78}
.sheet-structure-actions{display:flex;align-items:center;gap:2px}
.sheet-structure-actions .btn{padding:4px 7px;margin:0!important;min-width:30px;height:auto!important;min-height:30px!important}
.sheet-structure-picker section:nth-child(2) .sheet-structure-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:column;gap:7px}
.sheet-structure-picker section:nth-child(2) .sheet-structure-row{min-width:0;gap:3px;padding:6px}
.sheet-structure-picker section:nth-child(2) .sheet-structure-name{flex:1 1 auto;gap:4px}
.sheet-structure-picker section:nth-child(2) .sheet-structure-actions{gap:1px;margin-left:auto}
.sheet-structure-row[draggable="true"]{cursor:grab}
.sheet-structure-row[draggable="true"]:active{cursor:grabbing}
.sheet-structure-row.sheet-structure-dragging{opacity:.45;outline:2px dashed #1877ed;outline-offset:-2px}
.modal .sheet-structure-actions .btn{min-width:26px!important;min-height:28px!important;padding:3px 5px!important;background:#fff!important;border-color:#b9cbe3!important;color:#1769c2!important;box-shadow:none!important;transform:none!important}.modal .sheet-structure-actions .btn:hover:not(:disabled){background:#eef5ff!important;border-color:#78a8e5!important;color:#0f58a8!important;box-shadow:none!important;transform:none!important}
.clone-payroll-row{display:flex;align-items:center;gap:10px;margin:10px 0 12px}.clone-payroll-row label{font-weight:700;white-space:nowrap}.clone-payroll-row select{flex:1;min-width:0;padding:8px 10px;border:1px solid #cbd9ed;border-radius:7px;font:inherit;color:#16325d;background:#fff}.clone-payroll-row .btn{flex:0 0 auto;margin:0!important;background:#1877ed;border-color:#1877ed;color:#fff;box-shadow:0 4px 10px #1769c255;transform:translateY(-1px)}.clone-payroll-row .btn:hover{background:#0f68d8;border-color:#0f68d8;box-shadow:0 6px 14px #1769c266;transform:translateY(-2px)}.clone-payroll-row .btn:active{box-shadow:0 2px 5px #1769c244;transform:translateY(0)}
.clone-payroll-card{padding-top:12px;padding-bottom:12px}
@media(max-width:720px){.sheet-structure-picker{grid-template-columns:1fr}.sheet-structure-list{max-height:30vh}.sheet-structure-picker section:nth-child(2) .sheet-structure-list{grid-template-columns:1fr;grid-template-rows:none!important;grid-auto-flow:row}}
@media(max-width:580px){.clone-payroll-row{flex-wrap:wrap}.clone-payroll-row select{flex-basis:calc(100% - 110px)}.clone-payroll-row .btn{margin-left:auto!important}}
.payroll-grid .table td{padding:0.5px 6px;line-height:20px;vertical-align:middle}
.payroll-grid .table th{padding:7px 6px;color:#000;text-align:center}
@layer controlSizing{
 .payroll-grid input.payroll-cell,.payroll-grid select.payroll-row-select{height:28px!important;min-height:28px!important;line-height:18px!important;padding:3px 6px!important}
 .payroll-grid .table td:last-child .btn{height:26px!important;min-height:26px!important;line-height:18px!important;padding:3px 8px!important;margin:0!important}
}
.payroll-grid .table td.payroll-master-field,.payroll-grid .table th:nth-child(4),.payroll-grid .table th:nth-child(5),.payroll-grid .table th:last-child{font-size:12px}
.payroll-grid .table td.payroll-master-field{color:#385273}
/* Payroll table compact alignment and shared table action links. */
@layer controlSizing {
  .payroll-grid input.payroll-cell {height:22px!important;min-height:22px!important;line-height:20px!important;padding:0.5px 6px!important;font-size:inherit!important;box-sizing:border-box!important;}
  .payroll-grid .table td,.payroll-grid .table th {vertical-align:middle!important;}
  .payroll-grid .payroll-master-field,.payroll-grid .payroll-computed {vertical-align:middle;}
}
.table td:last-child .btn,.table td .row-actions .btn {font-family:"Microsoft YaHei",Arial,sans-serif!important;font-size:14px!important;font-weight:400!important;line-height:18px!important;color:#1769c2!important;border:0!important;background:transparent!important;box-shadow:none!important;padding:2px 5px!important;margin:0 3px 0 0!important;height:24px!important;min-height:24px!important;}
.table td:last-child .btn:hover,.table td .row-actions .btn:hover {color:#0d4f9f!important;background:#edf4ff!important;}
.table td:last-child .btn:disabled,.table td .row-actions .btn:disabled{color:#9aa8bc!important;background:transparent!important;opacity:1!important;cursor:not-allowed!important}

.payroll-grid .payroll-remark{width:270px;min-width:210px;font:inherit;color:#16325d;border:1px solid #cbd9ed;border-radius:4px;box-sizing:border-box;text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;resize:none;overflow:hidden;min-height:22px;line-height:20px;padding:2px 6px!important;vertical-align:top}
.payroll-grid .payroll-data-table tbody tr:has(.payroll-remark){height:auto}
.payroll-grid .payroll-data-table tbody td:has(.payroll-remark){height:auto;min-height:20px;text-align:left;vertical-align:top}

.payroll-grid .table td > input,.payroll-grid .table td > select,.payroll-grid .table td > button {vertical-align:middle;}

.user-management-modal{min-width:0}.user-management-toolbar{display:flex;align-items:flex-start;gap:18px;margin-bottom:14px}.user-management-actions{display:flex;gap:10px}.user-management-actions .btn{margin:0}.user-management-counts{margin-left:auto;color:#43628c;line-height:24px;text-align:right;white-space:nowrap}.user-management-modal .table-scroll{max-height:55vh;overflow:auto}.user-management-modal .table{min-width:760px;margin-top:0}.user-management-modal .table th,.user-management-modal .table td{vertical-align:middle;white-space:nowrap}.user-management-modal .row-actions{align-items:center;white-space:nowrap}.user-management-modal .row-actions .btn{margin:0 8px 0 0!important}.permission-unavailable{display:inline-block;color:#8da0bd;font-size:12px;margin-right:8px}.user-permission-grid{grid-template-columns:repeat(2,minmax(180px,1fr));border:1px solid #d8e3f2}.user-permission-grid label{display:flex;align-items:center;gap:6px;color:#203d69;font-weight:400}.user-permission-grid input{width:16px;height:16px}@media(max-width:600px){.user-management-toolbar{flex-direction:column}.user-management-counts{margin-left:0;text-align:left}.user-permission-grid{grid-template-columns:1fr}}
.modal:has(.user-management-modal){width:min(900px,96vw)}
.user-edit-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.user-management-modal .table td{vertical-align:middle}
.user-management-modal [data-action="add-user"]{background:linear-gradient(#399eff,#0867c8);color:white}
.user-management-modal .table td:last-child .btn{border:1px solid #8fb5df!important;border-radius:9px!important;background:linear-gradient(white,#e4f0ff)!important;padding:2px 16px!important}
.user-management-modal .table td:last-child [data-action^="delete-user:"]{color:white!important;border-color:#c83347!important;background:linear-gradient(#fa7183,#cf2138)!important}

/* Selection, employee code and name remain visible when scrolling. */
.payroll-grid .table th:first-child,.payroll-grid .table td:first-child{min-width:44px;width:44px;max-width:44px;text-align:center}
.payroll-grid .table th:nth-child(2),.payroll-grid .table td:nth-child(2){left:44px;min-width:92px;width:92px;max-width:92px}
.payroll-grid .table th:nth-child(3),.payroll-grid .table td:nth-child(3){position:sticky;left:136px;min-width:96px;background:#fff;z-index:2}
.payroll-grid .table th:nth-child(3){background:#eef4fc;z-index:3}
@layer controlSizing{.payroll-grid input.payroll-record-select{width:16px!important;min-width:16px!important;height:16px!important;min-height:16px!important;padding:0!important;margin:0;vertical-align:middle;cursor:pointer}}
.payroll-grid tr:has(.payroll-record-select:checked) td{background:#e9f3ff}
.payroll-grid .payroll-data-table tbody tr:nth-child(odd) td{background:#fff}.payroll-grid .payroll-data-table tbody tr:nth-child(even) td{background:#eef6ff}.payroll-grid .payroll-data-table tbody .payroll-cell,.payroll-grid .payroll-data-table tbody .payroll-remark{background:transparent}.payroll-grid .payroll-data-table tbody tr:has(.payroll-record-select:checked) td{background:#dcecff}

.payroll-sheet>.toolbar{flex-wrap:nowrap;overflow:visible;padding-bottom:4px}.payroll-sheet>.toolbar>h2{flex:0 0 auto}.payroll-sheet>.toolbar>.right{display:flex;align-items:center;flex-wrap:nowrap;gap:8px;white-space:nowrap}.payroll-enter-direction{position:relative;display:inline-flex;align-items:center;color:#385273;font-size:12px;white-space:nowrap;flex:0 0 auto}.payroll-enter-direction select{appearance:none;-webkit-appearance:none;box-sizing:border-box;height:12px!important;min-height:12px!important;line-height:12px!important;padding:0!important;text-indent:0;width:80px;font-size:12px!important;border:1px solid #9fb3ce;border-radius:0;background:#fff;color:#385273}.payroll-data-table th[data-sort-index]{cursor:pointer;user-select:none}.payroll-data-table th[data-sort-index]:hover{background:#dceaff}.sort-indicator{display:inline-block;width:12px;color:#1769c2}.workflow-positive{background:#1f9d55!important;border-color:#187c43!important;color:#fff!important}.workflow-positive:hover{background:#178346!important}.workflow-negative{background:#d9363e!important;border-color:#b5222a!important;color:#fff!important}.workflow-negative:hover{background:#b5222a!important}.workflow-warning{background:#d9822b!important;border-color:#a85f17!important;color:#fff!important}.workflow-warning:hover{background:#b96e21!important}.workflow-positive:disabled,.workflow-negative:disabled,.workflow-warning:disabled{color:#fff!important;opacity:.5}

/* Keep the selected payroll sheet within the viewport, with its own scrolling. */
@layer controlSizing{#fixedPayrollDisplay{width:16px!important;min-width:16px!important;height:16px!important;min-height:16px!important;padding:0!important;margin:0;cursor:pointer}}
.payroll-fixed-control{white-space:nowrap;cursor:pointer}.fixed-payroll-sheet-choice{max-width:240px}
.payroll-context-controls{display:inline-flex;align-items:center;gap:10px;white-space:nowrap;margin-left:auto}
.context-bar>.payroll-context-controls{margin-left:auto}
.payroll-context-direction{display:inline-flex;align-items:center;gap:10px;white-space:nowrap}
body.payroll-fixed-display{overflow:hidden}
.payroll-fixed-display #main{position:fixed;top:var(--payroll-fixed-top);bottom:12px;left:24px;right:24px;padding:0;min-height:0;overflow:hidden;display:flex;flex-direction:column}
.payroll-fixed-display #main>.title,.payroll-fixed-display #main>p,.payroll-fixed-display .payroll-sheet:not(.payroll-fixed-active){display:none}
.payroll-fixed-display .payroll-sheet.payroll-fixed-active{display:flex;flex-direction:column;flex:1;min-height:0;margin:0;padding:12px}
.payroll-fixed-display .payroll-sheet>.toolbar,.payroll-fixed-display .grid-save-note{flex-shrink:0}
.payroll-fixed-display .payroll-sheet>p.muted:not(.grid-save-note){display:none}
.payroll-fixed-display .payroll-grid{flex:1;min-height:0;max-height:none;overflow-x:scroll;overflow-y:scroll}
/* 固定显示区时 #main 按 top/bottom 定位，必须取消背景图带来的最小高度，否则水平滚动条被裁切 */
body.payroll-fixed-display.application-active.app-background-visible #main{min-height:0;background-size:cover;background-position:center center}
@media(max-width:700px){.payroll-fixed-display #main{left:8px;right:8px;bottom:8px}.payroll-fixed-display .payroll-sheet.payroll-fixed-active{padding:6px}}

.role-class-options{display:flex;flex-wrap:wrap;gap:18px;padding:10px 0}.role-class-options label{display:flex;align-items:center;gap:5px;font-weight:400}.role-class-options input{width:16px;height:16px}

.payroll-print-heading,.payroll-print-value{display:none}
@media print{
 @page{size:landscape;margin:8mm}
 body.payroll-printing{overflow:visible!important;background:#fff;color:#000;font-family:"Microsoft YaHei",Arial,sans-serif}
 body.payroll-printing #login,body.payroll-printing #app,body.payroll-printing #notice,body.payroll-printing #modalRoot,body.payroll-printing #main>.title,body.payroll-printing #main>p,body.payroll-printing .payroll-sheet:not(.payroll-print-target){display:none!important}
 body.payroll-printing #main{display:block!important;position:static!important;padding:0!important;margin:0!important;overflow:visible!important}
 body.payroll-printing .payroll-print-target{display:block!important;border:0!important;box-shadow:none!important;margin:0!important;padding:0!important}
 body.payroll-printing .payroll-print-target>.toolbar,body.payroll-printing .payroll-print-target>p{display:none!important}
 body.payroll-printing .payroll-print-heading{display:block!important;text-align:center;margin:0 0 8px}
 body.payroll-printing .payroll-print-heading h1{font-size:18px;margin:0 0 4px;color:#000}
 body.payroll-printing .payroll-print-heading p{font-size:10px;margin:0;color:#000}
 body.payroll-printing .payroll-grid{display:block!important;max-height:none!important;overflow:visible!important}
 body.payroll-printing .payroll-data-table{width:100%!important;margin:0!important;border-collapse:collapse!important;font-size:9px!important;color:#000}
 body.payroll-printing .payroll-data-table th,body.payroll-printing .payroll-data-table td{position:static!important;min-width:0!important;width:auto!important;max-width:none!important;padding:3px 4px!important;border:0.5px solid #b9cee8!important;background:#fff!important;color:#000!important;white-space:nowrap!important;text-align:right}
 body.payroll-printing .payroll-data-table th,body.payroll-printing .payroll-data-table td,body.payroll-printing .payroll-data-table .payroll-print-value{font-size:9px!important}
 body.payroll-printing .payroll-data-table th{text-align:center!important}
 body.payroll-printing .payroll-data-table th .sort-indicator{display:none!important;width:0!important}
 body.payroll-printing .payroll-data-table td:nth-child(-n+5),body.payroll-printing .payroll-data-table td:last-child{text-align:center}
 body.payroll-printing .payroll-data-table th:first-child,body.payroll-printing .payroll-data-table td:first-child{display:none!important}
 body.payroll-printing .payroll-data-table input{display:block!important;width:100%!important;min-width:0!important;height:auto!important;min-height:0!important;padding:0!important;border:0!important;background:transparent!important;color:#000!important;font:inherit!important;text-align:inherit!important}
 body.payroll-printing .payroll-data-table input{opacity:1!important;-webkit-text-fill-color:#000!important}
 body.payroll-printing .payroll-data-table .payroll-remark{width:100%!important;min-width:80px!important;text-align:left!important}
 body.payroll-printing .payroll-data-table input.payroll-cell,body.payroll-printing .payroll-data-table .payroll-remark{display:none!important}
 body.payroll-printing .payroll-print-value{display:block!important;min-width:max-content;color:#000!important;font:inherit!important;text-align:right;white-space:nowrap}
 body.payroll-printing .payroll-data-table td:has(.payroll-print-remark){white-space:normal!important}
 body.payroll-printing .payroll-print-value.payroll-print-remark{width:18em;min-width:18em;max-width:18em;text-align:left;white-space:normal!important;overflow-wrap:anywhere;word-break:break-all;line-height:1.35}
}

.modal-selection-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 12px}.modal-selection-toolbar label{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;color:#12335f;cursor:pointer}.modal-selection-toolbar input{margin:0}
.employee-table-toolbar{flex-wrap:nowrap}.employee-table-toolbar h2{margin:0}.employee-search{display:flex;align-items:center;gap:8px;margin-left:auto;white-space:nowrap;color:#203d69;font-weight:700}.employee-search input{width:220px;padding:9px 11px;border:1px solid #cbd9ed;border-radius:7px;font:inherit;color:#16325d;background:#fff}.employee-total{min-width:72px;text-align:right;white-space:nowrap;color:#526a8e;font-weight:700}@media(max-width:650px){.employee-table-toolbar{flex-wrap:wrap}.employee-search{order:3;width:100%;margin-left:0}.employee-search input{flex:1;min-width:0}.employee-total{margin-left:auto}}
.employee-data-table th[data-employee-sort]{cursor:pointer;user-select:none}.employee-data-table th[data-employee-sort]:hover{background:#d4e8ff}
.employee-data-table th{padding:8px 9px;line-height:20px;vertical-align:middle;color:#000;background:#e6f1ff;font-weight:700}.employee-data-table td{height:30px;padding:3px 9px;line-height:20px;vertical-align:middle}
.employee-status-left{display:inline-block;padding:2px 8px;border-radius:4px;background:#d9dde3;color:#000;line-height:18px}
.payroll-grid input.payroll-cell{border:0!important;border-radius:0}.payroll-grid input.payroll-cell.invalid{outline:1px solid #d33b3b;outline-offset:-1px}
.payroll-grid .payroll-remark{border:0!important;border-radius:0}
.payroll-grid .payroll-data-table tbody td:not(:last-child){border-right:1px solid #d9e0e8}
.payroll-grid .payroll-data-table tbody tr{height:20px}.payroll-grid .payroll-data-table tbody td{height:20px;padding:0 6px;line-height:18px}.payroll-grid input.payroll-cell{height:20px!important;min-height:20px!important;line-height:18px!important;padding:0 6px!important}.payroll-grid .payroll-remark{min-height:20px!important;line-height:18px!important;padding:2px 6px!important}.payroll-grid input.payroll-record-select{width:14px!important;min-width:14px!important;height:14px!important;min-height:14px!important;padding-top:0!important;padding-bottom:0!important}
.payroll-grid input.payroll-cell{width:110px!important;min-width:110px!important;max-width:110px!important;padding-left:2px!important;padding-right:2px!important}.payroll-grid td.payroll-computed{width:112px;min-width:112px!important}
.payroll-grid .payroll-data-table tbody td:nth-child(-n+5),.payroll-grid .payroll-data-table tbody td:last-child{text-align:center}.payroll-grid .payroll-data-table tbody td:has(.payroll-remark){text-align:left}
.period-status-closed{display:inline-block;padding:3px 8px;border-radius:5px;background:#d9363e;color:#fff;font-weight:700;line-height:18px}
.payroll-grid .payroll-data-table th{font-size:14px!important;color:#000!important;font-weight:700!important}
body .table.table td:last-child .btn,body .table.table td .row-actions .btn{font-weight:400!important;color:#1769c2!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;transform:none!important}body .table.table td:last-child .btn:hover:not(:disabled),body .table.table td .row-actions .btn:hover:not(:disabled),body .table.table td:last-child .btn:focus-visible:not(:disabled),body .table.table td .row-actions .btn:focus-visible:not(:disabled){color:#0d4f9f!important;background:#edf4ff!important;box-shadow:none!important;transform:none!important}body .table.table td:last-child .btn:disabled,body .table.table td .row-actions .btn:disabled{color:#9aa8bc!important;background:transparent!important;box-shadow:none!important}

.payroll-item-edit-row{align-items:end;margin-bottom:18px}
.payroll-item-meta{min-width:0}
.payroll-number-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.payroll-item-meta>[data-payroll-meta]{margin:0}

/* Configured payroll fields replace the former fixed employee columns. */
.configured-payroll-fields .payroll-grid .table th:first-child,.configured-payroll-fields .payroll-grid .table td:first-child{left:0!important;min-width:44px!important;width:44px!important;max-width:44px!important;text-align:center}
.configured-payroll-fields .payroll-grid .table td:nth-child(2),.configured-payroll-fields .payroll-grid .table td:nth-child(3){position:static!important;left:auto!important;min-width:75px;width:auto;max-width:none;background:inherit;z-index:auto}
.configured-payroll-fields .payroll-grid .table th:nth-child(2),.configured-payroll-fields .payroll-grid .table th:nth-child(3){position:sticky!important;top:0;left:auto!important;min-width:75px;width:auto;max-width:none;background:#eef4fc!important;z-index:3}
.payroll-grid input.payroll-text-cell,.payroll-grid select.payroll-logic-cell{height:20px!important;min-height:20px!important;line-height:18px!important;padding:0 2px!important;border:0!important;border-radius:0;background:transparent;color:#16325d;font:inherit;box-sizing:border-box}
.payroll-grid input.payroll-text-cell{width:150px;min-width:90px}
.payroll-grid select.payroll-logic-cell{width:58px;min-width:58px;text-align:center}
.payroll-grid .payroll-source-field{text-align:center;white-space:nowrap}
.payroll-grid td.payroll-character-field{text-align:center}
.payroll-grid td.payroll-number-field{text-align:right}
.payroll-grid .payroll-data-table tbody .payroll-text-cell,.payroll-grid .payroll-data-table tbody .payroll-logic-cell{background:transparent}
@media print{body.payroll-printing .payroll-data-table input.payroll-text-cell,body.payroll-printing .payroll-data-table select.payroll-logic-cell{display:none!important}body.payroll-printing .payroll-data-table td.payroll-character-field{text-align:center!important}body.payroll-printing .payroll-data-table td.payroll-number-field{text-align:right!important}}

.payroll-fixed-left-control{display:inline-flex;align-items:center;gap:3px;white-space:nowrap;color:#385273;font-size:12px}.payroll-fixed-left-control input{box-sizing:border-box;width:72px;height:22px;min-height:22px;padding:0 2px;border:1px solid #9fb3ce;border-radius:3px;background:#fff;color:#16325d;font-size:12px;text-align:center}.payroll-data-table td.payroll-fixed-left-cell{background:#fff!important}.payroll-data-table tbody tr:nth-child(even) td.payroll-fixed-left-cell{background:#eef6ff!important}.payroll-data-table tbody tr:has(.payroll-record-select:checked) td.payroll-fixed-left-cell{background:#dcecff!important}.payroll-data-table th.payroll-fixed-left-cell{background:#eef4fc!important}
.payroll-grid {
  width: 100%;
  max-width: 100%;
  overflow-x: scroll !important;
  scrollbar-color: #8ea5c2 #edf2f8;
  scrollbar-width: auto;
  overscroll-behavior-x: contain;
}

.payroll-grid .payroll-data-table {
  width: max-content !important;
  min-width: 100% !important;
  table-layout: auto;
}

.payroll-grid::-webkit-scrollbar {
  width: 14px;
  height: 14px;
}

.payroll-grid::-webkit-scrollbar-track {
  background: #edf2f8;
  border-radius: 7px;
}

.payroll-grid::-webkit-scrollbar-thumb {
  background: #8ea5c2;
  border: 3px solid #edf2f8;
  border-radius: 7px;
}
