/* Suits Outlets payroll: navy for navigation, teal for action and net pay.
   Ink #183047; navy #17324d; teal #087b78; canvas #eef3f6;
   paper #ffffff; slate #607487. Forms are quiet; statements carry the emphasis. */
:root { --ink:#183047; --navy:#17324d; --accent:#087b78; --canvas:#eef3f6; --paper:#fff; --slate:#607487; --rule:#d7e1e8; --wash:#f5f8fa; --net:#e2f4ec; --net-ink:#145a45; font-family:"Segoe UI",Tahoma,sans-serif; font-size:14px; color:var(--ink); background:var(--canvas); font-variant-numeric:tabular-nums; }
:root[data-theme="dark"] { --ink:#e2ecf3; --navy:#122c43; --accent:#58c3b6; --canvas:#101f2e; --paper:#192d40; --slate:#a7bac9; --rule:#344c61; --wash:#20384c; --net:#204a43; --net-ink:#ade4cb; color:var(--ink); background:var(--canvas); }
:root[data-theme] body,:root[data-theme] .main { background:var(--canvas); color:var(--ink); }
:root[data-theme] .layout { grid-template-columns:224px minmax(0,1fr); }
:root[data-theme] .sidebar { background:var(--navy); border-right:0; padding:28px 16px 18px; gap:32px; }
:root[data-theme] .brand { align-items:center; font-size:1rem; letter-spacing:0; }
.brand-copy { display:grid; gap:4px; }.brand-copy small { font-size:.74rem; font-weight:400; color:#b6cbdc; }
:root[data-theme] .sidebar .brand-mark { background:#fff; color:#17324d; font-family:Georgia,serif; border-radius:4px; width:38px; height:38px; font-weight:400; }
:root[data-theme] .nav-label { text-transform:none; letter-spacing:0; font-size:.78rem; font-weight:500; color:#99b2c7; padding-left:12px; }
:root[data-theme] .nav-button { padding:12px; border-radius:5px; color:#d8e5ef; font-weight:500; border-left:3px solid transparent; }
:root[data-theme] .nav-button.active { background:#264864; border-left-color:#82d4c4; color:#fff; }
:root[data-theme] .nav-button:hover { background:#264864; }
:root[data-theme] .sidebar-foot { border-color:#3b5770; }
:root[data-theme] .topbar { background:var(--paper); border-color:var(--rule); min-height:64px; padding:14px 32px; }
:root[data-theme] .topbar-title { font-size:.92rem; color:var(--slate); font-weight:500; }
:root[data-theme] .page { max-width:1520px; padding:32px; gap:24px; }
:root[data-theme] h1,:root[data-theme] h2 { font-family:Bahnschrift,"Segoe UI",sans-serif; font-weight:600; letter-spacing:-.025em; }
:root[data-theme] h1 { font-size:2.2rem; margin:0; line-height:1.2; }
:root[data-theme] h2 { font-size:1.25rem; }
:root[data-theme] h3 { font-weight:650; }
:root[data-theme] .page-head .eyebrow { display:none; }
:root[data-theme] .eyebrow,:root[data-theme] th { text-transform:none; letter-spacing:0; font-weight:600; color:var(--slate); }
:root[data-theme] .muted,:root[data-theme] label,:root[data-theme] .empty { color:var(--slate); }
:root[data-theme] label { font-size:.83rem; font-weight:600; gap:7px; }
:root[data-theme] input,:root[data-theme] select,:root[data-theme] textarea { background:var(--paper); border-color:var(--rule); color:var(--ink); border-radius:5px; min-height:40px; }
:root[data-theme] input:focus,:root[data-theme] select:focus,:root[data-theme] textarea:focus,:root[data-theme] button:focus-visible,:root[data-theme] a:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
:root[data-theme] .button { background:var(--accent); border-color:var(--accent); color:#fff; border-radius:5px; font-weight:600; min-height:40px; }
:root[data-theme="dark"] .button { color:#102c34; }
:root[data-theme] .button:hover { filter:brightness(.94); }
:root[data-theme] .button.secondary { background:var(--paper); color:var(--ink); border-color:var(--rule); }
:root[data-theme] .button.secondary:hover { background:var(--wash); }
:root[data-theme] .button.danger { background:#af3b3b; color:#fff; }
:root[data-theme] .card { background:var(--paper); color:var(--ink); border:1px solid var(--rule); border-radius:8px; padding:22px; box-shadow:none; }
:root[data-theme] .summary-grid { gap:0; border:1px solid var(--rule); border-radius:6px; overflow:hidden; }
:root[data-theme] .summary-grid .card { border:0; border-right:1px solid var(--rule); border-radius:0; padding:18px 22px; }
:root[data-theme] .summary-grid .card:last-child { border-right:0; }
:root[data-theme] .metric { font-size:1.8rem; font-weight:600; }
:root[data-theme] .notice { background:var(--wash); color:var(--slate); border-color:var(--rule); border-left:3px solid var(--accent); border-radius:4px; line-height:1.6; }
:root[data-theme] .notice.error { background:#fff0ec; color:#963d2d; border-color:#d9a08e; }
:root[data-theme] .daily-grid td.held-workday { background:#ffe2dc; color:#963d2d; box-shadow:inset 0 -3px #c65338; }
:root[data-theme] .daily-grid td.held-workday strong { font-size:.7rem; }
:root[data-theme="dark"] .daily-grid td.held-workday { background:#592f32; color:#ffd3c9; }
.attendance-holds p { max-width:85ch; margin:.7rem 0; }
.attendance-holds ul { padding-left:1.25rem; line-height:1.8; margin:0; }
:root[data-theme] .adjustment-list { grid-column:1 / -1; border:1px solid var(--rule); border-radius:5px; padding:16px; min-width:0; }
.adjustment-list legend { padding:0 6px; font-weight:650; }
.adjustment-rows { display:grid; gap:12px; margin-bottom:12px; }
:root[data-theme] .adjustment-entry { align-items:end; padding:12px; background:var(--wash); grid-template-columns:minmax(180px,1.3fr) minmax(100px,.6fr) minmax(140px,1fr) auto; border-radius:4px; }
.adjustment-entry small { grid-column:1 / -1; }
:root[data-theme] .paystub-strip.contractor { grid-template-columns:repeat(4,minmax(130px,1fr)); }
@media(max-width:1000px) { :root[data-theme] .adjustment-entry { grid-template-columns:1fr 1fr; } }
:root[data-theme="dark"] .notice.error { background:#492c2e; color:#f5b5a8; }
:root[data-theme] th,:root[data-theme] td { border-color:var(--rule); padding:13px 12px; }
:root[data-theme] th { background:var(--wash); font-size:.8rem; }
:root[data-theme] .filter-bar { background:var(--paper); border-color:var(--rule); }
:root[data-theme] .daily-grid th,:root[data-theme] .daily-grid td { padding:10px 8px; }
:root[data-theme] .daily-grid th:first-child { background:var(--paper); }
:root[data-theme] .paystub-team { gap:12px; margin-bottom:8px; }
:root[data-theme] .team-heading { font-size:1rem; color:var(--slate); padding-bottom:10px; border-bottom:1px solid var(--rule); margin:0; }
:root[data-theme] .paystub-preview { border-radius:6px; padding:22px; gap:18px; border-left:3px solid #9bb1c3; }
:root[data-theme] .paystub-preview h2 { font-size:1.4rem; margin:6px 0 8px; }
:root[data-theme] .paystub-preview .eyebrow { font-size:.75rem; color:var(--accent); font-weight:600; }
:root[data-theme] .paystub-strip { border-radius:4px; border-color:var(--rule); grid-template-columns:repeat(8,minmax(105px,1fr)); }
:root[data-theme] .paystub-strip.contractor { grid-template-columns:repeat(4,minmax(150px,1fr)); }
:root[data-theme] .paystub-cell { min-width:105px; grid-template-rows:minmax(42px,auto) 48px; border-color:var(--rule); text-align:right; }
:root[data-theme] .paystub-cell span { display:flex; justify-content:flex-end; background:var(--wash); font-size:.75rem; padding:10px; color:var(--slate); font-weight:500; }
:root[data-theme] .paystub-cell strong { display:flex; justify-content:flex-end; border-color:var(--rule); padding:12px 10px; font-size:1rem; background:var(--paper); color:var(--ink); font-weight:650; }
:root[data-theme] .paystub-cell.gross strong { background:var(--wash); color:var(--ink); }
:root[data-theme] .paystub-cell.withholding strong { background:var(--paper); color:var(--ink); }
:root[data-theme] .paystub-cell.net strong { background:var(--net); color:var(--net-ink); }
:root[data-theme] .paystub-preview > .between > p { max-width:54ch; margin:0; }
:root[data-theme] .preview-editor { border-color:var(--rule); padding-top:22px; }
:root[data-theme] .publish-review { border:1px solid var(--rule); border-left:3px solid var(--accent); }
:root[data-theme] .theme-toggle { background:var(--wash); border-color:var(--rule); border-radius:6px; padding:3px; }
:root[data-theme] .theme-toggle button { color:var(--slate); border-radius:4px; font-size:.8rem; font-weight:600; }
:root[data-theme] .theme-toggle button.active { background:var(--paper); color:var(--ink); box-shadow:none; }
:root[data-theme] .switch input:checked + span { background:var(--accent); }
:root[data-theme] .pto-note { background:var(--net); color:var(--net-ink); font-weight:500; }
:root[data-theme] .pto-balance,:root[data-theme] .pto-stats > div { border-color:var(--rule); }
:root[data-theme] .pto-stats span,:root[data-theme] .pto-balance span { color:var(--slate); }
:root[data-theme] .employee-withholding,:root[data-theme] .settings-tile { background:var(--wash); border-color:var(--rule); }
:root[data-theme] .modal-panel { background:var(--paper); color:var(--ink); border-color:var(--rule); border-radius:8px; }
:root[data-theme] .site-footer { border-color:var(--rule); color:var(--slate); font-size:.75rem; }
:root[data-theme] .site-footer a { color:var(--accent); }
:root[data-theme] .auth { background:var(--canvas); }
@media(max-width:1100px) { :root[data-theme] .page { padding:24px; } :root[data-theme] .layout { grid-template-columns:200px minmax(0,1fr); } .paystub-preview > .between { flex-wrap:wrap; } }
@media(max-width:760px) { :root[data-theme] .layout { grid-template-columns:1fr; } :root[data-theme] .sidebar { position:static; height:auto; padding:16px; gap:18px; } :root[data-theme] .sidebar nav { display:flex; flex-wrap:wrap; gap:10px; } :root[data-theme] .nav-group { margin:0; } :root[data-theme] .nav-label { display:none; } :root[data-theme] .sidebar-foot { margin:0; display:flex; justify-content:space-between; align-items:center; } :root[data-theme] .account-button { width:auto; } :root[data-theme] .topbar { padding:12px 20px; } :root[data-theme] .page { padding:20px 16px; } :root[data-theme] .page-head { align-items:start; gap:18px; } :root[data-theme] h1 { font-size:1.8rem; } :root[data-theme] .paystub-preview { padding:16px; } :root[data-theme] .page-head-actions { width:100%; } :root[data-theme] .summary-grid { grid-template-columns:1fr; } :root[data-theme] .summary-grid .card { border-right:0; border-bottom:1px solid var(--rule); } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }
@media(max-width:760px) {
  :root[data-theme] .sidebar { gap:12px; }
  :root[data-theme] .sidebar nav { flex-wrap:nowrap; overflow-x:auto; padding-bottom:4px; }
  :root[data-theme] .nav-group { display:contents; }
  :root[data-theme] .nav-button { flex-shrink:0; white-space:nowrap; padding:9px 12px; }
  :root[data-theme] .sidebar-foot { padding-top:10px; }
}

.holiday-rules.compact .holiday-rule-form {grid-template-columns:minmax(130px,1fr) minmax(120px,1fr) minmax(150px,1fr) minmax(140px,1fr) 80px 90px 70px;}
.holiday-employees {font-size:.85rem;}
@media(max-width:1100px){.holiday-rules.compact .holiday-rule-form{grid-template-columns:repeat(2,minmax(0,1fr));}}

.attendance-tabs {display:flex;gap:1.5rem;border-bottom:1px solid var(--border);margin-bottom:1rem;}
.attendance-tab {background:transparent;color:inherit;border:0;border-bottom:3px solid transparent;padding:.85rem .2rem;font:inherit;font-weight:600;cursor:pointer;}
.attendance-tab.active {color:var(--accent,#087f83);border-bottom-color:var(--accent,#087f83);}
.attendance-tab:focus-visible {outline:2px solid var(--accent,#087f83);outline-offset:3px;}

.employee-directory .employee-team-row th {text-align:left;font-size:1rem;text-transform:none;letter-spacing:0;padding:1rem;background:var(--surface-muted,var(--bg));color:var(--text);}

:root[data-theme] .adjustment-entry[data-kind="reimbursement"] {background:#edf9f2;border-left:4px solid #27824d;}
:root[data-theme] .adjustment-entry[data-kind="deduction"] {background:#fff1ea;border-left:4px solid #bc572d;}
.adjustment-kind {display:block;font-weight:700;margin-bottom:6px;}
.adjustment-entry[data-kind="reimbursement"] .adjustment-kind {color:#17683a;}
.pay-summary-reimbursement {color:#17683a;font-weight:600;}
.pay-summary-deduction {color:#a33e1b;font-weight:600;}
.pto-person-payroll-link {font:inherit;font-weight:inherit;color:inherit;background:transparent;border:0;padding:0;text-align:left;cursor:pointer;text-decoration:underline;text-underline-offset:4px;}
.pto-person-payroll-link:hover {color:var(--accent);}
.pto-person-payroll-link:focus-visible {outline:2px solid var(--accent);outline-offset:4px;border-radius:3px;}
.topbar-controls {display:flex;align-items:center;justify-content:flex-end;gap:20px;flex-wrap:wrap;}
.topbar-controls .topbar-decimal-toggle {display:flex;flex-direction:row;align-items:center;gap:10px;margin:0;font-size:.85rem;}
.topbar-controls .topbar-decimal-toggle .switch {display:block;flex:0 0 46px;margin:0;}
.timesheet-view-controls {display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.timesheet-view-controls .attendance-tabs {margin:0;flex:1 1 auto;}
.timesheet-view-controls .timesheet-decimal-toggle {display:flex;flex-direction:row;align-items:center;margin:0;gap:10px;flex:0 0 auto;}
.paystub-hours-link {font:inherit;color:inherit;background:transparent;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px;}
.paystub-hours-link:hover {color:var(--accent);}
.pto-employee-fixed button[data-pto-available] {font:inherit;text-align:left;cursor:pointer;transition:filter .15s ease;}
.pto-employee-fixed button[data-pto-available]:hover {filter:brightness(.95);}
.paystub-hours-link:focus-visible,.pto-employee-fixed button[data-pto-available]:focus-visible {outline:2px solid var(--accent);outline-offset:3px;}
:root[data-theme] .payroll-pto-form button[type="submit"] {background:#2866b5;border-color:#2866b5;color:#fff;}
:root[data-theme] .payroll-pto-form button[type="submit"]:hover {background:#205494;border-color:#205494;}
:root[data-theme="dark"] .payroll-pto-form button[type="submit"] {background:#3576c7;border-color:#6a9cdc;color:#fff;}
:root[data-theme="dark"] .payroll-pto-form button[type="submit"]:hover {background:#2b64ac;}
.daily-grid .timesheet-payroll-cell {cursor:pointer;transition:background .15s ease;}
:root[data-theme] .daily-grid .timesheet-payroll-cell:hover,:root[data-theme] .daily-grid .timesheet-payroll-cell:focus-within {background:#e6efff;box-shadow:inset 0 0 0 2px #9bb9e8;}
:root[data-theme="dark"] .daily-grid .timesheet-payroll-cell:hover,:root[data-theme="dark"] .daily-grid .timesheet-payroll-cell:focus-within {background:#304c70;box-shadow:inset 0 0 0 2px #6c94c9;}
:root[data-theme] #adjust-form button[type="submit"] {background:#e6efff;border-color:#9bb9e8;color:#254e88;font-weight:600;}
:root[data-theme] #adjust-form button[type="submit"]:hover {background:#d3e3ff;border-color:#6e98d5;}
:root[data-theme="dark"] #adjust-form button[type="submit"] {background:#304c70;border-color:#6c94c9;color:#e0edff;}
:root[data-theme="dark"] #adjust-form button[type="submit"]:hover {background:#3c5e88;border-color:#96b8e6;}
:root[data-theme] .button[data-view="attendance"] {background:#e6efff;border-color:#9bb9e8;color:#254e88;font-weight:600;}
:root[data-theme] .button[data-view="attendance"]:hover {background:#d3e3ff;border-color:#6e98d5;}
:root[data-theme="dark"] .button[data-view="attendance"] {background:#304c70;border-color:#6c94c9;color:#e0edff;}
:root[data-theme="dark"] .button[data-view="attendance"]:hover {background:#3c5e88;border-color:#96b8e6;}
:root[data-theme] .button[data-action="commit-csv"] {background:#23834c;border-color:#23834c;color:#fff;font-weight:600;}
:root[data-theme] .button[data-action="commit-csv"]:hover:not(:disabled) {background:#196b3c;border-color:#196b3c;}
:root[data-theme="dark"] .button[data-action="commit-csv"] {background:#2b935a;border-color:#56b67d;color:#fff;}
:root[data-theme="dark"] .button[data-action="commit-csv"]:hover:not(:disabled) {background:#247d4c;}
:root[data-theme] .button[data-action="commit-csv"]:disabled {opacity:.45;cursor:not-allowed;}
:root[data-theme] .button[data-action="add-adjustment"] {background:#e6efff;border-color:#9bb9e8;color:#254e88;font-weight:600;}
:root[data-theme] .button[data-action="add-adjustment"]:hover {background:#d3e3ff;border-color:#6e98d5;}
:root[data-theme="dark"] .button[data-action="add-adjustment"] {background:#304c70;border-color:#6c94c9;color:#e0edff;}
:root[data-theme="dark"] .button[data-action="add-adjustment"]:hover {background:#3c5e88;border-color:#96b8e6;}
:root[data-theme="dark"] .pay-summary-reimbursement {color:#9ae8b8;}
:root[data-theme="dark"] .pay-summary-deduction {color:#ffd0b5;}
.adjustment-entry[data-kind="deduction"] .adjustment-kind {color:#a33e1b;}
:root[data-theme="dark"] .adjustment-entry[data-kind="reimbursement"] {background:#17382c;border-left-color:#74d29c;}
:root[data-theme="dark"] .adjustment-entry[data-kind="deduction"] {background:#422d27;border-left-color:#efac87;}
:root[data-theme="dark"] .adjustment-entry[data-kind="reimbursement"] .adjustment-kind {color:#9ae8b8;}
:root[data-theme="dark"] .adjustment-entry[data-kind="deduction"] .adjustment-kind {color:#ffd0b5;}
select option.reimbursement-option {color:#17683a;background:#edf9f2;}
select option.deduction-option {color:#a33e1b;background:#fff1ea;}
/* Employee sections: distinct, quiet colors with clear headings. */
:root[data-theme] .employee-settings-section {padding:20px;border:1px solid var(--rule);border-left:4px solid var(--section-accent);border-radius:10px;background:var(--section-bg);}
.employee-settings-section h3 {margin:0 0 16px;}
.profile-section {--section-bg:#eef5ff;--section-accent:#5885c5;}
.pay-section {--section-bg:#edf8f3;--section-accent:#419775;}
.schedule-section {--section-bg:#fff7e9;--section-accent:#bd8c3d;}
.adjustment-section {--section-bg:#f5f0ff;--section-accent:#9473bf;}
.pto-section {--section-bg:#eaf8fa;--section-accent:#44949e;}
:root[data-theme] .employee-withholding {background:#fff0f3;border-left:4px solid #bd7186;}
:root[data-theme="dark"] .profile-section {--section-bg:#20334c;}
:root[data-theme="dark"] .pay-section {--section-bg:#203c34;}
:root[data-theme="dark"] .schedule-section {--section-bg:#3c3426;}
:root[data-theme="dark"] .adjustment-section {--section-bg:#342c47;}
:root[data-theme="dark"] .pto-section {--section-bg:#203b42;}
:root[data-theme="dark"] .employee-withholding {background:#402c37;}
:root[data-theme] .employee-directory tr[data-team="0"] {--team-bg:#eef5ff;--team-header:#dce9fb;}
:root[data-theme] .employee-directory tr[data-team="1"] {--team-bg:#edf8f3;--team-header:#d8eee4;}
:root[data-theme] .employee-directory tr[data-team="2"] {--team-bg:#f5f0ff;--team-header:#e9dff8;}
:root[data-theme] .employee-directory .employee-person-row td {background:var(--team-bg);}
:root[data-theme] .employee-directory .employee-team-row th {background:var(--team-header);}
:root[data-theme="dark"] .employee-directory tr[data-team="0"] {--team-bg:#20334c;--team-header:#29425f;}
:root[data-theme="dark"] .employee-directory tr[data-team="1"] {--team-bg:#203c34;--team-header:#294d42;}
:root[data-theme="dark"] .employee-directory tr[data-team="2"] {--team-bg:#342c47;--team-header:#43385b;}
:root[data-theme] .employee-save-actions {display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:20px 0 24px;margin:8px 0 28px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);}
:root[data-theme] .employee-save-button {width:auto;background:#315dcc;color:#fff;border:1px solid #315dcc;padding:12px 24px;box-shadow:0 2px 4px #00000014;}
:root[data-theme] .employee-save-button:hover {background:#254ba9;}
:root[data-theme="dark"] .employee-save-button {background:#537ded;border-color:#537ded;color:#fff;}
:root[data-theme="dark"] .employee-save-button:hover {background:#668df2;}
.attendance-hold-button {border:1px solid #ba553c;border-radius:5px;background:#fff2eb;color:#973c27;padding:5px 8px;cursor:pointer;font:inherit;font-weight:700;}
.attendance-hold-button:hover {background:#ffe0d2;}
:root[data-theme="dark"] .attendance-hold-button {background:#50312a;color:#ffd2bf;border-color:#c78468;}
:root[data-theme] .payroll-prepare-button {background:#315dcc;border:1px solid #315dcc;color:#fff;}
:root[data-theme] .payroll-prepare-button:hover:not(:disabled) {background:#254ba9;}
:root[data-theme] .payroll-publish-button {background:#20834c;border:1px solid #20834c;color:#fff;}
:root[data-theme] .payroll-publish-button:hover:not(:disabled) {background:#176b3c;}
:root[data-theme] .payroll-publish-button:disabled {background:#20834c;border-color:#20834c;color:#fff;opacity:.45;}
:root[data-theme="dark"] .payroll-prepare-button {background:#537ded;border-color:#537ded;}
:root[data-theme="dark"] .payroll-publish-button {background:#25985a;border-color:#25985a;}
:root[data-theme] .paystub-hours-summary {background:#fff6df;border:1px solid #e8cf8d;border-left:4px solid #bc8b24;border-radius:8px;padding:14px 16px;font-weight:600;line-height:1.7;color:#674b17;}
:root[data-theme="dark"] .paystub-hours-summary {background:#3d3420;border-color:#766039;color:#ffe3a0;}
.paystub-preview .payroll-pto-form {padding:14px 0;}
:root[data-theme] .payroll-reset-button {background:#b93838;border:1px solid #b93838;color:#fff;}
:root[data-theme] .payroll-reset-button:hover {background:#9d2929;}
:root[data-theme="dark"] .payroll-reset-button {background:#c44a4a;border-color:#c44a4a;}
.paystub-hours-line {line-height:2.2;}
:root[data-theme] .paystub-hours-line .paystub-hours-summary {display:inline;padding:5px 9px;border-left:0;border-radius:5px;box-decoration-break:clone;-webkit-box-decoration-break:clone;}
.pto-employee-fixed {display:flex;flex-direction:column;justify-content:center;gap:6px;}
.reset-warning-clear,.reset-warning-keep {padding:14px 18px;border-radius:8px;border:1px solid var(--rule);}
.reset-warning-clear {background:#fff0ee;border-left:4px solid #b93838;}
.reset-warning-keep {background:#edf8f1;border-left:4px solid #20834c;}
.reset-warning-clear h3,.reset-warning-keep h3 {margin:0 0 8px;}
.reset-warning-clear ul,.reset-warning-keep ul {margin:0;padding-left:20px;}
.reset-warning-clear li,.reset-warning-keep li {margin:8px 0;line-height:1.45;}
:root[data-theme="dark"] .reset-warning-clear {background:#402a2c;}
:root[data-theme="dark"] .reset-warning-keep {background:#213b30;}
.paystub-hours-line {display:flex;align-items:center;flex-wrap:wrap;gap:12px 24px;}
.paystub-regular-summary {display:block;}
:root[data-theme] .paystub-hours-line .paystub-hours-summary {display:block;padding:8px 12px;}
:root[data-theme] .payroll-status-badge {display:inline-block;padding:8px 14px;border-radius:8px;font-weight:700;text-transform:capitalize;}
:root[data-theme] .payroll-status-badge.is-published {background:#dff3e7;color:#17663a;}
:root[data-theme] .payroll-status-badge.is-draft {background:#fff0cc;color:#855c08;}
:root[data-theme] .payroll-status-badge.is-unprepared {background:#e9edf3;color:#526178;}
:root[data-theme="dark"] .payroll-status-badge.is-published {background:#204631;color:#a5e8bb;}
:root[data-theme="dark"] .payroll-status-badge.is-draft {background:#493c20;color:#ffe19a;}
:root[data-theme="dark"] .payroll-status-badge.is-unprepared {background:#2c3747;color:#c5cedb;}
.payroll-pto-form {grid-template-columns:minmax(210px,1fr) minmax(130px,1fr) minmax(180px,1fr) auto;align-items:end;gap:16px;}
.payroll-pto-form > div:last-child {align-self:end;}
.payroll-pto-form > div:last-child .button {min-height:48px;white-space:nowrap;margin:0;}
@media(max-width:900px) {.payroll-pto-form {grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:560px) {.payroll-pto-form {grid-template-columns:1fr;}}
.payroll-pto-details > summary {cursor:pointer;padding:2px 0;}
.payroll-pto-details[open] > summary {margin-bottom:16px;}
.published-paystub-details > summary {cursor:pointer;}
.published-paystub-details[open] > summary {margin-bottom:16px;}
.published-paystub-details .money {text-align:right;white-space:nowrap;}

/* Keep PTO amounts readable at narrow widths and in employee dialogs. */
.pto-stats > div {grid-template-columns:minmax(100px,1fr) minmax(0,1.5fr);}
.pto-stats strong {white-space:normal;overflow-wrap:anywhere;}
.employee-settings-section .field-grid {align-items:end;}
[hidden] {display:none !important;}
.hold-approved-badge {display:inline-block;margin-top:4px;padding:3px 5px;border-radius:4px;background:#def3e9;color:#176443;font-size:10px;font-weight:600;white-space:nowrap;}

.pto-section form.field-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
.pto-section label {min-width:0;}
.pto-section form > div {align-self:end;}
@media(max-width:850px){.pto-section form.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:560px){.pto-section form.field-grid{grid-template-columns:1fr;}.pto-stats > div{grid-template-columns:1fr;gap:4px;}.pto-stats strong{text-align:left;}}
/* Align dated adjustments with their inputs. */
#adjust-form {grid-template-columns:minmax(160px,1fr) minmax(130px,1fr) minmax(240px,2fr) auto;align-items:end;gap:16px;margin-top:16px;}
#adjust-form > div {align-self:end;}
#adjust-form .button {min-height:48px;margin:0;white-space:nowrap;}
@media(max-width:900px){#adjust-form{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:560px){#adjust-form{grid-template-columns:1fr;}#adjust-form .button{width:100%;}}

.workspace-logo {width:58px;height:58px;object-fit:contain;flex-shrink:0;background:#fff;border-radius:6px;}

/* Paid holidays: separated controls and readable employee selection. */
.holiday-rules.compact {display:grid;gap:16px;}
.holiday-rules.compact .holiday-rule-form {display:block;padding:18px;border:1px solid var(--rule);border-radius:8px;}
.holiday-rule-header {display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;}
.holiday-rule-header h3 {margin:0 0 6px;}
.holiday-rule-controls {display:grid;grid-template-columns:minmax(200px,2fr) minmax(100px,1fr) auto;align-items:end;gap:16px;}
.holiday-rule-controls .button {min-height:48px;white-space:nowrap;margin:0;}
.holiday-employee-selection {margin:18px 0 0;padding:14px;border:1px solid var(--rule);border-radius:6px;}
.holiday-employee-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.holiday-employee-option {display:flex;flex-direction:row;align-items:center;gap:10px;min-width:0;font-size:.85rem;}
.holiday-employee-option input {width:16px;min-height:16px;height:16px;flex-shrink:0;margin:0;}
@media(max-width:800px){.holiday-employee-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.holiday-rule-controls{grid-template-columns:minmax(0,1fr) 110px;}.holiday-rule-controls .button{grid-column:1/-1;justify-self:start;}}
@media(max-width:500px){.holiday-employee-grid,.holiday-rule-controls{grid-template-columns:1fr;}}

.holiday-settings > summary {display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:76px;padding:18px 20px;border:1px solid var(--rule);border-radius:8px;cursor:pointer;transition:background .15s;}
.holiday-settings > summary:hover {background:var(--net);}
.holiday-settings > summary:focus-visible {outline:2px solid #438acb;outline-offset:3px;}
.holiday-settings > summary > span:first-child {display:flex;flex-direction:column;align-items:flex-start;gap:6px;}
.holiday-settings > summary .holiday-expand-label {display:flex;align-items:center;gap:10px;font-size:.8rem;font-weight:600;white-space:nowrap;}
.holiday-settings > summary .when-open {display:none;}
.holiday-settings[open] > summary .when-closed {display:none;}
.holiday-settings[open] > summary .when-open {display:inline;}
.holiday-settings > summary .holiday-chevron {font-size:24px;transition:transform .15s;}
.holiday-settings[open] > summary .holiday-chevron {transform:rotate(180deg);}
.holiday-settings[open] > summary {padding:18px 20px;}
@media(max-width:500px){.holiday-settings > summary{flex-wrap:wrap;}}

.holiday-enable-control {display:flex;align-items:center;gap:12px;flex-shrink:0;font-weight:600;}
.holiday-enable-control .switch {display:block;flex:0 0 46px;width:46px;height:26px;margin:0;}
.holiday-enable-control .switch input:focus-visible + span {outline:2px solid var(--accent);outline-offset:3px;}

.payroll-person-tabs {gap:8px;flex-wrap:wrap;border-bottom:0;padding:4px 0 12px;}
.payroll-person-tabs .attendance-tab {border:1px solid var(--rule);border-radius:6px;padding:9px 14px;font-size:.9rem;}
.payroll-person-tabs .attendance-tab.active {background:var(--accent);border-color:var(--accent);color:#fff;}

:root[data-theme] .nav-label {font-size:.7rem;font-weight:600;letter-spacing:.055em;color:#9ab2c5;margin-bottom:8px;}
:root[data-theme] .nav-button {font-size:1rem;font-weight:600;}
#history-period-form {display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;}
#history-period-form label {display:flex;flex-direction:column;gap:8px;margin:0;flex:0 1 240px;min-width:190px;}
#history-period-form input[type="date"] {width:100%;height:44px;min-height:44px;box-sizing:border-box;margin:0;}
#history-period-form .button {height:44px;min-height:44px;margin:0;white-space:nowrap;}
@media(max-width:500px){#history-period-form label{flex-basis:100%;}#history-period-form .button{width:100%;}}

.reset-general-details {border:1px solid var(--rule);border-radius:6px;padding:12px;}
.reset-general-details > summary {cursor:pointer;font-weight:600;padding:4px;}
.reset-general-details[open] > summary {margin-bottom:12px;}
.pto-employee-fixed [data-pto-available],.pto-employee-fixed [data-pto-missing] {display:block;align-self:flex-start;padding:8px 10px;border:1px solid;border-radius:6px;font-weight:600;line-height:1.5;max-width:100%;}
.pto-employee-fixed [data-pto-available] {background:#e8f2ff;border-color:#b8d3f4;color:#224f83;}
.pto-employee-fixed [data-pto-missing] {background:#fff5db;border-color:#ebd28d;color:#785318;}
:root[data-theme="dark"] .pto-employee-fixed [data-pto-available] {background:#203c56;border-color:#416689;color:#c2ddff;}
:root[data-theme="dark"] .pto-employee-fixed [data-pto-missing] {background:#44391f;border-color:#78643a;color:#ffe3a1;}

.parking-enable-control {display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid var(--rule);border-radius:6px;background:var(--wash);grid-column:1/-1;font-weight:600;}
.parking-enable-control .switch {display:block;flex:0 0 46px;width:46px;height:26px;margin:0;}
.parking-enable-control .switch input:focus-visible + span {outline:2px solid var(--accent);outline-offset:3px;}
.daily-adjustment-enable-control {display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid var(--rule);border-radius:6px;background:var(--wash);grid-column:1/-1;font-weight:600;margin:0 0 16px;}
.daily-adjustment-enable-control .switch {display:block;flex:0 0 46px;width:46px;height:26px;margin:0;}
.daily-adjustment-enable-control .switch input:focus-visible + span {outline:2px solid var(--accent);outline-offset:3px;}
.daily-adjustment-enable-control .switch input:disabled + span {opacity:.45;cursor:not-allowed;}
#retention-form > .field-grid {align-items:start;}
#retention-form > .field-grid > .stack {align-content:start;min-width:0;}
#retention-form label {margin:0;}
@media(max-width:600px){#retention-form > .field-grid {grid-template-columns:1fr !important;}}

.payroll-team-navigation {display:grid;gap:10px;margin-bottom:20px;}
.payroll-team-navigation-row {display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:16px;padding:12px 16px;background:var(--paper);border:1px solid var(--rule);border-radius:8px;}
.payroll-department-button {background:transparent;color:var(--ink);border:0;border-radius:5px;padding:9px 0;text-align:left;font:inherit;font-weight:700;cursor:pointer;}
.payroll-department-button.active {color:var(--accent);}
.payroll-team-navigation-row .payroll-person-tabs {display:flex;gap:8px;flex-wrap:wrap;margin:0;padding:0;}
.payroll-department-button:focus-visible {outline:2px solid var(--accent);outline-offset:3px;}
@media(max-width:600px){.payroll-team-navigation-row{grid-template-columns:1fr;gap:6px;}}

.pto-employee-fixed [data-pto-available],.pto-employee-fixed [data-pto-missing] {display:flex;flex-direction:column;gap:4px;width:100%;box-sizing:border-box;}
.pto-stat-label {font-size:.78rem;font-weight:500;line-height:1.4;}
.pto-stat-value {font-size:1.35rem;font-weight:700;line-height:1.3;font-variant-numeric:tabular-nums;}
.pto-stat-value small {font-size:.8rem;font-weight:500;}
.pto-cover-button {align-self:flex-start;margin-top:2px;}

.employee-parking-settings {grid-column:1/-1;display:grid;gap:16px;margin-top:8px;}
.parking-options-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px 18px;}
.parking-options-grid label {display:flex;flex-direction:column;gap:8px;margin:0;}
.parking-options-grid input {height:44px;min-height:44px;margin:0;box-sizing:border-box;}
.parking-options-grid .parking-help {grid-column:1/-1;margin:0;}
@media(max-width:600px){.parking-options-grid{grid-template-columns:1fr;}}
.parking-options-grid[hidden] {display:none;}

.employee-editor-tabs {flex-wrap:wrap;gap:18px;margin-bottom:0;}
#employee-edit-form [data-employee-panel][hidden] {display:none;}
#employee-edit-form [data-employee-panel] {min-width:0;}
#employee-panel-schedule {display:grid;gap:16px;}
:root[data-theme] #employee-edit-form .employee-save-actions {position:sticky;bottom:0;background:var(--paper);margin:0;padding:16px 0 8px;border-bottom:0;z-index:1;}

:root[data-theme] .nav-button {display:flex;align-items:center;gap:11px;text-align:left;}
.nav-icon {flex:0 0 20px;opacity:.88;}
.nav-button.active .nav-icon {opacity:1;}

.payroll-team-navigation-row {transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease;}
.payroll-team-navigation-row.is-selected {background:#e6f4f1;border-color:#86c3b7;box-shadow:inset 4px 0 0 var(--accent);}
.payroll-team-navigation .attendance-tab {transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease;}
.payroll-team-navigation .attendance-tab:hover {background:#d2ece6;border-color:#67ad9e;color:#145c50;transform:translateY(-2px);box-shadow:0 3px 8px #17324d14;}
.payroll-team-navigation .attendance-tab.active:hover {background:var(--accent);color:#fff;}
:root[data-theme="dark"] .payroll-team-navigation-row.is-selected {background:#203d39;border-color:#46796e;}
:root[data-theme="dark"] .payroll-team-navigation .attendance-tab:hover {background:#2b5048;border-color:#68b6a5;color:#ddfff6;}
:root[data-theme="dark"] .payroll-team-navigation .attendance-tab.active:hover {background:var(--accent);color:#fff;}
@media(prefers-reduced-motion:reduce){.payroll-team-navigation-row,.payroll-team-navigation .attendance-tab{transition:none;}.payroll-team-navigation .attendance-tab:hover{transform:none;}}

.payroll-heading-help {display:inline-flex;position:relative;vertical-align:middle;margin-left:10px;}
.payroll-info-button {display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;min-height:0;padding:0;border:0;border-radius:50%;background:transparent;color:var(--slate);cursor:help;}
.payroll-info-button:hover,.payroll-info-button:focus-visible {background:var(--wash);color:var(--accent);}
.payroll-heading-tooltip {display:none;position:absolute;left:0;top:calc(100% + 8px);z-index:20;width:min(390px,calc(100vw - 64px));padding:14px 16px;border:1px solid var(--rule);border-radius:8px;background:var(--paper);color:var(--ink);box-shadow:0 8px 24px #0002;font-family:"Segoe UI",sans-serif;font-size:.88rem;font-weight:400;line-height:1.55;letter-spacing:0;}
.payroll-heading-help:hover .payroll-heading-tooltip,.payroll-heading-help:focus-within .payroll-heading-tooltip {display:block;}
@media(max-width:600px){.payroll-heading-tooltip{left:auto;right:0;}}

:root[data-theme] [data-team="0"] {--team-tint:#eef5ff;--team-selected:#dce9fb;--team-color:#2b63ad;--team-border:#aec9ec;}
:root[data-theme] [data-team="1"] {--team-tint:#edf8f3;--team-selected:#d8eee4;--team-color:#287653;--team-border:#a3cdb6;}
:root[data-theme] [data-team="2"] {--team-tint:#f5f0ff;--team-selected:#e9dff8;--team-color:#7250a5;--team-border:#c7b2e1;}
:root[data-theme="dark"] [data-team="0"] {--team-tint:#20334c;--team-selected:#29425f;--team-color:#aacfff;--team-border:#4b719b;}
:root[data-theme="dark"] [data-team="1"] {--team-tint:#203c34;--team-selected:#294d42;--team-color:#a3dcc0;--team-border:#4b846b;}
:root[data-theme="dark"] [data-team="2"] {--team-tint:#342c47;--team-selected:#43385b;--team-color:#d4baff;--team-border:#8065a1;}
:root[data-theme] .employee-directory .employee-team-row th {color:var(--team-color);}
:root[data-theme] .employee-directory .employee-person-row .button {border-color:var(--team-border);color:var(--team-color);}
:root[data-theme] .payroll-team-navigation-row {background:var(--team-tint);border-color:var(--team-border);}
:root[data-theme] .payroll-team-navigation-row.is-selected {background:var(--team-selected);border-color:var(--team-color);box-shadow:inset 4px 0 0 var(--team-color);}
:root[data-theme] .payroll-team-navigation-row .payroll-department-button {color:var(--team-color);}
:root[data-theme] .payroll-team-navigation-row .attendance-tab {border-color:var(--team-border);color:var(--team-color);}
:root[data-theme] .payroll-team-navigation-row .attendance-tab:hover {background:var(--team-selected);border-color:var(--team-color);color:var(--team-color);}
:root[data-theme] .payroll-team-navigation-row .attendance-tab.active {background:var(--team-color);border-color:var(--team-color);color:#fff;}
:root[data-theme="dark"] .payroll-team-navigation-row .attendance-tab.active {color:#142333;}
:root[data-theme] .published-paystub-details:not([open]) {display:block;padding:8px 14px;}
.published-paystub-details > summary {cursor:pointer;font-size:.88rem;line-height:1.4;}
.published-paystub-details:not([open]) > summary {padding:2px 0;margin:0;}
:root[data-theme] .paystub-preview > .between {display:flex;align-items:center;flex-wrap:wrap;gap:16px;}
.paystub-footer-summary {flex:1 1 320px;max-width:54ch;min-width:0;}
.paystub-footer-summary p {margin:0 0 6px;}
.paystub-footer-summary p:last-child {margin-bottom:0;}
.paystub-preview .pdf-downloads {display:flex;align-items:stretch;flex:0 0 auto;flex-wrap:nowrap;gap:10px;}
:root[data-theme] .paystub-preview .pdf-downloads .button {display:inline-flex;align-items:center;justify-content:center;min-height:42px;box-sizing:border-box;margin:0;padding:10px 14px;line-height:1.3;white-space:nowrap;text-align:center;text-decoration:none;}
@media(max-width:600px){.paystub-preview .pdf-downloads{flex:1 1 100%;flex-wrap:wrap;}.paystub-preview .pdf-downloads .button{flex:1 1 210px;}}

.paystub-preview .payroll-pto-form {grid-template-columns:minmax(130px,1fr) minmax(200px,2fr) auto;align-items:start;gap:18px;padding:10px 0 0;}
.payroll-pto-form .pto-employee-fixed {grid-column:1/-1;display:grid;grid-template-columns:minmax(180px,1fr) repeat(2,minmax(180px,1fr));align-items:center;gap:14px;margin-bottom:6px;}
.pto-person-identity {display:flex;flex-direction:column;gap:6px;}
.pto-person-identity strong {font-size:1rem;}
.payroll-pto-form > label {display:flex;flex-direction:column;gap:8px;margin:0;}
.payroll-pto-form > label > input {height:44px;min-height:44px;margin:0;box-sizing:border-box;}
.payroll-pto-form .pto-form-actions {display:flex;align-items:center;gap:10px;align-self:end;}
.payroll-pto-form .pto-form-actions .button {height:44px;min-height:44px;margin:0;white-space:nowrap;}
.payroll-pto-form .pto-cover-button[hidden] {display:none;}
@media(max-width:1000px){.paystub-preview .payroll-pto-form{grid-template-columns:minmax(0,1fr) minmax(0,2fr);}.payroll-pto-form .pto-form-actions{grid-column:1/-1;}.payroll-pto-form .pto-employee-fixed{grid-template-columns:repeat(2,minmax(0,1fr));}.pto-person-identity{grid-column:1/-1;}}
@media(max-width:600px){.paystub-preview .payroll-pto-form,.payroll-pto-form .pto-employee-fixed{grid-template-columns:1fr;}.payroll-pto-form .pto-form-actions{flex-wrap:wrap;}.payroll-pto-form .pto-form-actions .button{flex:1 1 160px;}}

:root[data-theme] .pto-clear-button {background:#fff1ef;border-color:#e5b7af;color:#a33222;}
:root[data-theme] .pto-clear-button:hover {background:#ffe2dc;}
:root[data-theme="dark"] .pto-clear-button {background:#492f2b;border-color:#855047;color:#ffc1b5;}
:root[data-theme="dark"] .pto-clear-button:hover {background:#5a3831;}
:root[data-theme] .paystub-preview .payroll-pto-details:not([open]) {display:block;padding:8px 14px;}
:root[data-theme] .paystub-preview .payroll-pto-details {background:#eef5ff;border-color:#bdd2ef;border-left:4px solid #4a79bd;}
:root[data-theme] .paystub-preview .payroll-pto-details > summary {color:#254e88;border-radius:4px;transition:background .15s ease;}
:root[data-theme] .paystub-preview .payroll-pto-details > summary:hover {background:#dfeaff;}
:root[data-theme="dark"] .paystub-preview .payroll-pto-details {background:#22344c;border-color:#425d80;border-left-color:#8eb5ef;}
:root[data-theme="dark"] .paystub-preview .payroll-pto-details > summary {color:#c1d8fa;}
:root[data-theme="dark"] .paystub-preview .payroll-pto-details > summary:hover {background:#2c4362;}
.paystub-preview .payroll-pto-details:not([open]) > summary {margin:0;padding:2px 0;font-size:.88rem;line-height:1.4;}

.payroll-heading-help.is-open .payroll-heading-tooltip {display:block;}
.attendance-overwrite-help .payroll-heading-tooltip {left:auto;right:0;width:min(360px,calc(100vw - 80px));}

.draft-editor-tabs {grid-column:1/-1;flex-wrap:wrap;}
.deduction-form > [data-draft-panel] {grid-column:1/-1;min-width:0;}
.deduction-form > [data-draft-panel][hidden] {display:none;}

.timesheet-payroll-link {border:0;background:transparent;color:var(--accent);font:inherit;font-weight:600;padding:3px 0;cursor:pointer;white-space:nowrap;text-align:inherit;}
.timesheet-payroll-link:hover {text-decoration:underline;}
.timesheet-payroll-link:focus-visible {outline:2px solid var(--accent);outline-offset:3px;border-radius:3px;}
:root[data-theme] .paystub-preview .deduction-form {display:grid;border:1px solid var(--rule);border-radius:8px;background:var(--paper);padding:18px;gap:18px;}
.paystub-preview .deduction-form .draft-editor-tabs {margin:0;padding:0 0 4px;border-bottom:1px solid var(--rule);}
.paystub-preview .deduction-form .draft-editor-tabs .attendance-tab {padding:10px 14px;border-radius:6px 6px 0 0;background:var(--wash);}
.paystub-preview .deduction-form .draft-editor-tabs .attendance-tab.active {background:var(--net);color:var(--accent);border-bottom-color:var(--accent);}
@media(max-width:600px){:root[data-theme] .paystub-preview .deduction-form{padding:12px;}.draft-editor-tabs{gap:8px;}}

.paystub-hours-line {gap:8px;line-height:1.4;}
:root[data-theme] .paystub-metric-tag {display:inline-flex;align-items:center;min-height:34px;padding:7px 11px;border:1px solid #d5dfeb;border-radius:6px;background:#f4f7fb;color:#233c58;font-size:13px;white-space:nowrap;}
:root[data-theme] .paystub-metric-tag.highlighted {background:#fff6df;border-color:#e8cf8d;color:#674b17;font-weight:600;}
:root[data-theme="dark"] .paystub-metric-tag {background:#26384e;border-color:#465b74;color:#e0e9f6;}
:root[data-theme="dark"] .paystub-metric-tag.highlighted {background:#3d3420;border-color:#766039;color:#ffe3a0;}

.attendance-changed-label {display:inline-flex;vertical-align:middle;margin-left:12px;padding:5px 9px;border:1px solid #e8cf8d;border-radius:6px;background:#fff6df;color:#674b17;font-size:12px;line-height:1.4;font-weight:600;letter-spacing:0;white-space:nowrap;}
:root[data-theme="dark"] .attendance-changed-label {background:#3d3420;border-color:#766039;color:#ffe3a0;}

.employee-paystub-link {font:inherit;font-weight:700;color:var(--ink);background:transparent;border:0;border-radius:4px;padding:4px 6px;margin:-4px -6px;cursor:pointer;text-align:left;}
.employee-paystub-link:hover {color:var(--accent);background:var(--wash);text-decoration:underline;text-underline-offset:3px;}
.employee-paystub-link:focus-visible {outline:2px solid var(--accent);outline-offset:3px;}

button.net-pay-copy {font:inherit;color:inherit;background:transparent;border:0;padding:0;border-radius:0;cursor:pointer;width:100%;appearance:none;}
button.net-pay-copy:hover strong {filter:brightness(.94);text-decoration:underline;text-underline-offset:3px;}
button.net-pay-copy:focus-visible {outline:2px solid var(--accent);outline-offset:-3px;}

.combined-paystub-settings .combined-pto-section {padding:12px;border-radius:6px;background:var(--wash);border:1px solid var(--rule);}
.combined-paystub-settings .combined-pto-section h3 {margin:0 0 14px;font-size:14px;}
.combined-paystub-settings .paystub-editor-actions {justify-content:flex-end;padding-top:12px;border-top:1px solid var(--rule);}
/* Department headers above their employee names: two navigation lines. */
.payroll-team-navigation {grid-template-columns:3fr 2fr 2fr;gap:10px;align-items:stretch;}
.payroll-team-navigation-row {grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr;align-items:start;gap:8px;padding:10px 12px;min-width:0;}
.payroll-team-navigation-row .payroll-department-button {width:100%;padding:5px 2px;}
.payroll-team-navigation-row .payroll-person-tabs {align-items:center;gap:6px;}
.payroll-team-navigation-row .attendance-tab {padding:8px 10px;font-size:13px;white-space:nowrap;}
@media(max-width:900px){.payroll-team-navigation {grid-template-columns:1fr;}.payroll-team-navigation-row {grid-template-columns:140px minmax(0,1fr);grid-template-rows:auto;align-items:center;}}
@media(max-width:600px){.payroll-team-navigation-row {grid-template-columns:1fr;}}

:root[data-theme] .paystub-preview.paystub-reviewed {border:2px solid #39977a;background:#f4fbf7;box-shadow:0 0 0 3px #39977a12;}
:root[data-theme] .paystub-reviewed > div > .eyebrow {color:#26765d;font-weight:700;}
.review-status-tag {display:inline-flex;align-items:center;gap:6px;padding:9px 13px;border:1px solid #90cbb0;border-radius:6px;background:#dff3e7;color:#206447;font-size:13px;font-weight:700;}
:root[data-theme] .review-cancel-button {background:#fff2e4;border-color:#deb788;color:#82521d;}
:root[data-theme] .review-cancel-button:hover {background:#ffe4c2;border-color:#bb874e;}
:root[data-theme="dark"] .paystub-preview.paystub-reviewed {background:#203b34;border-color:#65b795;}
:root[data-theme="dark"] .paystub-reviewed > div > .eyebrow {color:#9ae1be;}
:root[data-theme="dark"] .review-status-tag {background:#284b3a;border-color:#539673;color:#b4edcb;}
:root[data-theme="dark"] .review-cancel-button {background:#483522;border-color:#987449;color:#f6d2a6;}
/* Keep the combined editor compact as amounts are edited. */
:root[data-theme] .paystub-preview .combined-paystub-settings[open] {display:block;padding:14px;}
.combined-paystub-settings[open] > summary {margin-bottom:12px;}
.combined-paystub-settings > .draft-editor-tabs {margin:0 0 12px;padding:0 0 8px;gap:6px;}
.combined-paystub-settings > .draft-editor-tabs .attendance-tab {padding:8px 12px;font-size:13px;}
.combined-paystub-settings [data-payment-editor],.combined-paystub-settings > [data-draft-panel="pto"] {max-height:340px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;min-width:0;}
.combined-paystub-settings .preview-editor {padding:0;border:0;display:block;}
:root[data-theme] .paystub-preview .combined-paystub-settings .deduction-form {padding:12px;gap:10px;align-content:start;height:auto;min-height:0;}
.combined-paystub-settings [data-draft-panel="taxes"] > p {margin:0 0 12px;font-size:12px;line-height:1.5;}
.combined-paystub-settings [data-draft-panel="taxes"] > .field-grid {grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 12px;align-items:start;}
.combined-paystub-settings [data-draft-panel="taxes"] label {min-width:0;font-size:12px;gap:5px;}
.combined-paystub-settings [data-draft-panel="taxes"] input {width:100%;min-width:0;min-height:38px;padding:8px 10px;}
.combined-paystub-settings .paystub-editor-actions {margin-top:12px;padding-top:10px;}
@media(max-width:700px){.combined-paystub-settings [data-draft-panel="taxes"] > .field-grid {grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:420px){.combined-paystub-settings [data-draft-panel="taxes"] > .field-grid {grid-template-columns:1fr;}}

.combined-paystub-settings .review-locked-summary {cursor:default;pointer-events:none;display:flex;justify-content:space-between;align-items:center;gap:12px;}
.review-lock-hint {font-size:12px;font-weight:500;color:var(--slate);}

:root[data-theme] .payroll-team-navigation-row .attendance-tab.is-reviewed {background:#dff3e7;border-color:#39977a;color:#206447;font-weight:700;}
.payroll-team-navigation-row .attendance-tab.is-reviewed::before {content:'✓';margin-right:6px;}
:root[data-theme] .payroll-team-navigation-row .attendance-tab.is-reviewed:hover {background:#c6ead5;border-color:#26765d;color:#174d36;}
:root[data-theme] .payroll-team-navigation-row .attendance-tab.is-reviewed.active {background:#26765d;border-color:#206447;color:#fff;box-shadow:0 0 0 2px var(--team-color);}
:root[data-theme="dark"] .payroll-team-navigation-row .attendance-tab.is-reviewed {background:#284b3a;border-color:#65b795;color:#b4edcb;}
:root[data-theme="dark"] .payroll-team-navigation-row .attendance-tab.is-reviewed:hover {background:#345e48;color:#d0ffe3;}
:root[data-theme="dark"] .payroll-team-navigation-row .attendance-tab.is-reviewed.active {background:#3e805f;color:#fff;}


/* Page headings share the header with display controls. */
:root[data-theme] .topbar { flex-wrap:wrap; }
:root[data-theme] h1.topbar-title { font-size:1.5rem; line-height:1.25; color:var(--ink); margin:0; display:flex; align-items:center; flex-wrap:wrap; gap:10px; min-width:0; }
:root[data-theme] .page { padding-top:20px; }
.page-toolbar { justify-content:flex-end; }
.page-toolbar > .page-head-actions { margin-left:auto; }
.topbar .payroll-heading-tooltip { font-family:"Segoe UI",sans-serif; font-size:.82rem; font-weight:400; letter-spacing:normal; }
@media(max-width:760px) {
  :root[data-theme] h1.topbar-title { font-size:1.25rem; }
  :root[data-theme] .page { padding-top:16px; }
  .page-toolbar > .page-head-actions { margin-left:0; }
}


.timesheet-view-controls { border-bottom:1px solid var(--rule); gap:12px 24px; padding-bottom:8px; }
.timesheet-view-controls .attendance-tabs { flex:0 0 auto; border-bottom:0; }
.timesheet-view-controls .attendance-highlight-form { display:flex; flex-wrap:wrap; align-items:center; gap:12px 18px; padding:0; margin-left:auto; }
.timesheet-view-controls .attendance-highlight-form label { display:flex; flex-direction:row; align-items:center; gap:8px; margin:0; }
.timesheet-view-controls .grace-minutes input { width:68px; min-height:34px; padding:6px 8px; }
.timesheet-view-controls .attendance-highlight-form > strong { color:var(--slate); cursor:help; }
@media(max-width:1000px) {
 .timesheet-view-controls .attendance-highlight-form { gap:10px; }
 .timesheet-view-controls .attendance-highlight-form > strong { display:none; }
}
@media(max-width:760px) {
 .timesheet-view-controls .attendance-highlight-form { margin-left:0; }
}


.publish-button-help { position:relative; display:inline-flex; align-self:flex-end; }
.publish-button-help:focus-visible { outline:2px solid #3976c6; outline-offset:3px; border-radius:5px; }
.publish-button-help > button:disabled { pointer-events:none; }
.publish-disabled-tooltip { display:none; position:absolute; right:0; top:calc(100% + 8px); z-index:30; width:min(360px,calc(100vw - 48px)); padding:14px 16px; background:var(--paper); color:var(--ink); border:1px solid var(--rule); border-radius:8px; box-shadow:0 8px 24px #0002; font-size:.85rem; line-height:1.5; }
.publish-disabled-tooltip strong { display:block; margin-bottom:6px; }
.publish-disabled-tooltip ul { padding-left:18px; margin:0; }
.publish-disabled-tooltip li + li { margin-top:6px; }
.publish-button-help:hover .publish-disabled-tooltip,.publish-button-help:focus .publish-disabled-tooltip { display:block; }


:root[data-theme] .import-period-summary { grid-template-columns:1.4fr 1fr 1fr minmax(220px,1.2fr); align-items:stretch; }
:root[data-theme] .import-period-summary .card { padding:12px 18px; display:flex; flex-direction:column; justify-content:center; gap:5px; }
:root[data-theme] .import-period-summary .metric { font-size:1.65rem; line-height:1.15; }
.import-period-picker label { width:100%; }
.import-period-picker select { width:100%; }
@media(max-width:760px) {
 :root[data-theme] .import-period-summary { grid-template-columns:1fr 1fr; }
 :root[data-theme] .import-period-summary .card:nth-child(odd) { border-right:1px solid var(--rule); }
 :root[data-theme] .import-period-summary .card:nth-child(n+3) { border-bottom:0; }
}
@media(max-width:420px) {
 :root[data-theme] .import-period-summary { grid-template-columns:1fr; }
 :root[data-theme] .import-period-summary .card { border-right:0; border-bottom:1px solid var(--rule); }
 :root[data-theme] .import-period-summary .card:last-child { border-bottom:0; }
}


.short-day-help { position:relative; display:inline-flex; align-items:center; color:var(--slate); cursor:help; }
.short-day-tooltip { display:none; position:absolute; right:0; top:calc(100% + 8px); z-index:30; width:min(340px,calc(100vw - 48px)); padding:12px 14px; border:1px solid var(--rule); border-radius:8px; background:var(--paper); color:var(--ink); box-shadow:0 8px 24px #0002; font-size:.85rem; font-weight:400; line-height:1.5; }
.short-day-help:hover .short-day-tooltip,.short-day-help:focus .short-day-tooltip { display:block; }
@media(max-width:760px) { .short-day-tooltip { left:0; right:auto; } }


:root[data-theme] .import-period-summary { grid-template-columns:.8fr 1.2fr 1.2fr .85fr minmax(205px,1.1fr); }
@media(max-width:1000px) { :root[data-theme] .import-period-summary { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:760px) { :root[data-theme] .import-period-summary { grid-template-columns:1fr 1fr; } }
@media(max-width:420px) { :root[data-theme] .import-period-summary { grid-template-columns:1fr; } }


:root[data-theme] .holiday-employee-option { padding:10px 12px; border:1px solid var(--rule); border-radius:6px; background:var(--paper); cursor:pointer; transition:background .15s,border-color .15s; }
:root[data-theme] .holiday-employee-option:hover { border-color:#7a9ec8; background:#edf3fb; }
:root[data-theme] .holiday-employee-option.is-applied { background:#e3f3e9; border-color:#68a881; color:#176b3c; font-weight:600; }
:root[data-theme] .holiday-employee-option.is-applied > span::after { content:' ✓'; color:#20834c; }
.holiday-save-status[data-state] { padding:7px 11px; border-radius:5px; font-weight:600; }
:root[data-theme] .holiday-save-status[data-state="saved"] { background:#e3f3e9; color:#176b3c; }
:root[data-theme] .holiday-save-status[data-state="saving"] { background:#fff6df; color:#674b17; }
:root[data-theme] .holiday-save-status[data-state="error"] { background:#ffebe8; color:#a63226; }
:root[data-theme="dark"] .holiday-employee-option:hover { background:#26384e; }
:root[data-theme="dark"] .holiday-employee-option.is-applied,:root[data-theme="dark"] .holiday-save-status[data-state="saved"] { background:#213e31; color:#b7e8c8; border-color:#589a72; }


.page-toolbar > .page-head-actions.has-payroll-report { width:100%; margin-left:0; }
.has-payroll-report .payroll-report-download { margin-right:auto; }
@media(max-width:760px) { .has-payroll-report .payroll-report-download { margin-right:0; } }




:root[data-theme] .holiday-employee-option input:focus:not(:focus-visible) { outline:none; box-shadow:none; }


:root[data-theme] button.holiday-employee-option { text-align:left; font-family:inherit; min-height:42px; }
:root[data-theme] button.holiday-employee-option[aria-pressed="true"] { background:#e3f3e9; border-color:#68a881; color:#176b3c; font-weight:600; }
:root[data-theme] button.holiday-employee-option[aria-pressed="false"] { background:var(--paper); border-color:var(--rule); color:var(--ink); font-weight:400; }
button.holiday-employee-option > span::after { content:none !important; }
:root[data-theme] button.holiday-employee-option:focus:not(:focus-visible) { outline:none; }
:root[data-theme="dark"] button.holiday-employee-option[aria-pressed="true"] { background:#213e31; color:#b7e8c8; border-color:#589a72; }


.adjustment-day-buttons { display:flex; flex-wrap:wrap; gap:8px; }
:root[data-theme] .adjustment-selection-button { border:1px solid var(--rule); border-radius:6px; padding:10px 14px; background:var(--paper); color:var(--ink); font:inherit; cursor:pointer; }
:root[data-theme] .adjustment-selection-button[aria-pressed="true"] { background:#e8dcfb; border-color:#aa86ce; color:#59358a; font-weight:600; }
:root[data-theme] .adjustment-selection-button:disabled { opacity:.5; cursor:not-allowed; }
:root[data-theme="dark"] .adjustment-selection-button[aria-pressed="true"] { background:#463056; color:#ead6ff; border-color:#9670bc; }

.account-grid .settings-tile { display:flex; flex-direction:column; align-items:stretch; }
.account-grid .settings-tile > .button { margin-top:auto; }
