.hr-page{max-width:1150px}.hr-heading{margin-bottom:24px}.hr-heading h1{font-size:1.8rem;font-weight:700;margin:0 0 8px}.hr-description{max-width:72ch;color:#555;margin:0}.hr-scope{max-width:420px;margin-bottom:24px}.hr-section{padding:24px 0;border-top:1px solid #dedede}.hr-section h2{font-size:1.15rem;font-weight:700;margin:0 0 16px}.hr-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3,16px)}.hr-field{display:flex;flex-direction:column;gap:var(--field-gap,8px);min-width:0}.hr-field-wide{grid-column:1/-1}.hr-field .form-control,.hr-field .form-select{min-height:var(--control-height);font-size:var(--control-font-size)}.hr-field textarea.form-control{min-height:85px;resize:vertical}.hr-field .form-label,.hr-field legend{font-size:12px;font-weight:700;margin:0}.hr-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:var(--section-gap,24px)}.hr-actions button,.hr-toolbar button{min-height:var(--control-height)}.hr-hint{color:#555;max-width:72ch;margin:12px 0;font-size:.9rem}.hr-error{padding:12px 16px;background:#fff1f0;color:#9b2019;border:1px solid #d5a5a0;border-radius:8px}.hr-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:var(--space-3,16px);margin-bottom:var(--space-3,16px)}.hr-toolbar .hr-field{flex:1;min-width:150px}.hr-table-wrap{overflow-x:auto}.hr-table{width:100%;border-collapse:collapse;font-size:.925rem}.hr-table th,.hr-table td{padding:12px 10px;text-align:left;border-bottom:1px solid #ddd;vertical-align:top;overflow-wrap:anywhere}.hr-table th{font-weight:600;color:#444;background:#fafafa}.hr-number{text-align:right!important;font-variant-numeric:tabular-nums}.hr-status{display:inline-block;padding:3px 8px;border-radius:5px;background:#eee;font-size:.825rem;white-space:nowrap}.hr-status-approved,.hr-status-confirmed{background:#e6f1e8;color:#245a2c}.hr-status-rejected,.hr-status-voided{background:#f8e8e6;color:#8a2720}.hr-status-pending{background:#fff2d6;color:#6b4900}.hr-days{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:8px 0;font-size:12px;font-weight:700}.hr-days label{display:flex;align-items:center;gap:6px;min-height:40px}.hr-days input.form-check-input{width:16px;height:16px;min-height:0;flex:none;margin:0}.hr-summary{display:flex;flex-wrap:wrap;gap:24px;margin:20px 0}.hr-summary div{min-width:130px}.hr-summary dt{color:#555;font-size:.875rem}.hr-summary dd{font-size:1.35rem;font-weight:700;font-variant-numeric:tabular-nums;margin:4px 0}.hr-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.hr-tabs button[aria-selected=true]{background:#222;color:#fff}.hr-pagination{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2,12px);margin:var(--space-3,16px) 0 0;font-size:13px}.hr-detail{margin-top:24px;padding-top:24px;border-top:1px solid #ccc}.hr-pre{white-space:pre-wrap;overflow-wrap:anywhere}.hr-empty{padding:28px 0;color:#555}.hr-page :focus-visible{outline:3px solid #333;outline-offset:3px}.hr-page ::selection{background:#222;color:#fff}.hr-page input,.hr-page textarea{caret-color:#222}.hr-page .hr-table-wrap{scrollbar-color:#888 #eee;scrollbar-width:thin}.hr-employee{display:flex;gap:10px;align-items:center}.hr-employee img{width:36px;height:36px;border-radius:50%;object-fit:cover}.hr-full{width:100%}@media(max-width:700px){.hr-grid{grid-template-columns:1fr}.hr-heading h1{font-size:1.5rem}.hr-toolbar{align-items:stretch}.hr-toolbar .hr-field{min-width:130px}.hr-section{padding:20px 0}.hr-table th,.hr-table td{padding:10px 8px}.hr-actions .btn{flex:1}.hr-pagination{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){.hr-page *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.hr-nav-count{margin-left:auto;font-variant-numeric:tabular-nums;font-size:.8rem}.hr-payroll-paper{border:1px solid var(--line);padding:var(--panel-padding,24px);max-width:900px;margin:20px auto}.hr-payroll-paper>header{text-align:center;margin-bottom:28px}.hr-payroll-paper>header h3{font-size:1.35rem;margin-bottom:8px}.hr-payroll-paper>header p{margin:5px 0}.hr-payroll-metadata{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px}.hr-payroll-metadata dt{font-size:.8rem;color:#555}.hr-payroll-metadata dd{font-size:.95rem;margin:3px 0;overflow-wrap:anywhere}.hr-payroll-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:24px}.hr-payroll-columns h4{font-size:1rem}.hr-payroll-columns th{font-weight:500}.hr-payroll-columns td{width:135px}.hr-money-input{min-width:90px;text-align:right;font-variant-numeric:tabular-nums;min-height:var(--control-height)}.hr-payroll-paper fieldset{border:0;padding:0;min-width:0}.hr-page summary{cursor:pointer;font-weight:600;min-height:44px;padding:10px 0}@media(max-width:700px){.hr-payroll-paper{padding:16px}.hr-payroll-columns,.hr-payroll-metadata{grid-template-columns:1fr}.hr-payroll-columns{gap:20px}}

.hr-table th,.hr-table td{white-space:nowrap;overflow-wrap:normal}.hr-table td:first-child{min-width:100px;white-space:normal;overflow-wrap:anywhere}

/* Shared Bootstrap controls own borders, native affordances and field states. */
.hr-page .btn:not(.btn-sm):not(.btn-link){font-size:var(--control-font-size);min-height:var(--control-height)}
.hr-grid>.btn{align-self:end;justify-self:start}
.hr-toolbar>.btn{flex:none}
.hr-page .form-check-input:checked{background-color:var(--ink);border-color:var(--ink)}
.hr-page .form-check-input:focus{border-color:#222;box-shadow:0 0 0 .2rem rgba(0,0,0,.08)}
label.hr-days{min-height:40px}
.modal-body .hr-section h2{font-size:15px}
.modal-body .hr-hint{font-size:12px}
.hr-payroll-columns .hr-table{table-layout:fixed}
.hr-payroll-columns .hr-table th{white-space:normal;overflow-wrap:break-word}
.hr-payroll-columns section{min-width:0}
.hr-money-input{width:100%;font-size:var(--control-font-size)}
@media(max-width:800px),(pointer:coarse){
 .hr-field .form-control,.hr-field .form-select,.hr-page .hr-money-input{font-size:16px;min-height:44px}
 .hr-field .form-label,.hr-field legend,.hr-days{font-size:13px}
 .hr-days label,label.hr-days{min-height:44px}
 .hr-page .btn:not(.btn-link){min-height:44px}
 .hr-page .btn:not(.btn-sm):not(.btn-link){font-size:14px}
 .hr-toolbar>.btn{align-self:flex-end}
 .hr-payroll-columns td{width:120px}
}

.hr-section>form+form,.hr-section>form+.hr-table-wrap,.hr-section>form+[data-holiday-list]{margin-top:16px}
@media(max-width:800px),(pointer:coarse){.hr-days label{min-width:44px}}

.hr-bank-details{min-width:0;margin-top:24px}.hr-bank-details legend{float:none;width:auto;font-size:1rem;font-weight:700;margin-bottom:12px}

.hr-toolbar>.btn{align-self:flex-end}.hr-section h2{line-height:1.35}.hr-hint{line-height:1.6}.hr-status{font-size:11px;line-height:1.5;padding:4px 8px;border-radius:8px}.hr-bank-details{margin-top:var(--section-gap,24px)}

/* Employment owns its layout; shared HR controls keep their existing states. */
.hr-employment{padding-top:var(--panel-padding)}
.hr-employment [data-employment-selector]{max-width:420px;margin:0;padding-bottom:var(--space-4)}
.hr-employment [data-employment-detail]>.hr-section{padding:var(--space-4) 0}
.hr-employment [data-employment-detail]>.hr-section:last-child{padding-bottom:0}
.hr-employment .hr-section>h2{margin:0}
.hr-employment .hr-section>h2+form{margin-top:var(--space-3)}
.hr-employment .hr-section>.hr-hint{margin:var(--space-1) 0 var(--space-3)}
.hr-employment fieldset.hr-field .hr-days{display:grid;grid-template-columns:repeat(7,minmax(44px,1fr));gap:var(--space-1);margin:0;max-width:560px}
.hr-employment fieldset.hr-field .hr-days label{min-height:44px;gap:6px}
.hr-employment fieldset{min-width:0}
.hr-employment .employment-bank{margin:var(--space-4) 0 0;padding:var(--space-4) 0 0;border:0;border-top:1px solid var(--line)}
.hr-employment .employment-bank legend,.employment-salary-groups legend{float:none;width:auto;font-size:14px;font-weight:700;line-height:1.5;margin:0 0 var(--space-3)}
.hr-employment [data-hr-form=allocation-year]{width:min(100%,320px);flex-wrap:nowrap;gap:var(--space-2);margin-bottom:var(--space-3)}
.hr-employment [data-hr-form=allocation-year] .hr-field{flex:0 1 180px;min-width:0;max-width:180px}
.hr-employment [data-hr-form=allocation-year] .btn{align-self:end}
.hr-employment [data-hr-form=allocations]>h3{margin:0 0 var(--space-3);font-variant-numeric:tabular-nums;color:var(--muted)}
.employment-salary-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}
.employment-salary-groups fieldset{margin:0;padding:0;border:0}
.employment-salary-groups .hr-grid{grid-template-columns:minmax(0,1fr)}
.hr-employment [data-hr-form=document]+.hr-table-wrap{margin-top:var(--space-4)}
.hr-employment .hr-table{table-layout:fixed;font-size:13px}
.hr-employment .hr-table th,.hr-employment .hr-table td{white-space:normal;overflow-wrap:anywhere;padding:var(--space-2);vertical-align:middle}
.hr-employment .hr-table th:first-child{width:25%}.hr-employment .hr-table th:last-child{width:200px}
.employment-document-actions{display:flex;gap:var(--space-1);flex-wrap:wrap}
.hr-employment .hr-table .btn{white-space:nowrap;max-width:100%;margin:0}
.hr-employment .employment-empty{color:var(--muted);padding:var(--space-4) var(--space-2)}
@media(max-width:700px){
 .hr-employment fieldset.hr-field .hr-days{grid-template-columns:repeat(4,minmax(44px,1fr));max-width:none}
 .employment-salary-groups{grid-template-columns:minmax(0,1fr)}
 .employment-salary-groups fieldset+fieldset{padding-top:var(--space-4);border-top:1px solid var(--line)}
 .hr-employment .hr-table,.hr-employment .hr-table tbody{display:block}
 .hr-employment .hr-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .hr-employment .hr-table tbody tr{display:grid;gap:var(--space-2);padding:var(--space-3) 0;border-bottom:1px solid var(--line)}
 .hr-employment .hr-table td{display:block;min-width:0!important;width:auto;padding:0;border:0}
 .hr-employment .hr-table td:first-child{font-weight:600}
 .hr-employment .hr-table .btn{min-height:44px;min-width:88px}
}

/* Operational HR pages: filters, results, then the selected record. */
.hr-workspace .hr-body{padding-top:var(--panel-padding)}
.hr-workspace .hr-body>.hr-section:first-child{padding-top:0}
.hr-workspace .hr-body>.hr-hint:first-child{margin:0 0 var(--space-3)}
.hr-workspace .hr-section{padding:var(--space-4) 0}
.hr-workspace .hr-section>h2{margin:0 0 var(--space-3)}
.hr-workspace .hr-section>h3{line-height:1.4;overflow-wrap:anywhere}
.hr-workspace .hr-hint{margin:var(--space-1) 0 var(--space-3)}
.hr-workspace .hr-toolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:var(--space-3);align-items:end;margin:0 0 var(--space-4)}
.hr-workspace .hr-toolbar .hr-field{min-width:0;justify-content:flex-end}
.hr-workspace .hr-toolbar>.btn{align-self:end;justify-self:start;max-width:100%;height:auto;min-height:var(--control-height)}
.hr-workspace [data-hr-form=leave-filter]{grid-template-columns:repeat(4,minmax(0,1fr)) auto}
.hr-workspace [data-hr-form=payroll-generate]{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) auto}
.hr-workspace .hr-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);margin:var(--space-4) 0}
.hr-workspace .hr-summary div{min-width:0}
.hr-workspace .hr-summary dt{font-size:12px;line-height:1.5}
.hr-workspace .hr-summary dd{margin:var(--space-1) 0 0;overflow-wrap:anywhere}
.hr-workspace .hr-table-wrap{min-width:0;max-width:100%}
.hr-workspace .hr-table td,.hr-workspace .hr-table th{vertical-align:middle;padding:var(--space-2)}
.hr-workspace .hr-pagination{margin-top:var(--space-3);gap:var(--space-2)}
.hr-workspace .hr-detail{margin-top:var(--space-4);padding-top:var(--space-4);border-color:var(--line)}
.hr-workspace .hr-detail>h2{margin:0 0 var(--space-3);line-height:1.5;overflow-wrap:anywhere}
.hr-workspace .hr-detail>p{margin-bottom:var(--space-3);line-height:1.6;overflow-wrap:anywhere}
.hr-workspace [data-hr-form=leave-decision]{max-width:760px;margin-top:var(--space-4)}
.hr-workspace [data-hr-form=leave-decision] .hr-actions{align-items:stretch}
.hr-workspace [data-hr-form=leave-decision] .btn{height:auto}
.hr-balance-year{padding:var(--space-3) 0;border-top:1px solid var(--line)}
.hr-balance-year h4{font-size:14px;font-weight:700;margin:0 0 var(--space-3);font-variant-numeric:tabular-nums}
.hr-balance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);margin:0}
.hr-balance-grid div{min-width:0}.hr-balance-grid dt{font-size:12px;font-weight:600;color:var(--muted);overflow-wrap:anywhere}
.hr-balance-grid dd{font-size:18px;font-weight:700;margin:var(--space-1) 0 0;font-variant-numeric:tabular-nums}
.hr-balance-impact{grid-template-columns:repeat(2,minmax(0,1fr));padding-top:var(--space-3);margin-top:var(--space-3);border-top:1px solid var(--line)}
.hr-salary-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}
.hr-salary-group{min-width:0}.hr-salary-group h4{font-size:14px;line-height:1.5;font-weight:700;margin:0 0 var(--space-3)}
.hr-salary-group .hr-grid{grid-template-columns:minmax(0,1fr)}
.hr-workspace [data-payroll-preset]>.hr-section{padding:var(--space-3) 0 0;margin-top:var(--space-3)}
.hr-workspace [data-payroll-preset] summary{padding:var(--space-1) 0;margin-bottom:var(--space-1)}
.hr-workspace .hr-payroll-paper{margin:var(--space-4) 0;padding:var(--panel-padding);max-width:100%}
.hr-workspace .hr-payroll-paper>header{margin-bottom:var(--space-4)}
.hr-workspace .hr-payroll-metadata{margin-bottom:var(--space-4);gap:var(--space-3) var(--space-4)}
.hr-workspace .hr-payroll-columns{gap:var(--space-4)}
.hr-workspace .hr-payroll-columns h4{font-size:14px;line-height:1.5;margin-bottom:var(--space-3)}
.hr-workspace [data-payroll-detail]>.hr-actions{margin:var(--space-4) 0}
.hr-workspace [data-hr-form=payroll-confirm] .hr-days{font-weight:400;line-height:1.6;gap:var(--space-2);align-items:flex-start;flex-wrap:nowrap;margin:var(--space-3) 0}
.hr-workspace [data-hr-form=payroll-confirm] .form-check-input{margin-top:3px}
.hr-workspace [data-hr-form=timezone]{max-width:420px}
.hr-workspace [data-hr-form=company] #hr-currency{max-width:220px}
.hr-workspace .hr-bank-details{padding:0;margin-top:var(--space-4);border:0}
.hr-workspace .hr-bank-details legend{font-size:14px;line-height:1.5;margin-bottom:var(--space-3)}
.hr-workspace [data-hr-form=holiday-filter]{display:flex;flex-wrap:nowrap;align-items:end;gap:var(--space-2);width:min(100%,320px);margin-bottom:var(--space-4)}
.hr-workspace [data-hr-form=holiday-filter] .hr-field{min-width:0;flex:1;max-width:180px}
.hr-workspace [data-hr-form=holiday-filter]>.btn{flex:none;align-self:end}
.hr-workspace [data-hr-form=holiday]{padding-top:var(--space-4);border-top:1px solid var(--line)}
.hr-workspace [data-holiday-list]{margin-top:var(--space-4)}
.hr-workspace [data-holiday-list] .hr-table td:nth-child(2){white-space:normal;overflow-wrap:anywhere;min-width:150px}
@media(max-width:1100px){
 .hr-workspace .hr-toolbar,.hr-workspace [data-hr-form=leave-filter],.hr-workspace [data-hr-form=payroll-generate]{grid-template-columns:repeat(2,minmax(0,1fr))}
 .hr-workspace .hr-toolbar>.btn{height:auto;align-self:end}
}
@media(max-width:700px){
 .hr-workspace .hr-summary,.hr-balance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .hr-workspace .hr-summary>div:last-child{grid-column:1/-1}
 .hr-workspace .hr-payroll-paper .hr-summary{grid-template-columns:minmax(0,1fr)}
 .hr-salary-groups{grid-template-columns:minmax(0,1fr)}
 .hr-salary-group+.hr-salary-group{padding-top:var(--space-4);border-top:1px solid var(--line)}
 .hr-workspace [data-hr-form=leave-decision] .hr-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .hr-workspace .hr-pagination{display:grid;grid-template-columns:1fr 1fr}
 .hr-workspace .hr-pagination span{grid-column:1/-1;grid-row:1;text-align:center}
}
@media(max-width:550px){
 .hr-workspace .hr-toolbar,.hr-workspace [data-hr-form=leave-filter],.hr-workspace [data-hr-form=payroll-generate]{grid-template-columns:minmax(0,1fr)}
 .hr-workspace .hr-toolbar>.btn{width:100%;justify-self:stretch}
 .hr-workspace [data-hr-form=leave-decision] .hr-actions{grid-template-columns:minmax(0,1fr)}
 .hr-workspace [data-hr-form=payroll-confirm]>.btn{width:100%}
}
