/* ========================================================================== 
   PLENTZ GLOBAL DESIGN SYSTEM
   Authoritative source for colour, typography, controls and shared surfaces.
   Component CSS may define geometry/layout, but must consume these tokens.
   This file is intentionally loaded LAST on every Plentz page.
   ========================================================================== */

:root{
  /* Brand */
  --plentz-brand:#078447;
  --plentz-brand-hover:#066F3D;
  --plentz-brand-deep:#075F45;
  --plentz-brand-mid:#119063;
  --plentz-brand-soft:#EEF8F2;
  --plentz-brand-border:#C7E0D1;
  --plentz-gold:#C89B35;
  --plentz-petrol:#062B35;
  --plentz-petrol-2:#083F4C;

  /* Surfaces */
  --plentz-page:#F7F8FA;
  --plentz-page-soft:#F2F6F5;
  --plentz-surface:#FFFFFF;
  --plentz-surface-soft:#F9FBFA;
  --plentz-surface-muted:#F4F7F6;

  /* Text */
  --plentz-ink:#102D3D;
  --plentz-text:#314C57;
  --plentz-muted:#71838F;
  --plentz-subtle:#93A3AA;
  --plentz-on-brand:#FFFFFF;
  --plentz-on-brand-soft:rgba(255,255,255,.78);
  --plentz-on-brand-muted:rgba(255,255,255,.64);

  /* Lines and states */
  --plentz-line:#DCE5E8;
  --plentz-line-strong:#C9D6DA;
  --plentz-success:#087A52;
  --plentz-success-soft:#EEF8F2;
  --plentz-warning:#8A6500;
  --plentz-warning-soft:#FFF7DC;
  --plentz-danger:#A63D3D;
  --plentz-danger-soft:#FFF0F0;
  --plentz-info:#256A8A;
  --plentz-info-soft:#EAF4F8;

  /* Geometry */
  --plentz-control-h:44px;
  --plentz-control-h-sm:36px;
  --plentz-control-h-lg:48px;
  --plentz-radius-control:10px;
  --plentz-radius-card:16px;
  --plentz-radius-hero:18px;
  --plentz-radius-pill:999px;
  --plentz-shadow-card:0 6px 20px rgba(6,43,53,.05);
  --plentz-shadow-float:0 18px 48px rgba(6,43,53,.12);
  --plentz-transition:160ms cubic-bezier(.2,.8,.2,1);

  /* Type */
  --plentz-font-family:Inter,"Segoe UI",Arial,sans-serif;
  --plentz-font-xs:10px;
  --plentz-font-sm:11px;
  --plentz-font-md:13px;
  --plentz-font-lg:16px;
  --plentz-font-xl:22px;
  --plentz-font-page:34px;

  /* Compatibility aliases: old modules resolve to the same canonical tokens */
  --ch-primary:var(--plentz-brand);
  --ch-primary-hover:var(--plentz-brand-hover);
  --ch-primary-deep:var(--plentz-brand-deep);
  --ch-accent:var(--plentz-brand);
  --ch-ink:var(--plentz-ink);
  --ch-text:var(--plentz-text);
  --ch-muted:var(--plentz-muted);
  --ch-subtle:var(--plentz-subtle);
  --ch-border:var(--plentz-line);
  --ch-page:var(--plentz-page);
  --ch-card:var(--plentz-surface);
  --ch-success:var(--plentz-success);
  --ch-success-bg:var(--plentz-success-soft);
  --ch-warning:var(--plentz-warning);
  --ch-warning-bg:var(--plentz-warning-soft);
  --ch-danger:var(--plentz-danger);
  --ch-danger-bg:var(--plentz-danger-soft);

  --fp-navy:var(--plentz-petrol);
  --fp-navy-2:var(--plentz-petrol-2);
  --fp-teal:var(--plentz-brand);
  --fp-teal-2:var(--plentz-brand);
  --fp-mint:var(--plentz-brand-soft);
  --fp-mint-2:var(--plentz-page);
  --fp-canvas:var(--plentz-page);
  --fp-surface:var(--plentz-surface);
  --fp-surface-soft:var(--plentz-surface-soft);
  --fp-text:var(--plentz-ink);
  --fp-muted:var(--plentz-muted);
  --fp-line:var(--plentz-line);
  --fp-line-strong:var(--plentz-line-strong);
  --fp-gold:var(--plentz-gold);
  --fp-danger:var(--plentz-danger);
  --fp-success:var(--plentz-success);
  --fp-transition:var(--plentz-transition);

  --plentz-action:var(--plentz-brand);
  --plentz-action-hover:var(--plentz-brand-hover);
  --plentz-action-soft:var(--plentz-brand-soft);
  --plentz-brand-green:var(--plentz-brand);
  --plentz-brand-green-deep:var(--plentz-brand-deep);
  --plentz-brand-green-mid:var(--plentz-brand-mid);
  --plentz-brand-gold:var(--plentz-gold);
  --plentz-body:var(--plentz-text);
  --plentz-surface-brand:var(--plentz-brand);
  --plentz-surface-brand-deep:var(--plentz-brand-hover);
  --plentz-surface-brand-soft:var(--plentz-brand-soft);
  --plentz-surface-light:var(--plentz-surface);
  --plentz-foreground-on-brand:var(--plentz-on-brand);
  --plentz-foreground-on-brand-soft:var(--plentz-on-brand-soft);
  --plentz-foreground-on-light:var(--plentz-ink);
  --plentz-foreground-on-light-soft:var(--plentz-muted);
}

*{box-sizing:border-box}
html,body{background:var(--plentz-page)!important;color:var(--plentz-text)!important}
body,.fp-app-shell,.fp-app-shell .app,.fp-app-shell .main,.fp-auth-shell,input,select,textarea,button{font-family:var(--plentz-font-family)!important}
body{font-size:var(--plentz-font-sm)!important;line-height:1.55!important;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,input,select,textarea{font:inherit}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid rgba(7,132,71,.18)!important;outline-offset:2px}

/* Typography */
.ch-page-context,.wp-eyebrow,.kicker,.head .kicker,.home-eyebrow{font-size:var(--plentz-font-xs)!important;font-weight:850!important;letter-spacing:.12em!important;text-transform:uppercase!important}
.ch-page-head h1,.head h1{font-size:var(--plentz-font-page)!important;line-height:1.08!important;font-weight:790!important;letter-spacing:-.04em!important}
.section-title h2,.box h2,.wp-entry-card h2,.wp-collapsible-section h2{font-size:var(--plentz-font-xl)!important;line-height:1.2!important;font-weight:760!important;letter-spacing:-.025em!important}
.ch-admin-panel h3,.box h3,.card h3{font-size:var(--plentz-font-lg)!important;line-height:1.25!important;font-weight:750!important}
label{color:#415C66!important;font-size:11px!important;font-weight:750!important}
.muted,.main p,.main small{color:var(--plentz-muted)}

/* App frame */
.fp-app-shell{background:var(--plentz-page)!important;border:0!important;border-radius:0!important;box-shadow:none!important}
.fp-app-shell>.app,.fp-app-shell .main{background:var(--plentz-page)!important}
.fp-global-header{background:rgba(247,248,250,.96)!important;border-bottom:1px solid var(--plentz-line)!important;box-shadow:none!important;backdrop-filter:blur(18px)!important}
.fp-user-trigger,.fp-global-text-slot button{border:1px solid var(--plentz-line)!important;border-radius:var(--plentz-radius-control)!important;background:var(--plentz-surface)!important;color:var(--plentz-text)!important;box-shadow:none!important}
.fp-user-avatar,.fp-header-mark{background:var(--plentz-brand)!important;color:#fff!important}

/* Sidebar */
.fp-app-shell .side{background:linear-gradient(180deg,var(--plentz-petrol),var(--plentz-petrol-2))!important;color:#fff!important}
.fp-app-shell .nav button{border:1px solid transparent!important;background:transparent!important;color:rgba(255,255,255,.78)!important;box-shadow:none!important;transform:none!important}
.fp-app-shell .nav button:hover{background:rgba(255,255,255,.08)!important;color:#fff!important}
.fp-app-shell .nav button.active{background:#fff!important;color:var(--plentz-petrol)!important;border-color:#fff!important;box-shadow:0 8px 22px rgba(0,0,0,.09)!important}
.fp-app-shell .nav button.active:before{display:none!important}
.fp-app-shell .nav button.active .ch-nav-icon{color:var(--plentz-brand)!important}
.fp-app-shell .app>.side .ch-employer-context{background:linear-gradient(135deg,var(--plentz-brand-deep),var(--plentz-brand-mid) 70%,#537E57 145%)!important;border-color:rgba(255,255,255,.18)!important;color:#fff!important}
.fp-app-shell .app>.side .ch-employer-context>span,.fp-app-shell .app>.side .ch-employer-context small,.fp-app-shell .app>.side .ch-employer-context label,.fp-app-shell .app>.side .ch-employer-context strong{color:#fff!important}
.fp-app-shell .app>.side .ch-employer-context small{opacity:.72!important}
.fp-app-shell .app>.side .ch-employer-context select,.fp-app-shell .app>.side .ch-employer-single{color:#fff!important;-webkit-text-fill-color:#fff!important;background:rgba(255,255,255,.10)!important}
.fp-app-shell .app>.side .ch-employer-context select option{background:#fff!important;color:#183E38!important;-webkit-text-fill-color:#183E38!important}

/* Page title: one branded topic/header design across operational pages */
.ch-page-head,.ch-approved-profile-top.ch-page-head-profile,.ch-page-head-profile{background:linear-gradient(118deg,var(--plentz-brand-deep) 0%,var(--plentz-brand) 58%,#667A48 118%)!important;border:0!important;border-radius:var(--plentz-radius-hero)!important;box-shadow:0 6px 18px rgba(7,95,69,.10)!important;color:var(--plentz-on-brand)!important}
.ch-page-head .ch-page-context,.ch-page-head .wp-eyebrow,.ch-page-head h1,.ch-page-head h2,.ch-page-head h3,.ch-page-head strong,.ch-page-head label,.ch-page-head small,.ch-page-head-profile .wp-eyebrow,.ch-page-head-profile h1,.ch-page-head-profile h2,.ch-page-head-profile strong{color:var(--plentz-on-brand)!important}
.ch-page-head p,.ch-page-head-profile p{color:var(--plentz-on-brand-soft)!important}
.ch-page-head-tools .ch-title-year small,.ch-page-head-tools .ch-title-employer small{color:var(--plentz-on-brand-muted)!important}
.ch-page-head-tools .ch-title-employer{border-left-color:rgba(255,255,255,.25)!important}
.ch-page-head .ch-title-year select{background:#fff!important;color:#17463A!important;border-color:rgba(255,255,255,.78)!important}
.ch-page-head .ch-page-head-tabs{border-top-color:rgba(255,255,255,.16)!important;background:rgba(0,0,0,.055)!important}
.ch-page-head .ch-page-head-tabs button button{color:rgba(255,255,255,.72)!important;background:transparent!important}
.ch-page-head .ch-page-head-tabs button:hover button:hover,.ch-page-head .ch-page-head-tabs button.active button.active{color:#fff!important;background:transparent!important}
.ch-page-head .ch-page-head-tabs button.active:after button.active:after{background:linear-gradient(90deg,#fff 0%,#E8D29A 100%)!important}

/* Shared surfaces */
.box,.card,.panel,.status-card,.action-panel,.admin-group,.clean-details,.workflow-note,.drop-zone,.metric,.stat,.summary-card,.chart-panel,.lock-panel,.ocr-preflight,.client-directory-card,.client-workspace-shell,.client-main-card,.client-side-card,.wp-entry-card,.ch-admin-panel,.ch-backup-card,.backup-card,.ch-approved-section,.ch-profile-info-card{background:var(--plentz-surface)!important;border:1px solid var(--plentz-line)!important;border-radius:var(--plentz-radius-card)!important;color:var(--plentz-text)!important;box-shadow:var(--plentz-shadow-card)!important}

/* Buttons: one official family */
.btn,button.btn,.wp-pay-upload-button,.ch-use-detected{min-height:var(--plentz-control-h)!important;border:1px solid var(--plentz-line-strong)!important;border-radius:var(--plentz-radius-control)!important;background:var(--plentz-surface)!important;color:var(--plentz-ink)!important;font-size:12px!important;font-weight:800!important;line-height:1.1!important;box-shadow:none!important;transition:background var(--plentz-transition),border-color var(--plentz-transition),color var(--plentz-transition),box-shadow var(--plentz-transition),transform var(--plentz-transition)!important}
.btn:hover,button.btn:hover,.wp-pay-upload-button:hover,.ch-use-detected:hover{border-color:#AFCBC0!important;background:#F8FBF9!important;transform:translateY(-1px)}
.btn.primary,button.btn.primary,.wp-pay-upload-button.plentz-surface-brand{background:var(--plentz-brand)!important;border-color:var(--plentz-brand)!important;color:#fff!important;box-shadow:0 7px 18px rgba(7,132,71,.16)!important}
.btn.primary:hover,button.btn.primary:hover:hover,.wp-pay-upload-button.plentz-surface-brand:hover:hover{background:var(--plentz-brand-hover)!important;border-color:var(--plentz-brand-hover)!important;color:#fff!important;box-shadow:0 9px 22px rgba(7,132,71,.21)!important}
.btn.mini,.btn.small{min-height:var(--plentz-control-h-sm)!important;padding:0 11px!important;font-size:11px!important}
.btn.danger,button.btn.danger{background:#fff!important;border-color:#E4C7C7!important;color:var(--plentz-danger)!important}
.btn.danger:hover,button.btn.danger:hover{background:var(--plentz-danger-soft)!important;border-color:#D9AAAA!important}

/* Inputs */
input:not([type="checkbox"]):not([type="radio"]),select,textarea{border:1px solid var(--plentz-line-strong)!important;border-radius:var(--plentz-radius-control)!important;background:#fff!important;color:var(--plentz-ink)!important;box-shadow:none!important}
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),select{min-height:var(--plentz-control-h)!important}
input:hover,select:hover,textarea:hover{border-color:#AFCBC0!important}
input:focus,select:focus,textarea:focus{border-color:var(--plentz-brand)!important;box-shadow:0 0 0 4px rgba(7,132,71,.10)!important;outline:0!important}

/* Tables */
table{border:1px solid var(--plentz-line)!important;background:#fff!important;box-shadow:none!important}
thead th{background:#F2F7F4!important;color:#536A62!important;border-bottom-color:var(--plentz-line)!important}
tbody td{color:var(--plentz-text)!important;border-bottom-color:#EAF0ED!important}
tbody tr:hover td{background:#F8FBF9!important}

/* Status semantics */
.success,.ready{color:var(--plentz-success)!important}
.error,.danger,.form-error{color:var(--plentz-danger)!important}
.warning,.attention{color:var(--plentz-warning)!important}
.ch-app-status.online{background:var(--plentz-success-soft)!important;border-color:var(--plentz-brand-border)!important;color:#17613E!important}
.ch-app-status.offline{background:#F7F9F8!important;border-color:#D9E2DD!important;color:#5B7168!important}

/* Semantic helpers for new modules */
.plentz-surface-brand{background:linear-gradient(135deg,var(--plentz-brand-hover),var(--plentz-brand))!important;border-color:var(--plentz-brand-hover)!important;color:#fff!important}
.plentz-surface-brand h1,.plentz-surface-brand h2,.plentz-surface-brand h3,.plentz-surface-brand h4,.plentz-surface-brand strong,.plentz-surface-brand b,.plentz-surface-brand p,.plentz-surface-brand span,.plentz-surface-brand small,.plentz-surface-brand label{color:#fff!important}
.plentz-surface-brand p,.plentz-surface-brand small{color:var(--plentz-on-brand-soft)!important}
.plentz-surface-light{background:#fff!important;color:var(--plentz-ink)!important}
.plentz-surface-light p,.plentz-surface-light span,.plentz-surface-light small{color:var(--plentz-muted)!important}

/* Legal/public pages use the same product system */
.ch-legal-top{background:rgba(255,255,255,.96)!important;border-bottom-color:var(--plentz-line)!important}
.ch-legal-back{border-color:var(--plentz-line)!important;background:#fff!important;color:var(--plentz-ink)!important}
.ch-legal-hero{background:linear-gradient(118deg,rgba(7,132,71,.13) 0%,rgba(255,255,255,.96) 58%,rgba(200,155,53,.14) 100%)!important;border-color:#D6E5DC!important;color:var(--plentz-ink)!important}
.ch-legal-hero small,.ch-legal-card a,.ch-legal-note a{color:var(--plentz-brand-hover)!important}
.ch-legal-card{background:#fff!important;border-color:var(--plentz-line)!important}

/* Authentication/cover */
.fp-auth-shell{background:var(--plentz-page)!important}
.fp-auth-card{background:#fff!important;border-color:var(--plentz-line)!important;box-shadow:var(--plentz-shadow-card)!important}

/* Responsive: same system, adapted rather than restyled */
@media(max-width:900px){.main{background:var(--plentz-page)!important}
  .ch-page-head{border-radius:12px!important}
  .btn,button.btn{min-height:44px!important}}
@media(max-width:560px){:root{--plentz-font-page:28px;--plentz-font-xl:19px;--plentz-radius-card:14px;--plentz-radius-hero:12px}
  .ch-page-head{border-radius:10px!important}
  .btn,button.btn{width:auto;min-height:44px!important}}


/* ==========================================================================\n   PLENTZ GLOBAL LAYOUT & MEDIA SAFETY — 1.2.0\n   Prevents media from overlapping, duplicating visually or crushing copy.\n   ========================================================================== */
.fp-app-shell *,.fp-auth-shell *,.feature *,.ch-legal-main *{min-width:0}
img{max-width:100%;height:auto}
img{object-fit:contain}
.ch150-auth-brand img,.ch-legal-brand img,.fp-header-production-brand img,.ch-brand-logo{display:block!important;flex:0 0 auto!important;object-fit:contain!important;object-position:center!important;overflow:hidden!important}
.privacy-mark,.wp-document-preview,.wp-image-preview,.ch-document-preview,.ch-image-preview,.ch-preview-media,.ch-upload-preview,.ch-payslip-preview,.ch-timesheet-preview{position:relative;isolation:isolate;overflow:hidden!important}
.hero-copy,.feature-copy,.ch150-login-card,.ch150-auth-intro{position:relative;min-width:0!important;overflow-wrap:anywhere;word-break:normal}
.wp-document-preview img,.wp-image-preview img,.ch-document-preview img,.ch-image-preview img,.ch-preview-media img,.ch-upload-preview img,.ch-payslip-preview img,.ch-timesheet-preview img{display:block!important;width:100%!important;max-width:100%!important;height:auto!important;max-height:min(70vh,820px)!important;object-fit:contain!important;object-position:center!important;margin:0 auto!important}
.box>*,.card>*,.panel>*,.wp-entry-card>*,.ch-admin-panel>*,.ch-profile-info-card>*{min-width:0}
.box p,.card p,.panel p,.wp-entry-card p,.ch-admin-panel p,.box h1,.box h2,.box h3,.card h1,.card h2,.card h3,.ch-page-head h1,.ch-page-head h2,.ch-page-head h3{overflow-wrap:anywhere}

/* GLOBAL BUTTON SYSTEM — auth, cover, public site and operational app */
:where(.fp-auth-button,.ch-auth-link-button,.ch-secondary-start,.register,.signin,.hero-actions a,.final a,.ch-legal-back,.btn,button.btn,.wp-pay-upload-button,.ch-use-detected){min-height:var(--plentz-control-h)!important;border-radius:var(--plentz-radius-control)!important;font-family:var(--plentz-font-family)!important;font-size:12px!important;font-weight:800!important;line-height:1.1!important;text-decoration:none!important;cursor:pointer;transition:background var(--plentz-transition),border-color var(--plentz-transition),color var(--plentz-transition),box-shadow var(--plentz-transition),transform var(--plentz-transition)!important}
.fp-auth-button,.register,.final a,.hero-actions .primary,.btn.primary,button.btn.primary,.wp-pay-upload-button.plentz-surface-brand{background:var(--plentz-brand)!important;border:1px solid var(--plentz-brand)!important;color:#fff!important;box-shadow:0 7px 18px rgba(7,132,71,.16)!important}
.fp-auth-button:hover,.register:hover,.final a:hover,.hero-actions .primary:hover,.btn.primary:hover,button.btn.primary:hover,.wp-pay-upload-button.plentz-surface-brand:hover{background:var(--plentz-brand-hover)!important;border-color:var(--plentz-brand-hover)!important;color:#fff!important}
.ch-secondary-start,.hero-actions .secondary,.btn.secondary,button.btn.secondary,.ch-legal-back{background:#fff!important;border:1px solid var(--plentz-brand-border)!important;color:var(--plentz-brand-deep)!important;box-shadow:none!important}
.ch-secondary-start:hover,.hero-actions .secondary:hover,.btn.secondary:hover,button.btn.secondary:hover,.ch-legal-back:hover{background:var(--plentz-brand-soft)!important;border-color:#AFCFBC!important;color:var(--plentz-brand-deep)!important}
.ch-auth-link-button,.ch-auth-discover-link,.ch-register-legal a{color:var(--plentz-brand)!important}
.ch-auth-link-button{background:transparent!important;border:1px solid transparent!important;box-shadow:none!important}
.ch-auth-link-button:hover,.ch-auth-discover-link:hover,.ch-register-legal a:hover{color:var(--plentz-brand-hover)!important}
.ch150-login-card .fp-auth-button{background:var(--plentz-brand)!important;border-color:var(--plentz-brand)!important;box-shadow:0 7px 18px rgba(7,132,71,.16)!important}
.ch150-login-card .fp-auth-button:hover{background:var(--plentz-brand-hover)!important;border-color:var(--plentz-brand-hover)!important}
.ch150-login-card .fp-auth-input:focus-within{border-color:#9CC7AF!important;box-shadow:0 0 0 4px rgba(7,132,71,.08)!important}
.ch-register-legal input{accent-color:var(--plentz-brand)!important}
button:disabled,.btn:disabled:disabled,[aria-disabled="true"]{opacity:.52!important;cursor:not-allowed!important;transform:none!important;box-shadow:none!important}
.top .signin{color:#fff!important}.top .signin:hover{background:rgba(255,255,255,.08)!important}.intro small,.features small{color:var(--plentz-brand)!important}.feature-copy li:before{color:var(--plentz-brand)!important}
@media(max-width:760px){.feature-copy,.ch150-login-card{min-width:0!important}.feature,.feature:nth-child(even){min-width:0!important}}

/* ========================================================================== 
   Device setup — integrated with the live Plentz shell
   Uses the same production header, sidebar palette, controls and typography.
   ========================================================================== */
.ch-device-setup-backdrop{position:fixed!important;inset:0!important;z-index:10000!important;padding:0!important;display:block!important;overflow:auto!important;background:var(--plentz-page)!important;backdrop-filter:none!important}
.ch-device-setup{width:100%!important;min-height:100vh!important;max-width:none!important;margin:0!important;border:0!important;border-radius:0!important;background:var(--plentz-page)!important;box-shadow:none!important;overflow:visible!important}
.ch-device-global-header{position:sticky!important;top:0!important;z-index:4!important}
.ch-device-global-header .fp-header-production-brand{pointer-events:none!important}
.ch-device-header-note{display:flex!important;align-items:center!important;gap:8px!important;color:var(--plentz-muted)!important;font-size:11px!important;font-weight:750!important}
.ch-device-header-lock{width:26px!important;height:26px!important;border-radius:50%!important;display:grid!important;place-items:center!important;background:var(--plentz-brand-soft)!important;color:var(--plentz-brand)!important;font-weight:900!important}
.ch-device-app{display:grid!important;grid-template-columns:250px minmax(0,1fr)!important;min-height:calc(100vh - 64px)!important}
.ch-device-side{position:sticky!important;top:64px!important;height:calc(100vh - 64px)!important;width:250px!important;min-width:250px!important;padding:24px 24px 18px!important;overflow:hidden!important}
.ch-device-side .nav button,.ch-device-side .ch-side-link{cursor:default!important;pointer-events:none!important}
.ch-device-side .nav button[aria-disabled="true"]{opacity:1!important}
.ch-device-side .ch-help-link{display:flex!important}
.ch-device-main{min-width:0!important;padding:42px clamp(24px,4vw,60px) 46px!important;background:var(--plentz-page)!important}
.ch-device-main>*{width:min(100%,1040px)!important;margin-left:auto!important;margin-right:auto!important}
.ch-device-welcome{margin-bottom:24px!important}
.ch-device-welcome .wp-eyebrow{display:block!important;margin:0 0 8px!important;color:var(--plentz-brand)!important;font-size:10px!important;font-weight:850!important;letter-spacing:.12em!important}
.ch-device-welcome h1{margin:0!important;color:var(--plentz-ink)!important;font-size:clamp(30px,3.1vw,44px)!important;line-height:1.04!important;letter-spacing:-.045em!important;font-weight:820!important}
.ch-device-tagline{margin:8px 0 0!important;color:var(--plentz-text)!important;font-size:17px!important;line-height:1.35!important}
.ch-device-tagline strong{color:var(--plentz-brand)!important;font-weight:820!important}
.ch-device-intro{margin:16px 0 0!important;color:var(--plentz-muted)!important;font-size:13px!important}
.ch-device-setup-options{display:grid!important;grid-template-columns:1fr!important;gap:16px!important;padding:0!important}
.ch-device-setup-option{position:relative!important;display:grid!important;grid-template-columns:52px minmax(0,1fr)!important;gap:16px!important;padding:20px!important;border:1px solid var(--plentz-line)!important;border-radius:16px!important;background:#fff!important;color:var(--plentz-text)!important;box-shadow:0 7px 24px rgba(16,45,61,.055)!important;overflow:hidden!important}
.ch-device-setup-option:hover{border-color:#C8DAD1!important;box-shadow:0 10px 30px rgba(16,45,61,.075)!important}
.ch-device-option-icon{width:52px!important;height:52px!important;display:grid!important;place-items:center!important;border-radius:50%!important;background:var(--plentz-brand-soft)!important;color:var(--plentz-brand)!important;font-size:25px!important;font-weight:850!important;line-height:1!important}
.ch-device-option-copy{min-width:0!important;display:flex!important;flex-direction:column!important;align-items:stretch!important}
.ch-device-option-title{display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:10px!important;margin:2px 0 4px!important}
.ch-device-option-title>strong{color:var(--plentz-ink)!important;font-size:17px!important;line-height:1.25!important;font-weight:820!important}
.ch-device-setup-option small{display:block!important;color:var(--plentz-muted)!important;font-size:12px!important;line-height:1.5!important}
.ch-device-recommended{display:inline-flex!important;align-items:center!important;min-height:25px!important;padding:0 9px!important;border:1px solid #CDE4D5!important;border-radius:999px!important;background:#F2FAF5!important;color:var(--plentz-brand-hover)!important;font-size:9.5px!important;font-weight:820!important}
.ch-device-recommended:before{content:"★";margin-right:5px!important;font-size:9px!important}
.ch-device-setup-option .ch-file-help{display:flex!important;flex-direction:column!important;gap:3px!important;margin:15px 0 13px!important;padding:11px 13px!important;border:1px solid #CCE2D4!important;border-radius:10px!important;background:#F2F9F5!important}
.ch-device-setup-option .ch-file-help b,.ch-device-setup-option .ch-file-help code{color:#17613E!important;font-size:11px!important}
.ch-device-setup-option .ch-file-help span{color:#4E6E61!important;font-size:10.5px!important;line-height:1.45!important}
.ch-device-setup-option .ch-file-label{margin:0 0 6px!important;color:#334E58!important;font-size:10.5px!important;font-weight:800!important}
.ch-device-setup-option input[type="file"]{width:min(100%,520px)!important;max-width:100%!important;margin:0 0 13px!important;min-height:40px!important;padding:5px!important;background:#fff!important}
.ch-device-setup-option .fp-auth-button{width:100%!important;min-height:46px!important;margin:0!important;padding:0 18px!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:12px!important;border-radius:10px!important}
.ch-device-setup-option .fp-auth-button b,.ch-device-setup-option .fp-auth-button span{color:#fff!important}
.ch-device-setup-option 
.ch-device-setup-option .ch-secondary-start b,.ch-device-setup-option .ch-secondary-start span{color:var(--plentz-brand)!important}
.ch-device-setup-option .ch-secondary-start:hover{background:var(--plentz-brand-soft)!important;border-color:var(--plentz-brand-hover)!important;color:var(--plentz-brand-hover)!important}
.ch-device-setup-option .ch-secondary-start:hover b,.ch-device-setup-option .ch-secondary-start:hover span{color:var(--plentz-brand-hover)!important}
.ch-device-privacy{display:grid!important;grid-template-columns:36px minmax(0,1fr)!important;gap:12px!important;align-items:center!important;margin-top:18px!important;padding:14px 16px!important;border:1px solid #D6E7DD!important;border-radius:12px!important;background:linear-gradient(90deg,#F2F9F5,#F8FBF9)!important}
.ch-device-privacy-icon{width:36px!important;height:36px!important;display:grid!important;place-items:center!important;border-radius:10px!important;background:#E5F5EB!important;color:var(--plentz-brand)!important;font-weight:900!important}
.ch-device-privacy div{min-width:0!important;display:flex!important;flex-direction:column!important;gap:2px!important}
.ch-device-privacy strong{color:var(--plentz-brand-hover)!important;font-size:11.5px!important}
.ch-device-privacy span:not(.ch-device-privacy-icon){color:var(--plentz-muted)!important;font-size:10.5px!important}
.ch-device-setup-status{width:min(100%,1040px)!important;margin:14px auto 0!important;border-radius:10px!important;font-size:11px!important;line-height:1.45!important}
.ch-device-setup-status:empty{display:none!important}
.ch-device-setup-status.is-working,.ch-device-setup-status.is-success,.ch-device-setup-status.is-error{display:flex!important;flex-direction:column!important;gap:2px!important;padding:11px 13px!important}
.ch-device-setup-status.is-working{background:#F3F7F5!important;border:1px solid #D8E4DE!important;color:#48645A!important}
.ch-device-setup-status.is-success{background:#EFF9F3!important;border:1px solid #CDE7D6!important;color:#17613E!important}
.ch-device-setup-status.is-error{background:#FFF3F3!important;border:1px solid #EDCCCC!important;color:#A43333!important}
@media(max-width:900px){.ch-device-app{display:block!important;min-height:calc(100vh - 62px)!important}.ch-device-side{display:none!important}.ch-device-main{padding:30px 18px 38px!important}.ch-device-global-header{min-height:62px!important;height:62px!important}.ch-device-header-note span:last-child{display:none!important}}
@media(max-width:560px){.ch-device-main{padding:24px 12px 30px!important}.ch-device-welcome h1{font-size:31px!important}.ch-device-tagline{font-size:15px!important}.ch-device-setup-option{grid-template-columns:40px minmax(0,1fr)!important;gap:12px!important;padding:15px!important;border-radius:13px!important}.ch-device-option-icon{width:40px!important;height:40px!important;font-size:20px!important}.ch-device-option-title>strong{font-size:15px!important}.ch-device-recommended{font-size:9px!important}.ch-device-setup-option input[type="file"]{width:100%!important}.ch-device-privacy{grid-template-columns:32px minmax(0,1fr)!important;padding:12px!important}.ch-device-privacy-icon{width:32px!important;height:32px!important}}

/* Backup schedule frequency layout — approved horizontal design */
.ch-backup-plan-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
}
.ch-plan-options{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  width:100%;
  max-width:860px;
  margin:12px 0 20px;
}
.ch-plan-option{
  position:relative;
  display:flex;
  align-items:center;
  min-height:64px;
  padding:12px 16px;
  gap:12px;
  border:1px solid #d6e0e4;
  border-radius:12px;
  background:#fff;
  cursor:pointer;
  box-sizing:border-box;
  transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease;
}
.ch-plan-option:hover{
  border-color:#8bcaa9;
  background:#fbfefc;
}
.ch-plan-option.selected{
  border:2px solid #14934f;
  background:#effaf3;
  box-shadow:0 0 0 1px rgba(20,147,79,.03);
}
.ch-plan-option>input[type="radio"]{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.ch-plan-check{
  width:18px;
  height:18px;
  min-width:18px;
  border:1.5px solid #78909c;
  border-radius:50%;
  background:#fff;
  box-sizing:border-box;
  position:relative;
}
.ch-plan-option.selected .ch-plan-check{
  border:5px solid #14934f;
}
.ch-plan-copy{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-width:0;
  line-height:1.2;
}
.ch-plan-copy strong{
  display:block;
  font-size:14px;
  line-height:1.25;
  color:#12313d;
  margin:0 0 3px;
}
.ch-plan-copy small{
  display:block;
  font-size:11px;
  line-height:1.3;
  color:#687e89;
  white-space:normal;
}
.ch-plan-settings{
  display:flex;
  align-items:flex-end;
  flex-wrap:wrap;
  gap:16px;
}
.ch-plan-setting{
  display:flex;
  align-items:center;
  gap:8px;
}
.ch-plan-setting[hidden]{display:none!important;}
.ch-plan-footer{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:12px;
  margin-top:14px;
}
.ch-plan-recommendation{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:4px;
}
.ch-plan-recommendation .ch-plan-link{
  margin-left:12px;
}
.ch-plan-save{
  display:flex;
  align-items:center;
  gap:12px;
}
@media(max-width:900px){.ch-plan-options{gap:12px;}
  .ch-plan-option{padding:11px 12px;}}
@media(max-width:680px){.ch-backup-plan-head{display:block;}
  .ch-plan-options{
    grid-template-columns:1fr;
    gap:10px;
    max-width:none;
  }
  .ch-plan-option{min-height:58px;}
  .ch-plan-settings{align-items:stretch;}
  .ch-plan-setting{width:100%;justify-content:space-between;}
  .ch-plan-setting select,.ch-plan-setting input{max-width:65%;}}

.ch-restore-back{
  display:block;
  margin:14px auto 0;
}

/* Refined auth flow: one task per screen plus a single Back to main action */
.ch-auth-back-main{
  display:flex!important;align-items:center!important;justify-content:center!important;
  width:100%!important;min-height:42px!important;margin:12px 0 0!important;
  padding:9px 12px!important;border:0!important;background:transparent!important;
  color:var(--plentz-brand)!important;font-weight:800!important;text-decoration:none!important;
  cursor:pointer!important;
}
.ch-auth-back-main:hover{background:transparent!important;text-decoration:underline!important;}

/* Employer Rulebook — one visual source for payroll rules */
.ch-rule-status.owner-approved{background:#e7f7ed;color:#17613a}.ch-rulebook-review-action{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px;padding:14px 16px;border:1px solid #cfe7d8;border-radius:14px;background:#f2faf5}.ch-rulebook-review-action p{margin:0;max-width:680px;color:#40584b}.ch-rulebook-review-action .btn{flex:0 0 auto}
.ch-employer-rulebook{margin-top:18px;padding:22px}.ch-rulebook-actions{display:flex;gap:10px;align-items:center}.ch-rulebook-grid{display:grid;gap:12px;margin-top:18px}.ch-rulebook-topic{border:1px solid var(--ch-border,#dfe7e2);border-radius:16px;background:var(--ch-surface,#fff);overflow:hidden}.ch-rulebook-topic>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;cursor:pointer}.ch-rulebook-topic>summary::-webkit-details-marker{display:none}.ch-rulebook-topic>summary>div{display:flex;flex-direction:column;gap:4px}.ch-rulebook-kicker{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ch-muted,#66736c)}.ch-rulebook-topic>summary strong{font-size:16px}.ch-rule-status{font-size:11px;font-weight:800;border-radius:999px;padding:7px 10px;background:#eef4f0;color:#355443;white-space:nowrap}.ch-rule-status.employer-confirmed,.ch-rule-status.payroll-verified{background:#e7f7ed;color:#17613a}.ch-rule-status.needs-review{background:#fff4dc;color:#7d5300}.ch-rulebook-body{border-top:1px solid var(--ch-border,#e3e9e5);padding:18px}.ch-rulebook-body>p{margin:0 0 14px;max-width:900px}.ch-rule-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 14px}.ch-rule-facts span{display:flex;flex-direction:column;gap:4px;border:1px solid #e7ece9;border-radius:12px;padding:12px;background:#fbfdfc}.ch-rule-facts b{font-size:12px;color:#52635a}.ch-rule-note{padding:12px 14px;border-radius:12px;background:#f6faf7}.wp-bank-rate-card small{display:block;margin-top:7px;line-height:1.35;color:#647068}.ch-rate-values{flex-wrap:wrap}.ch-rate-values span{min-width:130px}
@media(max-width:900px){.ch-rule-facts{grid-template-columns:1fr}.ch-employer-rulebook .section-title{align-items:flex-start}.ch-rulebook-actions{width:100%}.ch-rulebook-actions .btn{width:100%}}
@media(max-width:560px){.ch-employer-rulebook{padding:14px}.ch-rulebook-topic>summary{align-items:flex-start;flex-direction:column}.ch-rule-status{white-space:normal}.ch-rulebook-body{padding:14px}.ch-rulebook-review-action{align-items:stretch;flex-direction:column}.ch-rulebook-review-action .btn{width:100%}}
.wp-ph-calculation-audit{margin-top:14px;border:1px solid #dfe8e2;border-radius:14px;background:#fbfdfc;overflow:hidden}.wp-ph-calculation-audit>summary{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 16px;cursor:pointer}.wp-ph-calculation-audit>summary span:first-child{display:flex;flex-direction:column;gap:3px}.wp-ph-calculation-audit>summary small{color:#68756e}.wp-ph-calculation-audit>.ch-rule-facts,.wp-ph-calculation-audit>p,.wp-ph-calculation-audit>small{margin-left:16px;margin-right:16px}.wp-ph-calculation-audit>small{display:block;margin-bottom:16px}


/* === PLENTZ CANONICAL UI SYSTEM v2: global typography, controls and responsive grids ===
   This is the final, authoritative layer. Feature CSS may define layout, but not invent
   typography/control sizes. The theme file is loaded last across Plentz pages. */
:root{
  --plentz-font-family:Inter,"Segoe UI",Arial,sans-serif;
  --plentz-font-xs:10px;
  --plentz-font-sm:11px;
  --plentz-font-md:13px;
  --plentz-font-lg:16px;
  --plentz-font-xl:20px;
  --plentz-font-page:29px;
  --plentz-control-h:44px;
  --plentz-control-h-sm:36px;
  --plentz-control-h-lg:48px;
  --plentz-radius-control:10px;
  --plentz-radius-card:16px;
}
html{font-size:16px!important;text-size-adjust:100%;-webkit-text-size-adjust:100%}
body,.fp-app-shell,.fp-app-shell .app,.fp-app-shell .main,.fp-auth-shell,
input,select,textarea,button{font-family:var(--plentz-font-family)!important}
body,.fp-app-shell{font-size:var(--plentz-font-md)!important;line-height:1.45!important;color:var(--plentz-text)!important}
.fp-app-shell .main p,.fp-app-shell .main li,.fp-app-shell .main dd,.fp-app-shell .main dt,
.fp-app-shell .main label{font-size:var(--plentz-font-md)!important;line-height:1.45!important}
.fp-app-shell .main small,.fp-app-shell .main .muted{font-size:var(--plentz-font-sm)!important;line-height:1.4!important}
.fp-app-shell .wp-eyebrow,.fp-app-shell .kicker,.fp-app-shell .ch-rulebook-kicker,
.fp-app-shell th{font-size:var(--plentz-font-xs)!important;line-height:1.3!important}
.fp-app-shell h1{font-size:var(--plentz-font-page)!important;line-height:1.15!important}
.fp-app-shell h2{font-size:var(--plentz-font-xl)!important;line-height:1.2!important}
.fp-app-shell h3{font-size:var(--plentz-font-lg)!important;line-height:1.25!important}
.fp-app-shell h4{font-size:var(--plentz-font-md)!important;line-height:1.3!important}
.fp-app-shell td{font-size:var(--plentz-font-md)!important;line-height:1.4!important}
.fp-app-shell .btn,.fp-app-shell button:not(.fp-mobile-menu-btn):not(.fp-user-trigger),
.fp-auth-shell button{font-family:var(--plentz-font-family)!important;font-size:12px!important;line-height:1.2!important;min-height:var(--plentz-control-h)!important;border-radius:var(--plentz-radius-control)!important}
.fp-app-shell .btn.mini,.fp-app-shell button.mini{font-size:var(--plentz-font-sm)!important;min-height:var(--plentz-control-h-sm)!important;padding:7px 11px!important}
.fp-app-shell input,.fp-app-shell select,.fp-app-shell textarea,
.fp-auth-shell input,.fp-auth-shell select,.fp-auth-shell textarea{
  font-family:var(--plentz-font-family)!important;font-size:var(--plentz-font-md)!important;
  min-height:var(--plentz-control-h)!important;border-radius:var(--plentz-radius-control)!important;
  padding:9px 11px!important;box-sizing:border-box!important
}
.fp-app-shell .box,.fp-app-shell .card{border-radius:var(--plentz-radius-card)!important}
.fp-app-shell .wp-payment-state,.fp-app-shell .wp-status,.fp-app-shell .badge,
.fp-app-shell .ch-rule-status,.fp-app-shell .wp-detail-payment-status{
  font-size:var(--plentz-font-sm)!important;line-height:1.2!important
}
.fp-app-shell .nav button{font-size:12px!important;min-height:41px!important}
.fp-app-shell .ch-employer-context>span,.fp-app-shell .ch-employer-context small{font-size:var(--plentz-font-xs)!important}
.fp-app-shell .ch-employer-context strong,.fp-app-shell .ch-employer-single{font-size:12px!important}

/* Rate history: date + all five rate types remain on a single aligned row on desktop. */
.fp-app-shell .ch-admin-rate-list{gap:8px!important}
.fp-app-shell .ch-admin-rate-list article{
  grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr)!important;
  gap:12px!important;padding:11px 14px!important;border-radius:12px!important
}
.fp-app-shell .ch-admin-rate-list article>div:first-child strong{font-size:13px!important}
.fp-app-shell .ch-admin-rate-list article>div:first-child small{font-size:11px!important}
.fp-app-shell .ch-rate-values{
  display:grid!important;grid-template-columns:repeat(5,minmax(82px,1fr))!important;
  gap:6px 8px!important;align-items:start!important
}
.fp-app-shell .ch-rate-values span{min-width:0!important;font-size:12px!important;white-space:normal!important}
.fp-app-shell .ch-rate-values b{font-size:13px!important;margin-top:2px!important}

/* New rate period: six equal, compact controls in one row where the viewport allows it. */
.fp-app-shell .wp-rate-cards{
  display:grid!important;grid-template-columns:repeat(6,minmax(122px,1fr))!important;
  gap:8px!important;padding-top:12px!important;align-items:stretch!important
}
.fp-app-shell .wp-rate-card{
  display:flex!important;flex-direction:column!important;justify-content:flex-start!important;
  min-width:0!important;padding:12px!important;border-radius:12px!important;border-top-width:3px!important
}
.fp-app-shell .wp-rate-card>span{font-size:12px!important;font-weight:750!important;line-height:1.3!important;margin-bottom:8px!important}
.fp-app-shell .wp-money-input{min-height:var(--plentz-control-h)!important;border-radius:var(--plentz-radius-control)!important}
.fp-app-shell .wp-money-input b{font-size:13px!important;padding-left:10px!important}
.fp-app-shell .wp-money-input input{min-width:0!important;width:100%!important;height:42px!important;min-height:42px!important;padding:8px!important}
.fp-app-shell .wp-rate-help{margin:9px 0 0!important;font-size:var(--plentz-font-sm)!important;color:var(--plentz-muted)!important}
.fp-app-shell .wp-rate-actions{margin-top:14px!important}

/* Comparison table uses consistent semantic sizing. */
.fp-app-shell .wp-simple-table th,.fp-app-shell .wp-simple-table td{font-size:12px!important;padding:12px 14px!important}
.fp-app-shell .wp-simple-table th small,.fp-app-shell .wp-simple-table td small{font-size:11px!important}
.fp-app-shell .wp-simple-table th>b{font-size:12px!important}
.fp-app-shell .wp-simple-cards article>span,.fp-app-shell .wp-recon-grid article>span{font-size:12px!important}
.fp-app-shell .wp-simple-cards article>strong,.fp-app-shell .wp-recon-grid article>strong{font-size:17px!important}

/* Keep panels readable without oversized local spacing. */
.fp-app-shell .ch-rulebook-topic>summary{padding:13px 15px!important}
.fp-app-shell .ch-rulebook-topic>summary strong{font-size:15px!important}
.fp-app-shell .ch-rulebook-body{padding:15px!important}
.fp-app-shell .ch-rule-facts span{padding:10px!important}
.fp-app-shell .ch-rule-facts b{font-size:12px!important}

@media(max-width:1180px){
  .fp-app-shell .wp-rate-cards{grid-template-columns:repeat(3,minmax(150px,1fr))!important}
  .fp-app-shell .ch-rate-values{grid-template-columns:repeat(3,minmax(100px,1fr))!important}
}
@media(max-width:820px){
  .fp-app-shell .ch-admin-rate-list article{grid-template-columns:1fr!important}
  .fp-app-shell .ch-rate-values{grid-template-columns:repeat(2,minmax(120px,1fr))!important}
  .fp-app-shell .wp-rate-cards{grid-template-columns:repeat(2,minmax(150px,1fr))!important}
}
@media(max-width:520px){
  .fp-app-shell .ch-rate-values,.fp-app-shell .wp-rate-cards{grid-template-columns:1fr!important}
}


/* Call-level hours reconciliation — always explain the exact source of a difference */
.fp-app-shell .wp-hours-difference-audit{margin:12px 0;border:1px solid var(--plentz-line);border-radius:12px;background:var(--plentz-surface);overflow:hidden}
.fp-app-shell .wp-hours-difference-audit>summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;cursor:pointer;background:#F7FAF8}
.fp-app-shell .wp-hours-difference-audit>summary::-webkit-details-marker{display:none}
.fp-app-shell .wp-hours-difference-audit>summary>span:first-child{display:grid;gap:2px}
.fp-app-shell .wp-hours-difference-audit>summary strong{font-size:13px!important}
.fp-app-shell .wp-hours-difference-audit>summary small{font-size:12px!important;color:var(--plentz-muted)}
.fp-app-shell .wp-hours-difference-audit>summary>span:last-child{font-size:12px!important;font-weight:800;color:var(--plentz-success)}
.fp-app-shell .wp-hours-audit-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:12px 14px}
.fp-app-shell .wp-hours-audit-summary span{display:grid;gap:2px;padding:9px 10px;border:1px solid var(--plentz-line);border-radius:10px;background:#fff;font-size:12px!important}
.fp-app-shell .wp-hours-audit-summary b{font-size:11px!important;color:var(--plentz-muted);text-transform:uppercase;letter-spacing:.04em}
.fp-app-shell .wp-hours-audit-table th,.fp-app-shell .wp-hours-audit-table td{padding:8px 9px!important;font-size:12px!important}
.fp-app-shell .wp-hours-audit-note{margin:0!important;padding:10px 14px 13px!important;font-size:12px!important;color:var(--plentz-muted)}
@media(max-width:760px){.fp-app-shell .wp-hours-audit-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* App-only balanced typography scale — compact without becoming small */
.fp-app-shell{
  --plentz-font-xs:10px;
  --plentz-font-sm:11px;
  --plentz-font-md:13px;
  --plentz-font-lg:16px;
  --plentz-font-xl:20px;
  --plentz-font-page:29px;
}


/* Employer Rulebook access, questionnaire and read-only caregiver view */
.fp-app-shell .ch-rulebook-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.fp-app-shell .ch-caregiver-rulebook-access{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:14px 0}
.fp-app-shell .ch-caregiver-rulebook-access>div:first-child{min-width:0}
.fp-app-shell .ch-caregiver-rulebook-access h2{margin:3px 0 4px!important}
.fp-app-shell .ch-rulebook-readonly{display:grid;gap:10px}
.fp-app-shell .ch-rulebook-read-section{border:1px solid var(--plentz-line);border-radius:12px;overflow:hidden;background:#fff}
.fp-app-shell .ch-rulebook-read-section>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:#f7faf8;border-bottom:1px solid var(--plentz-line)}
.fp-app-shell .ch-rulebook-read-section h3{margin:0!important;font-size:15px!important}
.fp-app-shell .ch-rulebook-read-section dl{margin:0}
.fp-app-shell .ch-rulebook-read-section dl>div{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(0,1.2fr);gap:12px;padding:8px 12px;border-bottom:1px solid #edf1ef}
.fp-app-shell .ch-rulebook-read-section dl>div:last-child{border-bottom:0}
.fp-app-shell .ch-rulebook-read-section dt{font-size:11px!important;font-weight:800;color:var(--plentz-muted)}
.fp-app-shell .ch-rulebook-read-section dd{margin:0;font-size:13px!important;color:var(--plentz-ink)}
.fp-app-shell .ch-rulebook-source{display:block;padding:8px 12px;background:#fbfcfc;border-top:1px solid var(--plentz-line);font-size:10px!important;color:var(--plentz-muted)}
.fp-app-shell .ch-rulebook-view-actions{display:flex;justify-content:flex-end;margin:0 0 10px}
.fp-app-shell .ch-new-employer-rule-options{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:10px;align-items:center;padding:12px;margin-bottom:14px;border:1px solid var(--plentz-line);border-radius:12px;background:#f7faf8}
.fp-app-shell .ch-new-employer-rule-options>div{display:grid;gap:2px}
.fp-app-shell .ch-new-employer-rule-options strong{font-size:13px!important}
.fp-app-shell .ch-new-employer-rule-options span{font-size:11px!important;color:var(--plentz-muted)}
.fp-app-shell #chWizardRulesFileName{grid-column:1/-1;font-size:10px!important;color:var(--plentz-muted)}
.fp-app-shell .ch-file-button{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.fp-app-shell .ch-file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}
@media(max-width:860px){
  .fp-app-shell .ch-caregiver-rulebook-access{align-items:flex-start;flex-direction:column}
  .fp-app-shell .ch-new-employer-rule-options{grid-template-columns:1fr}
  .fp-app-shell .ch-new-employer-rule-options .btn{width:100%}
}
@media(max-width:560px){
  .fp-app-shell .ch-rulebook-read-section dl>div{grid-template-columns:1fr;gap:2px}
  .fp-app-shell .ch-rulebook-actions{width:100%}
  .fp-app-shell .ch-rulebook-actions .btn{flex:1 1 150px}
}


.fp-app-shell .ch-open-rules-after{display:flex!important;align-items:center;gap:8px;margin:-4px 0 14px;padding:0 2px;font-size:12px!important;color:var(--plentz-text)}
.fp-app-shell .ch-open-rules-after input{width:16px!important;height:16px!important;min-height:16px!important;padding:0!important}
.fp-app-shell .ch-rule-editor-head{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.fp-app-shell .ch-rule-editor-head .span-2{grid-column:1/-1}
.fp-app-shell .ch-rule-editor-section{border:1px solid var(--plentz-line);border-radius:11px;margin:0 0 8px;overflow:hidden;background:#fff}
.fp-app-shell .ch-rule-editor-section>summary{padding:10px 12px;background:#f7faf8;cursor:pointer;font-weight:800;font-size:13px!important}
.fp-app-shell .ch-rule-editor-section>.wp-form-grid{padding:12px}
@media(max-width:620px){.fp-app-shell .ch-rule-editor-head{grid-template-columns:1fr}.fp-app-shell .ch-rule-editor-head .span-2{grid-column:auto}}


/* Reports centre — all generated Plentz documents live here */
.fp-app-shell .ch-nav-reports:before{content:"";position:absolute;left:2px;top:2px;width:14px;height:16px;border:2px solid currentColor;border-radius:2px}
.fp-app-shell .ch-nav-reports:after{content:"";position:absolute;left:6px;top:7px;width:8px;height:2px;background:currentColor;box-shadow:0 4px 0 currentColor,0 8px 0 currentColor}
.fp-app-shell .ch-reports-controls{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:14px}
.fp-app-shell .ch-reports-controls h2{margin:3px 0 4px!important}
.fp-app-shell .ch-report-period-controls{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}
.fp-app-shell .ch-report-period-controls label{display:grid;gap:5px;min-width:150px;font-size:11px!important;font-weight:750;color:var(--plentz-muted)}
.fp-app-shell .ch-report-period-controls select,.fp-app-shell .ch-report-period-controls input{min-width:150px}
.fp-app-shell .ch-report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.fp-app-shell .ch-report-card{display:flex;flex-direction:column;align-items:flex-start;min-height:238px;padding:18px!important}
.fp-app-shell .ch-report-card.primary{border-color:#cfe5da;background:linear-gradient(145deg,#f5fbf8,#fff)}
.fp-app-shell .ch-report-card.owner{grid-column:1/-1;min-height:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:20px;align-items:center}
.fp-app-shell .ch-report-card.owner .wp-eyebrow,.fp-app-shell .ch-report-card.owner h2,.fp-app-shell .ch-report-card.owner p,.fp-app-shell .ch-report-card.owner .ch-report-preview{grid-column:1}
.fp-app-shell .ch-report-card.owner .btn{grid-column:2;grid-row:1/5;align-self:center}
.fp-app-shell .ch-report-card h2{margin:5px 0 7px!important}
.fp-app-shell .ch-report-card p{margin:0 0 13px!important;color:var(--plentz-muted);max-width:620px}
.fp-app-shell .ch-report-preview{display:grid;gap:2px;width:100%;padding:10px 11px;margin:auto 0 13px;border-radius:10px;background:#f6f9f8;border:1px solid var(--plentz-line)}
.fp-app-shell .ch-report-preview strong{font-size:14px!important;color:var(--plentz-ink)}
.fp-app-shell .ch-report-preview span{font-size:11px!important;color:var(--plentz-muted)}
.fp-app-shell .ch-report-actions{display:flex;gap:8px;flex-wrap:wrap}
.fp-app-shell .ch-reports-note{display:flex;gap:10px;align-items:baseline;margin-top:12px;padding:12px 14px!important}
.fp-app-shell .ch-reports-note strong{white-space:nowrap}
.fp-app-shell .ch-reports-note span,.fp-app-shell .ch-reports-home-note{font-size:11px!important;color:var(--plentz-muted)}
.fp-app-shell .ch-reports-home-note{display:inline-flex;align-items:center;padding:0 4px}
@media(max-width:860px){
  .fp-app-shell .ch-reports-controls{align-items:stretch;flex-direction:column}
  .fp-app-shell .ch-report-period-controls{display:grid;grid-template-columns:1fr 1fr}
  .fp-app-shell .ch-report-period-controls label,.fp-app-shell .ch-report-period-controls select,.fp-app-shell .ch-report-period-controls input{min-width:0;width:100%}
  .fp-app-shell .ch-report-grid{grid-template-columns:1fr}
  .fp-app-shell .ch-report-card.owner{grid-column:auto;display:flex;min-height:238px}
  .fp-app-shell .ch-report-card.owner .btn{align-self:flex-start}
}
@media(max-width:520px){
  .fp-app-shell .ch-report-period-controls{grid-template-columns:1fr}
  .fp-app-shell .ch-reports-note{align-items:flex-start;flex-direction:column}
}


/* Canonical text rhythm: prevent bold labels/headlines from touching following copy.
   Works across inline, flex and grid informational components without changing typography. */
.fp-app-shell .main strong + span::before,
.fp-app-shell .main strong + small::before,
.fp-app-shell .main b + span::before,
.fp-app-shell .main b + small::before{content:" "}
.fp-app-shell .main :where(div,section,article,p,li,header,footer):has(> strong + span),
.fp-app-shell .main :where(div,section,article,p,li,header,footer):has(> strong + small),
.fp-app-shell .main :where(div,section,article,p,li,header,footer):has(> b + span),
.fp-app-shell .main :where(div,section,article,p,li,header,footer):has(> b + small){column-gap:10px;row-gap:4px}
.fp-app-shell .ch-reports-note{
  display:grid!important;
  grid-template-columns:max-content minmax(0,1fr)!important;
  column-gap:16px!important;
  row-gap:4px!important;
  align-items:start!important
}
.fp-app-shell .ch-reports-note strong{white-space:normal!important}
.fp-app-shell .ch-reports-note span{min-width:0}
@media(max-width:620px){
  .fp-app-shell .ch-reports-note{grid-template-columns:1fr!important}
}



/* Caregiver decision lives in the comparison header; shown only for real differences. */
.fp-app-shell .wp-simple-status.issue{background:#fff1ed!important;border-color:#efc9bd!important;color:#8e3824!important}
.fp-app-shell .wp-header-review{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:center;width:100%;max-width:100%;min-width:0;box-sizing:border-box;margin-top:10px;padding-top:10px;border-top:1px solid rgba(15,64,54,.12)}
.fp-app-shell .wp-header-review-question{font-size:11px!important;color:var(--plentz-ink)}
.fp-app-shell .wp-header-review-decisions{display:flex;gap:8px;justify-content:flex-end}
.fp-app-shell .wp-header-review-choice{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:76px;height:34px;border:1px solid var(--plentz-line);border-radius:9px;background:#fff;padding:0 12px;font:inherit;font-size:12px!important;font-weight:800;cursor:pointer;white-space:nowrap}
.fp-app-shell .wp-header-review-choice span{font-size:14px!important;line-height:1}
.fp-app-shell .wp-header-review-choice b{font-size:12px!important;line-height:1}
.fp-app-shell .wp-header-review-choice.selected.ok{background:#e7f7ee;border-color:#87c8a4;color:#11683e}
.fp-app-shell .wp-header-review-choice.selected.issue{background:#fff0ec;border-color:#e4a28e;color:#943b26}
.fp-app-shell .wp-header-review-reason-toggle{grid-column:1;max-width:100%;background:transparent;border:0;padding:0;text-align:left;color:var(--plentz-muted);font:inherit;font-size:10px!important;font-weight:700;cursor:pointer;width:auto;white-space:normal;overflow-wrap:break-word}
.fp-app-shell .wp-header-review-reason{grid-column:1;min-width:0}
.fp-app-shell .wp-header-review-reason[hidden]{display:none!important}
.fp-app-shell .wp-header-review-note{width:100%;height:32px!important;min-height:32px!important;padding:5px 8px!important;border-radius:8px!important;font-size:11px!important;background:#fff!important}
.fp-app-shell .wp-header-review-save{grid-column:2;grid-row:2/4;align-self:center;min-width:54px;height:34px;border:1px solid var(--plentz-success);border-radius:9px;background:var(--plentz-success);color:#fff;padding:0 12px;font:inherit;font-size:12px!important;font-weight:800;cursor:pointer}
.fp-app-shell .wp-header-review-save:disabled{opacity:.65;cursor:default}
.fp-app-shell .wp-header-review-message{grid-column:1/-1;min-height:0;font-size:10px!important;font-weight:700;color:#a23d2b}
@media(max-width:760px){
  .fp-app-shell .wp-simple-title{grid-template-columns:1fr!important}
  .fp-app-shell .wp-simple-status{min-width:0;width:100%}
  .fp-app-shell .wp-header-review{grid-template-columns:1fr auto}
  .fp-app-shell .wp-header-review-decisions{justify-content:flex-start}
}


/* Progressive disclosure and table readability: summaries first, detail on demand. */
.fp-app-shell details>summary{cursor:pointer;user-select:none}
.fp-app-shell details>summary::marker{color:var(--plentz-success)}
.fp-app-shell .wp-hours-difference-audit,
.fp-app-shell .wp-compact-detail,
.fp-app-shell .wp-pay-audit,
.fp-app-shell .wp-review-group,
.fp-app-shell .ch-backup-history,
.fp-app-shell .ch-rule-editor-section{overflow:hidden}
.fp-app-shell .wp-hours-difference-audit>summary,
.fp-app-shell .wp-compact-detail>summary,
.fp-app-shell .wp-pay-audit>summary,
.fp-app-shell .wp-review-group>summary,
.fp-app-shell .ch-backup-history>summary,
.fp-app-shell .ch-rule-editor-section>summary{min-height:44px;padding:10px 12px}
.fp-app-shell .wp-hours-difference-audit[open] .table-wrap,
.fp-app-shell .wp-source-documents[open] .table-wrap{max-height:360px;overflow:auto}
.fp-app-shell .wp-source-table .num,
.fp-app-shell .wp-simple-table .num,
.fp-app-shell td[data-money],
.fp-app-shell td[data-hours]{white-space:nowrap}
.fp-app-shell .table-wrap{overflow-x:auto;overscroll-behavior-inline:contain}
@media(max-width:760px){
  .fp-app-shell .wp-hours-difference-audit[open] .table-wrap,
  .fp-app-shell .wp-source-documents[open] .table-wrap{max-height:300px}
}

.fp-app-shell .wp-period-state.issue{background:#fff1ed!important;color:#943b26!important;border-color:#efc9bd!important}
.fp-app-shell .wp-period-state.issue i{background:#c65a3a!important}

/* Single-focus reading mode: one opened task at a time, no visual stack behind it. */
.fp-app-shell .main.fp-reading-focus .fp-focus-hidden{display:none!important}
.fp-app-shell .main.fp-reading-focus .fp-focus-path{position:relative}
.fp-app-shell .main.fp-reading-focus{
  background:#f7faf8;
}
.fp-app-shell .main.fp-reading-focus .wp-period-detail-row.fp-focus-path>td{
  padding-top:14px!important;
}
.fp-app-shell .main.fp-reading-focus .wp-inline-detail{
  box-shadow:0 14px 42px rgba(20,55,47,.07);
}

/* =========================================================
   CAREGIVER INFORMATION HIERARCHY
   One summary first; secondary information on demand.
   ========================================================= */
.fp-app-shell .ch-clean-disclosure{
  padding:0!important;
  overflow:hidden;
}
.fp-app-shell .ch-clean-disclosure>summary{
  list-style:none;
  cursor:pointer;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:14px;
  align-items:center;
  padding:16px 18px;
}
.fp-app-shell .ch-clean-disclosure>summary::-webkit-details-marker{display:none}
.fp-app-shell .ch-clean-disclosure>summary h2,
.fp-app-shell .ch-clean-disclosure>summary h3{margin:2px 0 3px}
.fp-app-shell .ch-clean-disclosure>summary p,
.fp-app-shell .ch-clean-disclosure>summary span{margin:0}
.fp-app-shell .ch-clean-disclosure-body{
  padding:16px 18px 18px;
  border-top:1px solid var(--plentz-line,#e5ece9);
}
.fp-app-shell .ch-admin-details .ch-admin-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.fp-app-shell .ch-admin-details .ch-admin-panel{
  border:1px solid var(--plentz-line,#e5ece9);
  border-radius:12px;
  padding:15px;
  background:#fff;
}
.fp-app-shell .ch-client-rate-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:12px;
}
.fp-app-shell .ch-leave-summary-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}
.fp-app-shell .wp-leave-secondary{
  margin-top:12px;
  border:1px solid var(--plentz-line,#e5ece9);
  border-radius:12px;
}
.fp-app-shell .wp-leave-secondary>summary{
  padding:14px 15px;
}
.fp-app-shell .wp-leave-secondary>summary>div{
  display:grid;
  gap:3px;
}
.fp-app-shell .wp-leave-secondary>summary>div>span{
  color:var(--plentz-muted,#70838a);
  font-size:11px!important;
}
.fp-app-shell .ch-report-grid-primary{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
.fp-app-shell .ch-report-more{
  margin-top:14px;
}
.fp-app-shell .ch-report-more .ch-report-grid{
  margin:0;
}
.fp-app-shell .ch-report-more .ch-report-card{
  border:1px solid var(--plentz-line,#e5ece9);
  box-shadow:none;
}
.fp-app-shell .ch-reports-controls-compact{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:18px;
}
.fp-app-shell .ch-settings-primary{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}
.fp-app-shell .ch-settings-more{
  margin-top:14px;
}
.fp-app-shell .ch-settings-more-body{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.fp-app-shell .ch-settings-about-inline{
  display:grid;
  gap:3px;
  text-align:right;
  color:var(--plentz-muted,#70838a);
}
.fp-app-shell .ch-settings-about-inline span{font-weight:750;color:var(--plentz-ink,#103d35)}
.fp-app-shell .main>section,
.fp-app-shell .main>details{
  margin-bottom:14px;
}

/* Reduce repeated decorative labels without reducing readable body text. */
.fp-app-shell .wp-eyebrow,
.fp-app-shell .ch-rulebook-kicker{
  letter-spacing:.10em!important;
}

/* Tables remain readable instead of forcing the page to become wider. */
.fp-app-shell .table-wrap{
  max-width:100%;
  overflow-x:auto;
}
.fp-app-shell table{
  width:100%;
}
.fp-app-shell td,.fp-app-shell th{
  vertical-align:top;
}
.fp-app-shell td strong,
.fp-app-shell td.num,
.fp-app-shell .num{
  white-space:nowrap;
}

@media(max-width:980px){
  .fp-app-shell .ch-admin-details .ch-admin-grid,
  .fp-app-shell .ch-report-grid-primary,
  .fp-app-shell .ch-settings-primary,
  .fp-app-shell .ch-leave-summary-grid{
    grid-template-columns:1fr!important;
  }
  .fp-app-shell .ch-reports-controls-compact,
  .fp-app-shell .ch-settings-more-body{
    align-items:stretch;
    flex-direction:column;
  }
  .fp-app-shell .ch-settings-about-inline{text-align:left}
}
@media(max-width:760px){
  .fp-app-shell .ch-clean-disclosure>summary{
    grid-template-columns:1fr auto;
  }
  .fp-app-shell .ch-clean-disclosure>summary>div{
    grid-column:1/-1;
  }
  .fp-app-shell .ch-client-rate-toolbar{
    align-items:stretch;
    flex-direction:column;
  }
}


/* Annual Leave history has one clear action only. */
.fp-app-shell .wp-leave-history-single-action{
  margin-top:12px;
  border:1px solid var(--plentz-line,#e5ece9);
  border-radius:12px;
  background:#fff;
  overflow:hidden;
}
.fp-app-shell .wp-leave-history-single-action>summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px 15px;
}
.fp-app-shell .wp-leave-history-single-action>summary::-webkit-details-marker{display:none}
.fp-app-shell .wp-leave-history-single-action>summary>div{
  display:grid;
  gap:3px;
}
.fp-app-shell .wp-leave-history-single-action>summary>div>span{
  color:var(--plentz-muted,#70838a);
  font-size:11px!important;
}
.fp-app-shell .wp-leave-history-single-action>.wp-leave-history{
  padding:14px 15px;
  border-top:1px solid var(--plentz-line,#e5ece9);
}
.fp-app-shell .ch-rate-values span small{
  display:block;
  margin-top:2px;
  color:var(--plentz-muted,#70838a);
  font-size:10px!important;
  font-weight:500;
}
.fp-app-shell .wp-rate-card>small{
  display:block;
  margin-top:6px;
  color:var(--plentz-muted,#70838a);
  font-size:10px!important;
  line-height:1.35;
}

/* Report weekly hierarchy: summaries first, daily records grouped under their week. */
.report-week-table .report-week-head th{
  text-align:left!important;
  font-weight:800!important;
  padding-top:12px!important;
  padding-bottom:8px!important;
  border-top:1px solid var(--plentz-line,#dfe8e4)!important;
}
.report-week-table .report-week-day td{
  vertical-align:top;
}
.report-week-table .report-week-day td:first-child{
  white-space:nowrap;
  font-weight:650;
}

/* Persisted caregiver review: saved decisions are read-only until explicitly changed. */
.fp-app-shell .wp-header-review-saved{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  padding:14px 15px;
  border-radius:12px;
}
.fp-app-shell .wp-header-review-saved.ok{
  background:#edf9f3;
  border:1px solid #bfe7d2;
}
.fp-app-shell .wp-header-review-saved.pending{
  background:#fff8e8;
  border:1px solid #efd89b;
}
.fp-app-shell .wp-header-review-saved-copy{display:grid;gap:3px;min-width:0}
.fp-app-shell .wp-header-review-saved-copy>strong{font-size:14px!important}
.fp-app-shell .wp-header-review-saved-copy>span,
.fp-app-shell .wp-header-review-saved-copy>small{color:var(--plentz-muted,#70838a)}
.fp-app-shell .wp-header-review-saved-copy>p{margin:6px 0 0;line-height:1.4}
.fp-app-shell .wp-header-review-change{
  flex:0 0 auto;
  border:1px solid var(--plentz-line,#dfe8e4);
  background:#fff;
  border-radius:10px;
  padding:9px 11px;
  font-weight:750;
  cursor:pointer;
}

/* Backup architecture: automatic device recovery + encrypted external file. */
.fp-app-shell .ch-backup-protection-block{
  margin-top:14px;
  padding:18px;
  border:1px solid var(--plentz-line,#dfe8e4);
  border-radius:14px;
  background:#fff;
}
.fp-app-shell .ch-backup-protection-block.encrypted.due{
  border-color:#e7c36c;
  background:#fffaf0;
}
.fp-app-shell .ch-backup-protection-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin-bottom:14px;
}
.fp-app-shell .ch-backup-protection-head h3{margin:2px 0 5px}
.fp-app-shell .ch-backup-protection-head p{margin:0;color:var(--plentz-muted,#70838a)}
.fp-app-shell .ch-backup-status-grid{
  display:grid;
  grid-template-columns:1fr 1fr 1.35fr;
  gap:10px;
  margin-bottom:14px;
}
.fp-app-shell .ch-backup-status-grid article,
.fp-app-shell .ch-encrypted-status-row>div{
  display:grid;
  gap:4px;
  padding:13px 14px;
  border:1px solid var(--plentz-line,#dfe8e4);
  border-radius:11px;
  background:#fbfdfc;
}
.fp-app-shell .ch-backup-status-grid span,
.fp-app-shell .ch-encrypted-status-row span{font-size:11px!important;color:var(--plentz-muted,#70838a)}
.fp-app-shell .ch-backup-status-grid strong,
.fp-app-shell .ch-encrypted-status-row strong{font-size:13px!important}
.fp-app-shell .ch-backup-status-grid small,
.fp-app-shell .ch-encrypted-status-row small{font-size:10px!important;color:var(--plentz-muted,#70838a);line-height:1.4}
.fp-app-shell .ch-encrypted-status-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-bottom:14px;
}
.fp-app-shell .ch-backup-file-due-label{
  padding:7px 10px;
  border-radius:999px;
  background:#fff0c8;
  color:#8c5b00;
  font-size:11px!important;
  font-weight:800;
  white-space:nowrap;
}
.fp-app-shell .ch-portable-actions-focused{
  grid-template-columns:1.35fr 1fr 1fr;
}
.fp-app-shell .ch-portable-action.is-due{
  box-shadow:0 0 0 3px rgba(202,149,35,.12);
  animation:plentzBackupDuePulse 2.2s ease-in-out infinite;
}
.fp-app-shell .ch-backup-due-chip{
  display:flex;
  align-items:center;
  gap:7px;
  padding:8px 10px;
  border:1px solid #e6c36d;
  border-radius:10px;
  background:#fff8e4;
  color:#714d00;
  cursor:pointer;
  animation:plentzBackupDuePulse 2.2s ease-in-out infinite;
}
.fp-app-shell .ch-backup-due-chip small{font-size:10px!important;font-weight:600}
.fp-app-shell .ch-backup-due-dot{
  width:8px;height:8px;border-radius:50%;background:#d89400;display:inline-block;
}
.fp-app-shell .ch-backup-due-banner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:14px;
  padding:14px 16px;
  border:1px solid #e6c36d;
  border-radius:12px;
  background:#fff8e4;
}
.fp-app-shell .ch-backup-due-banner p{margin:4px 0 0;color:#755d27}
@keyframes plentzBackupDuePulse{
  0%,100%{box-shadow:0 0 0 0 rgba(202,149,35,0)}
  50%{box-shadow:0 0 0 5px rgba(202,149,35,.10)}
}
@media(max-width:900px){
  .fp-app-shell .ch-backup-status-grid,
  .fp-app-shell .ch-encrypted-status-row,
  .fp-app-shell .ch-portable-actions-focused{grid-template-columns:1fr}
  .fp-app-shell .ch-backup-protection-head,
  .fp-app-shell .ch-backup-due-banner{flex-direction:column;align-items:stretch}
}


/* =========================================================
   PLENTZ RESPONSIVE DATA & CONTENT FLOW CONTRACT
   Permanent global rules: no broken values, no strangled
   statuses, full use of available reading width.
   ========================================================= */

/* Every layout child may shrink correctly without forcing accidental clipping. */
.fp-app-shell :is(.main,.box,.panel,.card,section,details,article,div){min-width:0}

/* Reading copy uses the width that its parent actually provides. */
.fp-app-shell .ch-use-available-width,
.fp-app-shell .wp-detail-copy,
.fp-app-shell .wp-audit-rationale,
.fp-app-shell .wp-rule-note,
.fp-app-shell .ch-rule-note,
.fp-app-shell .wp-forecast-note{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
}
.fp-app-shell .wp-detail-copy{
  padding-inline:14px!important;
}
.fp-app-shell :is(.wp-detail-copy,.wp-audit-rationale,.wp-rule-note,.ch-rule-note,.wp-forecast-note) p{
  width:100%!important;
  max-width:none!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  hyphens:none!important;
}

/* PLENTZ TABLE ARCHITECTURE
   The wrapper owns overflow. Compact tables fit the canvas.
   Wide tables keep natural width and scroll only inside their wrapper. */
.fp-app-shell .table-wrap{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  overflow-x:auto!important;
  overflow-y:auto;
  scrollbar-gutter:auto;
  -webkit-overflow-scrolling:touch;
}
.fp-app-shell table.ch-table-compact{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  table-layout:fixed!important;
  border-collapse:collapse;
}
.fp-app-shell table.ch-table-wide{
  width:max-content!important;
  min-width:100%!important;
  max-width:none!important;
  table-layout:auto!important;
  border-collapse:collapse;
}
.fp-app-shell table.ch-table-compact th,
.fp-app-shell table.ch-table-compact td,
.fp-app-shell table.ch-table-wide th,
.fp-app-shell table.ch-table-wide td{
  word-break:normal!important;
  overflow-wrap:normal!important;
  hyphens:none!important;
}
.fp-app-shell table.ch-table-compact th,
.fp-app-shell table.ch-table-compact td{
  min-width:0!important;
}

/* Monetary values, hours, dates/rates and compact statuses are atomic UI data.
   They are never allowed to split across lines. */
.fp-app-shell :is(td,th).ch-nowrap-value,
.fp-app-shell :is(td,th).ch-nowrap-status,
.fp-app-shell td.num,
.fp-app-shell td[data-money],
.fp-app-shell td[data-hours],
.fp-app-shell .wp-source-status,
.fp-app-shell .wp-rate-evidence,
.fp-app-shell .wp-period-state{
  white-space:nowrap!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
  min-width:max-content;
  font-variant-numeric:tabular-nums;
}

/* Important payroll/data tables get deliberate semantic column widths. */
.fp-app-shell .wp-pay-reconciliation-section table{
  min-width:1080px!important;
}
.fp-app-shell .wp-pay-reconciliation-section table th:first-child,
.fp-app-shell .wp-pay-reconciliation-section table td:first-child{
  min-width:168px!important;
  white-space:nowrap!important;
}
.fp-app-shell .wp-pay-reconciliation-section table th:not(:first-child),
.fp-app-shell .wp-pay-reconciliation-section table td:not(:first-child){
  min-width:92px!important;
  white-space:nowrap!important;
}
.fp-app-shell .wp-pay-reconciliation-section table th:nth-last-child(-n+3),
.fp-app-shell .wp-pay-reconciliation-section table td:nth-last-child(-n+3){
  min-width:132px!important;
}

/* Long prose cells may flow at word boundaries and receive real reading width. */
.fp-app-shell td.ch-flow-text{
  min-width:180px;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  line-height:1.45;
}

/* Compact detail copy must not reserve an empty right-hand column. */
.fp-app-shell .wp-compact-detail[open] .wp-detail-copy{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  box-sizing:border-box;
}

/* Cards/grids distribute free space, instead of constraining readable copy. */
.fp-app-shell :is(.wp-evidence-head,.wp-pay-detail-heading,.wp-technical-details-body,.ch-clean-disclosure-body)>*{
  min-width:0;
  max-width:100%;
}

/* On narrow devices keep the professional table structure and scroll only the
   data surface; never squeeze a money/status token to character width. */
@media(max-width:760px){
  .fp-app-shell .table-wrap{
    margin-inline:0!important;
    border-radius:10px!important;
  }
  }

/* Very wide screens should use the available application canvas. */
@media(min-width:1180px){
  .fp-app-shell .main{
    width:100%!important;
    max-width:none!important;
  }
  .fp-app-shell .wp-detail-copy,
  .fp-app-shell .wp-audit-rationale{
    padding-right:18px!important;
  }
}


/* =========================================================
   PLENTZ DISCLOSURE ACTION CONTRACT — BALANCED UX
   Silent expandable rows get a lightweight More / Less cue.
   Existing contextual actions are preserved.
   ========================================================= */
.fp-app-shell details>summary{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
.fp-app-shell details>summary>*:not(.ch-disclosure-action){
  min-width:0;
}
.fp-app-shell details>summary .ch-disclosure-action{
  display:inline-flex!important;
  align-items:center;
  flex:0 0 auto!important;
  margin-left:auto!important;
  padding:2px 0!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  color:#0b7b47!important;
  font-size:10.5px!important;
  line-height:1.2!important;
  font-weight:750!important;
  letter-spacing:.01em;
  white-space:nowrap!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
  position:relative;
  z-index:2;
}
.fp-app-shell details[open]>summary .ch-disclosure-action{
  color:#536e65!important;
}
.fp-app-shell details>summary .ch-disclosure-action::after{
  content:'›';
  margin-left:5px;
  font-size:13px;
  line-height:1;
  transition:transform .16s ease;
}
.fp-app-shell details[open]>summary .ch-disclosure-action::after{
  transform:rotate(90deg);
}
.fp-app-shell details>summary::after{
  display:none!important;
}

/* Existing contextual actions remain stronger than the generated cue,
   but still read as light controls rather than secondary buttons. */

/* Keep disclosure rows visually calm: one primary reading line, one action. */
.fp-app-shell details>summary{
  min-height:44px;
}
.fp-app-shell details>summary h2,
.fp-app-shell details>summary h3,
.fp-app-shell details>summary strong{
  margin-block:0;
}

@media(max-width:640px){
  .fp-app-shell details>summary{
    align-items:flex-start!important;
    flex-wrap:wrap!important;
  }
  .fp-app-shell details>summary .ch-disclosure-action{
    margin-left:auto!important;
  }
}

.fp-app-shell details>summary{
  justify-content:flex-start!important;
  align-items:center!important;
}
.fp-app-shell details>summary .ch-disclosure-action{
  order:2!important;
  margin-left:8px!important;
  margin-right:0!important;
  align-self:center!important;
}
.fp-app-shell details>summary .ch-disclosure-action::after{
  content:'›'!important;
}
.fp-app-shell details>summary .wp-payment-state{
  margin-left:auto!important;
}
@media(max-width:640px){
  .fp-app-shell details>summary .ch-disclosure-action{
    margin-left:6px!important;
  }
}

.fp-app-shell details>summary{
  display:flex!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:12px!important;
  overflow:hidden!important;
}
.fp-app-shell details>summary>*{
  min-width:0!important;
  max-width:100%;
}
.fp-app-shell details>summary .ch-disclosure-action{
  order:99!important;
  flex:0 0 auto!important;
  margin-left:auto!important;
  margin-right:0!important;
  align-self:center!important;
  white-space:nowrap!important;
}
.fp-app-shell .ch-rulebook-topic>summary>div:first-child{
  flex:1 1 auto!important;
}
.fp-app-shell .ch-rulebook-topic>summary>.ch-rule-status{
  flex:0 0 auto!important;
  margin-left:0!important;
  white-space:nowrap!important;
}
.fp-app-shell .wp-ph-calculation-audit>summary{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto auto!important;
  align-items:center!important;
  column-gap:16px!important;
}
.fp-app-shell .wp-ph-calculation-audit>summary .wp-ph-summary-copy{
  min-width:0!important;
}
.fp-app-shell .wp-ph-calculation-audit>summary .wp-ph-summary-value{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-end!important;
  justify-content:center!important;
  gap:2px!important;
  min-width:max-content!important;
  white-space:nowrap!important;
}
.fp-app-shell .wp-ph-calculation-audit>summary .wp-ph-summary-value small{
  font-size:10px!important;
  line-height:1.2!important;
  color:#73827b!important;
}
.fp-app-shell .wp-ph-calculation-audit>summary .wp-ph-summary-value strong{
  font-size:14px!important;
  line-height:1.2!important;
  font-weight:700!important;
}
.fp-app-shell .wp-ph-calculation-audit>summary .ch-disclosure-action{
  margin-left:0!important;
}

@media(max-width:700px){
  .fp-app-shell details>summary{
    flex-wrap:wrap!important;
    align-items:flex-start!important;
  }
  .fp-app-shell details>summary .ch-disclosure-action{
    margin-left:0!important;
  }
  .fp-app-shell .ch-rulebook-topic>summary .ch-disclosure-action{
    margin-left:auto!important;
  }
  .fp-app-shell .wp-ph-calculation-audit>summary{
    grid-template-columns:minmax(0,1fr) auto!important;
    row-gap:8px!important;
  }
  .fp-app-shell .wp-ph-calculation-audit>summary .wp-ph-summary-value{
    align-items:flex-end!important;
  }
  .fp-app-shell .wp-ph-calculation-audit>summary .ch-disclosure-action{
    grid-column:1/-1!important;
    justify-self:start!important;
  }
}


/* Single disclosure affordance: legacy action labels are removed in JS.
   Keep the canonical More visually consistent with Plentz. */
.fp-app-shell details>summary .ch-disclosure-action{
  color:#087f4f!important;
  background:transparent!important;
  border:0!important;
  white-space:nowrap!important;
}
.fp-app-shell .ch-admin-collapsible>summary>span:last-child:not(.ch-disclosure-action){
  color:inherit!important;
}

/* Public Holiday audit: title, calculated value and More stay in one bounded row. */
.fp-app-shell .wp-ph-calculation-audit>summary{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto auto!important;
  align-items:center!important;
  gap:14px!important;
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
.fp-app-shell .wp-ph-calculation-audit>summary .wp-ph-summary-copy{
  min-width:0!important;
}
.fp-app-shell .wp-ph-calculation-audit>summary .wp-ph-summary-value{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-end!important;
  gap:2px!important;
  white-space:nowrap!important;
}
.fp-app-shell .wp-ph-calculation-audit>summary .wp-ph-summary-value small{
  font-size:10px!important;
  color:#6f7f78!important;
}
.fp-app-shell .wp-ph-calculation-audit>summary .wp-ph-summary-value strong{
  font-size:14px!important;
}
.fp-app-shell .wp-ph-calculation-audit>summary .ch-disclosure-action{
  margin-left:0!important;
}



/* Compact source-documents table */
.fp-app-shell .wp-source-table.ch-table-compact{width:100%!important;min-width:0!important;table-layout:fixed!important}
.fp-app-shell .wp-source-table th:nth-child(1),.fp-app-shell .wp-source-table td:nth-child(1){width:29%!important;min-width:0!important}
.fp-app-shell .wp-source-table th:nth-child(2),.fp-app-shell .wp-source-table td:nth-child(2){width:27%!important;min-width:0!important}
.fp-app-shell .wp-source-table th:nth-child(3),.fp-app-shell .wp-source-table td:nth-child(3){width:13%!important;min-width:0!important;white-space:nowrap!important}
.fp-app-shell .wp-source-table th:nth-child(4),.fp-app-shell .wp-source-table td:nth-child(4){width:11%!important;min-width:0!important;white-space:nowrap!important}
.fp-app-shell .wp-source-table th:nth-child(5),.fp-app-shell .wp-source-table td:nth-child(5){width:20%!important;min-width:0!important}

/* Wide hours-audit table */
.fp-app-shell .wp-hours-audit-table.ch-table-balanced{min-width:0!important;width:100%!important}
.fp-app-shell .wp-hours-audit-table th,.fp-app-shell .wp-hours-audit-table td{padding:8px 9px!important;font-size:12px!important}
.fp-app-shell .wp-hours-audit-table th:nth-child(1),.fp-app-shell .wp-hours-audit-table td:nth-child(1){min-width:92px!important;white-space:nowrap!important}
.fp-app-shell .wp-hours-audit-table th:nth-child(2),.fp-app-shell .wp-hours-audit-table td:nth-child(2){min-width:140px!important}
.fp-app-shell .wp-hours-audit-table th:nth-child(3),.fp-app-shell .wp-hours-audit-table td:nth-child(3){min-width:105px!important;white-space:nowrap!important}
.fp-app-shell .wp-hours-audit-table th:nth-child(4),.fp-app-shell .wp-hours-audit-table td:nth-child(4){min-width:68px!important;white-space:nowrap!important}
.fp-app-shell .wp-hours-audit-table th:nth-child(5),.fp-app-shell .wp-hours-audit-table td:nth-child(5){min-width:118px!important}
.fp-app-shell .wp-hours-audit-table th:nth-child(6),.fp-app-shell .wp-hours-audit-table td:nth-child(6),
.fp-app-shell .wp-hours-audit-table th:nth-child(7),.fp-app-shell .wp-hours-audit-table td:nth-child(7){min-width:72px!important;text-align:right;white-space:nowrap!important}

.fp-app-shell table.ch-table-wide th,.fp-app-shell table.ch-table-wide td{padding-inline:10px!important}
.fp-app-shell .ch-travel-table.ch-table-balanced th,.fp-app-shell .ch-travel-table.ch-table-balanced td{padding-inline:8px!important}
.fp-app-shell .report-week-table.ch-table-wide th,.fp-app-shell .report-week-table.ch-table-wide td{padding-inline:9px!important}

.fp-app-shell table.ch-table-balanced{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  table-layout:auto!important;
  border-collapse:collapse!important;
}
.fp-app-shell table.ch-table-balanced th,
.fp-app-shell table.ch-table-balanced td{
  min-width:0!important;
  padding-left:9px!important;
  padding-right:9px!important;
  vertical-align:top;
}
.fp-app-shell table.ch-table-balanced .ch-nowrap-value,
.fp-app-shell table.ch-table-balanced .ch-nowrap-status{
  white-space:nowrap!important;
}

/* Journey table — single compact geometry contract. */
.fp-app-shell .ch-travel-table.ch-table-balanced{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  table-layout:fixed!important;
}
.fp-app-shell .ch-travel-table.ch-table-balanced th,
.fp-app-shell .ch-travel-table.ch-table-balanced td{
  min-width:0!important;
  box-sizing:border-box!important;
  padding:7px 6px!important;
  font-size:11px!important;
  line-height:1.25!important;
  vertical-align:top!important;
  overflow:hidden!important;
}
.fp-app-shell .ch-travel-table.ch-table-balanced th{
  font-size:10px!important;
  line-height:1.15!important;
  white-space:nowrap!important;
}
.fp-app-shell .ch-travel-table.ch-table-balanced th:nth-child(1),
.fp-app-shell .ch-travel-table.ch-table-balanced td:nth-child(1){width:10%!important;white-space:nowrap!important}
.fp-app-shell .ch-travel-table.ch-table-balanced th:nth-child(2),
.fp-app-shell .ch-travel-table.ch-table-balanced td:nth-child(2){width:29%!important}
.fp-app-shell .ch-travel-table.ch-table-balanced th:nth-child(3),
.fp-app-shell .ch-travel-table.ch-table-balanced td:nth-child(3){width:8%!important;white-space:nowrap!important}
.fp-app-shell .ch-travel-table.ch-table-balanced th:nth-child(4),
.fp-app-shell .ch-travel-table.ch-table-balanced td:nth-child(4){width:12%!important}
.fp-app-shell .ch-travel-table.ch-table-balanced th:nth-child(5),
.fp-app-shell .ch-travel-table.ch-table-balanced td:nth-child(5){width:9%!important;white-space:nowrap!important}
.fp-app-shell .ch-travel-table.ch-table-balanced th:nth-child(6),
.fp-app-shell .ch-travel-table.ch-table-balanced td:nth-child(6){width:9%!important;white-space:nowrap!important}
.fp-app-shell .ch-travel-table.ch-table-balanced th:nth-child(7),
.fp-app-shell .ch-travel-table.ch-table-balanced td:nth-child(7){width:23%!important}
.fp-app-shell .ch-travel-table.ch-table-balanced td:nth-child(2),
.fp-app-shell .ch-travel-table.ch-table-balanced td:nth-child(4),
.fp-app-shell .ch-travel-table.ch-table-balanced td:nth-child(7){
  white-space:normal!important;
  overflow-wrap:break-word!important;
  word-break:normal!important;
}
.fp-app-shell .ch-travel-table.ch-table-balanced td:nth-child(4) small,
.fp-app-shell .ch-travel-table.ch-table-balanced td:nth-child(7) small{
  display:block!important;
  margin-top:2px!important;
  font-size:9.5px!important;
  line-height:1.2!important;
}
.fp-app-shell .ch-travel-legend{
  margin-top:7px!important;
  padding-inline:2px!important;
  white-space:nowrap!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  font-size:10.5px!important;
  line-height:1.3!important;
}

/* Hours audit: balanced on desktop, local scroll only when the device is narrow. */
.fp-app-shell .wp-hours-audit-table.ch-table-balanced{table-layout:auto!important}

@media(max-width:760px){
  .fp-app-shell table.ch-table-balanced{width:max-content!important;min-width:720px!important;max-width:none!important}
  .fp-app-shell .ch-travel-table.ch-table-balanced{table-layout:fixed!important;min-width:700px!important}
  .fp-app-shell .wp-hours-audit-table.ch-table-balanced{min-width:720px!important}
}

.fp-app-shell .ch-pay-recon-table.ch-table-balanced,
.fp-app-shell .ch-gross-shift-table.ch-table-balanced,
.fp-app-shell .ch-payroll-audit-table.ch-table-balanced{
  width:100%!important;max-width:100%!important;min-width:0!important;
  table-layout:fixed!important;border-collapse:collapse!important;
}
.fp-app-shell .ch-pay-recon-table th,.fp-app-shell .ch-pay-recon-table td,
.fp-app-shell .ch-gross-shift-table th,.fp-app-shell .ch-gross-shift-table td,
.fp-app-shell .ch-payroll-audit-table th,.fp-app-shell .ch-payroll-audit-table td{
  min-width:0!important;padding:9px 7px!important;font-size:11.5px!important;line-height:1.2!important;
}
.fp-app-shell .ch-pay-recon-table td:not(:first-child),
.fp-app-shell .ch-gross-shift-table td:nth-child(1),
.fp-app-shell .ch-gross-shift-table td:nth-child(2),
.fp-app-shell .ch-gross-shift-table td:nth-child(3),
.fp-app-shell .ch-gross-shift-table td:nth-child(4),
.fp-app-shell .ch-gross-shift-table td:nth-child(7),
.fp-app-shell .ch-gross-shift-table td:nth-child(8),
.fp-app-shell .ch-gross-shift-table td:nth-child(9),
.fp-app-shell .ch-gross-shift-table td:nth-child(10),
.fp-app-shell .ch-payroll-audit-table td:not(:first-child){white-space:nowrap!important}

/* Gross pay reconciliation */
.fp-app-shell .ch-pay-recon-table th:nth-child(1),.fp-app-shell .ch-pay-recon-table td:nth-child(1){width:16%!important;white-space:nowrap!important}
.fp-app-shell .ch-pay-recon-table th:nth-child(2),.fp-app-shell .ch-pay-recon-table td:nth-child(2){width:9%!important}
.fp-app-shell .ch-pay-recon-table th:nth-child(3),.fp-app-shell .ch-pay-recon-table td:nth-child(3){width:8%!important}
.fp-app-shell .ch-pay-recon-table th:nth-child(4),.fp-app-shell .ch-pay-recon-table td:nth-child(4){width:8%!important}
.fp-app-shell .ch-pay-recon-table th:nth-child(5),.fp-app-shell .ch-pay-recon-table td:nth-child(5){width:8%!important}
.fp-app-shell .ch-pay-recon-table th:nth-child(6),.fp-app-shell .ch-pay-recon-table td:nth-child(6){width:10%!important}
.fp-app-shell .ch-pay-recon-table th:nth-child(7),.fp-app-shell .ch-pay-recon-table td:nth-child(7){width:8%!important}
.fp-app-shell .ch-pay-recon-table th:nth-child(8),.fp-app-shell .ch-pay-recon-table td:nth-child(8){width:11%!important}
.fp-app-shell .ch-pay-recon-table th:nth-child(9),.fp-app-shell .ch-pay-recon-table td:nth-child(9){width:11%!important}
.fp-app-shell .ch-pay-recon-table th:nth-child(10),.fp-app-shell .ch-pay-recon-table td:nth-child(10){width:11%!important}


/* Gross Payslip shift detail — single authoritative geometry */
.fp-app-shell .ch-gross-shift-table.ch-table-balanced{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  table-layout:fixed!important;
}
.fp-app-shell .ch-gross-shift-table th,
.fp-app-shell .ch-gross-shift-table td{
  box-sizing:border-box!important;
  overflow:hidden!important;
  text-overflow:ellipsis;
}
.fp-app-shell .ch-gross-shift-table th:nth-child(1),.fp-app-shell .ch-gross-shift-table td:nth-child(1){width:10%!important}
.fp-app-shell .ch-gross-shift-table th:nth-child(2),.fp-app-shell .ch-gross-shift-table td:nth-child(2){width:8%!important}
.fp-app-shell .ch-gross-shift-table th:nth-child(3),.fp-app-shell .ch-gross-shift-table td:nth-child(3){width:10%!important}
.fp-app-shell .ch-gross-shift-table th:nth-child(4),.fp-app-shell .ch-gross-shift-table td:nth-child(4){width:7%!important}
.fp-app-shell .ch-gross-shift-table th:nth-child(5),.fp-app-shell .ch-gross-shift-table td:nth-child(5){width:18%!important}
.fp-app-shell .ch-gross-shift-table th:nth-child(6),.fp-app-shell .ch-gross-shift-table td:nth-child(6){width:12%!important}
.fp-app-shell .ch-gross-shift-table th:nth-child(7),.fp-app-shell .ch-gross-shift-table td:nth-child(7){width:8%!important}
.fp-app-shell .ch-gross-shift-table th:nth-child(8),.fp-app-shell .ch-gross-shift-table td:nth-child(8){width:9%!important}
.fp-app-shell .ch-gross-shift-table th:nth-child(9),.fp-app-shell .ch-gross-shift-table td:nth-child(9){width:8%!important}
.fp-app-shell .ch-gross-shift-table th:nth-child(10),.fp-app-shell .ch-gross-shift-table td:nth-child(10){width:10%!important}

.fp-app-shell .ch-gross-shift-table .ch-cell-client,
.fp-app-shell .ch-gross-shift-table .ch-cell-type{
  min-width:0!important;
  max-width:0;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.fp-app-shell .ch-gross-shift-table td.num{
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:clip!important;
}

/* Detailed payroll audit */
.fp-app-shell .ch-payroll-audit-table th:nth-child(1),.fp-app-shell .ch-payroll-audit-table td:nth-child(1){width:20%!important}
.fp-app-shell .ch-payroll-audit-table th:nth-child(2),.fp-app-shell .ch-payroll-audit-table td:nth-child(2){width:13%!important}
.fp-app-shell .ch-payroll-audit-table th:nth-child(3),.fp-app-shell .ch-payroll-audit-table td:nth-child(3){width:13%!important}
.fp-app-shell .ch-payroll-audit-table th:nth-child(4),.fp-app-shell .ch-payroll-audit-table td:nth-child(4){width:10%!important}
.fp-app-shell .ch-payroll-audit-table th:nth-child(5),.fp-app-shell .ch-payroll-audit-table td:nth-child(5){width:10%!important}
.fp-app-shell .ch-payroll-audit-table th:nth-child(6),.fp-app-shell .ch-payroll-audit-table td:nth-child(6){width:10%!important}
.fp-app-shell .ch-payroll-audit-table th:nth-child(7),.fp-app-shell .ch-payroll-audit-table td:nth-child(7){width:12%!important}
.fp-app-shell .ch-payroll-audit-table th:nth-child(8),.fp-app-shell .ch-payroll-audit-table td:nth-child(8){width:12%!important}

@media(max-width:1100px){
  .fp-app-shell .ch-pay-recon-table.ch-table-balanced{
    width:max-content!important;min-width:980px!important;max-width:none!important;table-layout:fixed!important;
  }
  .fp-app-shell .ch-gross-shift-table.ch-table-balanced{
    width:max-content!important;min-width:1040px!important;max-width:none!important;table-layout:fixed!important;
  }
  .fp-app-shell .ch-payroll-audit-table.ch-table-balanced{
    width:max-content!important;min-width:760px!important;max-width:none!important;table-layout:fixed!important;
  }
}

.fp-app-shell .ch-table-legend{
  display:block;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  margin:8px 0 0;
  padding:0 2px 2px;
  color:var(--muted,#6f8390);
  font-size:11.5px;
  line-height:1.35;
  white-space:nowrap;
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:thin;
}
.fp-app-shell .ch-table-legend strong,
.fp-app-shell .ch-table-legend b{color:var(--ink,#173746);font-weight:700}
@media (max-width:700px){
  .fp-app-shell .ch-table-legend{font-size:10.5px;white-space:nowrap}
}

.fp-app-shell table.ch-table-compact td,
.fp-app-shell table.ch-table-balanced td,
.fp-app-shell table.ch-table-wide td{
  box-sizing:border-box!important;
}
.fp-app-shell table.ch-table-compact td:not(.ch-flow-text),
.fp-app-shell table.ch-table-balanced td:not(.ch-flow-text),
.fp-app-shell table.ch-table-wide td:not(.ch-flow-text){
  overflow:hidden;
}

.fp-app-shell .wp-simple-compare .wp-simple-title{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin-bottom:12px!important;
}
.fp-app-shell .wp-simple-compare .wp-simple-title>div{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}
.fp-app-shell .wp-simple-status.wp-simple-status-bar{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:14px!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  margin:0 0 16px!important;
  padding:11px 14px!important;
  border:1px solid var(--plentz-line,#dfe8e4)!important;
  border-radius:12px!important;
}
.fp-app-shell .wp-simple-status-bar .wp-simple-status-main{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  flex:0 1 auto!important;
  min-width:0!important;
  white-space:nowrap!important;
}
.fp-app-shell .wp-simple-status-bar .wp-simple-status-main small{
  margin:0!important;
  font-size:10px!important;
  color:var(--plentz-muted,#6f7f78)!important;
}
.fp-app-shell .wp-simple-status-bar .wp-simple-status-main strong{
  margin:0!important;
  font-size:13px!important;
  white-space:nowrap!important;
}
.fp-app-shell .wp-simple-status-bar .wp-simple-status-main span{
  min-width:0!important;
  font-size:12px!important;
  white-space:normal!important;
}
.fp-app-shell .wp-simple-status-bar .wp-header-review{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  flex:1 1 auto!important;
  min-width:0!important;
  width:auto!important;
  max-width:none!important;
  margin:0!important;
  padding:0 0 0 14px!important;
  border-top:0!important;
  border-left:1px solid rgba(15,64,54,.12)!important;
}
.fp-app-shell .wp-simple-status-bar .wp-header-review-saved-copy{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  flex:1 1 auto!important;
  min-width:0!important;
}
.fp-app-shell .wp-simple-status-bar .wp-header-review-saved-copy>span,
.fp-app-shell .wp-simple-status-bar .wp-header-review-saved-copy>small,
.fp-app-shell .wp-simple-status-bar .wp-header-review-saved-copy>p{
  margin:0!important;
  min-width:0!important;
  line-height:1.3!important;
}
.fp-app-shell .wp-simple-status-bar .wp-header-review-saved-copy>span{font-size:11.5px!important}
.fp-app-shell .wp-simple-status-bar .wp-header-review-saved-copy>small{
  font-size:10.5px!important;
  color:var(--plentz-muted,#6f7f78)!important;
  white-space:nowrap!important;
}
.fp-app-shell .wp-simple-status-bar .wp-header-review-saved-copy>p{
  font-size:10.5px!important;
  white-space:normal!important;
}
.fp-app-shell .wp-simple-status-bar .wp-header-review-change{
  flex:0 0 auto!important;
  margin-left:auto!important;
  white-space:nowrap!important;
}
.fp-app-shell .wp-simple-status-bar .wp-header-review:not(.wp-header-review-saved){
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
}
.fp-app-shell .wp-simple-status-bar .wp-header-review-question,
.fp-app-shell .wp-simple-status-bar .wp-header-review-decisions,
.fp-app-shell .wp-simple-status-bar .wp-header-review-reason-toggle,
.fp-app-shell .wp-simple-status-bar .wp-header-review-save{
  flex:0 0 auto!important;
}
.fp-app-shell .wp-simple-status-bar .wp-header-review-decisions{justify-content:flex-start!important}
.fp-app-shell .wp-simple-status-bar .wp-header-review-reason-toggle{width:auto!important}
.fp-app-shell .wp-simple-status-bar .wp-header-review-reason{
  flex:1 1 220px!important;
  min-width:160px!important;
}
.fp-app-shell .wp-simple-status-bar .wp-header-review-save{min-width:64px!important}
.fp-app-shell .wp-simple-status-bar .wp-header-review-message{flex:1 0 100%!important}

/* Common content + action headers: text owns the available width; action stays compact. */
.fp-app-shell .ch-client-rate-toolbar,
.fp-app-shell .ch-reports-controls-compact{
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
.fp-app-shell .ch-client-rate-toolbar>*:first-child,
.fp-app-shell .ch-reports-controls-compact>*:first-child{
  min-width:0!important;
  flex:1 1 auto!important;
}

@media(max-width:900px){
  .fp-app-shell .wp-simple-status.wp-simple-status-bar{
    align-items:flex-start!important;
    flex-direction:column!important;
    gap:8px!important;
  }
  .fp-app-shell .wp-simple-status-bar .wp-simple-status-main{
    width:100%!important;
    flex-wrap:wrap!important;
  }
  .fp-app-shell .wp-simple-status-bar .wp-header-review{
    width:100%!important;
    padding:9px 0 0!important;
    border-left:0!important;
    border-top:1px solid rgba(15,64,54,.12)!important;
  }
}
@media(max-width:620px){
  .fp-app-shell .wp-simple-status-bar .wp-header-review-saved-copy{
    align-items:flex-start!important;
    flex-direction:column!important;
    gap:3px!important;
  }
  .fp-app-shell .wp-simple-status-bar .wp-header-review-change{margin-left:0!important}
}

.fp-app-shell .wp-ph-calculation-audit.review-accepted .ch-rule-facts .review-accepted{
  background:#eef9f3!important;
  border-color:#cfeadd!important;
}
.fp-app-shell .wp-ph-calculation-audit.review-accepted .ch-rule-facts .review-accepted b{
  color:#087f4f!important;
}
.fp-app-shell .wp-ph-calculation-audit .ch-rule-note-accepted{
  background:#f2faf6!important;
  border-color:#d8eee2!important;
  color:#355f50!important;
}
.fp-app-shell .wp-ph-calculation-audit .ch-rule-note-pending{
  background:#fff8e8!important;
  border-color:#f0dfb5!important;
}

.fp-app-shell .ch-travel-rules-premium{overflow:hidden!important}
.fp-app-shell .ch-travel-rules-title{align-items:flex-start!important;margin-bottom:14px!important}
.fp-app-shell .ch-travel-rule-source{display:flex!important;align-items:center!important;gap:12px!important;width:100%!important;padding:10px 12px!important;margin-bottom:16px!important;border:1px solid #dfe9e4!important;border-radius:12px!important;background:#f7faf8!important;box-sizing:border-box!important}
.fp-app-shell .ch-travel-rule-source>span{flex:0 0 auto!important;padding:6px 10px!important;border-radius:999px!important;font-size:12px!important;font-weight:800!important;white-space:nowrap!important}
.fp-app-shell .ch-travel-rule-source>span.confirmed{background:#e7f6ee!important;color:#087a4c!important}.fp-app-shell .ch-travel-rule-source>span.provisional{background:#fff5df!important;color:#946414!important}
.fp-app-shell .ch-travel-rule-source>div{display:flex!important;align-items:baseline!important;gap:8px!important;min-width:0!important;flex:1 1 auto!important}.fp-app-shell .ch-travel-rule-source>div strong{font-size:12px!important;font-weight:750!important;color:#526a62!important}.fp-app-shell .ch-travel-rule-source>div span{min-width:0!important;font-size:13px!important;line-height:1.45!important;color:#526a62!important}
.fp-app-shell .ch-travel-rule-section-head{display:flex!important;align-items:baseline!important;gap:10px!important;margin:6px 0 10px!important}.fp-app-shell .ch-travel-rule-section-head>span{color:#087a4c!important;font-size:14px!important;font-weight:800!important}.fp-app-shell .ch-travel-rule-section-head>small{color:#71847b!important;font-size:12px!important}.fp-app-shell .ch-travel-rule-section-head.guidance{margin-top:20px!important;padding-top:16px!important;border-top:1px solid #e4ece8!important}
.fp-app-shell .ch-travel-rule-facts-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:9px!important}.fp-app-shell .ch-travel-rule-fact{min-width:0!important;padding:12px!important;border:1px solid #e0e9e5!important;border-radius:12px!important;background:#fff!important;box-sizing:border-box!important}.fp-app-shell .ch-travel-rule-fact.primary{background:#f2faf6!important;border-color:#cce8da!important}
.fp-app-shell .ch-travel-rule-fact>span{display:block!important;margin-bottom:6px!important;color:#60766c!important;font-size:12px!important;font-weight:700!important}.fp-app-shell .ch-travel-rule-fact>strong{display:block!important;color:#173f35!important;font-size:16px!important;line-height:1.3!important;overflow-wrap:break-word!important}.fp-app-shell .ch-travel-rule-fact>small{display:block!important;margin-top:6px!important;color:#74877e!important;font-size:11.5px!important;line-height:1.4!important}
.fp-app-shell .ch-travel-guidance-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}.fp-app-shell .ch-travel-guidance-item{min-width:0!important;padding:12px 13px!important;border-left:3px solid #d7e8df!important;border-radius:0 9px 9px 0!important;background:#f8faf9!important}.fp-app-shell .ch-travel-guidance-item strong{display:block!important;margin-bottom:4px!important;color:#34574d!important;font-size:13px!important}.fp-app-shell .ch-travel-guidance-item p{margin:0!important;color:#63786f!important;font-size:12px!important;line-height:1.5!important}
.fp-app-shell .ch-travel-rule-boundary{display:flex!important;align-items:baseline!important;gap:8px!important;margin-top:16px!important;padding:10px 12px!important}
@media(max-width:1050px){.fp-app-shell .ch-travel-rule-facts-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:700px){.fp-app-shell .ch-travel-rule-source{align-items:flex-start!important;flex-direction:column!important}.fp-app-shell .ch-travel-rule-source>div{align-items:flex-start!important;flex-direction:column!important;gap:2px!important}.fp-app-shell .ch-travel-rule-facts-grid,.fp-app-shell .ch-travel-guidance-grid{grid-template-columns:1fr!important}.fp-app-shell .ch-travel-rule-section-head,.fp-app-shell .ch-travel-rule-boundary{align-items:flex-start!important;flex-direction:column!important;gap:2px!important}}

:root{--plentz-blue:var(--plentz-brand);--plentz-blue-hover:var(--plentz-brand-hover);--plentz-soft-blue:var(--plentz-brand-soft)}
.fp-auth-shell .fp-auth-button,.fp-auth-shell button.fp-auth-button,.ch-device-setup .fp-auth-button,.ch-device-setup button.fp-auth-button,.ch-device-setup .btn.primary,.ch-device-setup button.btn.primary,.ch-backup-password-modal .btn.primary,.ch-backup-password-modal button.btn.primary,#chRestorePasswordContinue,#chBackupPasswordContinue,#chMigrationImport{background:var(--plentz-brand)!important;border-color:var(--plentz-brand)!important;color:#fff!important;box-shadow:0 7px 18px rgba(7,132,71,.16)!important}
.fp-auth-shell .fp-auth-button:hover,.fp-auth-shell button.fp-auth-button:hover,.ch-device-setup .fp-auth-button:hover,.ch-device-setup button.fp-auth-button:hover,.ch-device-setup .btn.primary:hover,.ch-device-setup button.btn.primary:hover,.ch-backup-password-modal .btn.primary:hover,.ch-backup-password-modal button.btn.primary:hover,#chRestorePasswordContinue:hover,#chBackupPasswordContinue:hover,#chMigrationImport:hover{background:var(--plentz-brand-hover)!important;border-color:var(--plentz-brand-hover)!important;color:#fff!important}
.fp-auth-shell input:focus,.fp-auth-shell select:focus,.fp-auth-shell textarea:focus,.ch-device-setup input:focus,.ch-device-setup select:focus,.ch-device-setup textarea:focus,.ch-backup-password-modal input:focus{border-color:var(--plentz-brand)!important;outline:0!important;box-shadow:0 0 0 4px rgba(7,132,71,.10)!important}
.fp-app-shell .ch-dashboard-greeting{margin:0 0 14px!important;padding:0 22px!important}.fp-app-shell .ch-dashboard-greeting strong{display:block!important;color:var(--plentz-brand-deep)!important;font-size:23px!important;font-weight:750!important;line-height:1.2!important;letter-spacing:-.02em!important}.fp-app-shell .ch-dashboard-greeting span{display:block!important;margin-top:5px!important;color:var(--plentz-muted)!important;font-size:15px!important;line-height:1.4!important}

.fp-app-shell .ch-backup-default-note{
  margin:8px 0 12px!important;
  padding:9px 11px!important;
  border:1px solid #d7eadf!important;
  border-radius:10px!important;
  background:#f3faf6!important;
  color:#4e6b60!important;
  font-size:10.8px!important;
  line-height:1.4!important;
}
.fp-app-shell .ch-backup-default-note strong{color:#087a4c!important}

/* PLENTZ 1.25.1 — PASSIVE CAREGIVER IDENTITY */
#fpGlobalUserArea .fp-user-identity{display:flex!important;align-items:center!important;gap:10px!important;min-height:44px!important;padding:7px 12px!important;border:1px solid var(--plentz-border)!important;border-radius:12px!important;background:#fff!important;color:var(--plentz-ink)!important;box-sizing:border-box!important;cursor:default!important;user-select:none!important}
#fpGlobalUserArea .fp-user-identity .fp-user-avatar{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:32px!important;height:32px!important;flex:0 0 32px!important;border-radius:50%!important;background:var(--plentz-brand)!important;color:#fff!important;font-size:12px!important;font-weight:800!important}
#fpGlobalUserArea .fp-user-identity .fp-user-copy{display:flex!important;flex-direction:column!important;min-width:0!important;line-height:1.15!important}
#fpGlobalUserArea .fp-user-identity .fp-user-copy strong{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;color:var(--plentz-ink)!important;font-size:12px!important;font-weight:800!important}
#fpGlobalUserArea .fp-user-identity .fp-user-copy small{margin-top:3px!important;color:var(--plentz-muted)!important;font-size:9px!important}

/* PLENTZ 1.25.2 — EDITORIAL CLEANUP */
.fp-app-shell .wp-next-payslip-forecast .section-title{margin-bottom:8px!important}
.fp-app-shell .wp-next-payslip-forecast .wp-unpaid-period-head{margin-top:0!important}
.fp-app-shell .wp-next-payslip-forecast .wp-next-payslip-period{display:block!important;max-width:100%!important;color:var(--plentz-ink)!important;font-size:13px!important;font-weight:700!important;line-height:1.4!important;letter-spacing:0!important;white-space:normal!important;overflow-wrap:anywhere!important}
.fp-app-shell .wp-next-payslip-forecast .wp-next-payslip-period span{display:inline!important;padding:0 6px!important;color:var(--plentz-muted)!important}
@media(max-width:520px){.fp-app-shell .wp-next-payslip-forecast .wp-next-payslip-period{font-size:12px!important}}

/* Caregiver photo and Dashboard welcome */
.fp-app-shell .ch-care-avatar{display:inline-flex!important;align-items:center!important;justify-content:center!important;overflow:hidden!important;flex:0 0 auto!important;border-radius:50%!important;background:linear-gradient(145deg,#0a8d50,#087445)!important;color:#fff!important;font-weight:800!important}
.fp-app-shell .ch-care-avatar img{width:100%!important;height:100%!important;display:block!important;object-fit:cover!important;object-position:center!important}
.fp-app-shell .ch-care-avatar.profile{width:86px!important;height:86px!important;font-size:22px!important;box-shadow:0 0 0 5px #edf8f2,0 5px 16px rgba(7,95,69,.13)!important}
.fp-app-shell .ch-care-avatar.dashboard{width:68px!important;height:68px!important;font-size:18px!important;border:2px solid rgba(255,255,255,.94)!important;box-shadow:0 4px 16px rgba(0,0,0,.14)!important}
.fp-app-shell .ch-profile-photo-row{display:flex!important;align-items:center!important;gap:20px!important;margin:0 0 20px!important;padding:16px 18px!important;border:1px solid #dce8e2!important;border-radius:14px!important;background:#f8fbf9!important}
.fp-app-shell .ch-profile-photo-copy{min-width:0!important;flex:1 1 auto!important}
.fp-app-shell .ch-profile-photo-copy>strong{display:block!important;color:#173f35!important;font-size:14px!important;margin-bottom:4px!important}
.fp-app-shell .ch-profile-photo-copy>span{display:block!important;max-width:600px!important;color:#71838f!important;font-size:11px!important;line-height:1.45!important}
.fp-app-shell .ch-profile-photo-copy>div{display:flex!important;gap:8px!important;margin-top:11px!important}
.fp-app-shell .ch-dashboard-hero{padding:22px 26px!important;background:linear-gradient(105deg,#067746 0%,#0a8d50 62%,#4e8d4d 100%)!important;border:0!important;color:#fff!important;box-shadow:0 12px 28px rgba(5,87,52,.13)!important}
.fp-app-shell .ch-dashboard-hero-main{display:grid!important;grid-template-columns:minmax(220px,.9fr) minmax(360px,1.35fr) auto!important;align-items:center!important;gap:28px!important}
.fp-app-shell .ch-dashboard-hero .ch-page-context,.fp-app-shell .ch-dashboard-hero h1,.fp-app-shell .ch-dashboard-hero p{color:#fff!important}
.fp-app-shell .ch-dashboard-hero .ch-page-context{opacity:.9!important}.fp-app-shell .ch-dashboard-hero .ch-page-head-copy p{opacity:.82!important}
.fp-app-shell .ch-dashboard-hero .workspace-year small{color:rgba(255,255,255,.78)!important}
.fp-app-shell .ch-dashboard-greeting{display:flex!important;align-items:center!important;gap:16px!important;min-width:0!important;padding:0!important;margin:0!important}
.fp-app-shell .ch-dashboard-greeting strong{display:block!important;color:#fff!important;font-size:21px!important;font-weight:800!important;line-height:1.2!important;letter-spacing:-.02em!important}
.fp-app-shell .ch-dashboard-greeting span{display:block!important;margin-top:5px!important;color:rgba(255,255,255,.84)!important;font-size:12px!important;line-height:1.4!important}
#fpGlobalUserArea .fp-user-avatar img{width:100%!important;height:100%!important;display:block!important;object-fit:cover!important;border-radius:50%!important}
.ch-photo-crop-backdrop{position:fixed!important;inset:0!important;z-index:5000!important;display:grid!important;place-items:center!important;padding:22px!important;background:rgba(8,29,23,.58)!important;backdrop-filter:blur(4px)!important}
.ch-photo-crop-dialog{width:min(560px,100%)!important;max-height:calc(100vh - 32px)!important;overflow:auto!important;padding:22px!important;border-radius:20px!important;background:#fff!important;box-shadow:0 28px 70px rgba(0,0,0,.24)!important;box-sizing:border-box!important}
.ch-photo-crop-head h2{margin:3px 0 4px!important;color:#123b31!important;font-size:22px!important}.ch-photo-crop-head p{margin:0 0 16px!important;color:#6d8089!important;font-size:12px!important;line-height:1.45!important}
.ch-photo-crop-stage{position:relative!important;width:min(100%,480px)!important;aspect-ratio:1!important;margin:0 auto!important;overflow:hidden!important;border-radius:16px!important;background:#eaf2ee!important;cursor:grab!important;touch-action:none!important}
.ch-photo-crop-stage canvas{display:block!important;width:100%!important;height:100%!important}.ch-photo-crop-stage:active{cursor:grabbing!important}
.ch-photo-crop-ring{position:absolute!important;inset:8%!important;border:3px solid rgba(255,255,255,.92)!important;border-radius:50%!important;box-shadow:0 0 0 999px rgba(0,0,0,.12),0 0 0 1px rgba(0,0,0,.18)!important;pointer-events:none!important}
.ch-photo-crop-controls{margin:16px 0 4px!important}.ch-photo-crop-controls label{display:grid!important;grid-template-columns:auto 1fr!important;gap:14px!important;align-items:center!important;color:#163d33!important;font-size:12px!important;font-weight:700!important}.ch-photo-crop-controls input[type="range"]{width:100%!important;accent-color:#078447!important}
.ch-photo-crop-actions{display:flex!important;justify-content:flex-end!important;gap:10px!important;margin-top:18px!important}
@media(max-width:980px){.fp-app-shell .ch-dashboard-hero-main{grid-template-columns:1fr auto!important}.fp-app-shell .ch-dashboard-greeting{grid-column:1/-1!important;grid-row:2!important}}
@media(max-width:700px){.fp-app-shell .ch-profile-photo-row{align-items:flex-start!important;gap:14px!important;padding:14px!important}.fp-app-shell .ch-care-avatar.profile{width:68px!important;height:68px!important}.fp-app-shell .ch-care-avatar.dashboard{width:56px!important;height:56px!important}.fp-app-shell .ch-dashboard-hero{padding:18px!important}.fp-app-shell .ch-dashboard-hero-main{grid-template-columns:1fr!important;gap:15px!important}.fp-app-shell .ch-dashboard-hero .ch-page-head-tools{grid-row:2!important;justify-self:start!important}.fp-app-shell .ch-dashboard-greeting{grid-column:1!important;grid-row:3!important}.fp-app-shell .ch-dashboard-greeting strong{font-size:19px!important}.fp-app-shell .ch-profile-photo-copy>div{flex-wrap:wrap!important}.ch-photo-crop-backdrop{padding:10px!important}.ch-photo-crop-dialog{padding:16px!important;border-radius:16px!important}}


/* Caregiver extra-call register */
.fp-app-shell .wp-extra-call-register{margin-top:18px;border:1px solid #dce9e2;border-radius:14px;background:#f9fcfa;overflow:hidden}
.fp-app-shell .wp-extra-call-register-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;background:#f1f8f4;border-bottom:1px solid #dce9e2}
.fp-app-shell .wp-extra-call-register-head>div:first-child{min-width:0}
.fp-app-shell .wp-extra-call-register-head strong{display:block;color:#173f35;font-size:13px}
.fp-app-shell .wp-extra-call-register-head span{display:block;margin-top:3px;color:#71838f;font-size:11px;line-height:1.4}
.fp-app-shell .wp-extra-call-register-total{display:grid!important;grid-template-columns:auto auto auto auto;align-items:baseline;gap:4px 7px;white-space:nowrap}
.fp-app-shell .wp-extra-call-register-total b{color:#087b49;font-size:14px}
.fp-app-shell .wp-extra-call-register-total span{margin:0!important;font-size:10px!important}
.fp-app-shell .wp-extra-call-list{display:block}
.fp-app-shell .wp-extra-call-item{display:grid;grid-template-columns:150px minmax(220px,1fr) minmax(270px,1.1fr);gap:14px;align-items:center;padding:12px 16px;border-bottom:1px solid #e8efeb}
.fp-app-shell .wp-extra-call-item:last-child{border-bottom:0}
.fp-app-shell .wp-extra-call-item strong{display:block;color:#173f35;font-size:12px}
.fp-app-shell .wp-extra-call-item span{display:block;margin-top:3px;color:#71838f;font-size:10.5px;line-height:1.35}
.fp-app-shell .wp-extra-call-status strong{display:inline-flex;padding:4px 8px;border-radius:999px;background:#e6f7ee;color:#087b49}
.fp-app-shell .wp-extra-call-item.matched .wp-extra-call-status strong{background:#eef2f4;color:#516671}
.fp-app-shell .wp-extra-call-item.review .wp-extra-call-status strong{background:#fff4df;color:#9a6500}
.fp-app-shell .wp-extra-call-empty,.fp-app-shell .wp-extra-call-note{padding:13px 16px;color:#71838f;font-size:11px;line-height:1.45}
.fp-app-shell .wp-extra-call-note{border-top:1px solid #e8efeb;background:#fbfcfb}
@media(max-width:760px){
 .fp-app-shell .wp-extra-call-register-head{align-items:flex-start;flex-direction:column}
 .fp-app-shell .wp-extra-call-item{grid-template-columns:1fr;gap:8px}
 .fp-app-shell .wp-extra-call-register-total{grid-template-columns:auto auto auto auto}
}

.fp-app-shell .ch-profile-photo-status{align-self:flex-start!important;margin-top:0!important}

/* PLENTZ 1.0 — GLOBAL HEADER / USER IDENTITY ALIGNMENT
   Desktop follows the same sidebar + 1180px content rail used by the application.
   Tablet/mobile deliberately switch back to compact full-width header geometry. */
@media (min-width:901px){
  .fp-global-header{
    display:grid!important;
    grid-template-columns:250px minmax(0,1fr)!important;
    align-items:center!important;
    justify-content:stretch!important;
    height:72px!important;
    min-height:72px!important;
    padding:0!important;
    box-sizing:border-box!important;
  }
  .fp-header-brand-zone{
    width:100%!important;
    min-width:0!important;
    padding-left:24px!important;
    box-sizing:border-box!important;
  }
  .fp-header-tools{
    width:min(calc(100% - 60px),1180px)!important;
    min-width:0!important;
    height:100%!important;
    margin:0!important;
    padding:0!important;
    justify-self:center!important;
    align-self:center!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    box-sizing:border-box!important;
  }
  .fp-global-user-area{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    min-width:0!important;
    margin-left:auto!important;
  }
  #fpGlobalUserArea .fp-user-identity{
    margin:0!important;
    transform:none!important;
  }
}

@media (min-width:768px) and (max-width:900px){
  .fp-global-header{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    height:64px!important;
    min-height:64px!important;
    padding:0 16px!important;
    box-sizing:border-box!important;
  }
  .fp-header-brand-zone{padding-left:0!important}
  .fp-header-tools{
    width:auto!important;
    height:100%!important;
    margin-left:auto!important;
    margin-right:0!important;
    padding:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
  }
  .fp-global-user-area{
    display:flex!important;
    align-items:center!important;
    margin-left:auto!important;
  }
}

@media (max-width:767px){
  .fp-global-header{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    height:56px!important;
    min-height:56px!important;
    padding:0 10px!important;
    box-sizing:border-box!important;
  }
  .fp-header-brand-zone{padding-left:0!important}
  .fp-header-tools{
    width:auto!important;
    height:100%!important;
    margin-left:auto!important;
    margin-right:0!important;
    padding:0!important;
    gap:6px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
  }
  .fp-global-user-area{
    display:flex!important;
    align-items:center!important;
    margin-left:auto!important;
  }
  #fpGlobalUserArea .fp-user-identity{
    min-height:38px!important;
    padding:4px 8px!important;
    gap:7px!important;
    border-radius:10px!important;
  }
  #fpGlobalUserArea .fp-user-identity .fp-user-avatar{
    width:28px!important;
    height:28px!important;
    flex-basis:28px!important;
  }
}

@media (max-width:540px){
  #fpGlobalUserArea .fp-user-identity{
    width:38px!important;
    min-width:38px!important;
    height:38px!important;
    min-height:38px!important;
    padding:5px!important;
    justify-content:center!important;
    border-radius:10px!important;
  }
  #fpGlobalUserArea .fp-user-identity .fp-user-copy{
    display:none!important;
  }
}



/* =========================================================
   REPORTS — APPROVED UNIFORM RESPONSIVE LAYOUT
   Canonical final authority for the Reports workspace only.
   Keeps every report surface inside the same reading rail,
   removes horizontal breakouts and preserves equal card rhythm.
   ========================================================= */
.fp-app-shell .main:has(#chReportPeriod){
  overflow-x:hidden!important;
}
.fp-app-shell .main:has(#chReportPeriod)>*{
  width:min(100%,1180px)!important;
  max-width:1180px!important;
  min-width:0!important;
  box-sizing:border-box!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.fp-app-shell .main:has(#chReportPeriod) .ch-page-head{
  width:min(100%,1180px)!important;
  max-width:1180px!important;
  min-width:0!important;
  box-sizing:border-box!important;
  margin-left:auto!important;
  margin-right:auto!important;
  overflow:hidden!important;
}
.fp-app-shell .main:has(#chReportPeriod) .ch-page-head-row{
  min-width:0!important;
  gap:24px!important;
}
.fp-app-shell .main:has(#chReportPeriod) .ch-page-head-copy{
  min-width:0!important;
}
.fp-app-shell .main:has(#chReportPeriod) .ch-page-head-tools{
  flex:0 0 auto!important;
  min-width:0!important;
}
.fp-app-shell .main:has(#chReportPeriod) .ch-title-year{
  width:138px!important;
  min-width:138px!important;
  max-width:138px!important;
}
.fp-app-shell .main:has(#chReportPeriod) .ch-title-year select{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
.fp-app-shell .main:has(#chReportPeriod) .ch-reports-controls-compact{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(190px,230px)!important;
  align-items:center!important;
  gap:28px!important;
  width:100%!important;
  min-width:0!important;
  padding:17px!important;
  box-sizing:border-box!important;
}
.fp-app-shell .main:has(#chReportPeriod) .ch-report-period-controls{
  display:grid!important;
  grid-template-columns:1fr!important;
  width:100%!important;
  min-width:0!important;
  gap:8px!important;
}
.fp-app-shell .main:has(#chReportPeriod) .ch-report-period-controls label,
.fp-app-shell .main:has(#chReportPeriod) .ch-report-period-controls select,
.fp-app-shell .main:has(#chReportPeriod) .ch-report-period-controls input{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
.fp-app-shell .main:has(#chReportPeriod) .ch-report-grid-primary{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  align-items:stretch!important;
  gap:18px!important;
  width:100%!important;
  min-width:0!important;
}
.fp-app-shell .main:has(#chReportPeriod) .ch-report-grid-primary>.ch-report-card{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  min-height:274px!important;
  height:100%!important;
  padding:18px!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
.fp-app-shell .main:has(#chReportPeriod) .ch-report-card .ch-report-preview{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  overflow-wrap:anywhere!important;
}
.fp-app-shell .main:has(#chReportPeriod) .ch-report-card :is(p,span,strong,small){
  max-width:100%!important;
}
.fp-app-shell .main:has(#chReportPeriod) .ch-report-actions{
  width:100%!important;
  min-width:0!important;
  margin-top:auto!important;
}
.fp-app-shell .main:has(#chReportPeriod) .ch-report-actions .btn{
  max-width:100%!important;
}
.fp-app-shell .main:has(#chReportPeriod) .ch-report-more,
.fp-app-shell .main:has(#chReportPeriod) .ch-reports-note{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
@media(max-width:980px){
  .fp-app-shell .main:has(#chReportPeriod) .ch-report-grid-primary{
    grid-template-columns:1fr!important;
  }
  .fp-app-shell .main:has(#chReportPeriod) .ch-report-grid-primary>.ch-report-card{
    min-height:0!important;
  }
}
@media(max-width:760px){
  .fp-app-shell .main:has(#chReportPeriod)>*,
  .fp-app-shell .main:has(#chReportPeriod) .ch-page-head{
    width:100%!important;
    max-width:none!important;
  }
  .fp-app-shell .main:has(#chReportPeriod) .ch-reports-controls-compact{
    grid-template-columns:1fr!important;
    gap:14px!important;
  }
  .fp-app-shell .main:has(#chReportPeriod) .ch-title-year{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
  }
}


/* =========================================================
   PLENTZ 1.0 — UNIFORM PAGE RAIL / PROFILE SAFE EDGE
   Final authority after the cross-page layout audit.
   The global 1180px reading rail remains unchanged.
   On small screens the Profile hero no longer breaks out
   to the card edge with negative horizontal margins.
   ========================================================= */
.fp-app-shell .ch-profile-approved-layout{
  width:min(100%,1180px)!important;
  max-width:1180px!important;
  min-width:0!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
}
.fp-app-shell .ch-profile-approved-layout>*{
  min-width:0!important;
  box-sizing:border-box!important;
}
@media(max-width:767px){
  .fp-app-shell .ch-approved-profile-shell{
    padding:14px!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }
  .fp-app-shell .ch-page-head-profile{
    width:100%!important;
    max-width:100%!important;
    margin:0 0 18px!important;
    padding:17px 16px!important;
    box-sizing:border-box!important;
    border-radius:14px!important;
  }
  .fp-app-shell .ch-profile-approved-layout,
  .fp-app-shell .ch-profile-aside,
  .fp-app-shell .ch-profile-info-card{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }
}


/* =========================================================
   PLENTZ 1.0 — PROFILE CONTENT CARD BREATHING SPACE
   The approved Profile sections are card surfaces in the final theme,
   so they must have real horizontal inset. Earlier design CSS left
   their horizontal padding at zero, which put labels on the border.
   ========================================================= */
.fp-app-shell .ch-approved-profile-form>.ch-approved-section{
  padding:20px 22px!important;
  box-sizing:border-box!important;
}
.fp-app-shell .ch-approved-profile-form>.ch-approved-section>.ch-section-intro,
.fp-app-shell .ch-approved-profile-form>.ch-approved-section>.ch-profile-photo-row,
.fp-app-shell .ch-approved-profile-form>.ch-approved-section>.ch-profile-grid,
.fp-app-shell .ch-approved-profile-form>.ch-approved-section>.ch-transport-options,
.fp-app-shell .ch-approved-profile-form>.ch-approved-section>.ch-profile-other,
.fp-app-shell .ch-approved-profile-form>.ch-approved-section>.ch-mileage-profile-option{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
@media(max-width:767px){
  .fp-app-shell .ch-approved-profile-form>.ch-approved-section{
    padding:17px 16px!important;
  }
}
