:root{--space-8:8px;--space-12:12px;--space-16:16px;--space-24:24px;--text-body:13px;--text-meta:12px;--button-24:24px;--button-32:32px;--button-36:36px;--button-40:40px;--button-44:44px;--control-height:36px;--control-small:32px;--control-radius:6px;--field-gap:16px;--col-index:36px;--col-name:124px;--col-role:80px;--col-contract:136px;--col-hours:76px;--col-money:120px;--col-icon:36px;--col-date:152px;--col-status:116px;--col-mode:164px;--col-actions:136px;--col-clock:108px;--col-computed-hours:80px;--col-reason:164px;--col-note:196px;--col-label:216px;--col-employee:136px}
html{scrollbar-gutter:stable}html:has(dialog[open]){overflow:hidden}body{font-size:var(--text-body)}
small,.mini-note,.badge,.muted,footer,.guidance,.guidance>summary small,.guidance-toggle:after{font-size:var(--text-meta)}
button,input,select,textarea{font-size:var(--text-body);line-height:1.45}
button{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:var(--button-36);min-height:var(--button-36);padding:7px 12px;align-self:center;flex-shrink:0;border-radius:var(--control-radius)}
button:not(.primary):not(.text-button):not(.info-tip){font-weight:500}
input:not([type=checkbox]),select{height:var(--control-height);min-width:0;padding:7px 9px}
input[type=checkbox]{display:inline-block;flex:0 0 16px;width:16px;height:16px;margin:0;vertical-align:middle}
textarea{min-height:100px}
.fields{gap:var(--field-gap);align-items:start}
.fields>label:not(.choice-field):not(.check-line){display:flex;flex-direction:column;align-items:stretch;gap:var(--space-8);min-width:0;font-size:var(--text-body)}
.fields input,.fields select,.fields textarea{margin-top:0;min-width:0}
.choice-field,.fields>label:is(.choice-field,.check-line),.check-line{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:8px;min-height:var(--control-height);font-size:var(--text-body);line-height:1.5;text-align:left}
.fields>.choice-field{align-self:end}
.fields input[type=checkbox],.check-line input[type=checkbox]{width:16px;height:16px;flex:0 0 16px;margin:0}
.fields>button,.fields>.form-actions{align-self:end;justify-self:start}
.form-actions{display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-wrap:wrap}
.form-actions.full{grid-column:1/-1;width:100%;padding-top:4px}
.form-actions button{height:var(--button-40);min-height:var(--button-40)}
.fields .wide-input{margin:0}
.row{align-items:center}.row>*,.panel-head>*,.ledger-navigation>*{min-width:0}
.panel-head{flex-wrap:wrap}.panel-head h2{line-height:1.5}
.view-switch{align-items:stretch;flex-shrink:0}.view-switch button{height:var(--control-height);min-height:var(--control-height);padding:7px 12px}
.panel-head .row,.ledger-tools{row-gap:8px}
.text-button{min-height:var(--control-small);padding:4px 0;white-space:normal;text-align:left}
.info-tip,.batch-toolbar>.info-tip,.journal-table th .info-tip{display:inline-flex;width:24px;height:24px;min-height:24px;min-width:24px;padding:0;flex:0 0 24px;line-height:1}
.batch-toolbar{align-items:center;gap:8px}.batch-toolbar>input,.batch-toolbar>select,.batch-toolbar>button:not(.info-tip){height:var(--control-height);min-height:var(--control-height);font-size:var(--text-body)}
.batch-toolbar #batch-reason{width:180px}.batch-toolbar #batch-value{width:88px}.batch-toolbar #batch-action{width:200px}
.ledger-navigation select,.ledger-navigation input{height:var(--control-height);font-size:var(--text-body)}
.field-label,.day-checks label,.company-fields label{font-size:var(--text-body)}
.day-checks label{display:inline-flex;align-items:center;gap:6px}

/* 공통 우측 편집창은 정보 밀도에 따라 420/600/680px로 구분한다. */
dialog{--drawer-width:420px;position:fixed;inset:0 0 0 auto;margin:0 0 0 auto;width:min(var(--drawer-width),100vw);max-width:min(680px,100vw);height:100dvh;max-height:100dvh;overflow:hidden;border:0;border-left:1px solid var(--line);border-radius:0;padding:0;box-shadow:-12px 0 40px #0003}
dialog[data-size=form]{--drawer-width:600px}dialog[data-size=wide]{--drawer-width:680px}
dialog::backdrop{background:#0c172b55}
dialog[open]{display:flex;flex-direction:column}
.dialog-head{display:flex;align-items:center;justify-content:space-between;flex:0 0 auto;min-height:62px;padding:14px 20px;z-index:2;gap:14px}
.dialog-head h2{font-size:16px;line-height:1.5;overflow-wrap:anywhere}
.dialog-head button{width:32px;height:32px;min-height:32px;flex:0 0 32px;padding:0;font-size:22px;line-height:1}
#dialog-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:20px;scrollbar-gutter:stable}
#dialog-body .mini-note{font-size:var(--text-meta);line-height:1.75}
#dialog-body .section-label{margin-top:20px}
dialog[data-size=compact] .fields{grid-template-columns:minmax(0,1fr)}
#dialog-body .fields>:is(.check-line,.choice-field){grid-column:1/-1;align-self:start}
.choice-field>span,.check-line>span{min-width:0;flex:1}
#dialog-body .form-actions{margin-top:16px}
#dialog-body .fields>.form-actions{margin-top:0}

/* 열 너비는 데이터 유형으로 지정하고 본문을 줄여 맞추지 않음 */
.col-index{width:var(--col-index)}.col-name{width:var(--col-name)}.col-role{width:var(--col-role)}.col-contract{width:var(--col-contract)}.col-hours{width:var(--col-hours)}.col-money{width:var(--col-money)}.col-icon{width:var(--col-icon)}.col-date{width:var(--col-date)}.col-status{width:var(--col-status)}.col-mode{width:var(--col-mode)}.col-actions{width:var(--col-actions)}.col-clock{width:var(--col-clock)}.col-computed-hours{width:var(--col-computed-hours)}.col-reason{width:var(--col-reason)}.col-note{width:var(--col-note)}.col-label{width:var(--col-label)}.col-employee{width:var(--col-employee)}
:is(.sheet,.month-matrix,.report-grid,.staff-history-table,.shift-table,.rates,.tax-placeholder){font-size:var(--text-body)}
:is(.sheet,.month-matrix,.report-grid,.staff-history-table,.shift-table,.rates,.tax-placeholder) :is(th,td,input,select,textarea,button,small,span){font-size:inherit}
:is(.sheet,.month-matrix,.report-grid,.staff-history-table,.shift-table,.rates,.tax-placeholder) :is(th,td){font-size:var(--text-body);line-height:1.5}
.sheet th{padding:10px 8px;white-space:normal;overflow-wrap:normal;word-break:keep-all;vertical-align:middle}
.sheet td{height:48px;vertical-align:middle}
.sheet .cell,.sheet input{padding:10px 8px;white-space:nowrap;min-width:0}
.sheet input:not([type=checkbox]),.sheet select{width:100%;min-width:0;height:42px}.sheet .cell.link{display:flex;align-items:center;justify-content:flex-start;height:var(--button-36);min-height:var(--button-36);padding:6px 8px}
.sheet input,.sheet .cell{overflow:hidden;text-overflow:ellipsis}
.summary-table{min-width:1200px}.summary-table th:first-child,.summary-table td:first-child{width:var(--col-index);min-width:var(--col-index)}
.roster-table{min-width:1480px}.roster-table th,.roster-table td{width:auto}.roster-table th:first-child,.roster-table td:first-child{width:var(--col-name);min-width:var(--col-name)}.roster-table th:nth-child(2),.roster-table td:nth-child(2){width:var(--col-role)}
.roster-table th:last-child,.roster-table td:last-child{width:var(--col-actions)}
.journal-table{min-width:1540px}.journal-table th,.journal-table th:nth-child(n){width:auto}
.journal-table th:first-child,.journal-table td:first-child{width:var(--col-name);min-width:var(--col-name);padding:8px}
.journal-table td input,.journal-table td select{height:42px;padding:8px 6px}
.journal-table td:last-child{white-space:normal}.journal-table td:last-child button{height:var(--control-small);min-height:var(--control-small);padding:4px 8px;margin:2px}
.journal-table small{line-height:1.5}
.month-matrix.compact{min-width:calc(var(--month-days,31)*32px + 236px)}
.month-matrix.compact .matrix-name{width:124px;min-width:124px}.month-matrix.compact .matrix-total{width:112px;min-width:112px}
.month-matrix.compact th button{padding:5px 0;height:var(--button-32);min-height:var(--button-32);width:100%}
.month-matrix input,.month-matrix.compact input{height:36px;padding:6px 1px}
.month-matrix.compact tbody td{height:44px}
.report-paper .report-grid{min-width:1420px}.report-paper .report-grid th,.report-paper .report-grid td{padding:8px;line-height:1.5}
.report-facts,.report-business{font-size:var(--text-body)}
.calendar-heading,.calendar-day b,.calendar-day span,.calendar-day small{font-size:var(--text-body)}
.staff-history-table input[type=date]{min-width:144px;height:36px}.staff-history-table th:first-child{min-width:120px}
.shift-table{min-width:760px}.shift-table input{height:36px;min-width:108px}
@media(max-width:760px){#dialog-body{padding:12px}.dialog-head{padding:10px 12px;min-height:56px}.fields{gap:12px}.fields>label{min-width:0}.ledger-tools{flex-wrap:wrap}.panel-head{gap:10px}.month-matrix.compact .matrix-name{width:124px;min-width:124px}}

.button-24{--button-size:var(--button-24)}.button-32{--button-size:var(--button-32)}.button-36{--button-size:var(--button-36)}.button-40{--button-size:var(--button-40)}.button-44{--button-size:var(--button-44)}
button:is(.button-24,.button-32,.button-36,.button-40,.button-44){height:var(--button-size);min-height:var(--button-size);padding-top:0;padding-bottom:0}
.sidebar nav button{height:var(--button-44);min-height:var(--button-44)}
.oauth{height:var(--button-44);min-height:var(--button-44)}

#employee-form .row>button.primary,#schedule-form>button.primary,#day-form .account-actions>button.primary,.form-actions>button.primary{height:var(--button-40);min-height:var(--button-40)}
.sheet button:not(.info-tip):not(.cell.link),.event-list button,.closed-tags button{height:var(--button-32);min-height:var(--button-32);padding:4px 8px}
.employee-card dl,.money-line,.rule-row b,.event-list>div,.report-date-control{font-size:var(--text-body)}

.calendar-scroll{overflow-x:auto}.calendar-grid{min-width:700px}.calendar-day{height:auto;min-height:130px;gap:5px}.calendar-day-head{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}.calendar-day-head b{display:block;width:auto}.calendar-day-head button{padding:0;flex:0 0 24px}.calendar-day small{overflow-wrap:break-word}
@media(max-width:540px){#dialog-body .fields{grid-template-columns:minmax(0,1fr)}#dialog-body .fields>.choice-field{grid-column:1/-1}}

/* 컬럼 헤더는 본문 정렬과 분리한 한 줄 공통 부품 */
.sheet thead th,.sheet thead th.left,.sheet.journal-table thead th{height:48px;padding:8px;text-align:center;vertical-align:middle;white-space:nowrap}
.column-heading{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:24px;max-width:100%;line-height:20px;white-space:nowrap;vertical-align:middle}
.column-label{display:inline;white-space:nowrap}
.column-heading>.info-tip,.journal-table th .column-heading>.info-tip{position:relative;display:inline-flex;width:14px;min-width:14px;flex:0 0 14px;height:24px;min-height:24px;padding:0;margin:0;font-size:13px;line-height:1}
.column-heading>.info-tip:before{content:'';position:absolute;inset:0 -5px}
.column-heading>.text-button{display:inline-flex;align-items:center;justify-content:center;padding:0;height:32px;white-space:nowrap;text-align:center}
.journal-table tbody td{height:64px}
.journal-table :is(th,td):first-child,.journal-table :is(th,td):last-child{text-align:center}
.journal-table td:last-child button{margin:3px 2px}

/* 자식의 불투명 배경도 부모 곡률 안에서 끝나도록 공통 처리 */
:is(.panel,.metric,.employee-card,.fields,.view-switch,.work-steps,.guidance,.ledger-totals,dialog){background-clip:padding-box}
.ledger-totals{overflow:hidden}
.ledger-totals>div:first-child{border-start-start-radius:6px;border-end-start-radius:6px}
.ledger-totals>div:last-child{border-start-end-radius:6px;border-end-end-radius:6px}
.panel>.panel-head:first-child,.panel>.ledger-navigation:first-child,.panel>.review-toolbar:first-child{border-start-start-radius:7px;border-start-end-radius:7px}
.panel>.table-foot:last-child,.panel>.review-toolbar:last-child{border-end-start-radius:7px;border-end-end-radius:7px}
.guidance>summary{border-radius:5px}.guidance[open]>summary{border-end-start-radius:0;border-end-end-radius:0}
.guidance-grid{border-end-start-radius:5px;border-end-end-radius:5px;overflow:hidden}
.summary-table tbody td:nth-child(2){text-align:left}
.journal-table .col-hours{width:92px}

.dialog-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:0 0 auto;padding:12px 20px;background:var(--panel);border-top:1px solid var(--line)}
.dialog-actions button{height:40px;min-height:40px}
.employee-editor>.fields{margin:0}.editor-basic>[data-mode-only]{min-width:0}.editor-basic>[data-mode-only]>label{display:flex;flex-direction:column;gap:var(--space-8)}
.editor-read-summary{display:flex;flex-direction:column;gap:4px;padding:10px 12px;margin:12px 0;border:1px solid var(--line);border-radius:6px;background:var(--soft);color:var(--ink);font-size:12px}
.employee-editor .editor-section{margin:8px 0}.editor-section>summary{display:flex;align-items:center;gap:8px;padding:9px 12px}.editor-section>summary:before{content:'▸';font-size:12px}.editor-section[open]>summary:before{content:'▾'}.editor-section>summary small{margin-left:auto;font-weight:400;color:var(--muted)}
.editor-section-body{display:grid;gap:var(--space-16);padding:var(--space-16)}.editor-section-body>label:not(.choice-field):not(.check-line){display:grid;gap:var(--space-8)}.editor-section-body>.advanced-settings,.editor-section-body>.editor-read-summary{margin:0}.editor-section-body .editor-read-summary{gap:var(--space-8)}.editor-section-body>[aria-live]{display:grid;gap:var(--space-12)}.editor-section-body>[aria-live]>.editor-read-summary{margin:0}.editor-section-body>[aria-live]>.advanced-settings{margin:0}.editor-section-body [data-condition]>label{display:grid;gap:var(--space-8)}.editor-section-body [aria-live]> .advanced-settings{margin:var(--space-12) 0 0}.editor-section-body>.fields,.editor-section-body [data-condition]>.fields{border:0;margin:0;padding:0}.editor-section-body>p{margin-top:8px}.editor-section-body>.choice-field{margin:4px 0}
.employee-editor .fields>[data-condition],.employee-editor .fields>[data-mode-only]{min-width:0}.employee-editor .fields>[data-condition]>label,.employee-editor .fields>[data-mode-only]>label{display:flex;flex-direction:column;gap:var(--space-8)}.employee-editor .fields .choice-field{grid-column:1/-1}
.employee-editor [data-condition]>.fields{margin:8px 0}.employee-editor .day-checks{display:flex;gap:10px;flex-wrap:wrap}
@media(max-width:540px){.dialog-actions{padding:10px 12px}.editor-section>summary{flex-wrap:wrap}.editor-section>summary small{max-width:100%}}

#context-help[popover]{margin:0;inset:auto;border:0;}

.reconcile-workspace{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:14px;padding:14px;width:100%;align-items:start}
.reconcile-detail,.reconcile-overview{min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:6px;overflow:hidden}
.reconcile-scope-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px;border-bottom:1px solid var(--line)}
.reconcile-scope-head h3{font-size:14px;margin:0}.reconcile-scope-head small{font-size:12px;font-weight:400;margin-left:6px}.reconcile-scope-head .muted{font-size:12px}
.reconcile-detail-scroll{max-height:590px}.reconcile-detail .reconcile-table{table-layout:fixed;width:100%;min-width:0}.reconcile-table .reconcile-label{width:27%}
.reconcile-detail .reconcile-table :is(th,td){padding:8px 10px;height:36px;font-size:13px;white-space:normal}.reconcile-table tbody th{text-align:left;font-weight:500;background:var(--soft);color:var(--ink)}
.sheet.reconcile-table tbody th:first-child{color:var(--ink)}
.reconcile-table .reconcile-group th{height:28px;padding:4px 10px;font-size:13px;font-weight:650;background:var(--section);color:var(--ink)}
.reconcile-table :is(.reconcile-expense,.reconcile-net,.reconcile-deduction,.reconcile-employer) :is(th,td){font-weight:700}.reconcile-table .reconcile-expense :is(th,td),.reconcile-person .reconcile-expense{color:var(--expense)}
.reconcile-table .reconcile-expense td{background:var(--expense-cell)}.reconcile-table .reconcile-net td{background:var(--net-cell);color:var(--net-ink)}.reconcile-table .reconcile-employer td{background:var(--insurance-cell);color:var(--insurance)}.reconcile-table .reconcile-deduction td{background:var(--soft)}
.reconcile-partial{display:block;font-size:13px;font-weight:400;color:var(--muted)}.reconcile-table .difference-positive{color:#ba2635!important}.reconcile-table .difference-negative{color:#2458ac!important}
.reconcile-summary-head,.reconcile-person{display:grid;grid-template-columns:minmax(76px,1fr) repeat(3,minmax(0,1fr));gap:6px;align-items:center}
.reconcile-summary-head{padding:9px 10px;background:var(--head);color:var(--header-ink);font-size:13px;font-weight:650;text-align:right}.reconcile-summary-head>:first-child{text-align:left}
.reconcile-person{width:100%;height:auto;min-height:58px;padding:10px;border:0;border-bottom:1px solid var(--line);border-radius:0;text-align:right;background:var(--panel);color:var(--ink);font-size:13px;font-variant-numeric:tabular-nums;white-space:normal}
.reconcile-person>span:first-child{text-align:left;min-width:0}.reconcile-person b{display:block;overflow-wrap:anywhere}.reconcile-person small{display:block;font-size:12px;font-weight:400;color:var(--muted)}.reconcile-person.active{background:var(--selected);color:var(--selected-ink);box-shadow:inset 3px 0 var(--accent)}.reconcile-person:hover{background:var(--soft)}
.reconcile-search{display:flex;align-items:center;gap:8px;padding:10px;font-size:12px;border-bottom:1px solid var(--line)}.reconcile-search input{flex:1;min-width:0;height:32px}.reconcile-people{max-height:var(--people-height,calc(100dvh - 440px));overflow:auto;min-height:0}.reconcile-overview>.mini-note{padding:10px;margin:0}
[data-theme=dark] .reconcile-table .difference-positive{color:var(--expense)!important}
[data-theme=dark] .reconcile-table .difference-negative{color:#9cc1ff!important}
@media(max-width:1100px){.reconcile-workspace{grid-template-columns:minmax(0,1fr)}.reconcile-overview{grid-row:1}.reconcile-people{max-height:var(--people-height,50dvh)}.reconcile-detail-scroll{max-height:520px}}
@media(max-width:560px){.reconcile-workspace{padding:8px;gap:8px}.reconcile-detail .reconcile-table :is(th,td){padding:7px 5px}.reconcile-person,.reconcile-summary-head{gap:4px;padding-left:8px;padding-right:8px;grid-template-columns:minmax(70px,1fr) repeat(3,minmax(0,1fr))}}

.calculation-detail{container-type:inline-size}.calculation-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:12px;align-items:start}
.calculation-column{display:grid;gap:12px;align-content:start;min-width:0}.calculation-group{min-width:0}.calculation-group h4{margin:0;padding:8px 10px;background:#425975;color:#fff;font-size:13px}
.calculation-detail .calculation-table{width:100%;min-width:0;border:0;table-layout:fixed}.calculation-detail .calculation-table :is(th,td){font-size:13px;line-height:1.5;padding:7px 10px;height:36px;overflow-wrap:anywhere}.calculation-detail .calculation-table th{font-weight:500}.calculation-detail .calculation-table :is(.reconcile-expense,.reconcile-net,.reconcile-deduction,.reconcile-employer) th{font-weight:700}
@container(max-width:680px){.calculation-groups{grid-template-columns:minmax(0,1fr)}}

/* 헤더와 본문 스크롤을 분리하는 공통 작업 셸 */
html{overflow:hidden;scrollbar-gutter:auto}body{height:100dvh;overflow:hidden}.shell{height:100dvh;display:flex;flex-direction:column;min-width:0}.topbar{flex:0 0 56px;height:56px;position:relative;z-index:40}
#workspace-main{flex:1;min-height:0;overflow:auto;scrollbar-gutter:stable;padding:16px 24px 20px;scroll-padding-top:12px}
.workspace-commands{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;margin-bottom:12px}.workspace-commands .heading{display:contents}.workspace-commands .heading>div:first-child{order:0}.workspace-commands .title-line h1{font-size:24px;white-space:nowrap}
.workspace-commands #period-tools{order:1}.workspace-commands .heading-tools{order:2;margin-left:auto;gap:8px}.workspace-commands .period-toolbar{margin:0;border:0;background:transparent;padding:0;gap:8px}.workspace-commands .heading-tools button,.workspace-commands .heading-tools input{height:32px;min-height:32px}
.period-menu{position:relative}.period-menu>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:center;height:32px;padding:0 10px;border:1px solid var(--line);border-radius:var(--control-radius);background:var(--panel);color:var(--ink);white-space:nowrap}.period-menu>summary::-webkit-details-marker{display:none}.period-menu>summary:after{content:'⌄';margin-left:6px}.period-menu-items{position:absolute;top:calc(100% + 6px);right:0;min-width:160px;display:grid;padding:5px;background:var(--panel);border:1px solid var(--line);border-radius:6px;box-shadow:0 6px 20px #0002;z-index:45}.period-menu-items button{width:100%;justify-content:flex-start;border:0}
@media(max-width:760px){body{display:flex;flex-direction:column}.sidebar{flex:none}.shell{height:auto;flex:1;min-height:0}.topbar{flex-basis:48px;height:48px}#workspace-main{padding:12px}.workspace-commands{gap:10px}.workspace-commands #period-tools{order:2;width:100%}.workspace-commands .heading-tools{order:1;margin-left:0;flex-wrap:wrap}.workspace-commands .period-toolbar{flex-wrap:wrap}.workspace-commands .title-line h1{font-size:22px}}

.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.topbar{flex:0 0 auto;min-height:64px;height:auto;padding:10px 24px;gap:16px;align-items:center}.topbar .workspace-commands{flex:1;min-width:0;margin:0}.topbar-utilities{flex:none;gap:8px}.topbar .workspace-commands .heading-tools{margin-left:auto}
input[data-money]{text-align:right;font-variant-numeric:tabular-nums}.company-meal-controls input[data-money]{width:160px}
@media(max-width:1300px){.topbar-utilities .prototype{display:none}}
@media(max-width:760px){.topbar{padding:10px 12px;display:block;min-height:48px}.topbar .workspace-commands{width:100%;padding-top:0}.topbar .workspace-commands .heading>div:first-child{width:100%;padding-right:140px}.topbar-utilities{position:absolute;top:10px;right:12px}.topbar .workspace-commands .heading-tools{width:100%;margin-left:0}.topbar .workspace-commands #period-tools{width:100%}}

.topbar h1{color:var(--ink)}

[data-theme=dark] .calculation-group h4{background:#394e69;color:#f2f6ff}
.ledger-confirmation{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 14px;border-bottom:1px solid var(--line)}
.ledger-confirmation .muted{margin-right:auto}

.period-review-totals{display:flex;gap:12px;flex-wrap:wrap;padding:12px 0}.period-review-totals b{color:var(--expense,#b42338)}
.period-review-section{padding:14px 0;border-top:1px solid var(--line)}.period-review-section>.row{margin-bottom:8px}.period-review-section ul{padding-left:18px;margin:8px 0}
.period-review-table{width:100%;table-layout:fixed;border-collapse:collapse;color:var(--ink);font-size:13px}.period-review-table .period-person-column{width:128px}.period-review-table .period-action-column{width:64px}.period-review-table :is(th,td){padding:8px;border:1px solid var(--line);font-size:13px;line-height:1.5;vertical-align:middle;overflow-wrap:anywhere}.period-review-table thead th{height:36px;background:var(--head);color:var(--header-ink);text-align:center;font-weight:650}.period-review-table tbody th{background:var(--soft);color:var(--ink);text-align:left;font-weight:650}.period-review-table tbody th small{display:block;white-space:nowrap;color:inherit;font-weight:400}.period-review-table td{text-align:left;background:var(--panel);word-break:keep-all}.period-review-table td:last-child{text-align:center}.period-review-table button{height:32px;min-height:32px;padding:0 8px}
@media(max-width:540px){.period-review-table .period-person-column{width:112px}.period-review-table .period-action-column{width:60px}}

.period-person{border-top:1px solid var(--line);padding:8px 0}.period-person summary{display:flex;gap:8px;justify-content:space-between;cursor:pointer}.period-person summary span{color:var(--muted);font-size:12px}.period-day-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding-top:8px}.period-day-list>div{display:flex;align-items:center;justify-content:space-between;gap:6px}.period-day-list button{height:24px;min-height:24px;padding:0 6px;font-size:12px}
@media(max-width:540px){.period-person summary{flex-wrap:wrap}.period-day-list{grid-template-columns:1fr}}

[data-theme=dark] .period-review-totals b{color:#ff9ca7}
.period-person summary::before{content:'▸';flex:0 0 auto}.period-person[open] summary::before{content:'▾'}.period-person summary b{margin-right:auto}

.snapshot-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 0}.snapshot-toolbar label{display:flex;align-items:center;gap:6px}.snapshot-layout{display:grid;grid-template-columns:minmax(0,2.4fr) minmax(280px,1fr);gap:14px;align-items:start}.snapshot-content{min-width:0;padding:16px}.snapshot-heading{padding-bottom:12px;border-bottom:1px solid var(--line)}.snapshot-heading small{display:block;margin-top:6px}.snapshot-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px 0}.snapshot-totals small,.snapshot-totals b{display:block}.snapshot-totals b{font-size:16px;color:var(--ink)}.snapshot-list{padding:12px;min-width:0}.snapshot-list>button{display:block;width:100%;white-space:normal;text-align:left;border-radius:0;border:0;border-top:1px solid var(--line);padding:12px 8px;height:auto}.snapshot-list>button.active{background:var(--soft);box-shadow:inset 3px 0 var(--accent)}.snapshot-list :is(span,small){display:block}.snapshot-table{width:100%;border-collapse:collapse;font-size:13px}.snapshot-table :is(th,td){padding:8px 10px;border:1px solid var(--line);font-size:13px;line-height:1.5;white-space:normal;overflow-wrap:anywhere}.snapshot-table thead th{background:var(--head);color:var(--header-ink);text-align:center}.snapshot-table tbody th{background:var(--soft);text-align:left}.snapshot-table td{text-align:right;background:var(--panel)}.snapshot-table .snapshot-group th{background:var(--section);font-weight:700}.snapshot-compare{table-layout:fixed}.snapshot-compare col{width:25%}.snapshot-section{padding:var(--space-24) 0;border-top:1px solid var(--line)}.snapshot-section summary{cursor:pointer;font-weight:650}.snapshot-increase{color:#b42338;font-weight:700}[data-theme=dark] .snapshot-increase{color:var(--expense)}
@media(max-width:980px){.snapshot-layout{grid-template-columns:1fr}.snapshot-list{grid-row:1}.snapshot-totals{grid-template-columns:1fr}.snapshot-content{padding:12px}}

.snapshot-total-row :is(th,td){font-weight:700}.snapshot-total-row td{background:var(--soft)}

.snapshot-sample-link{display:inline-flex;align-items:center;min-height:32px;padding:4px 10px;border:1px solid var(--line);border-radius:6px;background:var(--panel)}

.snapshot-monthly-layout{grid-template-columns:minmax(0,1fr)}.snapshot-layout>[hidden]{display:none}.monthly-table{table-layout:auto}.monthly-table th:first-child{min-width:130px}.monthly-table td{min-width:130px;white-space:nowrap}.monthly-table small{display:block;font-size:13px;white-space:normal;font-weight:400;line-height:1.6}.monthly-table td b{font-size:13px}.monthly-table .monthly-gross b,.monthly-table .monthly-cost b{color:var(--expense)}.monthly-table .monthly-net b{color:var(--net-ink)}.monthly-table thead th small{color:inherit}.monthly-employees{max-height:none}.snapshot-content>h2{margin:14px 0 8px}.snapshot-decrease{color:#1761ad}[data-theme=dark] .snapshot-decrease{color:#91beff}

.monthly-employees .monthly-table{table-layout:fixed;min-width:1450px}.monthly-employees th[rowspan]{width:140px}[data-theme=dark] .monthly-table small{display:block}

.monthly-table .snapshot-group th{text-align:left;padding:12px;background:var(--section);color:var(--ink)}.monthly-table .snapshot-group small{margin-top:4px}.monthly-table :is(.monthly-retirementReserve,.monthly-annualReserve) b{color:#654298}.monthly-table .monthly-funding b{color:#b42338}[data-theme=dark] .monthly-table :is(.monthly-retirementReserve,.monthly-annualReserve) b{color:#d0b7f7}[data-theme=dark] .monthly-table .monthly-funding b{color:#ff9ca7}

.monthly-company{max-height:none}.monthly-table .monthly-group-budget td{background:var(--panel)}

:root{--header-fill:#2458ee;--header-fill-ink:#fff;--header-picker-scheme:dark;--header-link:#2458ce;--theme-rail:var(--soft);--theme-thumb:#2458ee;--theme-thumb-ink:#fff}[data-theme=dark]{--header-fill:var(--accent);--header-fill-ink:var(--accent-ink);--header-link:var(--accent);--header-picker-scheme:light;--theme-rail:#26364c;--theme-thumb:var(--accent);--theme-thumb-ink:var(--accent-ink)}
#global-guidance{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.topbar #global-guidance .rates-link{border:0;background:transparent;box-shadow:none;color:var(--header-link);padding:0 4px;height:32px;min-height:32px;font-size:13px;font-weight:600}.topbar #global-guidance .rates-link:hover{text-decoration:underline;background:transparent}#global-guidance .info-tip{color:var(--header-link)}
.topbar .heading-tools #month{height:32px;min-height:32px;width:140px;min-width:0;padding:4px 10px;border:0;background:var(--header-fill);color:var(--header-fill-ink);color-scheme:var(--header-picker-scheme);font-size:13px;font-weight:600;box-shadow:none}.topbar .heading-tools #month:hover{background:color-mix(in srgb,var(--header-fill) 88%,#000)}.topbar .heading-tools #month:focus-visible{outline:2px solid var(--header-link);outline-offset:3px}.month-label{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.fp-theme-switch{--theme-switch-size:40px;--theme-switch-step:42px;position:relative;display:block;flex:none;width:40px;height:40px;border-radius:999px;background:transparent;transition:width .3s cubic-bezier(.16,1,.3,1)}.fp-theme-switch.is-open{width:82px}.fp-theme-switch::before{position:absolute;inset:-1px;border-radius:999px;background:var(--theme-rail);content:'';opacity:0;transition:opacity .15s ease-out}.fp-theme-switch.is-open::before{opacity:1}.fp-theme-switch .fp-theme-switch__thumb,.fp-theme-switch .fp-theme-switch__option{position:absolute;top:0;left:0;width:40px;height:40px;min-height:40px;border-radius:50%}.fp-theme-switch .fp-theme-switch__thumb{background:var(--theme-thumb);transition:transform .3s cubic-bezier(.16,1,.3,1)}.fp-theme-switch.is-open.is-dark .fp-theme-switch__thumb{transform:translateX(var(--theme-switch-step))}.fp-theme-switch .fp-theme-switch__option{z-index:1;display:grid;place-items:center;padding:0;border:0;background:transparent;color:var(--muted);opacity:0;pointer-events:none;transition:color .15s ease-out,opacity .15s ease-out,transform .3s cubic-bezier(.16,1,.3,1)}.fp-theme-switch .fp-theme-switch__option.is-active,.fp-theme-switch.is-open .fp-theme-switch__option{opacity:1;pointer-events:auto}.fp-theme-switch .fp-theme-switch__option.is-active{color:var(--theme-thumb-ink)}.fp-theme-switch.is-open .fp-theme-switch__option.is-dark{transform:translateX(var(--theme-switch-step))}.fp-theme-switch .fp-theme-switch__option svg{width:24px;height:24px;fill:currentColor}.fp-theme-switch .fp-theme-switch__option:hover{background:transparent}.fp-theme-switch .fp-theme-switch__option:focus-visible{outline:2px solid var(--header-link);outline-offset:2px}
@media(prefers-reduced-motion:reduce){.fp-theme-switch,.fp-theme-switch::before,.fp-theme-switch .fp-theme-switch__thumb,.fp-theme-switch .fp-theme-switch__option{transition:none}}

.period-pay-date{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.period-toolbar .pay-date-text{border:0;background:transparent;box-shadow:none;padding:0 2px;color:var(--ink);height:32px;min-height:32px;font-weight:600}.period-toolbar .pay-date-text:hover{background:transparent;color:var(--header-link);text-decoration:underline}#payday-form{display:grid;gap:16px}#payday-form .fields{margin:0}

#workspace-main{display:flex;flex-direction:column}#workspace-main>*{flex-shrink:0}#workspace-main>section:not([hidden]){margin-bottom:24px}.workspace-footer{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);margin-top:auto;padding:16px 0 0;border-top:1px solid var(--line);align-items:center;gap:16px 24px;font-size:12px;line-height:1.7}.footer-company{display:grid;gap:8px;min-width:0}.footer-business{font-style:normal;display:grid;gap:4px}.footer-business>div{display:flex;flex-wrap:wrap;gap:4px 16px}.footer-business a{color:var(--muted);text-decoration:none;overflow-wrap:anywhere}.footer-business a:hover{color:var(--accent);text-decoration:underline}.footer-business a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.footer-brand{display:flex;align-items:baseline;gap:8px 12px;flex-wrap:wrap}.footer-brand b{color:var(--ink);font-size:13px;letter-spacing:.04em}.footer-brand small{font-size:12px}.footer-notes{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.workspace-footer #save-status{margin-left:8px}@media(max-width:1000px){.workspace-footer{grid-template-columns:minmax(0,1fr);align-items:start;gap:12px}.footer-notes{align-items:flex-start}}

.reconcile-person .reconcile-net{color:var(--net-ink)}.reconcile-person .reconcile-employer{color:var(--insurance)}
body{cursor:default;user-select:none;-webkit-user-select:none}input,textarea,[contenteditable=true]{cursor:text;user-select:text;-webkit-user-select:text}button,a,select,summary,[role=button],input:is([type=checkbox],[type=radio],[type=date],[type=time],[type=month],[type=file],[type=range],[type=color]){cursor:pointer;user-select:none;-webkit-user-select:none}input[readonly]{cursor:default;caret-color:transparent}button:disabled,input:disabled,select:disabled{cursor:default}
.topbar .heading-tools #month{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;white-space:nowrap}#month-picker{position:fixed;inset:auto;margin:0;width:280px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);box-shadow:0 8px 24px #0002}#month-picker::backdrop{background:transparent}.month-picker-year{display:flex;align-items:center;gap:8px;margin-bottom:12px}.month-picker-year select{flex:1;min-width:0;height:32px;text-align:center}.month-picker-year button{width:32px;height:32px;padding:0;font-size:20px}.month-picker-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.month-picker-grid button{height:36px;padding:0}.month-picker-grid button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}

:is(.snapshot-totals,.snapshot-table,.snapshot-list) [data-money-role=expense]{--money-role:var(--expense)}:is(.snapshot-totals,.snapshot-table,.snapshot-list) [data-money-role=net]{--money-role:var(--net-ink)}:is(.snapshot-totals,.snapshot-table,.snapshot-list) [data-money-role=employer]{--money-role:var(--insurance)}
.snapshot-totals [data-money-role] b,.snapshot-list [data-money-role],.snapshot-table td[data-money-role]:is([data-money-role=expense],[data-money-role=net],[data-money-role=employer]),.snapshot-table tr[data-money-role]:is([data-money-role=expense],[data-money-role=net],[data-money-role=employer]) td{color:var(--money-role);font-weight:700}.monthly-table td[data-money-role]:is([data-money-role=expense],[data-money-role=net],[data-money-role=employer]) :is(b,.snapshot-increase,.snapshot-decrease),.snapshot-table tr[data-money-role]:is([data-money-role=expense],[data-money-role=net],[data-money-role=employer]) .snapshot-increase{color:var(--money-role,inherit)}

.access-notice{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:8px 12px;border-bottom:1px solid var(--line);margin-bottom:16px;font-size:13px;color:var(--muted)}.access-notice[hidden]{display:none}.access-notice>div{display:flex;align-items:center;gap:8px}.access-notice a,.action-link{color:var(--accent)}.account-membership{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.purchase-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.purchase-options>div{display:grid;gap:12px;align-content:start}.purchase-options strong{font-size:28px;color:var(--ink)}.purchase-options small{color:var(--muted)}.license-form{display:grid;gap:12px}.membership-history{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.membership-date{font-size:18px;font-weight:650}.account-actions{gap:8px}.account-membership .row{flex-wrap:wrap}input[data-access-disabled],select[data-access-disabled],textarea[data-access-disabled]{opacity:1;cursor:default}#auth-error{color:var(--danger)}@media(max-width:1000px){.account-membership{grid-template-columns:minmax(0,1fr)}}@media(max-width:540px){.purchase-options{grid-template-columns:minmax(0,1fr)}}

.heading-tools[hidden]{display:none}.sidebar .side-bottom nav{margin-bottom:24px}.sidebar .side-bottom nav button{width:100%;font-size:13px}
#view-notices{padding:8px 0 32px}#view-notices[hidden]{display:none}.notice-tabs{display:flex;justify-content:center;gap:32px;border-bottom:1px solid var(--line);margin-bottom:32px}.notice-tabs button{background:none;border:0;border-radius:0;padding:16px 8px;height:auto;font-size:15px;border-bottom:3px solid transparent;color:var(--muted)}.notice-tabs button.active{color:var(--accent);font-weight:700;border-bottom-color:var(--accent)}
.notice-search{display:flex;align-items:end;justify-content:center;gap:8px;margin:0 0 24px}.notice-search label{display:flex;align-items:center;gap:12px}.notice-search input{width:300px}.notice-count{color:var(--muted);margin:0 0 12px}.notice-table{width:100%;border-collapse:collapse;table-layout:fixed}.notice-table .notice-date-column{width:150px}
#view-notices .notice-table :is(th,td){border:0;border-bottom:1px solid var(--line);padding:16px 20px;background:none;color:var(--ink);font-size:13px;height:auto}#view-notices .notice-table th{background:var(--soft);font-weight:650;text-align:center;border-top:1px solid var(--line)}#view-notices .notice-table td:last-child{text-align:center;color:var(--muted)}.notice-title{height:auto;min-height:24px;max-width:100%;padding:0;background:none;border:0;border-radius:0;color:var(--ink);text-align:left;font-weight:400;white-space:normal;line-height:1.6}.notice-title:hover{color:var(--accent);text-decoration:underline}.notice-important{color:var(--danger);margin-right:12px;font-weight:700}.notice-pages{display:flex;justify-content:center;align-items:center;gap:24px;margin-top:32px}.notice-pages button{border:0;background:none}.notice-empty{text-align:center!important;padding:64px 16px!important;color:var(--muted)}.notice-error{color:var(--danger);text-align:center;margin:16px}
.notice-article header{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 20px;display:grid;gap:12px}.notice-article header>span,.notice-article time{color:var(--muted);font-size:13px}.notice-article h2{font-size:21px}.notice-article-body{padding:40px 20px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9;min-height:260px;user-select:text}.notice-article footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:16px}.notice-article footer>div{display:flex;gap:8px}.notice-body-frame{display:block;border:0;width:100%;height:65dvh;margin:32px 0;background:white}
#event-popup{height:auto;min-height:0;position:fixed;inset:var(--event-top,200px) auto auto var(--event-left,300px);margin:0;z-index:80;padding:0;border:0;border-radius:0;background:transparent;color:white;width:min(var(--event-width),calc(100vw - 32px),calc((100dvh - 90px)*var(--event-ratio)));max-width:none;max-height:none;overflow:visible;box-shadow:none}#event-popup[open]{display:block}#event-popup::backdrop{background:transparent}.event-artwork{position:relative;width:100%;aspect-ratio:var(--event-ratio);background:transparent;overflow:hidden}.event-artwork iframe{width:100%;height:100%;display:block;border:0;pointer-events:none}.event-open{position:absolute;inset:0;padding:0;border:0;border-radius:0;width:100%;height:100%;background:transparent!important;cursor:pointer}.event-open:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.event-controls{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0;padding:8px 10px;font-size:12px;background:var(--panel);color:var(--ink);border-bottom:1px solid var(--line)}.event-controls label{display:flex;align-items:center;gap:8px;color:var(--ink)}.event-controls input{width:16px;height:16px}.event-controls button{background:none;color:var(--ink);border:0;padding:0 4px;height:28px}
@media(max-width:640px){.notice-tabs{gap:12px;margin-bottom:24px}.notice-tabs button{font-size:13px;padding:12px 4px}.notice-search{flex-wrap:wrap}.notice-search input{width:180px}.notice-table .notice-date-column{width:105px}#view-notices .notice-table :is(th,td){padding:12px 8px}.event-controls{font-size:11px}}

.sidebar{overflow:hidden}.sidebar>.brand{flex:none}.sidebar-body{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}.sidebar .side-bottom{flex:none;margin-top:0;padding:16px 12px}.sidebar .side-bottom nav{padding:0;margin-bottom:12px}.sidebar .side-bottom small{display:block;padding:0 12px}
