/* CareSync v0.14.5 — keep grouped rota actions inside the card */
.rota-group-card{
  grid-template-columns:minmax(120px,160px) minmax(210px,270px) minmax(0,1fr);
  column-gap:24px;
  width:100%;
  box-sizing:border-box;
}
.rota-allocations{min-width:0;width:100%}
.rota-allocation{
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
}
.rota-allocation>div:first-child{min-width:0;overflow-wrap:anywhere}
.rota-allocation .rota-actions{
  display:flex;
  flex-wrap:nowrap;
  justify-content:flex-end;
  gap:8px;
  min-width:max-content;
}
.rota-allocation .rota-actions .button,
.rota-allocation .rota-actions button{min-width:82px}
@media(max-width:1050px){
 .rota-group-card{grid-template-columns:120px minmax(180px,230px) minmax(0,1fr);column-gap:16px}
 .rota-allocation{grid-template-columns:1fr}
 .rota-allocation .rota-actions{justify-content:flex-start}
}
@media(max-width:800px){
 .rota-group-card{grid-template-columns:90px minmax(0,1fr)}
 .rota-allocations{grid-column:1/-1}
 .rota-allocation{grid-template-columns:1fr}
 .rota-allocation .rota-actions{width:100%;justify-content:flex-start;min-width:0}
 .rota-allocation .rota-actions .button,
 .rota-allocation .rota-actions button{flex:1;min-width:0}
}

/* v0.25.0 weekly workload summary */
.workload-summary-card{background:#fff;border-radius:18px;padding:24px;margin:28px 0;box-shadow:0 4px 14px rgba(22,61,84,.08)}
.workload-summary-heading h2{margin:0 0 5px;color:#073a5d}
.workload-summary-heading p{margin:0 0 18px;color:#688398}
.workload-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.workload-person{border:1px solid #dce8ee;border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.workload-person strong{color:#073a5d;font-size:1.05rem}
.workload-person span{color:#234e68}
.workload-person small{color:#688398}
.workload-person.workload-over{background:#fff0f0;border-color:#f3c3c3}
.workload-person.workload-over small{color:#a52525;font-weight:700}
.workload-summary-note{margin:16px 0 0;color:#688398;font-size:.9rem}
@media(max-width:700px){.workload-summary-card{padding:18px}.workload-summary-grid{grid-template-columns:1fr}}

/* v0.25.1 rota readiness */
.rota-readiness-card{border-radius:18px;padding:24px;margin:28px 0;background:#fff;box-shadow:0 4px 14px rgba(22,61,84,.08);border-left:6px solid #2f9f70}
.rota-readiness-card.rota-readiness-attention{background:#fff7e8;border-left-color:#d99200}
.rota-readiness-title{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.rota-readiness-title h2{margin:0 0 5px;color:#073a5d}
.rota-readiness-title p{margin:0;color:#688398}
.rota-readiness-total{background:#fff;border-radius:14px;padding:12px 18px;text-align:center;min-width:120px}
.rota-readiness-total strong{display:block;font-size:1.45rem;color:#073a5d}
.rota-readiness-total span{color:#234e68}
.rota-readiness-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:18px}
.rota-readiness-grid div{background:#fff;border:1px solid #dce8ee;border-radius:12px;padding:13px;display:flex;flex-direction:column;gap:3px}
.rota-readiness-grid strong{font-size:1.25rem;color:#073a5d}
.rota-readiness-grid span{color:#688398;font-size:.9rem}
.rota-readiness-note{margin:16px 0 0;color:#688398;font-size:.9rem}
@media(max-width:850px){.rota-readiness-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.rota-readiness-card{padding:18px}.rota-readiness-title{flex-direction:column}.rota-readiness-total{width:100%}.rota-readiness-grid{grid-template-columns:1fr}}

/* v0.26.0 rota status */
.rota-status-card{background:#fff;border-radius:18px;padding:22px 24px;margin:28px 0;box-shadow:0 4px 14px rgba(22,61,84,.08);display:flex;justify-content:space-between;align-items:center;gap:20px}
.rota-status-card h2{margin:0 0 8px;color:#073a5d}.rota-status-card p{margin:0;color:#688398}
.rota-status-pill{display:inline-block;border-radius:999px;padding:6px 11px;font-weight:700;margin-right:6px}
.rota-status-pill.complete{background:#e3f5e9;color:#08733e}.rota-status-pill.draft{background:#fff0cf;color:#936000}
.rota-status-actions form{margin:0}.rota-status-actions button{white-space:nowrap}.rota-status-actions button:disabled{opacity:.6;cursor:not-allowed}
@media(max-width:700px){.rota-status-card{flex-direction:column;align-items:stretch}.rota-status-actions button{width:100%}}

/* v0.27.0 payroll preparation */
.payroll-head h1{margin-bottom:6px}.payroll-head p{color:#688398;max-width:850px}
.payroll-period-form{margin:22px 0}.payroll-period-form select{min-width:320px}
.payroll-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:22px 0}
.payroll-summary div{background:#fff;border-radius:16px;padding:18px;border:1px solid #dce8ee;display:flex;flex-direction:column;gap:5px}
.payroll-summary span{color:#688398}.payroll-summary strong{font-size:1.45rem;color:#073a5d}
.payroll-card{background:#fff;border-radius:18px;padding:22px;margin:22px 0;box-shadow:0 4px 14px rgba(22,61,84,.08)}
.payroll-card h2{margin-top:0;color:#073a5d}.payroll-table{width:100%;border-collapse:collapse}
.payroll-table th,.payroll-table td{padding:14px 12px;border-bottom:1px solid #e1eaee;text-align:left}
.payroll-table th{color:#073a5d}.payroll-ready{background:#e3f5e9;color:#08733e;padding:6px 10px;border-radius:999px;font-weight:700}
.payroll-note{background:#eef7fb;border-left:5px solid #1685ad;border-radius:12px;padding:15px;color:#345b70}
@media(max-width:700px){.payroll-summary{grid-template-columns:1fr}.payroll-period-form select{min-width:0;width:100%}.payroll-table thead{display:none}.payroll-table tr{display:block;padding:10px 0}.payroll-table td{display:flex;justify-content:space-between;gap:15px}.payroll-table td:before{content:attr(data-label);font-weight:700;color:#073a5d}}

/* v0.28.0 staff pay rates */
.payroll-rate-missing{display:inline-block;background:#fff0d2;color:#946000;padding:5px 9px;border-radius:999px;font-weight:700}

/* v0.28.1 payroll totals and responsive polish */
.payroll-summary-expanded{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:16px;
}
.payroll-summary-expanded small{
  display:block;
  margin-top:6px;
  font-size:.82rem;
  font-weight:500;
}
.payroll-warning,.payroll-complete-note{
  margin:18px 0 24px;
  padding:16px 18px;
  border-radius:16px;
}
.payroll-warning{
  background:#fff3d9;
  border-left:5px solid #d99400;
  color:#815600;
}
.payroll-warning span{display:block;margin-top:4px}
.payroll-complete-note{
  background:#e7f6ec;
  border-left:5px solid #2f9e68;
  color:#08763f;
}
.payroll-row-warning{
  display:inline-block;
  background:#fff0d2;
  color:#946000;
  padding:7px 10px;
  border-radius:999px;
  font-weight:700;
}
.payroll-table{min-width:1120px}
.payroll-table-wrap{overflow-x:auto}
@media(max-width:760px){
  .payroll-table{min-width:0}
  .payroll-table thead{display:none}
  .payroll-table,.payroll-table tbody,.payroll-table tr,.payroll-table td{display:block;width:100%}
  .payroll-table tr{padding:14px 0;border-bottom:1px solid #dbe5ec}
  .payroll-table td{
    display:grid;
    grid-template-columns:minmax(120px,42%) 1fr;
    gap:12px;
    padding:8px 4px;
    border:0;
  }
  .payroll-table td:before{
    content:attr(data-label);
    font-weight:700;
    color:#55738a;
  }
  .payroll-ready,.payroll-row-warning,.payroll-rate-missing{justify-self:start}
}

/* v0.29.0 payroll readiness */
.payroll-total-card{border:2px solid #cfe7d8}
.payroll-readiness{
  margin:18px 0 24px;
  padding:20px 24px;
  border-radius:20px;
}
.payroll-readiness h2{margin:0 0 8px}
.payroll-readiness p{margin:6px 0 0}
.payroll-readiness.is-ready{
  background:#e8f6ed;
  border-left:6px solid #2f9e68;
}
.payroll-readiness.needs-work{
  background:#fff3d9;
  border-left:6px solid #d99400;
}

/* v0.29.2 desktop payroll table fit */
@media(min-width:761px){
  .payroll-table-wrap{
    overflow-x:visible;
    width:100%;
  }
  .payroll-table{
    min-width:0 !important;
    width:100%;
    table-layout:fixed;
    font-size:.91rem;
  }
  .payroll-table th,
  .payroll-table td{
    padding:14px 8px;
    vertical-align:middle;
    overflow-wrap:anywhere;
  }
  .payroll-table th:nth-child(1){width:17%}
  .payroll-table th:nth-child(2){width:10%}
  .payroll-table th:nth-child(3){width:11%}
  .payroll-table th:nth-child(4){width:11%}
  .payroll-table th:nth-child(5){width:13%}
  .payroll-table th:nth-child(6){width:10%}
  .payroll-table th:nth-child(7){width:11%}
  .payroll-table th:nth-child(8){width:12%}
  .payroll-table th:nth-child(9){width:10%}
  .payroll-table .payroll-ready,
  .payroll-table .payroll-row-warning,
  .payroll-table .payroll-rate-missing{
    white-space:normal;
    text-align:center;
  }
}

/* v0.29.3 payroll table text polish */
@media(min-width:761px){
  .payroll-table{
    font-size:.84rem;
  }
  .payroll-table th,
  .payroll-table td{
    padding:14px 6px;
    overflow-wrap:normal !important;
    word-break:normal !important;
    hyphens:none;
  }
  .payroll-table th{
    white-space:normal;
    line-height:1.18;
  }
  .payroll-table th:nth-child(1){width:16%}
  .payroll-table th:nth-child(2){width:10%}
  .payroll-table th:nth-child(3){width:10%}
  .payroll-table th:nth-child(4){width:10%}
  .payroll-table th:nth-child(5){width:12%}
  .payroll-table th:nth-child(6){width:9%}
  .payroll-table th:nth-child(7){width:12%}
  .payroll-table th:nth-child(8){width:13%}
  .payroll-table th:nth-child(9){width:8%}

  .payroll-table .payroll-ready,
  .payroll-table .payroll-row-warning,
  .payroll-table .payroll-rate-missing{
    display:inline-block;
    white-space:nowrap !important;
    word-break:keep-all !important;
    overflow-wrap:normal !important;
    font-size:.78rem;
    padding:7px 8px;
  }
}

/* v0.30.0 payroll preparation + history */
.payroll-head-actions{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.payroll-prepare-action,.payroll-prepared-banner{
  margin:28px 0;padding:24px 28px;border-radius:20px;background:#fff;
  box-shadow:0 8px 24px rgba(10,54,82,.07);display:flex;align-items:center;
  justify-content:space-between;gap:24px
}
.payroll-prepare-action h2,.payroll-prepared-state h2{margin:0 0 6px}
.payroll-prepare-action p,.payroll-prepared-state p{margin:0;color:#5d7e9a}
.payroll-prepared-state{display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%}
.payroll-prepared-banner{background:#e8f6ed;border-left:7px solid #2f9d68;display:block}
.payroll-prepared-banner strong,.payroll-prepared-banner span{display:block}
.payroll-prepared-banner span{margin-top:6px;color:#4f718c}
.payroll-history-list{display:flex;flex-direction:column}
.payroll-history-row{display:grid;grid-template-columns:1fr auto auto;gap:24px;align-items:center;padding:20px 8px;border-bottom:1px solid #dbe5ec}
.payroll-history-row:last-child{border-bottom:0}
.payroll-history-row strong,.payroll-history-row span,.payroll-history-row small{display:block}
.payroll-history-row small{color:#7892a7;margin-top:5px}
.payroll-history-totals{display:flex;gap:18px;align-items:center}
@media(max-width:760px){
  .payroll-head-actions,.payroll-prepare-action,.payroll-prepared-state{display:block}
  .payroll-head-actions .button,.payroll-prepare-action form,.payroll-prepared-state .button{margin-top:14px;width:100%}
  .payroll-prepare-action button{width:100%}
  .payroll-history-row{display:block}
  .payroll-history-totals{margin:12px 0;flex-wrap:wrap}
  .payroll-history-row .button{width:100%}
}

/* v0.31.0 payroll export */
.payroll-history-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.payroll-history-actions .button{white-space:nowrap}
@media (max-width:700px){
  .payroll-head-actions .payroll-history-actions{width:100%}
  .payroll-head-actions .payroll-history-actions .button{flex:1;text-align:center}
}

/* v0.32.0 printable payroll report */
.payroll-report-toolbar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.payroll-report{background:#fff;border-radius:22px;padding:34px;box-shadow:0 8px 24px rgba(0,40,70,.07)}
.payroll-report-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;border-bottom:2px solid #dce8ef;padding-bottom:20px}
.payroll-report-brand{font-size:20px;font-weight:800;color:#1786aa;margin-bottom:6px}
.payroll-report-header h1{margin:0 0 6px}
.payroll-report-header p{margin:0;color:#66849c}
.payroll-report-status{background:#e3f4e8;color:#087a3c;font-weight:800;border-radius:999px;padding:10px 18px}
.payroll-report-meta,.payroll-report-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0}
.payroll-report-meta div,.payroll-report-totals div{border:1px solid #d8e5ed;border-radius:14px;padding:14px}
.payroll-report-meta span,.payroll-report-totals span{display:block;color:#68849a;margin-bottom:5px}
.payroll-report-totals strong{font-size:22px}
.payroll-report-totals small{display:block;margin-top:4px}
.payroll-report-totals .report-grand-total{border-width:2px}
.payroll-report-table-wrap{overflow-x:auto}
.payroll-report-table{width:100%;border-collapse:collapse}
.payroll-report-table th,.payroll-report-table td{padding:12px 10px;border-bottom:1px solid #dce6ec;text-align:left;white-space:nowrap}
.payroll-report-table th{font-weight:800}
.payroll-report-table tfoot td{border-top:2px solid #8ba4b5;border-bottom:0}
.payroll-report-footer{margin-top:24px;padding-top:16px;border-top:1px solid #dce6ec;color:#54748b}
@media(max-width:700px){
  .payroll-report{padding:20px}
  .payroll-report-meta,.payroll-report-totals{grid-template-columns:1fr}
}
@media print{
  @page{size:A4 landscape;margin:12mm}
  body{background:#fff!important}
  nav,.nav,.topnav,.site-nav,.no-print,footer.site-footer{display:none!important}
  main,.container,.content{max-width:none!important;width:100%!important;margin:0!important;padding:0!important}
  .payroll-report{box-shadow:none!important;border-radius:0!important;padding:0!important}
  .payroll-report-header{break-after:avoid}
  .payroll-report-meta,.payroll-report-totals{break-inside:avoid}
  .payroll-report-table{font-size:10.5pt}
  .payroll-report-table th,.payroll-report-table td{padding:7px 6px}
  .payroll-report-footer{font-size:9.5pt}
}

/* v0.32.1 payroll report print fit */
@media print{
  @page{size:A4 landscape;margin:7mm}
  .payroll-report{font-size:9pt!important;line-height:1.15!important}
  .payroll-report-header{padding-bottom:7px!important;margin-bottom:0!important}
  .payroll-report-brand{font-size:11pt!important;margin-bottom:2px!important}
  .payroll-report-header h1{font-size:16pt!important;line-height:1.05!important;margin:0 0 2px!important}
  .payroll-report-header p{font-size:8.5pt!important;margin:0!important}
  .payroll-report-status{font-size:8.5pt!important;padding:4px 9px!important}
  .payroll-report-meta,.payroll-report-totals{gap:6px!important;margin:8px 0!important}
  .payroll-report-meta div,.payroll-report-totals div{border-radius:7px!important;padding:6px 8px!important;min-height:0!important}
  .payroll-report-meta span,.payroll-report-totals span{font-size:8pt!important;margin-bottom:2px!important}
  .payroll-report-meta strong{font-size:9pt!important}
  .payroll-report-totals strong{font-size:11pt!important}
  .payroll-report-totals small{font-size:7.5pt!important;margin-top:1px!important}
  .payroll-report h2{font-size:13pt!important;line-height:1!important;margin:8px 0 5px!important;break-after:avoid!important}
  .payroll-report-table-wrap{overflow:visible!important}
  .payroll-report-table{font-size:8pt!important;line-height:1.1!important}
  .payroll-report-table thead{display:table-header-group}
  .payroll-report-table tfoot{display:table-footer-group}
  .payroll-report-table tr{break-inside:avoid!important;page-break-inside:avoid!important}
  .payroll-report-table th,.payroll-report-table td{padding:4px 4px!important}
  .payroll-report-footer{font-size:7.5pt!important;line-height:1.15!important;margin-top:7px!important;padding-top:5px!important;break-inside:avoid!important}
  .payroll-report-footer p{margin:2px 0!important}
}
