/* PolicyMatch Calculator Lab, styled via the active theme's CSS custom
   properties (with sensible fallbacks so this also renders under a
   different theme). */

.pm-lab-tabs{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem;padding-bottom:.5rem;margin-bottom:1.75rem;}
/* BUG FIX: a rigid 7-column grid with no responsive override squeezed
   multi-word tab labels ("Extra repayments", "Deposit & LVR", "Funds
   Position") into ~50px-wide pill buttons on tablet/phone widths, since
   minmax(0,1fr) lets the grid shrink each column to 0 instead of
   overflowing. The buttons never caused sideways scroll, but the labels
   wrapped and clipped into an unreadable tab strip, which fails the
   acceptance gate's "visible without sideways scrolling" and 430/390/360
   width checks just as surely as real overflow would. Wrapping the same
   seven tabs onto more rows at narrower widths keeps every tab fully
   visible and legible with no scrolling either way. */
@media (max-width:900px){ .pm-lab-tabs{grid-template-columns:repeat(4,minmax(0,1fr));} }
@media (max-width:560px){ .pm-lab-tabs{grid-template-columns:repeat(2,minmax(0,1fr));} .pm-lab-tab{font-size:.78rem;padding:.55rem .5rem;} }
.pm-lab-tab{
	font: inherit;  font-weight:700; font-size:.86rem; padding:.65rem 1.15rem; border-radius:999px;
	border:1.5px solid var(--hairline, rgba(38, 50, 71,.12)); color:var(--muted, #667085); background:var(--surface, #fff);
	cursor:pointer;  transition:all .18s var(--ease, ease);
}
.pm-lab-tab[aria-selected="true"]{background:var(--ink, #263247); border-color:var(--ink, #263247); color:var(--canvas, #fbf8f2);}
.pm-lab-tab:not([aria-selected="true"]):hover{border-color:var(--accent-soft, #d7c2a3); color:var(--ink, #263247);}

.pm-lab-panel{
	background:var(--surface, #fff); border:1px solid var(--hairline, rgba(38, 50, 71,.12)); border-radius:var(--radius-tool, 26px);
	padding:2.25rem; box-shadow:0 30px 60px -36px rgba(38, 50, 71,.25);
}
.pm-lab-panel__grid{display:grid; grid-template-columns:1fr 1fr; gap:2.5rem;}

.pm-lab-field{margin-bottom:1.3rem;}
.pm-lab-field label,.pm-lab-field__label{display:block; font-weight:700; font-size:.84rem; color:var(--ink, #263247); margin-bottom:.5rem;}
.pm-lab-input{
	width:100%; font:inherit; font-size:1rem; font-weight:600; padding:.8rem .95rem; border-radius:11px;
	border:1.5px solid var(--hairline, rgba(38, 50, 71,.12)); background:var(--canvas, #fbf8f2); color:var(--ink, #263247);
	font-variant-numeric:tabular-nums; transition:border-color .18s var(--ease, ease), box-shadow .18s var(--ease, ease);
}
.pm-lab-input:focus{outline:none; border-color:var(--accent-fill, #2f5bff); box-shadow:0 0 0 3px var(--accent-tint, #eaf0ff);}

.pm-lab-freq{display:flex; gap:.5rem;}
.pm-lab-freq button{
	font:inherit; flex:1; font-weight:700; font-size:.82rem; padding:.6rem; border-radius:9px; border:1.5px solid var(--hairline, rgba(38, 50, 71,.12));
	color:var(--muted, #667085); background:var(--canvas, #fbf8f2); cursor:pointer; transition:all .18s var(--ease, ease); min-height:44px;
}
.pm-lab-freq button[aria-pressed="true"]{background:var(--ink, #263247); border-color:var(--ink, #263247); color:var(--canvas, #fbf8f2);}

.pm-lab-results{background:var(--accent-tint-2, #f5f8ff); border-radius:16px; padding:1.75rem;}
.pm-lab-result--primary{margin-bottom:1.5rem;}
.pm-lab-result__value{
	font-family:var(--font-display, serif); font-weight:500; font-size:2.5rem; color:var(--ink, #263247); line-height:1;
	font-variant-numeric:tabular-nums; margin-top:.35rem;
}
.pm-lab-result__value--sm{font-size:1.3rem;}
.pm-lab-result__value--md{font-size:1.4rem;}
.pm-lab-result__value--lg{font-size:1.6rem;}
.pm-lab-result__value--xl{font-size:1.9rem;}
.pm-lab-result__label{font-weight:700; font-size:.76rem; text-transform:uppercase; letter-spacing:.07em; color:var(--muted, #667085);}
.pm-lab-shock-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:.9rem; margin-top:1.5rem; padding-top:1.5rem; border-top:1px solid var(--hairline-active, rgba(47, 91, 255,.35));}
.pm-lab-shock-grid--2{grid-template-columns:1fr 1fr; margin-top:0; padding-top:0; border-top:none;}
.pm-lab-bar-track{height:6px; background:var(--hairline, rgba(38, 50, 71,.12)); border-radius:3px; margin-top:.6rem; overflow:hidden;}
.pm-lab-bar-fill{display:block; height:100%; background:var(--accent-fill, #2f5bff); border-radius:3px; width:0%; transition:width .6s var(--ease, ease);}
.pm-lab-disclaimer{font-size:.78rem; color:var(--muted, #667085); margin-top:1.5rem; line-height:1.5;}
.pm-lab-warning{color:#b8422a; font-weight:700; display:none;}
.pm-lab-warning:not([hidden]){display:block;}

@media (max-width:860px){ .pm-lab-panel__grid{grid-template-columns:1fr;} }
@media (max-width:480px){ .pm-lab-panel{padding:1.5rem;} .pm-lab-shock-grid{grid-template-columns:1fr;} }

/* ---------------------------------------------------------------------
   Funds Position, four-step worksheet
   ------------------------------------------------------------------- */
.pm-fp-intro{color:var(--muted, #667085); font-size:.94rem; line-height:1.6; margin:0 0 1.5rem; max-width:56ch;}

.pm-fp-stepper{display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:2rem;}
.pm-fp-step-btn{
	font:inherit; display:flex; align-items:center; gap:.5rem; font-weight:700; font-size:.8rem; padding:.55rem 1rem .55rem .55rem;
	border-radius:999px; border:1.5px solid var(--hairline, rgba(38, 50, 71,.12)); background:var(--canvas, #fbf8f2);
	color:var(--muted, #667085); cursor:pointer; transition:all .18s var(--ease, ease); min-height:44px;
}
.pm-fp-step-num{
	display:flex; align-items:center; justify-content:center; width:1.6rem; height:1.6rem; border-radius:50%;
	background:var(--surface, #fff); color:var(--ink, #263247); font-size:.76rem; 
}
.pm-fp-step-btn.is-active{background:var(--accent-fill, #2f5bff); border-color:var(--accent-fill, #2f5bff); color:#fff;}
.pm-fp-step-btn.is-active .pm-fp-step-num{background:#fff; color:var(--accent-fill, #2f5bff);}
.pm-fp-step-btn:not(.is-active):hover{border-color:var(--accent-soft, #d7c2a3); color:var(--ink, #263247);}

.pm-lab-panel__grid--fp{grid-template-columns:1.1fr 1fr; align-items:start;}
.pm-fp-fieldset[hidden]{display:none;}

.pm-fp-note{font-size:.8rem; color:var(--muted, #667085); line-height:1.55; margin:.4rem 0 1.2rem;}
.pm-fp-alert{
	font-size:.86rem; line-height:1.55; color:var(--ink, #263247); background:var(--accent-tint, #eaf0ff);
	border-radius:11px; padding:.9rem 1.1rem; margin:0 0 1rem;
}

.pm-fp-check{display:flex; align-items:center; gap:.55rem; font-weight:600; font-size:.86rem; color:var(--ink, #263247); margin-bottom:.6rem; padding:.4rem 0; min-height:44px; cursor:pointer;}
.pm-fp-check input{width:1.2rem; height:1.2rem; accent-color:var(--accent-fill, #2f5bff); }
.pm-fp-check--sm{font-size:.8rem; color:var(--muted, #667085); font-weight:600;}

.pm-fp-charges{display:flex; flex-direction:column; gap:.6rem; margin-bottom:1.5rem;}
.pm-fp-charge{
	display:flex; justify-content:space-between; gap:1rem; font-size:.9rem; padding:.7rem .9rem; border-radius:10px;
	background:var(--canvas, #fbf8f2); border:1px solid var(--hairline, rgba(38, 50, 71,.1));
}
.pm-fp-charge span{color:var(--ink-soft, #667085); font-weight:600;}
.pm-fp-charge strong{color:var(--ink, #263247); text-align:right; font-variant-numeric:tabular-nums;}
.pm-fp-charge--fallback{
	display:block; background:var(--accent-tint, #eaf0ff); border:1px solid var(--accent-soft, #d7c2a3); line-height:1.55;
}
.pm-fp-charge--fallback a{color:var(--accent, #2f5bff); font-weight:700;}

.pm-fp-results .pm-lab-result__value{word-break:break-word;}
.pm-fp-negative{color:#b8422a;}

.pm-fp-output-grid{display:grid; grid-template-columns:1fr 1fr; gap:1.1rem 1rem; margin-top:1.6rem; padding-top:1.4rem; border-top:1px solid var(--hairline-active, rgba(47, 91, 255,.35));}

.pm-fp-detail-toggle{
	font:inherit; display:flex; align-items:center; width:100%; min-height:44px; text-align:left; font-weight:700; font-size:.82rem; color:var(--accent, #2f5bff);
	background:none; border:none; margin-top:.6rem; padding:0; cursor:pointer; text-decoration:underline;
}
.pm-fp-detail{margin-top:1rem; display:flex; flex-direction:column; gap:1.2rem;}
.pm-fp-table{width:100%; border-collapse:collapse; font-size:.84rem;}
.pm-fp-table caption{text-align:left; font-weight:700; font-size:.76rem; text-transform:uppercase; letter-spacing:.07em; color:var(--muted, #667085); padding-bottom:.5rem;}
.pm-fp-table th,.pm-fp-table td{text-align:left; padding:.45rem 0; border-top:1px solid var(--hairline, rgba(38, 50, 71,.1)); font-weight:600; color:var(--ink-soft, #667085);}
.pm-fp-table td{text-align:right; font-variant-numeric:tabular-nums; color:var(--ink, #263247);}

.pm-fp-grant{display:grid; grid-template-columns:1fr auto; gap:.5rem .8rem; align-items:center; margin-bottom:.9rem;}
.pm-fp-grant .pm-fp-check{grid-column:1 / -1; margin-bottom:0;}
.pm-fp-grant-amount{grid-column:1; max-width:14rem;}
.pm-fp-grant .pm-fp-check--sm{grid-column:1 / -1;}
.pm-fp-grant-amount:disabled{opacity:.55; background:var(--surface-alt, #f1e7d8);}

.pm-fp-actions{margin-top:1.4rem;}
.pm-fp-print{
	font:inherit; font-weight:700; font-size:.86rem; padding:.75rem 1.4rem; border-radius:999px; border:1.5px solid var(--ink, #263247);
	background:transparent; color:var(--ink, #263247); cursor:pointer; transition:all .18s var(--ease, ease);
}
.pm-fp-print:hover{background:var(--ink, #263247); color:#fff;}

/* Desktop: keep the results panel in view while the (often taller) step
   content scrolls past it, per 10_DESIGN_UX/DESIGN_UPGRADE.md's "sticky
   right result" requirement. Only applied above the two-column breakpoint ,
   below it the results panel already sits after the inputs in normal flow. */
@media (min-width:861px){
	.pm-fp-results{position:sticky; top:1.5rem; align-self:start;}
}
@media (max-width:860px){ .pm-lab-panel__grid--fp{grid-template-columns:1fr;} }
@media (max-width:480px){ .pm-fp-output-grid{grid-template-columns:1fr;} .pm-fp-grant-amount{max-width:none;} }

@media print{
	.pm-lab-tabs,.pm-fp-stepper,.pm-fp-steps,.pm-fp-print,.site-header,.site-footer{display:none !important;}
	.pm-lab-panel{box-shadow:none; border:none; padding:0;}
	.pm-lab-panel__grid--fp{grid-template-columns:1fr;}
	.pm-fp-detail{display:flex !important;}
	.pm-fp-detail-toggle{display:none;}
}

/* ---------------------------------------------------------------------
   Refinance Workbench, current vs proposed comparison
   ------------------------------------------------------------------- */
.pm-refi-grid{display:grid; grid-template-columns:1.15fr 1fr; gap:2.5rem; align-items:start;}
.pm-refi-heading{
	font-family:var(--font-display, serif); font-weight:500; font-size:1.05rem; color:var(--ink, #263247);
	margin:2rem 0 1rem;
}
.pm-refi-heading:first-child{margin-top:0;}

.pm-refi-split{
	background:var(--canvas, #fbf8f2); border:1px solid var(--hairline, rgba(38, 50, 71,.12)); border-radius:16px;
	padding:.5rem .8rem; margin-bottom:1.1rem;
}
.pm-refi-split__head{display:flex; align-items:center; justify-content:space-between; gap:.5rem;}
.pm-refi-split__toggle{
	all:unset; box-sizing:border-box; display:flex; align-items:center; justify-content:space-between; gap:.75rem;
	flex:1; min-width:0; min-height:44px; padding:.5rem .6rem .5rem 0; cursor:pointer; border-radius:10px;
}
.pm-refi-split__toggle:hover{background:var(--surface, #fff);}
.pm-refi-split__toggle:focus-visible{outline:2px solid var(--accent-fill, #2f5bff); outline-offset:-2px;}
.pm-refi-split__title{font-size:.86rem; font-weight:700; color:var(--ink, #263247); overflow:hidden; text-overflow:ellipsis; }
.pm-refi-chevron{
	 width:.55rem; height:.55rem; border-right:2px solid var(--muted, #667085); border-bottom:2px solid var(--muted, #667085);
	transform:rotate(45deg); transition:transform .18s var(--ease, ease);
}
.pm-refi-split__toggle[aria-expanded="true"] .pm-refi-chevron{transform:rotate(-135deg);}
.pm-refi-split__body{padding:.6rem .6rem 1rem;}
.pm-refi-split__body[hidden]{display:none;}
.pm-refi-remove{
	font:inherit; font-weight:700; font-size:.76rem; color:#b8422a; background:none; border:1.5px solid transparent; 
	padding:.3rem .8rem; min-height:44px; border-radius:999px; cursor:pointer;
}
.pm-refi-remove:hover:not(:disabled){border-color:#b8422a;}
.pm-refi-remove:disabled{color:var(--muted, #667085); cursor:not-allowed; opacity:.5;}

.pm-refi-add{
	font:inherit; font-weight:700; font-size:.82rem; color:var(--accent, #2f5bff); background:var(--accent-tint, #eaf0ff);
	border:1.5px dashed var(--accent-soft, #d7c2a3); border-radius:12px; padding:.7rem 1rem; width:100%; min-height:44px;
	cursor:pointer; margin-bottom:.5rem; transition:all .18s var(--ease, ease);
}
.pm-refi-add:hover{background:var(--accent-tint-2, #f5f8ff);}

.pm-refi-results .pm-lab-warning:not([hidden]){
	background:var(--accent-tint, #eaf0ff); border-radius:11px; padding:.9rem 1.1rem; margin:0 0 1.4rem; display:block;
}

@media (min-width:861px){
	.pm-refi-results{position:sticky; top:1.5rem; align-self:start;}
}
@media (max-width:860px){ .pm-refi-grid{grid-template-columns:1fr;} }

.pm-lab{width:100%;max-width:1360px;margin:0 auto}.pm-lab-tab{min-width:0;padding:.7rem .55rem;font-size:.78rem;white-space:normal}.pm-lab-panel__grid,.pm-refi-grid{gap:2rem}.pm-lab-results{background:#fff}.pm-fp-stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin:1rem 0}.pm-fp-step-btn{min-height:44px;border:1px solid rgba(23,27,39,.14);background:#fff;border-radius:10px;font-weight:750}.pm-fp-step-btn.is-active{background:#4256ff;color:#fff;border-color:#4256ff}.pm-fp-fieldset[hidden]{display:none!important}@media(max-width:1000px){.pm-lab-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:620px){.pm-lab-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.pm-fp-stepper{grid-template-columns:1fr 1fr}}