.payroll-page{padding-bottom:4rem}.payroll-heading{margin-top:1.5rem}.payroll-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.payroll-kpis-three{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:1.5rem}.payroll-kpis .infra-card{display:flex;flex-direction:column;gap:.35rem;min-width:0}.payroll-kpi-label{color:var(--admin-muted);font:700 .72rem Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}.payroll-kpis strong{overflow-wrap:anywhere;color:var(--admin-text);font:700 clamp(1.2rem,2vw,1.75rem) Arial,sans-serif}.payroll-chart-card,.payroll-table-card{margin-top:1.25rem}.payroll-chart-card canvas{display:block;width:100%;height:310px}.payroll-legend{display:flex;gap:1.2rem;flex-wrap:wrap;color:var(--admin-muted);font:700 .78rem Arial,sans-serif;margin:.75rem 0}.payroll-legend span{display:inline-flex;align-items:center;gap:.4rem}.payroll-legend i{width:.65rem;height:.65rem;border-radius:50%;display:inline-block}.legend-devengo{background:#2454d6}.legend-deduccion{background:#e49824}.legend-liquido{background:#138a5b}.payroll-empty{display:flex;align-items:center;gap:1rem;padding:2rem 0;color:var(--admin-text)}.payroll-empty p{margin:.25rem 0;color:var(--admin-muted)}.payroll-table{--bs-table-color:var(--admin-text);--bs-table-bg:var(--admin-surface);--bs-table-border-color:var(--admin-border);margin:0}.payroll-table th{white-space:nowrap;color:var(--admin-muted);font:700 .72rem Arial,sans-serif;letter-spacing:.04em;text-transform:uppercase}.payroll-table td{vertical-align:middle}.payroll-period{color:#2454d6;font-weight:700}.payroll-net{font-weight:800;color:var(--admin-text)}.payroll-file-link{color:#2454d6;font-size:.84rem;font-weight:700;white-space:nowrap}.payroll-import{margin-top:1.25rem}.payroll-import form{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.55rem 1rem}.payroll-import label{grid-column:1/-1;color:var(--admin-muted);font-size:.82rem;font-weight:700}.payroll-import input[type=file]{width:100%;min-height:44px;padding:.45rem;border:1px solid var(--admin-border);border-radius:9px;background:var(--admin-surface);color:var(--admin-text)}.payroll-import input[type=file]::file-selector-button{margin-right:.6rem;padding:.5rem .7rem;border:0;border-radius:6px;background:rgba(36,84,214,.13);color:#2454d6;font-weight:700;cursor:pointer}.payroll-import small{grid-column:1/-1;color:var(--admin-muted)}.payroll-import button{grid-column:2;grid-row:2/4;border:0;border-radius:8px;background:#2454d6;color:#fff;padding:.75rem 1rem;font-weight:800;cursor:pointer}.payroll-import button:hover{background:#193eaa}.payroll-notice,.payroll-errors{margin:.75rem 0;padding:.9rem 1rem;border:1px solid var(--admin-border);border-radius:10px;background:var(--admin-surface);color:var(--admin-text)}.payroll-notice{border-left:4px solid #138a5b}.payroll-errors{border-left:4px solid #e49824}.payroll-errors summary,.payroll-raw summary{cursor:pointer;font-weight:700}.payroll-errors pre,.payroll-raw pre{max-height:360px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--admin-text);font: .82rem/1.5 Consolas,monospace}.payroll-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 1.5rem;margin:0}.payroll-fields div{padding:.85rem 0;border-top:1px solid var(--admin-border);min-width:0}.payroll-fields dt{color:var(--admin-muted);font:700 .72rem Arial,sans-serif;text-transform:uppercase;letter-spacing:.04em}.payroll-fields dd{margin:.3rem 0 0;color:var(--admin-text);overflow-wrap:anywhere}.payroll-fields small{display:block;color:var(--admin-muted)}.payroll-raw{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--admin-border);color:var(--admin-text)}
@media(max-width:900px){.payroll-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-heading{display:flex;align-items:end}}
@media(max-width:600px){.payroll-heading{display:block}.payroll-kpis,.payroll-kpis-three{grid-template-columns:1fr 1fr}.payroll-import form{grid-template-columns:1fr}.payroll-import button{grid-column:1;grid-row:auto;justify-self:start}.payroll-fields{grid-template-columns:1fr 1fr}.payroll-chart-card canvas{height:260px}.payroll-table{font-size:.82rem}}
.payroll-file-choices{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1rem}.payroll-file-choices label{display:grid;gap:.4rem;color:var(--admin-muted);font-size:.82rem;font-weight:700}.payroll-file-choices input[type=file]{grid-column:auto}.payroll-import small{grid-column:1/-1}.payroll-import button{grid-column:2;grid-row:2/4}.payroll-file-choices input:disabled{opacity:.55}@media(max-width:600px){.payroll-file-choices{grid-template-columns:1fr}.payroll-import button{grid-column:1;grid-row:auto}}

.payroll-chart-wrap{position:relative}.payroll-chart-card canvas{cursor:default;outline-offset:3px}.payroll-tooltip{position:absolute;z-index:2;max-width:min(360px,calc(100% - 16px));padding:.55rem .7rem;border:1px solid var(--admin-border);border-radius:8px;background:var(--admin-text);color:var(--admin-surface);box-shadow:0 8px 24px #10182830;font-size:.78rem;line-height:1.4;pointer-events:none}.payroll-modal{position:fixed;inset:0;z-index:1100;display:none;align-items:center;justify-content:center;padding:1rem}.payroll-modal.is-open{display:flex}.payroll-modal-backdrop{position:absolute;inset:0;background:#101828a6}.payroll-modal-dialog{position:relative;z-index:1;width:min(100%,1000px);max-height:min(90vh,900px);overflow:auto;padding:clamp(1.1rem,3vw,2rem);border:1px solid var(--admin-border);border-radius:16px;background:var(--admin-surface);color:var(--admin-text);box-shadow:0 24px 70px #10182840}.payroll-modal-dialog h2{margin:.3rem 2.5rem .35rem 0;font-size:1.6rem;text-transform:capitalize}.payroll-modal-dialog h3{margin:1.5rem 0 .6rem;font-size:1.05rem}.payroll-modal-close{position:absolute;top:.8rem;right:.9rem;width:2.5rem;height:2.5rem;border:1px solid var(--admin-border);border-radius:50%;background:var(--admin-surface);color:var(--admin-text);font-size:1.5rem;line-height:1;cursor:pointer}.payroll-modal-meta{margin:0 2rem 1rem 0;color:var(--admin-muted);font-size:.88rem;overflow-wrap:anywhere}.payroll-modal-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.payroll-modal-total{display:grid;gap:.4rem;padding:.9rem;border:1px solid var(--admin-border);border-radius:10px;background:color-mix(in srgb,var(--admin-surface) 92%,var(--admin-text))}.payroll-modal-total span{color:var(--admin-muted);font-size:.8rem}.payroll-modal-total strong{color:var(--admin-text);font-size:1.1rem}.payroll-concepts-table{min-width:720px}.payroll-modal-empty{color:var(--admin-muted)}body.payroll-modal-open{overflow:hidden}@media(max-width:600px){.payroll-modal{padding:.5rem}.payroll-modal-dialog{max-height:94vh;padding:1rem}.payroll-modal-totals{grid-template-columns:1fr}.payroll-modal-total{padding:.65rem}}
.payroll-heading-actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.payroll-analytics-note{margin:.2rem 0 1rem;padding:1rem 1.1rem;border:1px solid var(--admin-border);border-left:4px solid #2454d6;border-radius:10px;background:var(--admin-surface);color:var(--admin-text);box-shadow:var(--admin-shadow);font-size:.9rem;line-height:1.55}.payroll-analytics-note span{display:block;margin-top:.35rem;color:var(--admin-muted);font-size:.82rem}.payroll-analytics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.payroll-analytics-card{min-width:0;margin:0!important}.payroll-analytics-wide{grid-column:1/-1}.payroll-annual-chart-wrap{position:relative;min-width:0}.payroll-annual-chart{display:block;width:100%;height:280px;outline-offset:3px}.payroll-annual-tooltip{position:absolute;z-index:2;max-width:min(350px,calc(100% - 16px));padding:.55rem .7rem;border:1px solid var(--admin-border);border-radius:8px;background:var(--admin-text);color:var(--admin-surface);box-shadow:0 8px 24px #10182830;font-size:.78rem;line-height:1.4;pointer-events:none}.payroll-chart-footnote{margin:.5rem 0 0;color:var(--admin-muted);font-size:.8rem}.payroll-analytics-table-card{margin-top:1rem!important}.payroll-analytics-table-card .payroll-table{min-width:850px}.payroll-analytics-table-card small{display:block;color:var(--admin-muted);font-size:.75rem}
.payroll-analytics-warning{margin:0 0 1rem;padding:1rem 1.1rem;border:1px solid #df8b1c;border-left:4px solid #df8b1c;border-radius:10px;background:var(--admin-surface);color:var(--admin-text)}.payroll-analytics-warning summary{cursor:pointer;font-weight:800}.payroll-analytics-warning p{margin:.6rem 0;color:var(--admin-muted);font-size:.85rem}.payroll-analytics-warning .payroll-table{min-width:680px}
@media(max-width:760px){.payroll-analytics-grid{grid-template-columns:1fr}.payroll-analytics-wide{grid-column:auto}.payroll-heading-actions{margin-top:.9rem}.payroll-annual-chart{height:250px}}

