
.payroll-page{box-sizing:border-box;width:100%;max-width:720px;margin:0 auto;padding:0 0 8px;min-width:0;display:flex;flex-direction:column;gap:16px;container:payroll/inline-size}
.payroll-page.is-embedded{max-width:none;padding:0}
.payroll-page *,.payroll-page *::before,.payroll-page *::after{box-sizing:border-box}
.payroll-page p{margin:0;line-height:1.5}
.payroll-page :is(button,summary):focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--tw-color-ring) 50%,transparent)}
.payroll-page.payroll-board{gap:16px}
.payroll-page .payroll-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:16px;min-width:0}
@container payroll (max-width:640px){.payroll-page .payroll-grid{grid-template-columns:minmax(0,1fr)}}
.workspace .payroll-panel:is(.payroll-p-pay,.payroll-p-entries){grid-column:1/-1}
.workspace .staff-person #employee-card-panel:has(>.payroll-board){padding:0;border:0;border-radius:0;background:none;box-shadow:none}
.workspace .staff-person #employee-card-panel:has(>.payroll-board)>.staff-indicators{margin:16px 0 0;padding:18px 20px;border:1px solid var(--line-2);border-radius:12px;background:var(--surface);box-shadow:var(--elevation-surface)}
.workspace .staff-person #employee-card-panel:has(>.payroll-board)>.staff-indicators .cabinet-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.workspace .payroll-panel.payroll-page{display:flex;flex-direction:column;gap:0;min-width:0;max-width:none;margin:0;padding:18px 20px}
.workspace .payroll-panel .payroll-panel-head{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:10px;min-width:0;min-height:36px;margin:0 0 12px}
.workspace .payroll-panel .payroll-panel-head h2{display:flex;align-items:center;gap:10px;flex:0 1 auto;min-width:0;margin:0;font-size:16px;font-weight:600;line-height:1.4;color:var(--ink)}
.workspace .payroll-panel .payroll-panel-head h2>svg{flex:none;width:20px;height:20px;color:var(--ink)}
.payroll-page .payroll-head-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:0 12px;min-width:0;margin-left:auto}
.payroll-page .payroll-period{display:flex;align-items:center;gap:4px;margin:0;min-width:0}
.payroll-page .payroll-quiet{display:flex;align-items:center;margin:0;min-width:0}
.payroll-page .payroll-period .vippi-select-field{width:auto}
.payroll-page .payroll-period .vippi-select-trigger{width:auto;height:36px;min-height:36px;gap:4px;padding:0 4px;border:0;border-radius:6px;background:none;box-shadow:none;color:var(--muted);font-size:14px;font-weight:400;line-height:1.4;cursor:pointer;transition:color var(--duration-fast) var(--ease-out)}
.payroll-page .payroll-period .vippi-select-trigger>svg{flex:none;width:16px;height:16px;color:currentColor}
.payroll-page .payroll-period .vippi-select-trigger:hover,.payroll-page .payroll-period .vippi-select-trigger[aria-expanded=true]{color:var(--ink);background:none;border:0}
.payroll-page .payroll-period .vippi-select-trigger:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--tw-color-ring) 50%,transparent)}
.payroll-page .payroll-closing{display:inline-flex;align-items:center;gap:6px;height:36px;min-height:36px;margin:0;padding:0 4px;border:0;border-radius:6px;background:none;box-shadow:none;color:var(--muted);font:inherit;font-size:14px;font-weight:400;line-height:1.4;white-space:nowrap}
.payroll-page .payroll-closing svg{flex:none;width:16px;height:16px}
.payroll-page button.payroll-closing{cursor:pointer;transition:color var(--duration-fast) var(--ease-out)}
.payroll-page button.payroll-closing:hover{color:var(--ink)}
.payroll-page .payroll-closing.is-overdue{color:var(--tw-color-destructive)}
.workspace .payroll-p-pay .payroll-panel-head{margin:0}
.payroll-page .payroll-amount{flex:none;margin:0 0 0 4px;font-size:22px;font-weight:700;line-height:1.2;letter-spacing:0;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap}
.payroll-page .payroll-amount.is-neg{color:var(--tw-color-destructive)}
.payroll-page .payroll-badge{display:inline-flex;align-items:center;flex:none;height:22px;padding:0 8px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:12px;font-weight:500;line-height:1;white-space:nowrap;font-variant-numeric:tabular-nums}
.payroll-page .payroll-lines{--ws-cols:minmax(0,1fr) max-content}
.payroll-page .payroll-lines{display:flex;flex-direction:column;flex:1 0 auto}
.payroll-page .payroll-lines>.ws-rows{flex:1 0 auto}
.payroll-page .payroll-lines .ws-row{font-size:14px}
.payroll-page .payroll-lines .ws-cell:first-child{gap:10px}
.payroll-page .payroll-lines .ws-num{font-weight:500}
.payroll-page .payroll-line-icon{display:inline-flex;flex:none;color:var(--muted)}
.payroll-page .payroll-line-icon svg{width:16px;height:16px}
.payroll-page .payroll-line-note{flex:none;font-size:12px;color:var(--muted)}
.payroll-page .payroll-kv:is(.is-zero,.is-missing) .ws-num{font-weight:400;color:var(--muted)}
.payroll-page .payroll-kv.is-zero .ws-cell:first-child{color:var(--muted)}
.payroll-page .payroll-lines .is-minus{color:var(--tw-color-destructive)}
.payroll-page .payroll-count{flex:none;font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}
.payroll-page .payroll-head-icon{display:grid;place-items:center;flex:none;width:36px;height:36px;min-height:36px;margin:0;padding:0;border:0;border-radius:8px;background:none;color:var(--muted);cursor:pointer;transition:color var(--duration-fast) var(--ease-out)}
.payroll-page .payroll-head-icon:hover{color:var(--ink)}
.payroll-page .payroll-head-icon svg{width:16px;height:16px}
.payroll-page .payroll-head-action{display:inline-flex;align-items:center;gap:4px;flex:none;height:36px;min-height:36px;margin:0;padding:0 4px 0 8px;border:0;border-radius:8px;background:none;color:var(--accent-ink);font:inherit;font-size:14px;font-weight:500;cursor:pointer;transition:color var(--duration-fast) var(--ease-out)}
.payroll-page .payroll-head-action:hover{color:var(--ink)}
.payroll-page .payroll-head-action svg{width:16px;height:16px}
.workspace .payroll-p-entries .payroll-head-tools{gap:4px}
.payroll-page .payroll-entries{--ws-cols:minmax(0,1fr) 7rem 10.5rem 9.5rem}
.payroll-page .payroll-entries.no-state{--ws-cols:minmax(0,1fr) 7rem 10.5rem}
.payroll-page .payroll-entries .ws-row{font-size:14px}
.payroll-page .payroll-c-main strong{flex:0 1 auto;font-weight:500;color:var(--ink)}
.payroll-page .payroll-note{flex:1 1 0;color:var(--muted)}
.payroll-page .payroll-c-date{color:var(--muted)}
.payroll-page .payroll-c-amount{font-weight:500}
.payroll-page .payroll-entries.no-state .payroll-c-state{display:none}
.payroll-page .payroll-row.is-void .ws-cell:not(.payroll-c-state){opacity:.55}
.payroll-page .payroll-row.is-void .payroll-c-amount span{text-decoration:line-through}
:is(.payroll-page,.payroll-sheet) .payroll-state.is-confirmed{color:var(--tw-color-success)}
:is(.payroll-page,.payroll-sheet) .payroll-state.is-pending{color:var(--tw-color-warning)}
:is(.payroll-page,.payroll-sheet) .payroll-state.is-void{color:var(--muted)}
@media(min-width:701px){@container payroll (max-width:560px){
 .payroll-page .payroll-entries{--ws-cols:minmax(0,1fr) 10.5rem 9.5rem}
 .payroll-page .payroll-entries.no-state{--ws-cols:minmax(0,1fr) 10.5rem}
 .payroll-page .payroll-entries :is(.ws-head>span:nth-child(2),.payroll-c-date){display:none}
 .payroll-page .payroll-note{display:none}
}}
.payroll-page .payroll-pages{display:flex;align-items:center;justify-content:flex-end;gap:4px;margin:12px 0 0;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.payroll-page .payroll-pages button{display:grid;place-items:center;width:36px;height:36px;min-height:36px;padding:0;border:0;border-radius:8px;background:none;color:var(--muted);cursor:pointer}
.payroll-page .payroll-pages button:hover:not(:disabled){color:var(--ink)}
.payroll-page .payroll-pages button:disabled{opacity:.35;cursor:default}
.payroll-page .payroll-status{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.payroll-muted{color:var(--muted);font-size:13px;line-height:1.5;margin:0}
.payroll-page .payroll-error,.payroll-sheet .payroll-error{margin:0;color:var(--tw-color-destructive);font-size:14px;line-height:1.5}
.payroll-sheet .payroll-error:empty{display:none}
.payroll-empty{margin:0;padding:4px 0;color:var(--muted);font-size:14px;line-height:1.5}
.payroll-page .btn{min-height:44px;min-width:44px;flex-shrink:0}
.payroll-page .payroll-search{box-sizing:border-box;width:100%;min-width:0;min-height:44px;font-size:16px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:10px 12px}
.payroll-team{margin:0;border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:0 12px}.payroll-team summary{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;font-size:14px;list-style:none;overflow-wrap:anywhere}
.payroll-team summary::-webkit-details-marker{display:none}.payroll-team[open] summary .ui-icon{transform:rotate(180deg)}.payroll-team summary .ui-icon{flex-shrink:0;transition:transform .18s ease}.payroll-team-list{margin-top:8px}.payroll-team[open]{padding-bottom:12px}
.payroll-person{display:flex;align-items:center;gap:12px;width:100%;min-height:54px;padding:12px 4px;border:0;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.payroll-person>span{flex:1;min-width:0}
.payroll-person strong{display:block;font-size:14px;overflow-wrap:anywhere}.payroll-person small{display:block;color:var(--muted);font-size:12px;margin-top:3px}.payroll-person[aria-current=true]{color:var(--accent-ink)}
.payroll-identity{margin:0}.payroll-selected{margin:0;font-size:18px!important;overflow-wrap:anywhere}.payroll-identity>span{display:block;margin-top:4px;color:var(--muted);font-size:13px}
.payroll-sheet .sheet-body{display:flex;flex-direction:column;gap:16px}
.payroll-field{display:flex;flex-direction:column;gap:7px;min-width:0;font-size:13px;color:var(--muted)}
.payroll-field input,.payroll-field select,.payroll-field textarea{box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-height:48px;padding:12px;font-family:inherit;font-size:16px;line-height:1.4;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}.payroll-field textarea{resize:vertical;min-height:80px}
.payroll-field .calendar-filter input{min-height:0;padding:0;border:0}
.payroll-check{display:flex;align-items:flex-start;gap:10px;font-size:14px;color:var(--ink);line-height:1.5;min-height:44px}.payroll-check input{width:20px;min-width:20px;height:20px;min-height:20px;flex:0 0 20px;padding:0;margin:2px 0 0}.payroll-check>span{flex:1;min-width:0;overflow-wrap:anywhere}
.payroll-sheet .sheet-actions{gap:10px}
.payroll-sheet .sheet-actions .btn svg{width:16px;height:16px}
.payroll-sheet :is(button,input,select,textarea):focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.payroll-sheet .payroll-facts{display:flex;flex-direction:column;gap:12px;margin:0}
.payroll-sheet .payroll-facts>div{display:grid;grid-template-columns:7.5rem minmax(0,1fr);gap:12px;align-items:baseline}
.payroll-sheet .payroll-facts dt{font-size:13px;color:var(--muted)}
.payroll-sheet .payroll-facts dd{margin:0;font-size:14px;line-height:1.5;color:var(--ink);overflow-wrap:anywhere;white-space:pre-line}
.payroll-sheet .payroll-facts dd b{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}
.payroll-history-list{display:flex;flex-direction:column;gap:12px;margin:0;padding:0;list-style:none}
.payroll-history-list li{display:flex;justify-content:space-between;gap:12px;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.payroll-history-list time{flex:none;color:var(--muted);font-variant-numeric:tabular-nums}
@media(max-width:700px){
 .payroll-page .payroll-period .vippi-select-trigger,.payroll-page .payroll-closing,.payroll-page .payroll-head-action{height:44px;min-height:44px}
 .payroll-page :is(.payroll-head-icon,.payroll-pages button){width:44px;height:44px;min-height:44px}
 .workspace .payroll-panel.payroll-page{padding:16px}
 .workspace .staff-person #employee-card-panel:has(>.payroll-board)>.staff-indicators{padding:16px}
 .payroll-page .payroll-grid{gap:12px}
 .workspace .payroll-p-pay .payroll-head-tools{flex:1 1 100%;justify-content:space-between;margin:0 0 0 -4px}
 .workspace .payroll-p-pay .payroll-panel-head{flex-wrap:wrap;row-gap:4px}
 .workspace .payroll-p-pay .payroll-amount{margin-left:auto;font-size:20px}
 .payroll-page .payroll-lines .ws-row{height:48px;padding:0!important}
 .payroll-page .payroll-lines .ws-cell{white-space:nowrap;padding:0}
 .payroll-page .payroll-lines .ws-cell.ws-num{padding-left:12px}
 .payroll-page .payroll-entries .ws-rows{display:flex;flex-direction:column;gap:8px}
 .payroll-page .payroll-entries .ws-row.payroll-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main amount" "date state";align-items:baseline;column-gap:12px;row-gap:4px;min-height:48px;padding:12px 16px!important;border-radius:12px;background:var(--surface-2)}
 .payroll-page .payroll-entries .ws-row.payroll-row:hover{background:var(--mut-soft)}
 .payroll-page .payroll-row .ws-cell{padding:0;white-space:nowrap}
 .payroll-page .payroll-row .payroll-c-main{grid-area:main;font-size:15px}
 .payroll-page .payroll-row .payroll-note{display:none}
 .payroll-page .payroll-row .payroll-c-amount{grid-area:amount;font-size:15px;font-weight:600}
 .payroll-page .payroll-row .payroll-c-date{display:flex;grid-area:date;font-size:13px}
 .payroll-page .payroll-row .payroll-c-state{grid-area:state;font-size:13px}
 .payroll-sheet .payroll-facts>div{grid-template-columns:6.5rem minmax(0,1fr)}
}
@media(max-width:480px){.payroll-page .payroll-closing-word{display:none}.payroll-page .payroll-head-action{width:44px;justify-content:center;padding:0}.payroll-page .payroll-head-action>span{display:none}}
@media(prefers-reduced-motion:reduce){.payroll-team summary .ui-icon{transition:none}}
.workspace .payroll-p-pay .payroll-panel-head{flex-wrap:wrap;row-gap:10px}
.workspace .payroll-p-pay .payroll-panel-head h2{flex:0 1 auto;max-width:100%}
.workspace .payroll-p-pay .panel-title{white-space:normal;overflow:visible;text-overflow:clip}
.payroll-quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:4px}
.payroll-quick{display:inline-flex;align-items:center;justify-content:flex-start;gap:8px;min-height:44px;padding:10px 14px;border:0;border-radius:10px;background:var(--surface-2);color:var(--ink);font:inherit;font-size:14px;font-weight:550;line-height:1.4;cursor:pointer}
.payroll-quick span{white-space:normal;text-align:left}
.payroll-quick svg{flex:none;width:18px;height:18px}
.payroll-quick.is-primary{background:var(--accent-soft);color:var(--accent-ink,var(--ink))}
.payroll-quick:hover{background:var(--mut-soft)}
.payroll-quick:disabled{opacity:.45;cursor:default}
.payroll-future-note{margin-top:10px!important}
.payroll-page .payroll-lines .ws-cell.ws-num{gap:8px}
.payroll-line-add{display:inline-grid;place-items:center;flex:none;width:24px;height:24px;color:var(--accent-ink,var(--muted))}
.payroll-lines .is-editable:hover .payroll-line-add{background:var(--accent-soft);border-radius:6px}
.payroll-entry-context{display:flex;align-items:center;gap:12px;min-width:0}
.payroll-entry-context>div{display:flex;flex-direction:column;gap:4px;min-width:0}
.payroll-entry-context strong{font-size:16px;color:var(--ink);line-height:1.4;overflow-wrap:anywhere}
.payroll-entry-context span:not(.payroll-entry-face){font-size:13px;color:var(--muted);line-height:1.4}
.payroll-entry-context .re-face.payroll-entry-face{flex:none;width:40px;height:40px;border-radius:50%;font-size:14px}
.payroll-effect{display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:12px;background:var(--surface-2);font-variant-numeric:tabular-nums}
.payroll-effect>div{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 12px}
.payroll-effect span{color:var(--muted);font-size:13px;line-height:1.4}
.payroll-effect b{color:var(--ink);font-size:16px;line-height:1.4}
.payroll-effect>div:nth-child(2) b{font-size:20px}
.payroll-effect p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
@media(max-width:700px){
 .payroll-quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .payroll-quick{padding:10px;align-items:center}
 .workspace .payroll-p-pay .payroll-panel-head h2{flex:1 1 100%}
 .workspace .payroll-p-pay .payroll-amount{margin-left:0;font-size:26px;line-height:1.35}
 .payroll-page .payroll-lines .ws-cell.ws-num{padding-left:6px;gap:4px}
 .payroll-effect>div{align-items:flex-start}
}
.payroll-page .payroll-step{display:grid;place-items:center;flex:none;width:44px;height:44px;min-height:44px;margin:0;padding:0;border:0;border-radius:8px;background:none;box-shadow:none;color:var(--muted);cursor:pointer}
.payroll-page .payroll-step:hover{background:var(--mut-soft);color:var(--ink)}
.payroll-page .payroll-step:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--tw-color-ring) 50%,transparent)}
.payroll-page .payroll-chips{margin:0 0 8px}
.payroll-page .payroll-paynext.is-on{color:var(--accent,var(--text));font-weight:600}
.payroll-undo{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;padding:8px 8px 8px 12px;border-radius:10px;background:var(--surface-2);color:var(--ink);font-size:14px;line-height:1.4}
.payroll-undo span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.payroll-undo .btn{flex:none}
.payroll-sheet .sheet-actions .btn.payroll-del{color:var(--tw-color-destructive)}
