/* v541 — unified payroll payslip. Scoped to avoid affecting other workspaces. */
.v541-payroll-filter{margin-bottom:14px;padding:14px 16px}
.v541-payroll-filter .filter-bar{display:grid;grid-template-columns:minmax(220px,2fr) minmax(145px,1fr) minmax(145px,1fr) auto;gap:12px;align-items:end}
.v541-payroll-filter .btn{min-height:44px;white-space:nowrap}
.v541-payroll-result{margin-top:14px}
.v541-payroll-layout{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(0,2fr);gap:16px;align-items:start}
.v541-payroll-editor{position:sticky;top:82px;padding:18px;overflow:hidden}
.v541-payroll-editor-head{padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--border,#d9e3ec)}
.v541-payroll-editor-head h3{margin:3px 0 4px;font-size:18px;color:#123e61}
.v541-payroll-editor-head small{display:block;line-height:1.9;color:#607387}
.v541-payroll-source{display:grid;gap:4px;padding:12px 14px;margin-bottom:14px;border:1px solid #cfe0ee;border-radius:12px;background:#f4f8fc}
.v541-payroll-source span,.v541-payroll-source small{color:#607387;font-size:12px}
.v541-payroll-source b{font-size:17px;color:#123e61}
.v541-payroll-editor .form-grid{grid-template-columns:1fr 1fr;gap:10px}
.v541-payroll-editor .form-grid .field.full{grid-column:1/-1}
.v541-payroll-editor textarea{min-height:72px}
.v541-payroll-editor .form-footer{display:flex;gap:8px;flex-wrap:wrap;padding-top:14px;margin-top:8px;border-top:1px solid var(--border,#d9e3ec)}
.v541-payroll-preview{padding:0;overflow:hidden;border:1px solid #d5e1eb;box-shadow:0 10px 28px rgba(18,62,97,.07)}
.v541-payroll-hero{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:18px 20px;background:linear-gradient(135deg,#123e61,#17527f);color:#fff}
.v541-payroll-brand{display:flex;align-items:center;gap:12px;min-width:0}
.v541-payroll-brand img{width:48px;height:48px;object-fit:contain;border-radius:10px;background:#fff;padding:4px;box-shadow:0 4px 14px rgba(0,0,0,.13)}
.v541-payroll-brand span{font-size:11px;opacity:.78}
.v541-payroll-brand h2{margin:1px 0 2px;font-size:19px;color:#fff}
.v541-payroll-brand small{opacity:.82}
.v541-payroll-method{min-width:210px;padding-right:16px;border-right:1px solid rgba(255,255,255,.2);display:grid;gap:2px}
.v541-payroll-method small,.v541-payroll-method span{font-size:11px;opacity:.78}
.v541-payroll-method b{font-size:14px}
.v541-payroll-identity{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-bottom:1px solid #dbe5ed;background:#fbfdff}
.v541-payroll-identity>div{padding:12px 15px;border-left:1px solid #e5edf3;border-bottom:1px solid #eef3f7;min-width:0}
.v541-payroll-identity>div:nth-child(3n){border-left:0}
.v541-payroll-identity small{display:block;color:#718296;font-size:11px;margin-bottom:3px}
.v541-payroll-identity b{display:block;color:#173b59;font-size:13px;overflow-wrap:anywhere}
.v541-payroll-kpis{display:grid;grid-template-columns:1fr 1fr 1.15fr;gap:10px;padding:14px 16px;background:#f6f9fc}
.v541-payroll-kpis article{padding:12px 14px;border:1px solid #dbe6ef;border-radius:12px;background:#fff;display:grid;gap:4px}
.v541-payroll-kpis article small{color:#6c7f92;font-size:11px}
.v541-payroll-kpis article b{color:#173b59;font-size:17px}
.v541-payroll-kpis article b em{font-style:normal;font-size:10px;font-weight:500;color:#7b8d9d}
.v541-payroll-kpis article.is-net{border-color:#aadcc8;background:#edf9f4}
.v541-payroll-kpis article.is-net b{color:#087a55;font-size:20px}
.v541-payroll-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0 16px 14px}
.v541-payroll-box{border:1px solid #dbe6ef;border-radius:12px;overflow:hidden;background:#fff}
.v541-payroll-box h4{margin:0;padding:10px 13px;background:#eef4f9;color:#173b59;font-size:13px;border-bottom:1px solid #dbe6ef}
.v541-payroll-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 13px;border-bottom:1px solid #edf2f6;font-size:12px}
.v541-payroll-line:last-child{border-bottom:0}
.v541-payroll-line span{color:#4f6477}
.v541-payroll-line b{color:#173b59;white-space:nowrap}
.v541-payroll-line b small{font-size:9px;color:#81909d}
.v541-payroll-line.is-total{background:#f6f9fc;font-weight:700}
.v541-payroll-context{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 16px 14px}
.v541-payroll-context>div{padding:11px 13px;border:1px solid #dce6ef;border-radius:11px;background:#fbfcfe;display:grid;gap:3px}
.v541-payroll-context span{font-size:11px;color:#718296}
.v541-payroll-context b{font-size:12px;color:#183f5e}
.v541-payroll-context small{font-size:10px;line-height:1.8;color:#718296}
.v541-payroll-status{display:flex;gap:10px;align-items:flex-start;margin:0 16px 14px;padding:10px 12px;border-radius:11px;border:1px solid #bde3d2;background:#f0faf6;color:#176746}
.v541-payroll-status.is-warning{border-color:#f0d29e;background:#fff8e9;color:#8a5a00}
.v541-payroll-status.is-error{border-color:#efb8b8;background:#fff2f2;color:#9a2525}
.v541-payroll-status>span{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:rgba(255,255,255,.65);flex:0 0 auto}
.v541-payroll-status .ui-icon{width:17px;height:17px}
.v541-payroll-status div{display:grid;gap:2px}
.v541-payroll-status b{font-size:12px}
.v541-payroll-status small{display:block;font-size:10px;line-height:1.75}
.v541-payroll-net{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;background:#123e61;color:#fff}
.v541-payroll-net span{font-size:13px}
.v541-payroll-net b{font-size:22px}
.v541-payroll-net b small{font-size:10px;opacity:.8}
.v541-payroll-detail-card{margin-top:14px;overflow:hidden}
.v541-payroll-detail-card .card-head{padding-bottom:11px;border-bottom:1px solid #e2eaf0}
.v541-payroll-detail-card .card-head h3{margin:2px 0 3px;font-size:16px;color:#173b59}
.v541-payroll-detail-card .card-head small{display:block;color:#718296;font-size:11px}
.v541-payroll-detail-card .table-wrap{margin-top:8px}
@media(max-width:1100px){.v541-payroll-layout{grid-template-columns:1fr}.v541-payroll-editor{position:static}.v541-payroll-editor .form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.v541-payroll-editor .form-grid .field.full{grid-column:1/-1}}
@media(max-width:780px){.v541-payroll-filter .filter-bar{grid-template-columns:1fr 1fr}.v541-payroll-filter .field:first-child{grid-column:1/-1}.v541-payroll-layout{gap:12px}.v541-payroll-editor .form-grid{grid-template-columns:1fr 1fr}.v541-payroll-hero{align-items:flex-start;flex-direction:column}.v541-payroll-method{border-right:0;padding-right:0;min-width:0}.v541-payroll-identity{grid-template-columns:1fr 1fr}.v541-payroll-identity>div:nth-child(3n){border-left:1px solid #e5edf3}.v541-payroll-identity>div:nth-child(2n){border-left:0}.v541-payroll-kpis,.v541-payroll-columns,.v541-payroll-context{grid-template-columns:1fr}.v541-payroll-net{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.v541-payroll-filter .filter-bar,.v541-payroll-editor .form-grid,.v541-payroll-identity{grid-template-columns:1fr}.v541-payroll-filter .field:first-child{grid-column:auto}.v541-payroll-identity>div{border-left:0!important}.v541-payroll-kpis{padding:12px}.v541-payroll-columns,.v541-payroll-context{padding-left:12px;padding-right:12px}.v541-payroll-editor{padding:14px}.v541-payroll-net b{font-size:19px}}
