/* Liquidar nómina. Los estilos se limitan al módulo y su comprobante. */
.payroll-root{color:var(--ink,#163350)}
.payroll-root .py-intro{max-width:870px;color:var(--muted,#61748a);font-size:14px}
.payroll-root .py-toolbar{display:flex;align-items:end;flex-wrap:wrap;gap:12px;padding:18px 20px;background:#fff;border:1px solid var(--line,#dbe5ef);border-radius:12px;margin-bottom:18px}
.payroll-root .py-toolbar .field{flex:1 1 145px;max-width:270px}
.payroll-root .py-toolbar .py-period-caption{flex:2 1 270px;font-size:12px;margin:0;color:var(--muted,#61748a)}
.payroll-root .py-tabs{display:flex;gap:6px;border-bottom:1px solid var(--line,#dbe5ef);overflow-x:auto;margin:0 0 20px;padding-bottom:8px}
.payroll-root .py-tab{white-space:nowrap;border:0;border-radius:8px;background:transparent;color:var(--muted,#61748a);padding:10px 14px;font-weight:650;font-size:13px;min-height:40px}
.payroll-root .py-tab[aria-selected=true]{background:var(--green-soft,#e9f4fc);color:var(--petromil-blue,#004f9f)}
.payroll-root .py-status{min-height:20px;font-size:13px;overflow-wrap:anywhere}
.payroll-root .py-status:empty{display:none}
.payroll-root .py-status[data-kind=error]{color:var(--danger,#a53535)}
.payroll-root .py-status[data-kind=success]{color:#1e654a}
.payroll-root .py-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px}
.payroll-root .py-stat{border:1px solid var(--line,#dbe5ef);border-radius:10px;background:#fff;padding:17px}
.payroll-root .py-stat span{display:block;font-size:12px;color:var(--muted,#61748a);margin-bottom:8px}
.payroll-root .py-stat strong{display:block;font-size:24px;line-height:1.2;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.payroll-root .py-stat small{display:block;font-size:11px;color:var(--muted,#61748a);margin-top:8px}
.payroll-root .py-panel{border:1px solid var(--line,#dbe5ef);background:#fff;border-radius:12px;margin-bottom:18px;overflow:hidden}
.payroll-root .py-panel-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:16px 20px;border-bottom:1px solid var(--line,#dbe5ef)}
.payroll-root .py-panel-head h2{font-size:17px;margin:0}
.payroll-root .py-panel-body{padding:20px}
.payroll-root .py-panel-body>:last-child{margin-bottom:0}
.payroll-root .py-table{overflow-x:auto}
.payroll-root .py-table table{font-size:12px}
.payroll-root .py-table th,.payroll-root .py-table td{padding:11px 16px}
.payroll-root .py-table th:first-child,.payroll-root .py-table td:first-child{padding-left:20px}
.payroll-root .py-table .py-wrap{white-space:normal;min-width:155px;max-width:340px}
.payroll-root .py-table .py-number{text-align:right;font-variant-numeric:tabular-nums}
.payroll-root .py-empty{padding:28px 20px;color:var(--muted,#61748a);font-size:13px;text-align:center}
.payroll-root .py-note{font-size:12px;color:var(--muted,#61748a);margin-bottom:13px;line-height:1.6}
.payroll-root .py-note:last-child{margin-bottom:0}
.payroll-root .py-message{background:#f0f6fc;border:1px solid #d5e5f4;border-left:3px solid #004f9f;border-radius:8px;padding:13px 15px;margin-bottom:16px;font-size:13px}
.payroll-root .py-message.warning{background:#fff8dc;border-color:#ead9a9;border-left-color:#a78314;color:#775800}
.payroll-root .py-message.error{background:#fff1ef;border-color:#eecbc5;border-left-color:#a53535;color:#8c3030}
.payroll-root .py-message p{margin:0}
.payroll-root .py-message ul{margin:8px 0 0;padding-left:20px}
.payroll-root .py-message li+li{margin-top:5px}
.payroll-root .py-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.payroll-root .py-wide{grid-column:1/-1}
.payroll-root .py-form-grid input,.payroll-root .py-form-grid select,.payroll-root .py-form-grid textarea{min-height:39px;font-size:13px}
.payroll-root .py-form-grid textarea{min-height:72px}
.payroll-root .py-form-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:17px;padding-top:16px;border-top:1px solid var(--line,#dbe5ef)}
.payroll-root .py-form-actions .py-note{flex:1 1 300px;margin:0}
.payroll-root .py-checks{display:grid;gap:11px;margin:18px 0}
.payroll-root .py-table input[type=time]{min-width:115px;width:115px}
.payroll-root .py-table details{padding:4px;border:0;min-width:120px}
.payroll-root form>details{margin:18px 0;padding:14px 0}
.payroll-root form>details>.py-form-grid{margin-top:16px}
.payroll-root form>h3{margin:18px 0 8px}
.payroll-root form>.py-inline{margin-top:14px}
.payroll-root .py-inline{display:flex;align-items:center;gap:9px;font-size:13px;line-height:1.5}
.payroll-root .py-inline input[type=checkbox]{width:18px;height:18px;min-height:18px;flex-shrink:0;accent-color:#004f9f;padding:0}
.payroll-root .py-roster{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.8fr);gap:18px;align-items:start}
.payroll-root .py-roster-list{border:1px solid var(--line,#dbe5ef);border-radius:9px;max-height:515px;overflow-y:auto;background:#fff}
.payroll-root .py-person{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid #e8eef4}
.payroll-root .py-person:last-child{border-bottom:0}
.payroll-root .py-person input{width:17px;height:17px;min-height:17px;padding:0;flex-shrink:0}
.payroll-root .py-person button{border:0;padding:0;text-align:left;background:none;color:var(--ink,#163350);font-size:13px;flex:1}
.payroll-root .py-person button strong{display:block;font-size:13px}
.payroll-root .py-person button span{display:block;font-size:11px;color:var(--muted,#61748a);margin-top:3px}
.payroll-root .py-person.is-active{background:#edf6fe;box-shadow:inset 3px 0 #004f9f}
.payroll-root .py-count{font-size:12px;font-weight:650;color:#004f9f}
.payroll-root .py-pill{display:inline-block;padding:3px 8px;border-radius:20px;background:#eef3f7;color:#52667f;font-size:10px;font-weight:700;white-space:nowrap;line-height:1.5}
.payroll-root .py-pill.good{background:#e6f4ed;color:#25664a}
.payroll-root .py-pill.warn{background:#fff4cf;color:#7e6112}
.payroll-root .py-pill.bad{background:#ffefeb;color:#9c3b30}
.payroll-root .py-sub{display:block;font-size:11px;color:var(--muted,#61748a);margin-top:3px;font-weight:400}
.payroll-root .py-checklist{list-style:none;padding:0;margin:0;display:grid;gap:10px;font-size:13px}
.payroll-root .py-checklist li{display:flex;gap:10px;align-items:flex-start}
.payroll-root .py-check-icon{font-weight:750;color:#004f9f;width:17px;flex-shrink:0}
.payroll-root .py-source{display:flex;gap:8px;flex-wrap:wrap;align-items:center;color:var(--muted,#61748a);font-size:11px;margin:14px 0 0}
.payroll-root .py-calendar-legend{display:flex;gap:8px 18px;flex-wrap:wrap;font-size:11px;margin-bottom:15px;color:var(--muted,#61748a)}
.payroll-root .py-calendar-legend strong{color:#004f9f}
.payroll-root .py-calendar-scroll{overflow:auto;max-height:640px;position:relative;isolation:isolate;overscroll-behavior:contain}
.payroll-root .py-calendar{border-collapse:separate;border-spacing:0;font-size:11px;min-width:max-content}
.payroll-root .py-calendar th,.payroll-root .py-calendar td{padding:7px 5px;border-bottom:1px solid #e7edf3;border-right:1px solid #e7edf3;min-width:74px;text-align:center;background:#fff}
.payroll-root .py-calendar thead th{position:sticky;top:0;z-index:2;background:#eef5fb}
.payroll-root .py-calendar th:first-child{position:sticky;left:0;min-width:205px;max-width:205px;text-align:left;padding-left:16px;background:#f7fafd;z-index:2;white-space:normal}
.payroll-root .py-calendar thead th:first-child{z-index:3}
.payroll-root .py-calendar th strong{font-size:11px;display:block;max-width:185px}
.payroll-root .py-calendar th small{display:block;font-size:9px;font-weight:400;color:var(--muted,#61748a);margin-top:3px}
.payroll-root .py-calendar td select{padding:5px 2px;min-height:33px;font-size:11px;border-radius:5px;min-width:63px;width:63px;background:transparent;border-color:#cbd9e5}
.payroll-root .py-calendar .py-calendar-sunday{background:#e6eef9}
.payroll-root .py-calendar .py-calendar-rest{background:#e7f5ed}
.payroll-root .py-calendar .py-calendar-unknown{background:#fff8dc}
.payroll-root .py-calendar .py-calendar-unknown select{border-style:dashed}
.payroll-root .py-model{padding:16px 0;border-bottom:1px solid var(--line,#dbe5ef)}
.payroll-root .py-model:first-child{padding-top:0}
.payroll-root .py-model .py-form-grid{margin-bottom:12px}
.payroll-root .py-review-stale .py-table{opacity:.6}
.payroll-root .py-review-stale .py-pill{background:#eef1f5;color:#61748a}
.payroll-root .py-review-stale .py-panel-head{background:#f5f6f8}
.payroll-root .py-detail-header{display:flex;gap:12px;justify-content:space-between;align-items:start;flex-wrap:wrap;margin-bottom:17px}
.payroll-root .py-detail-header h2{margin:0 0 6px;font-size:20px}
.payroll-root .py-employee-total{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
.payroll-root .py-employee-total>div{padding:14px;background:#f4f8fc;border-radius:8px}
.payroll-root .py-employee-total span{display:block;font-size:11px;color:var(--muted,#61748a)}
.payroll-root .py-employee-total strong{display:block;font-size:20px;margin-top:5px;font-variant-numeric:tabular-nums}
.payroll-root details{border-top:1px solid var(--line,#dbe5ef);padding:14px 20px}
.payroll-root summary{cursor:pointer;font-size:13px;font-weight:650;color:#004f9f}
.payroll-root details .py-note{margin-top:10px}
.payroll-print-document{display:none}
@media print{.payroll-root>.payroll-print-document .py-print-person{break-inside:auto}.payroll-root>.payroll-print-document table{width:100%;table-layout:auto}.payroll-root>.payroll-print-document .py-wrap{min-width:0;max-width:none;overflow-wrap:anywhere}.payroll-root>.payroll-print-document tr{break-inside:avoid}.payroll-root>.payroll-print-document h2,.payroll-root>.payroll-print-document h3{break-after:avoid}}
@media(max-width:1050px){.payroll-root .py-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-root .py-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-root .py-roster{grid-template-columns:minmax(230px,.9fr) minmax(0,1.3fr)}}
@media(max-width:760px){.payroll-root .py-toolbar{padding:15px}.payroll-root .py-toolbar .field{max-width:none}.payroll-root .py-roster{grid-template-columns:1fr}.payroll-root .py-roster-list{max-height:310px}.payroll-root .py-panel-body{padding:16px}.payroll-root .py-panel-head{padding:15px 16px}.payroll-root .py-form-grid{grid-template-columns:1fr}.payroll-root .py-wide{grid-column:auto}.payroll-root .py-grid{gap:9px}.payroll-root .py-stat{padding:14px}.payroll-root .py-stat strong{font-size:22px}.payroll-root .py-employee-total{grid-template-columns:1fr}.payroll-root .py-employee-total>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.payroll-root .py-employee-total strong{margin:0;font-size:18px}.payroll-root .py-tabs{margin-inline:-2px}.payroll-root .py-tab{padding:9px 11px}}
@media print{.payroll-root>*{display:none!important}.payroll-root>.payroll-print-document{display:block!important}.payroll-print-document{font-size:9pt;color:#111}.payroll-print-document h1{font-size:20pt}.payroll-print-document h2{font-size:13pt;margin-top:18pt}.payroll-print-document table{font-size:8pt}.payroll-print-document th,.payroll-print-document td{padding:6px 8px;white-space:normal}.payroll-print-document .py-number{text-align:right}.payroll-print-document .py-receipt-meta{font-size:9pt}.payroll-print-document .py-print-person{break-inside:avoid;border-top:1px solid #999;margin-top:12pt;padding-top:8pt}.payroll-print-document .py-print-note{font-size:8pt}.payroll-print-document .py-table{overflow:visible}.payroll-print-document .py-pill{background:none;color:#111;padding:0}.payroll-print-document .button{display:none!important}body:not([data-payroll-print=true]) .payroll-root>.payroll-print-document{display:none!important}}
