/* =============================================================================
   APNA MBS Calculator — Polished UI
   ============================================================================= */

/* ── Block wrapper ── */
.calculator-preview-block {
	padding: 0;
	background: #fff;
}
.calculator-preview-block__intro {
	max-width: 760px;
	margin-bottom: 40px;
}
.calculator-preview-block__heading {
	margin: 0 0 14px;
	font-size: 38px;
	line-height: 1.1;
	color: #0d2b63;
}
.calculator-preview-block__text {
	color: #4a6280;
	font-size: 17px;
	line-height: 1.75;
}

/* ── Calculator shell ── */
.calculator-preview {
	display: grid;
	gap: 0;
}

/* ── Expense bar — NOT sticky ── */
.calculator-preview__controls--top {
	position: static;
	padding: 0;
	background: #fff;
}
.calculator-preview__controls-bar {
	border-top: 1px solid #dce6f0;
	border-bottom: 1px solid #dce6f0;
	background: #fff;
}
.calculator-preview__controls-groups {
	display: grid;
	grid-template-columns: 1fr;
}
.calculator-preview__control-group + .calculator-preview__control-group {
	border-top: 1px solid #dce6f0;
}

/* ── Expense accordion toggle ── */
.calculator-preview__control-group-title {
	width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: #f5f8fc;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #0d2b63;
	text-align: left;
	cursor: pointer;
	transition: background 0.15s;
}
.calculator-preview__control-group-title:hover {
	background: #ecf2f9;
}
.calculator-preview__control-group-title-inner {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	max-width: 1440px;
	margin: 0 auto;
	padding: 13px 40px;
	box-sizing: border-box;
}

/* Lucide chevron in the toggle */
.calculator-preview__control-toggle-icon {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
	color: #6a87a8;
	transition: transform 0.22s ease;
}
.calculator-preview__control-group:not(.is-collapsed) .calculator-preview__control-toggle-icon {
	transform: rotate(180deg);
}

.calculator-preview__control-group-body {
	overflow: hidden;
	transition: max-height 260ms ease, opacity 200ms ease;
	opacity: 1;
}
.calculator-preview__control-group.is-collapsed .calculator-preview__control-group-body {
	max-height: 0;
	opacity: 0;
	pointer-events: none;
}

/* ── Input grid ── */
.calculator-preview__controls-grid {
	display: grid;
	gap: 0;
	align-items: start;
}
.calculator-preview__controls-grid--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.calculator-preview__controls-grid--4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}
.calculator-preview__control-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	gap: 8px;
	padding: 16px 18px;
}
.calculator-preview__control-card label, .calculator-preview__control-card span {
	margin-top: auto;
}
.calculator-preview__control-card:first-child {
	padding-left: 0;
}
.calculator-preview__control-card:last-child {
	padding-right: 0;
	position: relative;
}
.calculator-preview__controls-grid--2 .calculator-preview__control-card:nth-child(2n),
.calculator-preview__controls-grid--4 .calculator-preview__control-card:not(:nth-child(4n+1)) {
	border-left: 1px solid #dce6f0;
}
.calculator-preview__controls-grid--2 .calculator-preview__control-card:nth-child(n+3),
.calculator-preview__controls-grid--4 .calculator-preview__control-card:nth-child(n+5) {
	border-top: 1px solid #dce6f0;
}
.calculator-preview__control-label {
	color: #4a6280;
	font-size: 11.5px;
	font-weight: 700;
	line-height: 1.45;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

/* ── Section header ── */
.calculator-preview__header {
	padding: 32px 0 20px;
}
.calculator-preview__title {
	margin: 0;
	font-size: 28px;
	line-height: 1.1;
	color: #0d2b63;
}

/* ── Table card ── */
.calculator-preview__card {
	border: 1px solid #dce6f0;
	border-radius: 14px;
	background: #fff;
	margin: 50px 0;
}
.calculator-preview__card-head {
	padding: 14px 20px;
	border-bottom: 1px solid #dce6f0;
	display: flex;
	align-items: center;
	gap: 9px;
}
.calculator-preview__card-head-icon {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
	color: #4a6280;
}
.calculator-preview__card-head h4 {
	margin: 0;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.08em;
	color: #2a4a7a;
	text-transform: uppercase;
	flex: 1;
}

/* ── Period switcher (Weekly / Monthly / Yearly) ── */
.calculator-preview__period-switcher {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	background: #eef3fb;
	border: 1px solid #d0dcee;
	border-radius: 8px;
	padding: 3px;
	margin-left: auto;
	flex-shrink: 0;
}
.calc-period-btn {
	padding: 4px 12px;
	border: 0;
	border-radius: 6px;
	background: transparent;
	font-family: inherit;
	font-size: 11px;
	font-weight: 700;
	color: #4a6280;
	cursor: pointer;
	letter-spacing: 0.03em;
	transition: background 0.14s, color 0.14s;
	white-space: nowrap;
}
.calc-period-btn:hover {
	background: #fff;
	color: #0d2b63;
}
.calc-period-btn.is-active {
	background: #fff;
	color: #0d2b63;
	box-shadow: 0 1px 4px rgba(0,0,0,0.10);
}

/* ── Table ── */
.calculator-preview__table-wrap {
	-webkit-overflow-scrolling: touch;
	/* Creates a scroll container — required for sticky thead to work correctly */
	position: relative;
	/* Max height so vertical scroll activates and sticky thead sticks */
}
.calculator-preview__table-wrap thead {
	position: sticky;
    top: 0;
    z-index: 1;	
}
.calculator-preview__table {
	width: 100%;
	min-width: 100%;
	table-layout: fixed;
	border-collapse: collapse;
	margin-bottom: 0;
}
.calculator-preview__table th,
.calculator-preview__table td {
	padding: 10px 14px;
	border-bottom: 1px solid #edf2f8;
	vertical-align: middle;
	text-align: left;
	font-size: 13.5px;
}
.calculator-preview__table th {
	background: #f3f7fc;
	color: #2a4a7a;
	font-size: 10.5px;
	font-weight: 800;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	line-height: 1.3;
	border-bottom: 2px solid #dce6f0;
	/* Sticky header — sticks to top of the .calculator-preview__table-wrap scroll container */
	position: sticky;
	top: 0;
	z-index: 2;
	/* Box shadow acts as the bottom border replacement when stuck,
	   because border-bottom doesn't render on sticky elements in all browsers */
	box-shadow: 0 2px 0 #dce6f0;
}
.calculator-preview__table tbody tr:last-child td {
	border-bottom: 0;
}

/* ── Row-group accordion header ── */
.calculator-preview__table tr.row-group-header td {
	padding: 0;
	border: 0;          /* remove td borders — border lives on the button instead */
	background: #fff;
}

.row-group-toggle {
	width: 100%;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 14px;
	border: 0;
	border-radius: 0;   /* sharp corners — sits flush inside the table card */
	border-top: 2px solid #dce6f0;
	background: #f0f5fc;
	font-family: inherit;
	font-size: 11.5px;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: #1a3a6e;
	cursor: pointer;
	text-align: left;
	transition: background 0.14s;
}
/* First group header has no top border — no double line with table head */
.calculator-preview__table tbody tr.row-group-header:first-child .row-group-toggle {
	border-top: 0;
}
.row-group-toggle:hover {
	background: #e6eef9;
}
.row-group-toggle__icon {
	width: 14px;
	height: 14px;
	flex-shrink: 0;
	color: #4a72b5;
}
.row-group-toggle__label {
	flex: 1;
}
.row-group-toggle__count {
	font-size: 10px;
	font-weight: 700;
	color: #7a9ec8;
	background: #dce8f7;
	padding: 2px 8px;
	border-radius: 10px;
	letter-spacing: 0;
	text-transform: none;
}
.row-group-toggle__chevron {
	width: 14px;
	height: 14px;
	flex-shrink: 0;
	color: #7a9ec8;
	transition: transform 0.22s ease;
}
/* Chevron open state — toggled by JS adding .is-open on the header tr */
tr.row-group-header.is-open .row-group-toggle__chevron {
	transform: rotate(180deg);
}

/* ── Row-group data rows ── */
.calculator-preview__table tr.row-group-item td {
	background: #fff;
	transition: background 0.12s;
}
.calculator-preview__table tr.row-group-item.is-hidden {
	display: none;
}

/* ── Sub-group label rows ── */
.calculator-preview__table tr.row-subgroup td {
	padding: 0;
	border: 0;
	background: color-mix(in srgb, var(--sg-accent, #dce6f0) 12%, white);
}
/* No border-left on td — border was causing the unwanted leftmost line */
.calculator-preview__table tr.row-subgroup td:first-child {
	position: relative;
}
.row-subgroup__inner {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px 6px 25px;
	border-top: 1px solid #e4ecf7;
	background: color-mix(in srgb, var(--sg-accent, #dce6f0) 12%, white);
}
.row-subgroup__label {
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: #4a72b5;
	line-height: 1;
}

/* ── Colour variants per sub-group type ── */

/* in-person */
.calculator-preview__table tr.row-subgroup[data-type="in-person"] td { background: #fafcff; }
.calculator-preview__table tr.row-subgroup[data-type="in-person"] .row-subgroup__inner { border-top-color: #d8eaf8; }
.calculator-preview__table tr.row-subgroup[data-type="in-person"] .row-subgroup__label { color: #2a5daa; }





/* telehealth */
.calculator-preview__table tr.row-subgroup[data-type="telehealth"] td { background: #f9fdf9; }
.calculator-preview__table tr.row-subgroup[data-type="telehealth"] .row-subgroup__inner { border-top-color: #c8ecd9; }
.calculator-preview__table tr.row-subgroup[data-type="telehealth"] .row-subgroup__label { color: #1e7a50; }
.calculator-preview__table tr.row-group-item[data-subtype="telehealth"]:hover td { background: #f0f8f4; }
.calculator-preview__table tr.row-group-item[data-subtype="telehealth"]:focus-within td { background: #e6f5ee; }
.calculator-preview__table tr.row-group-item[data-subtype="telehealth"] td:first-child::before { color: #1e7a50; }

/* telephone */
.calculator-preview__table tr.row-subgroup[data-type="telephone"] td { background: #fdf9ff; }
.calculator-preview__table tr.row-subgroup[data-type="telephone"] .row-subgroup__inner { border-top-color: #e8d8f8; }
.calculator-preview__table tr.row-subgroup[data-type="telephone"] .row-subgroup__label { color: #6a3daa; }
.calculator-preview__table tr.row-group-item[data-subtype="telephone"]:hover td { background: #faf5ff; }
.calculator-preview__table tr.row-group-item[data-subtype="telephone"]:focus-within td { background: #f3eaff; }
.calculator-preview__table tr.row-group-item[data-subtype="telephone"] td:first-child::before { color: #6a3daa; }

/* duration */
.calculator-preview__table tr.row-subgroup[data-type="duration"] td { background: #fffbf5; }
.calculator-preview__table tr.row-subgroup[data-type="duration"] .row-subgroup__inner { border-top-color: #f5ddb0; }
.calculator-preview__table tr.row-subgroup[data-type="duration"] .row-subgroup__label { color: #a05c10; }
.calculator-preview__table tr.row-group-item[data-subtype="duration"]:hover td { background: #fff8ee; }
.calculator-preview__table tr.row-group-item[data-subtype="duration"]:focus-within td { background: #fff3e0; }
.calculator-preview__table tr.row-group-item[data-subtype="duration"] td:first-child::before { color: #a05c10; }

.calculator-preview__table tr.row-subgroup.is-hidden { display: none; }

/* ── Vertical connector line ──
   ::before on item td:first-child draws a thin vertical line.
   Position calculation:
     sub-group __inner padding-left = 25px
     sub-group icon width = 11px → centre = 25 + 5.5 = 30.5px from td edge
     item td padding-left = 28px (no border-left anymore)
     so left = 30.5px ≈ 30px to align with icon centre
── */
.calculator-preview__table tr.row-group-item[data-subtype] td:first-child {
	position: relative;
}
.calculator-preview__table tr.row-group-item[data-subtype] td:first-child::before {
	content: "";
	position: absolute;
	left: 30px;
	top: 0;
	bottom: 0;
	width: 1.5px;
	background: currentColor;
	opacity: 0.2;
}

/* ── Default for all item rows ── */
/* Items directly under a group (no subtype) — 22px indent */
.calculator-preview__table tr.row-group-item td:first-child {
	padding-left: 22px;
	border-left: 0;
	transition: background 0.12s;
}
/* Items inside a sub-group — 44px indent to clear the vertical connector line */
.calculator-preview__table tr.row-group-item[data-subtype] td:first-child {
	padding-left: 44px;
}

/* ── Mono data ── */
.calculator-preview__mono {
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	color: #1a3a6e;
	font-weight: 600;
	font-size: 13px;
}

/* ── Inputs ── */
.calculator-preview input.calculator-preview__input,
.calculator-preview input[type="number"].calculator-preview__input,
.calculator-preview input[type="text"].calculator-preview__input {
	width: 100%;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: #0d2b63;
	font-family: inherit;
	box-shadow: none;
	font-variant-numeric: tabular-nums;
	font-weight: 600;
	appearance: textfield !important;
	-moz-appearance: textfield !important;
}
.calculator-preview input.calculator-preview__input:focus,
.calculator-preview input[type="number"].calculator-preview__input:focus {
	outline: none;
	border: 0 !important;
	box-shadow: none !important;
	background: transparent !important;
}
.calculator-preview input.calculator-preview__input::-webkit-outer-spin-button,
.calculator-preview input.calculator-preview__input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.calculator-preview input.calculator-preview__input--table,
.calculator-preview input[type="number"].calculator-preview__input--table {
	display: block;
	width: 100% !important;
	padding: 0 !important;
	font-size: 13px !important;
	text-align: center !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}
.calculator-preview input.calculator-preview__input--side,
.calculator-preview input[type="number"].calculator-preview__input--side {
	width: 100%;
	padding: 0;
	font-size: 13px;
	font-weight: 700;
	color: #0d2b63;
}

/* Input shell */
.calculator-preview__input-shell {
	display: inline-flex;
	align-items: center;
	width: 100%;
	min-height: 38px;
	padding: 0 12px;
	border: 1.5px solid #cdd8e8;
	border-radius: 8px;
	background: #f7fafd;
	transition: border-color 0.15s;
}
.calculator-preview__input-shell:focus-within {
	border-color: #3577d4;
	background: #fff;
	outline: none;
}
.calculator-preview__table .calculator-preview__input-shell {
	min-height: 32px;
	padding: 0 8px;
	border-radius: 6px;
}

/* Money input */
.calculator-preview__money-field {
	display: inline-flex;
	align-items: center;
	position: relative;
	width: 100%;
	min-height: 38px;
	padding: 0 12px 0 26px;
	border: 1.5px solid #cdd8e8;
	border-radius: 8px;
	background: #f7fafd;
	color: #0d2b63;
	font-size: 13px;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	line-height: 1;
	transition: border-color 0.15s;
}
.calculator-preview__money-field:focus-within {
	border-color: #3577d4;
	background: #fff;
}
.calculator-preview__money-field::before {
	content: "$";
	position: absolute;
	left: 11px;
	top: 50%;
	transform: translateY(-50%);
	color: #7a98b8;
	font-size: 13px;
	font-weight: 700;
	pointer-events: none;
}
.calculator-preview input.calculator-preview__input--money,
.calculator-preview input[type="number"].calculator-preview__input--money {
	width: 100% !important;
	padding: 0 !important;
	font-size: 13px !important;
	text-align: left !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	appearance: none !important;
	-webkit-appearance: none !important;
}

/* ── Total row ── */
.calculator-preview__total-row td {
	background: #eef3fb !important;
	border-top: 2px solid #c8d8ee !important;
	border-bottom: 0 !important;
	font-weight: 800;
	font-size: 13px;
	color: #0d2b63;
}

/* ── Summary bar (sticky bottom) ── */
.calculator-summary {
	position: sticky;
	bottom: 0;
	z-index: 14;
	border-top: 2px solid #dce6f0;
	background: rgba(255, 255, 255, 0.97);
	backdrop-filter: blur(6px);
}
.calculator-summary__bar {
	background: transparent;
}
.calculator-summary__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.calculator-summary__column + .calculator-summary__column {
	border-left: 1px solid #dce6f0;
}

/* Summary toggle button */
.calculator-summary__title {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 16px 20px;
	border: 0;
	background: transparent;
	color: #0d2b63;
	font: inherit;
	font-size: 13px;
	font-weight: 700;
	text-align: left;
	cursor: pointer;
	transition: background 0.12s;
}
.calculator-summary__title:hover {
	background: #f5f8fc;
}
.calculator-summary__title-inner {
	display: flex;
	align-items: center;
	gap: 8px;
	flex: 1;
	min-width: 0;
}
.calculator-summary__title-icon {
	width: 15px;
	height: 15px;
	flex-shrink: 0;
	color: #4a6280;
}
.calculator-summary__preview-value {
	color: #0d2b63;
	font-size: 15px;
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
.calculator-summary__title-chevron {
	width: 15px;
	height: 15px;
	flex-shrink: 0;
	color: #8a9fb8;
	transition: transform 0.22s ease;
}
.calculator-summary:not(.is-collapsed) .calculator-summary__title-chevron {
	transform: rotate(180deg);
}
.calculator-summary:not(.is-collapsed) .calculator-summary__preview-value {
	display: none;
}

/* Summary body */
.calculator-summary__body {
	padding: 0 20px 20px;
	max-height: 480px;
	opacity: 1;
	overflow: hidden;
	transition: max-height 260ms ease, opacity 200ms ease, padding 260ms ease;
}
.calculator-summary.is-collapsed .calculator-summary__body {
	max-height: 0;
	opacity: 0;
	padding-top: 0;
	padding-bottom: 0;
	pointer-events: none;
}

/* Summary rows */
.calculator-summary__rows {
	display: grid;
	gap: 0;
	border-radius: 8px;
	overflow: hidden;
	border: 1px solid #dce6f0;
}
.calculator-summary__row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 16px;
	align-items: center;
	padding: 10px 14px;
	border-bottom: 1px solid #edf2f8;
}
.calculator-summary__row:last-child {
	border-bottom: 0;
}
.calculator-summary__row span {
	color: #4a6280;
	font-size: 12.5px;
	line-height: 1.5;
}
.calculator-summary__row strong {
	color: #0d2b63;
	font-size: 13px;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	text-align: right;
	white-space: nowrap;
}

/* Highlight total row */
.calculator-summary__row.is-highlight {
	background: #eef3fb;
}
.calculator-summary__row.is-highlight span {
	color: #0d2b63;
	font-weight: 700;
	font-size: 12.5px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.calculator-summary__row.is-highlight strong {
	font-size: 14px;
	font-weight: 800;
}
/* Profit / Loss colour states — toggled by JS */
.calculator-summary__row.is-highlight.is-profit strong { color: #0a7a4a; }
.calculator-summary__row.is-highlight.is-loss   strong { color: #b83a2a; }

/* ── Responsive — tablet ── */
@media (max-width: 1080px) {
	.calculator-preview__controls-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.calculator-preview__controls-grid--4 .calculator-preview__control-card:nth-child(2n) { border-left: 1px solid #dce6f0; }
	.calculator-preview__controls-grid--4 .calculator-preview__control-card:nth-child(2n+1) { border-left: 0; }
	.calculator-preview__controls-grid--4 .calculator-preview__control-card:nth-child(n+3) { border-top: 1px solid #dce6f0; }
	.calculator-summary { position: static; backdrop-filter: none; }
	.calculator-summary__grid { grid-template-columns: 1fr; }
	.calculator-summary__column + .calculator-summary__column { border-left: 0; border-top: 1px solid #dce6f0; }
}

/* ── Responsive — mobile ── */
@media (max-width: 767px) {
	.calculator-preview { display: block; }
	.calculator-preview-block { padding: 40px 0; }
	.calculator-preview-block__heading { font-size: 26px; }
	.calculator-preview__title { font-size: 20px; }
	.calculator-preview__header { padding: 24px 0 14px; }

	/* Controls */
	.calculator-preview__controls-grid--2,
	.calculator-preview__controls-grid--4 { grid-template-columns: 1fr; }
	.calculator-preview__control-card { border-left: 0 !important; }
	.calculator-preview__control-card:first-child { padding-left: 18px; }
	.calculator-preview__control-card:last-child { padding-right: 18px; }
	.calculator-preview__control-card + .calculator-preview__control-card { border-top: 1px solid #dce6f0; }

	/* Card */
	.calculator-preview__card { border-radius: 10px; margin: 28px 0; }
	.calculator-preview__card-head { flex-wrap: wrap; gap: 8px; padding: 12px 14px; }
	.calculator-preview__card-head h4 { font-size: 10px; }
	.calculator-preview__period-switcher { width: 100%; }
	.calc-period-btn { flex: 1; text-align: center; padding: 6px 4px; }

	/* Table — fixed width, horizontal scroll */
	.calculator-preview__table-wrap {
		overflow-x: auto;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		/* max-height so the table scrolls vertically inside the wrapper,
		   which allows position:sticky on th to activate */
		max-height: 80vh;
	}
	.calculator-preview__table {
		table-layout: fixed;
		min-width: 640px; /* NP (no time cols) */
	}
	/* Ensure th stays on top of row-group toggle buttons during sticky scroll */
	.calculator-preview__table th {
		position: sticky;
		top: 0;
		z-index: 3;
		background: #f3f7fc;
		box-shadow: 0 2px 0 #dce6f0;
	}
	.calculator-preview--nurse .calculator-preview__table,
	.calculator-preview--ahp .calculator-preview__table {
		min-width: 780px; /* Nurse/AHP have extra time columns */
	}
	.calculator-preview__table th,
	.calculator-preview__table td { padding: 8px 10px; font-size: 12.5px; }

	/* Row group toggle — smaller text */
	.row-group-toggle { font-size: 11px; padding: 9px 10px; }
	.row-group-toggle__count { display: none; }

	/* Summary */
	.calculator-summary__title { padding: 14px 16px; font-size: 13px; }
	.calculator-summary__body { padding: 0 16px 16px; }
	.calculator-summary__row { grid-template-columns: 1fr auto; gap: 8px; }
	
	/* Fix column widths explicitly so table-layout: fixed works correctly */
	.calculator-preview--nurse .calculator-preview__table colgroup col:nth-child(1),
	.calculator-preview--ahp .calculator-preview__table colgroup col:nth-child(1)  { width: 180px !important; } /* Activity */
	.calculator-preview--nurse .calculator-preview__table colgroup col:nth-child(2),
	.calculator-preview--ahp .calculator-preview__table colgroup col:nth-child(2)  { width: 85px !important;  } /* MBS No. */
	.calculator-preview--nurse .calculator-preview__table colgroup col:nth-child(3),
	.calculator-preview--ahp .calculator-preview__table colgroup col:nth-child(3)  { width: 110px !important;  } /* Suggested time */
	.calculator-preview--nurse .calculator-preview__table colgroup col:nth-child(4),
	.calculator-preview--ahp .calculator-preview__table colgroup col:nth-child(4)  { width: 90px !important;  } /* No. of services */
	.calculator-preview--nurse .calculator-preview__table colgroup col:nth-child(5),
	.calculator-preview--ahp .calculator-preview__table colgroup col:nth-child(5)  { width: 90px !important;  } /* MBS Fee */
	.calculator-preview--nurse .calculator-preview__table colgroup col:nth-child(6),
	.calculator-preview--ahp .calculator-preview__table colgroup col:nth-child(6)  { width: 80px !important;  } /* Total time */
	.calculator-preview--nurse .calculator-preview__table colgroup col:nth-child(7),
	.calculator-preview--ahp .calculator-preview__table colgroup col:nth-child(7)  { width: 100px !important; } /* Income */

	/* NP table (no time columns) */
	.calculator-preview--np .calculator-preview__table colgroup col:nth-child(1) { width: 200px !important; } /* Activity */
	.calculator-preview--np .calculator-preview__table colgroup col:nth-child(2) { width: 80px !important;  } /* MBS No. */
	.calculator-preview--np .calculator-preview__table colgroup col:nth-child(3) { width: 100px !important; } /* No. of services */
	.calculator-preview--np .calculator-preview__table colgroup col:nth-child(4) { width: 90px !important;  } /* MBS Fee */
	.calculator-preview--np .calculator-preview__table colgroup col:nth-child(5) { width: 100px !important; } /* Income */

	/* Also hide the Activity column header on very small screens to give more room */
	/* Keep the first cell in data rows but truncate if needed */
	.calculator-preview__table td:first-child {
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
		max-width: 180px;
	}
}

/* dynamic hierarchy levels */
.calculator-preview__table tr.row-group-item[data-level="1"] td:first-child {
}
.calculator-preview__table tr.row-group-item[data-level="2"] td:first-child {
    padding-left: 44px;
}

/* ── Period switcher ── */
.calculator-preview__period-switcher {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	background: #eef3fb;
	border: 1px solid #d0dcee;
	border-radius: 8px;
	padding: 3px;
	margin-left: auto;
	flex-shrink: 0;
}
.calc-period-btn {
	padding: 4px 12px;
	border: 0;
	border-radius: 6px;
	background: transparent;
	font-family: inherit;
	font-size: 11px;
	font-weight: 700;
	color: #4a6280;
	cursor: pointer;
	letter-spacing: 0.03em;
	transition: background 0.14s, color 0.14s;
	white-space: nowrap;
}
.calc-period-btn:hover {
	background: rgba(255,255,255,0.7);
	color: #0d2b63;
}
.calc-period-btn.is-active {
	background: #fff;
	color: #0d2b63;
	box-shadow: 0 1px 4px rgba(0,0,0,0.10);
}

/* ── CSS custom property accent colour for sub-groups ──
   --sg-accent is set via inline style on .row-subgroup and .row-group-item.has-accent
   Direct items (no .has-accent) reset the var to prevent bleed from preceding subgroup rows.
── */

/* Sub-group label: icon colour, label colour, border-top, background */
.calculator-preview__table tr.row-subgroup svg {
	color: var(--sg-accent, #4a72b5);
}
.calculator-preview__table tr.row-subgroup .row-subgroup__label {
	color: var(--sg-accent, #4a72b5);
}
.calculator-preview__table tr.row-subgroup .row-subgroup__inner {
	border-top-color: color-mix(in srgb, var(--sg-accent, #7aaee8) 25%, white);
	background: color-mix(in srgb, var(--sg-accent, #7aaee8) 10%, white);
}

/* Item rows with accent */
.calculator-preview__table tr.row-group-item.has-accent td:first-child {
	padding-left: 44px;
	position: relative;
}
.calculator-preview__table tr.row-group-item.has-accent td:first-child::before {
	content: "";
	position: absolute;
	left: 30px;
	top: 0;
	bottom: 0;
	width: 1.5px;
	background: var(--sg-accent, #4a72b5);
	opacity: 0.2;
}
.calculator-preview__table tr.row-group-item.has-accent:hover td {
	background: color-mix(in srgb, var(--sg-accent, #7aaee8) 8%, white);
}
.calculator-preview__table tr.row-group-item.has-accent:focus-within td {
	background: color-mix(in srgb, var(--sg-accent, #7aaee8) 13%, white);
}
.calculator-preview__table tr.row-group-item.has-accent:focus-within td:first-child {
	border-left-color: var(--sg-accent, #7aaee8);
}

/* ── Direct items — reset --sg-accent so no colour bleeds from preceding subgroup ── */
.calculator-preview__table tr.row-group-item:not(.has-accent) {
	--sg-accent: initial;
}
.calculator-preview__table tr.row-group-item:not(.has-accent):hover td {
	background: #f0f6ff;
}
.calculator-preview__table tr.row-group-item:not(.has-accent):focus-within td {
	background: #eaf2ff;
}
.calculator-preview__table tr.row-group-item:not(.has-accent):focus-within td:first-child {
	border-left-color: #4a72b5;
}


.parent-pageid-1356 .site-header {
	position: static;
}
/* Editable suggested time input */
.calculator-preview__input-shell--time {
	max-width: 84px;
	margin: 0 auto;
}

/* Row group subtotal */
.row-group-toggle__subtotal {
	margin-left: auto;
	padding: 2px 8px;
	border-radius: 999px;
	background: #dce8f7;
	color: #1a3a6e;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0;
	text-transform: none;
	font-variant-numeric: tabular-nums;
}

/* Multiple nurse expense rows */
.calculator-preview__nurse-expenses {
	display: grid;
	gap: 12px;
}

.calculator-preview__nurse-row + .calculator-preview__nurse-row {
	border-top: 1px solid #dce6f0;
	padding-top: 12px;
}

.calculator-preview__add-nurse,
.calculator-preview__remove-nurse {
	appearance: none;
	border: 0;
	border-radius: 999px;
	font-family: inherit;
	font-size: 12px;
	font-weight: 800;
	line-height: 1;
	cursor: pointer;
}

.calculator-preview__add-nurse {
	margin: 14px auto 25px;
	padding: 11px 16px;
	background: #0d2b63;
	color: #fff;
}

.calculator-preview__remove-nurse {
	justify-self: start;
	margin-top: 2px;
	padding: 8px 12px;
	background: #eef3fb;
	color: #1a3a6e;
	position: absolute;
	top: 0;
	right: 0;
}

.calculator-preview__remove-nurse[hidden] {
	display: none !important;
}

/* Temporary frontend item rows */
.calculator-preview__item-actions-cell {
	position: relative;
	padding-right: 42px !important;
	overflow: visible;
}

.calculator-preview__add-item {
	appearance: none;
	position: absolute;
	right: 10px;
	bottom: 7px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	padding: 0;
	border: 1px solid rgba(13, 43, 99, 0.14);
	border-radius: 999px;
	background: #0d2b63;
	color: #fff;
	font-family: inherit;
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
	box-shadow: 0 2px 6px rgba(13, 43, 99, 0.16);
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(2px) scale(0.96);
	transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease, background 0.18s ease;
	z-index: 3;
}

.calculator-preview__table tr.row-group-item:hover .calculator-preview__add-item,
.calculator-preview__table tr.row-group-item:focus-within .calculator-preview__add-item {
	opacity: 1;
	visibility: visible;
	transform: translateY(0) scale(1);
}

.calculator-preview__add-item:hover,
.calculator-preview__add-item:focus-visible {
	background: #174184;
	outline: none;
}

.calculator-preview__input--text {
	width: 100%;
	min-width: 90px;
	border-color: transparent;
	background: transparent;
	box-shadow: none;
	text-align: inherit;
}

.calculator-preview__input--activity {
	font-weight: inherit;
	color: inherit;
}

.calculator-preview__input--mbs {
	font-weight: 700;
	color: inherit;
}

.calculator-preview__input--text:focus {
	border-color: #bfd4f0;
	background: #f8fbff;
	box-shadow: 0 0 0 2px rgba(42, 93, 170, 0.08);
}


/* Custom temporary rows: keep Activity looking like plain table text, while MBS/Fee keep input UI but align left. */
.calculator-preview__custom-activity-input {
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	text-align: left !important;
	padding: 0 !important;
	width: 100%;
	font: inherit;
	font-weight: inherit;
	color: inherit;
	outline: none;
}

.calculator-preview__custom-activity-input::placeholder {
	color: inherit;
	opacity: 0.65;
}

.calculator-preview__input--mbs,
.calculator-preview__input--fee {
	text-align: left !important;
}

/* Dynamic Nurse Practitioner expense rows */
.calculator-preview--np .calculator-preview__controls-grid--np-actions {
	grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(125px, max-content);
	align-items: stretch;
}

.calculator-preview--np .calculator-preview__controls-grid--np-actions .calculator-preview__control-card:nth-child(5) {
	border-left: 1px solid #dce6f0;
	border-top: 0;
}

.calculator-preview__np-expense-row {
	position: relative;
	padding-right: 0;
}

.calculator-preview__control-card--actions {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: max-content;
	min-width: 116px;
	padding-left: 12px;
	padding-right: 12px;
}

.calculator-preview__add-control-row {
	appearance: none;
	position: static;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 24px;
	height: 24px;
	padding: 0;
	border: 1px solid rgba(13, 43, 99, 0.14);
	border-radius: 999px;
	background: #0d2b63;
	color: #fff;
	font-family: inherit;
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
	box-shadow: 0 2px 6px rgba(13, 43, 99, 0.16);
	cursor: pointer;
	transform: none;
	transition: background 0.18s ease, transform 0.18s ease;
}

.calculator-preview__add-control-row:hover,
.calculator-preview__add-control-row:focus-visible {
	background: #174184;
	outline: none;
	transform: scale(1.04);
}

.calculator-preview__remove-control-row {
	position: static;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	padding: 6px 10px;
	border: 1px solid rgba(13, 43, 99, 0.14);
	border-radius: 999px;
	background: #eef3fb;
	color: #1a3a6e;
	font-family: inherit;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	transform: none;
}

.calculator-preview__remove-control-row[hidden] {
	display: none !important;
}


/* ── Fee input cell with $ prefix (ACF-rendered rows) ── */
.calculator-preview__table .calculator-preview__input-shell--fee {
	position: relative;
	padding-left: 22px;
}
.calculator-preview__table .calculator-preview__input-shell--fee::before {
	content: "$";
	position: absolute;
	left: 7px;
	top: 50%;
	transform: translateY(-50%);
	color: #7a98b8;
	font-size: 13px;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	pointer-events: none;
}