/* Shared main-system geometry. Role adapters change data and actions, never tokens. */
:root{--ceo-page-header-height:84px;--ceo-page-header-gap:20px;--ceo-action-height:40px;--ceo-progress-height:12px}
:is(.app > main > header.workspace-page-header,body.portal-active .portal-header,body.general-affairs-active .ga-header){box-sizing:border-box;display:flex!important;align-items:flex-start!important;justify-content:space-between;gap:18px;height:var(--ceo-page-header-height)!important;min-height:var(--ceo-page-header-height)!important;padding:0!important;border:0;background:transparent}
:is(.workspace-page-heading,.portal-session-heading,.ga-heading){min-width:0;flex:1 1 auto;max-width:none!important}
:is(.workspace-page-header #today,.portal-active .portal-eyebrow,.general-affairs-active .ga-header .eyebrow){margin:0 0 7px!important;color:#29384A!important;font:800 11px/1.2 system-ui,sans-serif!important;letter-spacing:.15em!important;white-space:nowrap}
:is(.workspace-page-header #pageTitle,.portal-active #portalTitle,.general-affairs-active .ga-header h1){margin:0!important;color:#29384A!important;font:800 27px/1.4 system-ui,sans-serif!important;letter-spacing:normal;white-space:nowrap}
:is(.workspace-page-header .page-subtitle,.portal-active #portalSubtitle,.general-affairs-active .ga-header .ga-subtitle){margin:6px 0 0!important;color:#718497!important;font:400 14px/1.45 system-ui,sans-serif!important;letter-spacing:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.portal-active:not(.general-affairs-active) .portal-header{margin-bottom:var(--ceo-page-header-gap)!important}
body.portal-active:not(.general-affairs-active) > main{margin-top:0!important}
body.general-affairs-active .ga-header{margin:0 0 var(--ceo-page-header-gap)}
:is(.portal-active #sessionActions,.general-affairs-active .ga-header-actions){display:flex;flex:0 0 auto;align-items:center;gap:10px}
:is(.portal-active .portal-month-control,.general-affairs-active .ga-month-control){display:inline-flex;align-items:center;gap:10px;margin:0;font:700 12px/1 system-ui,sans-serif;color:#718497;white-space:nowrap}
:is(.portal-active #salaryMonth,.general-affairs-active #month){box-sizing:border-box;width:180px!important;min-width:0!important;height:40px!important;min-height:40px!important;padding:0 12px!important;background:#fff;border:1px solid #D5DEE7;border-radius:3px;font:750 14px/1.4 system-ui,sans-serif;color:#29384A;box-shadow:0 2px 0 #BECBD7}
/* Explicit shared button primitives; dense-table and card-icon sizes stay intact. */
body.portal-active .ceo-action{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;box-sizing:border-box;height:var(--ceo-action-height)!important;min-height:var(--ceo-action-height)!important;padding:0 14px!important;border:1px solid #D5DEE7!important;border-radius:3px!important;background:linear-gradient(#fff,#F5F8FB)!important;color:#496682!important;font:750 14px/1.4 system-ui,sans-serif!important;white-space:nowrap;box-shadow:0 2px 0 #BECBD7!important;cursor:pointer}
body.portal-active .ceo-action.primary{background:#29384A!important;border-color:#29384A!important;color:#fff!important}
.ceo-action:hover:not(:disabled){filter:brightness(.97)}
.ceo-action:focus-visible{outline:2px solid #496682;outline-offset:2px}
.ceo-action:active:not(:disabled){transform:translateY(2px);box-shadow:none!important}
.ceo-action:disabled{opacity:.5;cursor:not-allowed}
.ceo-action .ceo-icon{width:18px!important;height:18px!important;flex:0 0 18px}
.ceo-action.ceo-page-primary{width:142px!important;min-width:142px!important}
body.portal-active :is(#workerTypeTabs,#eventStatusTabs,#eventTypeStats,#milestoneTabs,#eventPreviewNav) .ceo-action.ceo-tab{height:36px!important;min-height:36px!important}
body.portal-active .ceo-action.ceo-tab:is(.is-active,.active){background:#29384A!important;color:#fff!important;border-color:#29384A!important}
/* WLG, IP and role workflows use the same approved progress primitives. */
:is(.wlg-accounting-page .wlg-progress,.ceo-workflow){margin:0 0 18px!important;padding:18px 22px 15px!important;border:1px solid #D5DEE7!important;border-top-width:3px!important;border-radius:3px!important;background:#fff!important;box-shadow:0 3px 0 #E1E8EF;min-width:0}
:is(.wlg-accounting-page,.ceo-workflow) .wlg-progress-title{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}
:is(.wlg-accounting-page,.ceo-workflow) .wlg-progress-title p{margin:0 0 5px;color:#718497;font:800 11px/1.2 system-ui,sans-serif;letter-spacing:.15em}
:is(.wlg-accounting-page,.ceo-workflow) .wlg-progress-title strong{color:#2D3440;font-size:19px;line-height:1.4}
:is(.wlg-accounting-page,.ceo-workflow) .wlg-progress-title > span{color:#718497;font-size:12px;line-height:1.45;text-align:right}
:is(.wlg-accounting-page,.ceo-workflow) .wlg-progress-track{height:var(--ceo-progress-height)!important;margin:14px 0 12px!important;background:#E7EDF3!important;border-radius:3px!important;overflow:hidden}
:is(.wlg-accounting-page,.ceo-workflow) .wlg-progress-track i{display:block;height:100%;background:#2D3440!important;border-radius:3px!important}
:is(.wlg-accounting-page,.ceo-workflow) .wlg-progress-steps{display:grid!important;grid-template-columns:repeat(var(--ceo-workflow-steps,5),minmax(0,1fr));gap:8px;margin:0}
:is(.wlg-accounting-page,.ceo-workflow) .wlg-progress-step{display:inline-flex!important;align-items:center;justify-content:flex-start;height:24px!important;min-height:24px!important;gap:7px;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;min-width:0}
:is(.wlg-accounting-page,.ceo-workflow) .wlg-progress-step > i{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border:1px solid #D5DEE7!important;border-radius:3px!important;background:#fff!important;color:#718497!important;font:800 11px/1 system-ui,sans-serif}
:is(.wlg-accounting-page,.ceo-workflow) .wlg-progress-step.is-current > i{border-color:#18324A!important;background:#18324A!important;color:#fff!important}
:is(.wlg-accounting-page,.ceo-workflow) .wlg-progress-step strong{color:#2D3440;font:750 11px/1.4 system-ui,sans-serif;white-space:nowrap}
:is(.wlg-accounting-page,.ceo-workflow) .wlg-progress-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin-top:10px}
body.portal-active .ceo-workflow .text-button{display:inline-flex!important;align-items:center;justify-content:center;height:36px!important;min-height:36px!important;padding:0 13px!important;border:0!important;background:transparent!important;box-shadow:none!important;color:#496682!important;font:750 12px/1.4 system-ui,sans-serif!important;text-decoration:underline;cursor:pointer}
.ceo-workflow-details{margin-top:10px;padding-top:10px;border-top:1px solid #D5DEE7;color:#718497;font:400 13px/1.45 system-ui,sans-serif}
.ceo-workflow-details ol{margin:6px 0;padding-left:22px}
.ceo-workflow-details li{padding:3px 0}
.ceo-workflow .ceo-workflow-guidance{margin:14px 0 0;color:#718497;font:400 13px/1.6 system-ui,sans-serif}
body.portal-active .ceo-operation-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:5px;margin:0 0 18px;border:1px solid #D5DEE7;border-radius:3px;background:#E7EDF3}
body.portal-active .ceo-operation-tabs > button.ceo-action{width:100%;min-width:0;height:36px!important;min-height:36px!important;padding:0 8px!important;box-shadow:none!important;background:transparent!important;border-color:transparent!important}
body.portal-active .ceo-operation-tabs > button[aria-selected="true"]{background:#29384A!important;border-color:#29384A!important;color:#fff!important}
.ceo-workflow .wlg-progress-step:focus-visible{outline:2px solid #496682;outline-offset:3px}
.ceo-workflow .wlg-progress-step:disabled{opacity:1;cursor:default}
body.portal-active #salaryConsole{background:transparent!important;border:0!important;box-shadow:none!important;overflow:visible!important}
body.portal-active #salaryConsole > :is(form,section){background:#fff;border:1px solid #D5DEE7;border-radius:3px;box-shadow:0 3px 0 #E1E8EF;overflow:hidden}
body.portal-active #salaryConsole > .ceo-workflow{display:block!important;width:100%!important;height:auto!important}
body.portal-active .ceo-workflow .wlg-progress-title > div{width:auto!important}
body.portal-active .ceo-workflow .wlg-progress-title > span{max-width:50%}
body.general-affairs-active > main{margin-top:50px!important}
/* Both role entrances retain one desktop gutter; no role-only wide-screen scale. */
body.portal-active:not(.general-affairs-active) :is(.portal-header,main){margin-left:calc(var(--portal-sidebar-width) + 34px)!important;margin-right:34px!important}

/* WLG next-step guidance belongs to the progress card, not overview notes. */
:is(#wlgProgress,#ipAccountingProgress) .wlg-progress-guidance{margin:14px 0 0;color:#718497;font:400 13px/1.6 system-ui,sans-serif;overflow-wrap:anywhere}
#wlgContent .wlg-guidance-target{outline:2px solid #B84F4F!important;outline-offset:-2px;background-color:#FFF4F3!important;scroll-margin:24px}

/* Supervisor contribution preview: content-sized columns, readable at desktop zoom. */
.wlg-salary-preview-details:has(> .wlg-supervisor-contribution-preview){grid-template-columns:minmax(0,1fr)}
.wlg-supervisor-contribution-preview{width:max-content;max-width:100%;min-width:0;overflow:auto}
.wlg-supervisor-contribution-preview > table{width:max-content;min-width:0;max-width:none;table-layout:auto}
.wlg-supervisor-contribution-preview > table :is(th,td){width:auto;min-width:0;padding:8px 10px;font-size:16px;line-height:1.5;white-space:nowrap;word-break:normal;vertical-align:middle}
.wlg-supervisor-contribution-preview > table th{position:static;font-weight:700}


.salary-layout-copy-dialog{width:min(1400px,calc(100vw - 40px));max-width:calc(100vw - 40px)}
body dialog.salary-layout-copy-dialog{width:min(1400px,calc(100vw - 40px));height:auto;max-width:calc(100vw - 40px);max-height:calc(100vh - 32px);padding:0;overflow:auto;border:1px solid #D5DEE7;background:#fff}
.salary-layout-copy-dialog .wlg-excel-preview-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;background:#29384A;border-bottom:1px solid #D5DEE7;flex-wrap:wrap;color:#fff}
.salary-layout-copy-dialog .wlg-excel-preview-head strong,.salary-layout-copy-dialog .wlg-excel-preview-head small{display:block}
.salary-layout-copy-dialog .wlg-excel-preview-head small{margin-top:6px;font-size:14px;color:#AEBECB}
.salary-layout-copy-dialog .wlg-excel-preview-head nav{display:flex;align-items:center;gap:8px;flex-shrink:0}
.salary-layout-copy-dialog .wlg-excel-preview-head a{display:inline-flex;align-items:center;justify-content:center;height:38px;padding:0 12px;font-size:14px;white-space:nowrap;background:#fff;color:#496682;border:1px solid #D5DEE7;border-radius:3px;box-shadow:0 2px 0 #BECBD7;text-decoration:none}
.salary-layout-copy-dialog > [role="status"]{padding:16px 24px;color:#718497}
.salary-layout-copy-dialog iframe{display:block;width:100%;height:72vh;border:0}

/* Company summary: every card shares one grid column, including disbursement totals. */
.wlg-company-ledger-v2 .wlg-company-summary{grid-auto-rows:1fr}
.wlg-company-ledger-v2 .wlg-company-summary article.is-shareholder-disbursement small{display:none}
.wlg-company-ledger-v2 .wlg-company-summary article.is-shareholder-disbursement{grid-column:span 1}

/* Saved payout accounts are read-only until explicitly edited. */
.wlg-payout-account-fields{display:flex;align-items:center;justify-content:center;gap:8px}
.wlg-payout-account-fields input[data-payout-member-account]{text-align:center;min-width:100px}
.wlg-payout-account-fields input[data-payout-member-account][readonly]{background:#E7EDF3;color:#718497}
.wlg-payout-account-fields button[data-edit-payout-account]{flex:none;width:38px;height:38px;padding:0;white-space:nowrap}
#wlgClassificationDialog .wlg-classification-dialog-copy{white-space:pre-line}

#wlgContent .wlg-payout-table{min-width:880px;width:100%;border-collapse:collapse;border-spacing:0}
/* Payout grid fills its scroll container; internal separators remain continuous. */
#wlgContent .wlg-payout-table :is(th,td){border:0!important;border-right:1px solid #D5DEE7!important;border-bottom:1px solid #D5DEE7!important;box-shadow:none!important}
#wlgContent .wlg-payout-table tr>:last-child{border-right:0!important}
#wlgContent .wlg-payout-table tbody tr:last-child>td{border-bottom:0!important}

/* Payout missing-account warning and explicit full-list preview. */
#wlgContent [data-payout-member-account].is-missing-account{border-color:#B54848;background:#FFF3F3;color:#9D3535}
#wlgContent [data-payout-member-account].is-missing-account::placeholder{color:#9D3535;opacity:1}
#wlgContent .wlg-payout-row-status.is-missing-account{background:#FBE9E9;color:#9D3535}
/* Approved payout toolbar: selector and summary align with the action row. */
#wlgContent .wlg-payout-filters{display:flex;flex-wrap:wrap;align-items:flex-start;gap:16px}
#wlgContent .wlg-payout-filter-overview{display:flex;flex:1 1 470px;align-items:flex-start;gap:16px;min-width:0;max-width:100%}
#wlgContent .wlg-payout-filter-overview>label{display:block;flex:0 0 170px;margin:0}
#wlgContent .wlg-payout-filter-overview>label>select{width:100%;height:40px;min-height:40px;margin:0}
#wlgContent .wlg-payout-filter-overview>span{flex:1;min-width:0;padding-top:8px;text-align:left;overflow-wrap:anywhere;color:#29384A;font-weight:800}
#wlgContent .wlg-payout-filters>.wlg-payout-filter-actions{flex:0 1 auto;flex-wrap:wrap;justify-content:flex-end;max-width:100%;margin-left:auto}
#wlgContent [data-payout-missing-notice]{display:block;color:#9D3535;margin-top:8px}
#wlgContent [data-payout-missing-notice][hidden]{display:none}
#wlgPayoutPreviewDialog{width:min(720px,calc(100vw - 48px));max-height:calc(100vh - 48px);overflow:hidden}
#wlgPayoutPreviewDialog form{display:flex;flex-direction:column;max-height:calc(100vh - 100px);min-height:0}
#wlgPayoutPreviewDialog header,#wlgPayoutPreviewDialog footer{flex:none}
#wlgPayoutPreviewDialog .wlg-payout-preview-body{overflow:auto;min-height:0}
#wlgPayoutPreviewDialog .wlg-classification-dialog-copy,#wlgPayoutPreviewDialog pre{white-space:pre-wrap;overflow-wrap:anywhere}
#wlgPayoutPreviewDialog pre{background:#F5F8FB;border:1px solid #D5DEE7;padding:16px;color:#2D3440;font-size:14px;line-height:1.6}

/* Approved payout table alignment, shared with the supervisor portal. */
#wlgContent .wlg-payout-table th,#wlgContent .wlg-payout-table td,#wlgContent .wlg-payout-table .wlg-payout-money,#wlgContent .wlg-payout-breakdown{text-align:center}

/* One payout visual contract for administrator and supervisor; no data/permission changes. */
:is(#wlgContent .wlg-payout-table,body.portal-active .supervisor-payout table){width:100%;min-width:880px;table-layout:auto;border-collapse:collapse;border-spacing:0;color:#2D3440;font:400 16px/1.5 system-ui,sans-serif}
:is(#wlgContent .wlg-payout-table,body.portal-active .supervisor-payout table) :is(th,td){box-sizing:border-box;text-align:center!important;vertical-align:middle;white-space:nowrap;border:0!important;border-right:1px solid #D5DEE7!important;border-bottom:1px solid #D5DEE7!important;box-shadow:none!important;font:400 16px/1.5 system-ui,sans-serif!important}
:is(#wlgContent .wlg-payout-table,body.portal-active .supervisor-payout table) th{height:44px;padding:10px 16px;background:#E9EFF5!important;color:#496682!important;font-weight:700!important;line-height:1.4!important}
:is(#wlgContent .wlg-payout-table,body.portal-active .supervisor-payout table) td{height:64px;padding:11px 16px!important;background:#fff}
:is(#wlgContent .wlg-payout-table,body.portal-active .supervisor-payout table) tr>:last-child{border-right:0!important}
:is(#wlgContent .wlg-payout-table,body.portal-active .supervisor-payout table) tbody tr:last-child>td{border-bottom:0!important}
:is(#wlgContent .wlg-payout-downline-row,body.portal-active .supervisor-payout .payout-downline-row) td{background:#F5F8FB}
:is(#wlgContent .wlg-payout-table,body.portal-active .supervisor-payout table) td:first-child strong{display:block;margin:0 0 3px;font-size:16px;font-weight:700;line-height:1.5}
:is(#wlgContent .wlg-payout-table,body.portal-active .supervisor-payout table) td:first-child small{display:block;margin:0;font-size:13px;color:#718497;line-height:1.5}
:is(#wlgContent .wlg-payout-table,body.portal-active .supervisor-payout table) td:last-child{font-weight:800!important}
:is(#wlgContent .wlg-payout-breakdown,body.portal-active .supervisor-payout td:nth-child(2)){line-height:1.65!important}
:is(#wlgContent .wlg-payout-account-fields,body.portal-active .supervisor-payout .payout-account-fields){display:flex;align-items:center;justify-content:center;gap:10px;width:100%}
:is(#wlgContent .wlg-payout-account-fields,body.portal-active .supervisor-payout .payout-account-fields) input{box-sizing:border-box;flex:0 0 210px!important;width:210px!important;min-width:210px!important;max-width:210px!important;height:38px!important;min-height:38px!important;padding:8px 12px!important;border:1px solid #D5DEE7;border-radius:3px;text-align:center;font:400 16px/1.4 system-ui,sans-serif!important;background:#fff;color:#2D3440}
:is(#wlgContent .wlg-payout-account-fields,body.portal-active .supervisor-payout .payout-account-fields) input[readonly]{background:#E7EDF3;color:#718497}
:is(#wlgContent .wlg-payout-account-fields,body.portal-active .supervisor-payout .payout-account-fields) input.is-missing-account{border-color:#B54848!important;background:#FFF3F3!important;color:#9D3535!important}
:is(#wlgContent .wlg-payout-account-fields,body.portal-active .supervisor-payout .payout-account-fields) input.is-missing-account::placeholder{color:#9D3535!important;opacity:1}
:is(#wlgContent .wlg-payout-row-status,body.portal-active .supervisor-payout .status){display:inline-flex;align-items:center;justify-content:center;padding:5px 9px!important;border:0!important;border-radius:3px;background:#E9EFF5;color:#496682;font:700 12px/1.5 system-ui,sans-serif!important;white-space:nowrap}
:is(#wlgContent .wlg-payout-row-status,body.portal-active .supervisor-payout .status).is-ready{background:#DCEFE3!important;color:#256A46!important}
:is(#wlgContent .wlg-payout-row-status,body.portal-active .supervisor-payout .status).is-missing-account{background:#FBE9E9!important;color:#9D3535!important}
:is(#wlgContent .wlg-payout-row-status,body.portal-active .supervisor-payout .status):is(.is-not_generated,.is-not_sent){background:#FFF1C9!important;color:#8A6416!important}
:is(#wlgContent .wlg-payout-row-status,body.portal-active .supervisor-payout .status).is-submitted{background:#E1E9F0!important;color:#29384A!important}
:is(#wlgContent .wlg-payout-row-status,body.portal-active .supervisor-payout .status).is-partial{background:#E6EDF4!important;color:#496682!important}
:is(#wlgContent .wlg-payout-row-status,body.portal-active .supervisor-payout .status).is-zero{background:#F0F3F6!important;color:#718497!important}
:is(#wlgContent .wlg-payout-row-status,body.portal-active .supervisor-payout .status).is-company_receivable{background:#F7E5E3!important;color:#8F3732!important}
:is(#wlgContent .wlg-payout-filter-actions,body.portal-active .supervisor-payout-toolbar) button{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px!important;min-height:40px!important;padding:0 14px!important;border:1px solid #D5DEE7!important;border-radius:3px;background:linear-gradient(#fff,#F5F8FB)!important;color:#496682!important;font:750 14px/1.4 system-ui,sans-serif!important;box-shadow:0 2px 0 #BECBD7!important}
:is(#wlgContent .wlg-payout-filter-actions,body.portal-active .supervisor-payout-toolbar) button.primary{background:#29384A!important;border-color:#29384A!important;color:#fff!important}
:is(#wlgContent .wlg-payout-filter-actions,body.portal-active .supervisor-payout-toolbar) button:disabled{opacity:.5;cursor:not-allowed}
:is(#wlgContent .wlg-payout-filter-actions,body.portal-active .supervisor-payout-toolbar) button:hover:not(:disabled){filter:brightness(.97)}
:is(#wlgContent .wlg-payout-filter-actions,body.portal-active .supervisor-payout-toolbar) button:focus-visible{outline:2px solid #496682;outline-offset:2px}
:is(#wlgContent .wlg-payout-filter-actions,body.portal-active .supervisor-payout-toolbar) button:active:not(:disabled){transform:translateY(2px);box-shadow:none!important}

#ipAccountingProgress > .ip-progress-workflow-actions{margin-top:16px;padding-top:16px;border-top:1px solid #D5DEE7;background:transparent;color:#718497;font:400 13px/1.6 system-ui,sans-serif;overflow-wrap:anywhere}
#ipAccountingProgress > .ip-progress-workflow-actions > strong{color:#2D3440;font-weight:700}
#ipAccountingProgress > .ip-progress-workflow-actions p{margin:8px 0}
#ipAccountingProgress > .ip-progress-workflow-actions details{margin-top:10px}
