/* Two independent workbench cards, adapted to the existing Irish Calculator markup.
   Loaded after the dashboard CSS. This file changes presentation only. */
:is(.ic-percentagecalc,.ic-holidaypay,.ic-vatcalc,.ic-overtimecalc,.ic-redundancycalc,.ic-payecalc,.ic-prsicalc,.ic-renttaxcreditcalc,.ic-usccalc,.ic-salarycalc,.ic-helpbuycalc,.ic-firsthomecalc,.ic-hourlyannualcalc,.ic-annualhourlycalc,.ic-dayratecalc,.ic-loancalc,.ic-mortgagecalc,.ic-savingsgoalcalc,.ic-stampdutycalc,.ic-mortaffcalc,.ic-cryptotaxcalc,.ic-vrtcalc,.ic-statesavingscalc,.ic-proratacalc,.ic-ncscalc,.ic-susicalc):not(.ic-calculator-landing-shell) {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
  margin-top: 0 !important;
}
/* Keep the calculator's heading and optional share slot accessible without a coloured band. */
:is(.ic-percentagecalc,.ic-holidaypay,.ic-vatcalc,.ic-overtimecalc,.ic-redundancycalc,.ic-payecalc,.ic-prsicalc,.ic-renttaxcreditcalc,.ic-usccalc,.ic-salarycalc,.ic-helpbuycalc,.ic-firsthomecalc,.ic-hourlyannualcalc,.ic-annualhourlycalc,.ic-dayratecalc,.ic-loancalc,.ic-mortgagecalc,.ic-savingsgoalcalc,.ic-stampdutycalc,.ic-mortaffcalc,.ic-cryptotaxcalc,.ic-vrtcalc,.ic-statesavingscalc,.ic-proratacalc,.ic-ncscalc,.ic-susicalc):not(.ic-calculator-landing-shell) > :is(.ic-title-bar,.ic-calc-title-bar) {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 8px !important;
  min-height: 0 !important;
  margin: 0 0 18px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #10233f !important;
  font-size: 19px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  overflow: visible !important;
}
:is(.ic-percentagecalc,.ic-holidaypay,.ic-vatcalc,.ic-overtimecalc,.ic-redundancycalc,.ic-payecalc,.ic-prsicalc,.ic-renttaxcreditcalc,.ic-usccalc,.ic-salarycalc,.ic-helpbuycalc,.ic-firsthomecalc,.ic-hourlyannualcalc,.ic-annualhourlycalc,.ic-dayratecalc,.ic-loancalc,.ic-mortgagecalc,.ic-savingsgoalcalc,.ic-stampdutycalc,.ic-mortaffcalc,.ic-cryptotaxcalc,.ic-vrtcalc,.ic-statesavingscalc,.ic-proratacalc,.ic-ncscalc,.ic-susicalc) > :is(.ic-title-bar,.ic-calc-title-bar)::before,
:is(.ic-percentagecalc,.ic-holidaypay,.ic-vatcalc,.ic-overtimecalc,.ic-redundancycalc,.ic-payecalc,.ic-prsicalc,.ic-renttaxcreditcalc,.ic-usccalc,.ic-salarycalc,.ic-helpbuycalc,.ic-firsthomecalc,.ic-hourlyannualcalc,.ic-annualhourlycalc,.ic-dayratecalc,.ic-loancalc,.ic-mortgagecalc,.ic-savingsgoalcalc,.ic-stampdutycalc,.ic-mortaffcalc,.ic-cryptotaxcalc,.ic-vrtcalc,.ic-statesavingscalc,.ic-proratacalc,.ic-ncscalc,.ic-susicalc) > :is(.ic-title-bar,.ic-calc-title-bar)::after { content: none !important; }
:is(.ic-percentagecalc,.ic-holidaypay,.ic-vatcalc,.ic-overtimecalc,.ic-redundancycalc,.ic-payecalc,.ic-prsicalc,.ic-renttaxcreditcalc,.ic-usccalc,.ic-salarycalc,.ic-helpbuycalc,.ic-firsthomecalc,.ic-hourlyannualcalc,.ic-annualhourlycalc,.ic-dayratecalc,.ic-loancalc,.ic-mortgagecalc,.ic-savingsgoalcalc,.ic-stampdutycalc,.ic-mortaffcalc,.ic-cryptotaxcalc,.ic-vrtcalc,.ic-statesavingscalc,.ic-proratacalc,.ic-ncscalc,.ic-susicalc) > :is(.ic-title-bar,.ic-calc-title-bar) :is(.ic-title-icon,.ic-title-note) { display: none !important; }

/* The grid is only a positioning layer. Each input/result surface owns its border. */
:is(.ic-grid,.ic-calc-shell,.ic-holidaypay .ic-panel:not(.ic-panel--hidden)):has(> .ic-inputs):has(> .ic-results),
.ic-calc-shell:has(> .ic-calc-card):has(> .ic-calc-results) {
  display: grid !important;
  grid-template-columns: minmax(0,.84fr) minmax(0,1.16fr) !important;
  align-items: start !important;
  gap: 32px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}
:is(.ic-grid,.ic-calc-shell,.ic-holidaypay .ic-panel) > :is(.ic-inputs,.ic-calc-card,.ic-results,.ic-calc-results) {
  min-width: 0;
  height: auto !important;
  border: 1px solid #dfe5eb !important;
  border-radius: 20px !important;
  background: #fff !important;
  box-shadow: none !important;
  overflow: visible !important;
}
:is(.ic-grid,.ic-calc-shell,.ic-holidaypay .ic-panel) > :is(.ic-inputs,.ic-calc-card) {
  padding: 30px !important;
}
:is(.ic-grid,.ic-calc-shell,.ic-holidaypay .ic-panel) > :is(.ic-results,.ic-calc-results) {
  min-height: 0 !important;
  box-shadow: 0 12px 30px rgba(9,32,67,.07) !important;
}
/* Result content sits below a dark, high contrast summary, as in Ghar's workbench. */
:is(.ic-grid,.ic-calc-shell,.ic-holidaypay .ic-panel) > :is(.ic-results,.ic-calc-results) .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger) {
  border: 0 !important;
  background: #03234f !important;
  box-shadow: none !important;
  text-align: left !important;
}
:is(.ic-grid,.ic-calc-shell,.ic-holidaypay .ic-panel) > :is(.ic-results,.ic-calc-results) .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger)::before { content: none !important; }
:is(.ic-grid,.ic-calc-shell,.ic-holidaypay .ic-panel) > :is(.ic-results,.ic-calc-results) .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger) :is(.ic-result-label,.ic-result-primary-label,.ic-result-value,.ic-result-primary-value,.ic-result-primary-note) { color: #fff !important; }
:is(.ic-grid,.ic-calc-shell,.ic-holidaypay .ic-panel) > :is(.ic-results,.ic-calc-results) .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger) :is(.ic-result-label,.ic-result-primary-label,.ic-result-primary-note) { color: #c6d7ec !important; }
:is(.ic-grid,.ic-calc-shell,.ic-holidaypay .ic-panel) > :is(.ic-results,.ic-calc-results) .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger) .ic-share-btn { color: #fff !important; border-color: rgba(255,255,255,.5) !important; background: rgba(255,255,255,.12) !important; }

:is(.ic-grid,.ic-calc-shell,.ic-holidaypay .ic-panel) > :is(.ic-results,.ic-calc-results) > :is(.ic-overtime-results-stack,.ic-results-stack) { width: 100%; }
@media (max-width: 780px) {
  :is(.ic-grid,.ic-calc-shell,.ic-holidaypay .ic-panel:not(.ic-panel--hidden)):has(> .ic-inputs):has(> .ic-results),
  .ic-calc-shell:has(> .ic-calc-card):has(> .ic-calc-results) { grid-template-columns: minmax(0,1fr) !important; gap: 20px !important; }
  :is(.ic-grid,.ic-calc-shell,.ic-holidaypay .ic-panel) > :is(.ic-inputs,.ic-calc-card) { padding: 22px !important; }
  
}

/* v4.1.374: the page hero already identifies the calculator. Retain the
   title node for scripts that move its share button into a calculated result. */
[role="application"] > .ic-title-bar { display: none !important; }

/* Calculator pages only: a calm, light green hero. Other page families retain
   their own established colours. */
body .ic-calculator-hero {
  background: #eaf7ef !important;
  color: #103e2a !important;
}
body .ic-calculator-hero .ic-calculator-hero__inner,
body .ic-calculator-hero .ic-calculator-hero__title,
body .ic-calculator-hero .ic-calculator-hero__breadcrumbs [aria-current="page"] { color: #103e2a !important; }
body .ic-calculator-hero .ic-calculator-hero__subtitle,
body .ic-calculator-hero .ic-calculator-hero__breadcrumbs { color: #476557 !important; }
/* Keep the subtitle margin predictable so hero clearance is controlled by
   padding and the card overlap, not Astra's paragraph margin. */
body .ic-calculator-hero .ic-calculator-hero__subtitle { margin-bottom: 0 !important; }
body .ic-calculator-hero .ic-calculator-hero__breadcrumbs a { color: #176a3c !important; }
body .ic-calculator-hero .ic-calculator-hero__breadcrumbs span[aria-hidden] { color: #688678 !important; }
body .ic-calculator-hero .ic-calculator-hero__pill {
  color: #176a3c !important;
  border-color: #b9ddc8 !important;
  background: #fff !important;
}
body .ic-calculator-hero .ic-page-hero__title-icon { color: #0f6b36 !important; }

/* Draw the independent cards across the bottom of the hero again. */
body [role="application"]:not(.ic-calculator-landing-shell) {
  margin-top: -44px !important;
  position: relative;
  z-index: 2;
}
:is(.ic-grid,.ic-calc-shell,.ic-holidaypay .ic-panel) > :is(.ic-inputs,.ic-calc-card)::before {
  content: 'Your details';
  display: block;
  color: #103e2a;
  font-family: var(--ic-font-display, Outfit, system-ui, sans-serif);
  font-size: clamp(22px, 2vw, 27px);
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: 14px;
}

/* Give both generated and server-rendered result content comfortable gutters.
   The summary alone reaches the card edges; detail sections stay inset. */
:is(.ic-grid,.ic-calc-shell,.ic-holidaypay .ic-panel) > :is(.ic-results,.ic-calc-results) {
  padding: 26px !important;
  position: static !important;
  top: auto !important;
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
  overscroll-behavior: auto !important;
  align-self: start !important;
}
:is(.ic-grid,.ic-calc-shell,.ic-holidaypay .ic-panel) > :is(.ic-results,.ic-calc-results) .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger) {
  margin: -26px -26px 26px !important;
  background: #0b7041 !important;
  border-radius: 20px 20px 0 0 !important;
  padding: 30px !important;
}
:is(.ic-grid,.ic-calc-shell,.ic-holidaypay .ic-panel) > :is(.ic-results,.ic-calc-results) .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger) :is(.ic-result-label,.ic-result-primary-label,.ic-result-primary-note) { color: #dbf3e5 !important; }
:is(.ic-grid,.ic-calc-shell,.ic-holidaypay .ic-panel) > :is(.ic-results,.ic-calc-results) :is(.ic-breakdown,.ic-formula-card,.ic-disclaimer,.ic-result-secondary,.ic-result-details,.ic-result-note) {
  margin-left: 0 !important;
  margin-right: 0 !important;
}
/* Remove the old internal scroll contract from special calculator variants. */
[role="application"] :is(.ic-results,.ic-calc-results,.ic-result-panel) {
  position: static !important;
  max-height: none !important;
  overflow-y: visible !important;
}
@media (max-width: 780px) {
  body [role="application"]:not(.ic-calculator-landing-shell) { margin-top: -22px !important; }
  :is(.ic-grid,.ic-calc-shell,.ic-holidaypay .ic-panel) > :is(.ic-results,.ic-calc-results) { padding: 20px !important; }
  :is(.ic-grid,.ic-calc-shell,.ic-holidaypay .ic-panel) > :is(.ic-results,.ic-calc-results) .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger) {
    margin: -20px -20px 20px !important;
    padding: 24px !important;
  }
}
/* Mortgage and several specialised styles use higher-specificity sticky rules. */
body [role="application"][id] :is(.ic-grid,.ic-calc-shell) > :is(.ic-results,.ic-calc-results),
body [role="application"][id] .ic-panel > .ic-results {
  position: static !important;
  top: auto !important;
  max-height: none !important;
  height: auto !important;
  overflow-y: visible !important;
  overscroll-behavior: auto !important;
}

/* Contact-page hero palette and badge treatment. The H1 text is a nested
   span on calculator pages, so colour both the heading and that span. */
body .ic-calculator-hero {
  background: radial-gradient(circle at 82% 18%, rgba(22, 163, 74, .12), transparent 30%),
              linear-gradient(135deg, #f0fdf4 0%, #ffffff 72%) !important;
}
body .ic-calculator-hero h1.ic-calculator-hero__title,
body .ic-calculator-hero h1.ic-calculator-hero__title .ic-calculator-hero__title-content,
body .ic-calculator-hero h1.ic-calculator-hero__title .ic-calculator-hero__title-content > span:last-child {
  color: #0f6b36 !important;
  -webkit-text-fill-color: #0f6b36 !important;
}
body .ic-calculator-hero .ic-calculator-hero__pills .ic-calculator-hero__pill {
  color: #117a4b !important;
  border-color: rgba(17, 122, 75, .18) !important;
  background: rgba(237, 248, 242, .92) !important;
}
/* The legacy stylesheet uses a long calculator-class selector with
   display:flex!important, so the duplicate title needs a stronger rule. */
body [role="application"][id] > .ic-title-bar,
body [role="application"][id] > .ic-calc-title-bar {
  display: none !important;
}

/* v4.1.376: adapt the older wide dashboard modules to the right-hand card. */
body .ic-calculator-hero { border-bottom: 1px solid #dfe5eb !important; }

/* Wide-page dashboards previously split the result panel a second time.
   That left four metrics in a very narrow strip next to the chart. */
body [role="application"][id] .ic-results :is(
  .ic-dr-hero-row,.ic-ss-result-overview,.ic-sg-result-dashboard,
  .ic-loan-top-grid,.ic-fhs-hero-row,.ic-susi-dashboard,.ic-holiday-hero-row
) {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) !important;
  gap: 20px !important;
  width: 100% !important;
  min-width: 0 !important;
}
body [role="application"][id] .ic-results :is(
  .ic-dr-hero-main,.ic-ss-result-overview-main,.ic-sg-result-main,
  .ic-loan-main-stack,.ic-fhs-hero-main,.ic-susi-dashboard-main,.ic-holiday-hero-left
) { width: 100% !important; min-width: 0 !important; }
body [role="application"][id] .ic-results :is(
  .ic-dr-summary-grid,.ic-ss-summary-grid--primary,.ic-sg-top-grid,
  .ic-loan-top-metrics,.ic-fhs-top-metrics,.ic-susi-summary-grid,
  .ic-holiday-top-metrics,.ic-ncs-summary-grid,.ic-prsi-period-summary
) {
  display: grid !important;
  grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  gap: 14px !important;
  width: 100% !important;
  min-width: 0 !important;
}
body [role="application"][id] .ic-results :is(
  .ic-dr-summary-card,.ic-summary-card,.ic-sg-stat-card
) {
  min-width: 0 !important;
  width: auto !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  padding: 16px !important;
}
body [role="application"][id] .ic-results :is(
  .ic-dr-summary-label,.ic-dr-summary-value,.ic-dr-summary-meta,
  .ic-summary-label,.ic-summary-value,.ic-summary-meta
) {
  overflow-wrap: break-word !important;
  word-break: normal !important;
  white-space: normal !important;
}
body [role="application"][id] .ic-results :is(
  .ic-dr-donut-card,.ic-ss-donut-wrap,.ic-sg-donut-wrap,
  .ic-loan-chart-card,.ic-fhs-donut-wrap,.ic-susi-threshold-visual,
  .ic-holiday-donut-wrap
) { width: 100% !important; min-width: 0 !important; justify-self: center !important; }
/* Nesting differs between calculators: keep every green summary inside its
   own full-width row and leave room for the share action above the label. */
body [role="application"][id] .ic-results .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger) {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 150px !important;
  padding: 62px 28px 28px !important;
  margin: 0 0 18px !important;
  border-radius: 18px !important;
  box-sizing: border-box !important;
}
body [role="application"][id] .ic-results .ic-result-primary :is(.ic-result-primary-value,.ic-result-value) {
  overflow-wrap: break-word !important;
  word-break: normal !important;
}
body [role="application"][id] .ic-results .ic-susi-primary-card { width: 100% !important; min-width: 0 !important; padding-top: 56px !important; }

/* Contractor mode tabs use content widths and wrap inside the input card. */
body .ic-dayratecalc .ic-dr-tabs {
  display: flex !important;
  flex-wrap: wrap !important;
  container-type: inline-size;
  gap: 6px !important;
}
body .ic-dayratecalc .ic-dr-tabs > .ic-tab { width: auto !important; flex: 1 1 calc(50% - 6px) !important; max-width: 100% !important; min-width: 0 !important; padding: 8px 14px !important; white-space: normal !important; justify-content: center !important; }
body .ic-dayratecalc .ic-dr-financial-targets-grid,
body .ic-dayratecalc[data-mode="salary"] .ic-dr-financial-targets-grid {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) !important;
  gap: 16px !important;
}
body .ic-dayratecalc .ic-dr-financial-targets-grid > .ic-field-row { display: contents !important; }
body .ic-dayratecalc .ic-dr-financial-targets-grid .ic-field { min-width: 0 !important; }
body .ic-percentagecalc .ic-percentage-tabs {
  display: grid !important;
  grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  gap: 8px !important;
}
body .ic-percentagecalc .ic-percentage-tabs .ic-tab { min-width: 0 !important; width: 100% !important; white-space: normal !important; }

/* Holiday mode tabs sit visually inside the input card for every tab panel. */
body .ic-holidaypay { position: relative !important; }
body .ic-holidaypay > .ic-tab-bar {
  position: absolute !important;
  z-index: 3 !important;
  top: 78px !important;
  left: 30px !important;
  width: calc((100% - 32px) * .42 - 60px) !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}
body .ic-holidaypay .ic-panel:not(.ic-panel--hidden) > .ic-inputs {
  position: relative !important;
  padding-top: calc(78px + var(--ic-holiday-tabs-height, 82px) + 20px) !important;
}
body .ic-holidaypay .ic-panel > .ic-inputs::before {
  position: absolute !important;
  top: 28px !important;
  left: 30px !important;
  margin: 0 !important;
}
body .ic-holidaypay .ic-panel > .ic-inputs .ic-field-grid--4,
body .ic-holidaypay .ic-panel > .ic-inputs .ic-field-grid--3 {
  grid-template-columns: repeat(2,minmax(0,1fr)) !important;
}
/* VRT's official lookup remains available beneath the calculator. */
body #ic-vrtcalc { display: flex !important; flex-direction: column !important; }
body #ic-vrtcalc > .ic-grid { order: 1; width: 100%; }
body #ic-vrtcalc > .ic-vrt-lookup-strip { order: 2; margin-top: 24px !important; }
@media (max-width: 780px) {
  body .ic-holidaypay > .ic-tab-bar { top: 75px !important; left: 22px !important; width: calc(100% - 44px) !important; }
  body .ic-holidaypay .ic-panel:not(.ic-panel--hidden) > .ic-inputs { padding-top: calc(75px + var(--ic-holiday-tabs-height, 82px) + 20px) !important; }
  body .ic-holidaypay .ic-panel > .ic-inputs::before { left: 22px !important; top: 24px !important; }
}
@media (max-width: 520px) {
  body [role="application"][id] .ic-results :is(
    .ic-dr-summary-grid,.ic-ss-summary-grid--primary,.ic-sg-top-grid,
    .ic-loan-top-metrics,.ic-fhs-top-metrics,.ic-susi-summary-grid,
    .ic-holiday-top-metrics,.ic-ncs-summary-grid,.ic-prsi-period-summary
  ) { grid-template-columns: minmax(0,1fr) !important; }
  body .ic-holidaypay .ic-panel > .ic-inputs .ic-field-grid--4,
  body .ic-holidaypay .ic-panel > .ic-inputs .ic-field-grid--3 { grid-template-columns: minmax(0,1fr) !important; }
}

/* USC uses role="region" and does not have an ID; its older title rule is
   otherwise stronger than the generic application title rule. */
body .ic-usccalc.ic-usccalc > .ic-title-bar { display: none !important; }
body #ic-ncscalc.ic-ncscalc .ic-results .ic-ncs-overview {
  grid-template-columns: minmax(0,1fr) !important;
  gap: 20px !important;
}
body #ic-ncscalc.ic-ncscalc .ic-results .ic-summary-grid.ic-ncs-summary-grid {
  grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  gap: 14px !important;
}
@media (max-width: 520px) {
  body #ic-ncscalc.ic-ncscalc .ic-results .ic-summary-grid.ic-ncs-summary-grid {
    grid-template-columns: minmax(0,1fr) !important;
  }
}

/* v4.1.377 — Ghar-sized result header adapted to the Irish green palette.
   The header reaches the edges of the results card; its children own spacing. */
body :is([role="application"][id],.ic-usccalc) .ic-results .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger) {
  position: relative !important;
  isolation: isolate !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  gap: 0 !important;
  width: calc(100% + 52px) !important;
  box-sizing: border-box !important;
  margin: -26px -26px 26px !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 20px 20px 0 0 !important;
  background: radial-gradient(circle at 96% 115%, rgba(255,255,255,.075), transparent 43%),
              linear-gradient(125deg,#075d37 0%,#0c7042 63%,#0b633d 100%) !important;
  color: #fff !important;
  text-align: left !important;
  box-shadow: none !important;
}
body :is([role="application"][id],.ic-usccalc) .ic-results .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger)::before {
  content: 'YOUR ESTIMATE' !important;
  position: absolute !important;
  z-index: 1 !important;
  left: 34px !important;
  width: auto !important;
  height: auto !important;
  transform: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #d9f3e5 !important;
  font: 750 11px/1.3 var(--ic-font-display,Outfit,system-ui,sans-serif) !important;
  letter-spacing: .12em !important;
  pointer-events: none !important;
}
body :is([role="application"][id],.ic-usccalc) .ic-results .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger)::after {
  content: '' !important;
  position: absolute !important;
  z-index: 0 !important;
  width: 230px !important;
  height: 230px !important;
  right: -80px !important;
  bottom: -95px !important;
  border: 1px solid rgba(255,255,255,.09) !important;
  border-radius: 50% !important;
  background: transparent !important;
  box-shadow: 0 0 0 30px rgba(255,255,255,.025),
              0 0 0 60px rgba(255,255,255,.022),
              0 0 0 90px rgba(255,255,255,.018) !important;
  pointer-events: none !important;
}
body :is([role="application"][id],.ic-usccalc) .ic-results .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger) :is(.ic-result-primary-label,.ic-result-label) {
  position: relative !important;
  z-index: 1 !important;
  display: block !important;
  width: auto !important;
  max-width: calc(100% - 68px) !important;
  margin: 102px 34px 0 !important;
  color: #def1e7 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  text-align: left !important;
}
body :is([role="application"][id],.ic-usccalc) .ic-results .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger) :is(.ic-result-primary-value,.ic-result-value) {
  position: relative !important;
  z-index: 1 !important;
  display: block !important;
  width: auto !important;
  max-width: calc(100% - 68px) !important;
  margin: 7px 34px 0 !important;
  color: #fff !important;
  font-size: clamp(38px,4.6vw,62px) !important;
  font-weight: 800 !important;
  line-height: 1.08 !important;
  letter-spacing: -.045em !important;
  font-variant-numeric: tabular-nums !important;
  text-align: left !important;
}
body :is([role="application"][id],.ic-usccalc) .ic-results .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger) .ic-result-primary-note {
  position: relative !important;
  z-index: 1 !important;
  display: block !important;
  max-width: calc(100% - 68px) !important;
  margin: 12px 34px 32px !important;
  color: #e2f3e9 !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
  opacity: 1 !important;
  text-align: left !important;
}
body :is([role="application"][id],.ic-usccalc) .ic-results .ic-result-primary > .ic-result-share-slot {
  position: absolute !important;
  z-index: 4 !important;
  top: 28px !important;
  right: 34px !important;
  margin: 0 !important;
}
body :is([role="application"][id],.ic-usccalc) .ic-results .ic-result-primary > .ic-result-share-slot .ic-share-btn {
  color: #fff !important;
  background: rgba(255,255,255,.09) !important;
  border: 1px solid rgba(255,255,255,.32) !important;
}
body :is([role="application"][id],.ic-usccalc) .ic-results .ic-result-primary > .ic-result-share-slot .ic-share-btn:is(:hover,:focus-visible) {
  background: rgba(255,255,255,.17) !important;
  border-color: rgba(255,255,255,.55) !important;
}
@media (max-width: 780px) {
  body :is([role="application"][id],.ic-usccalc) .ic-results .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger) {
    width: calc(100% + 40px) !important;
    min-height: 260px !important;
    margin: -20px -20px 20px !important;
    padding: 0 !important;
  }
  body :is([role="application"][id],.ic-usccalc) .ic-results .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger)::before {  left: 22px !important; }
  body :is([role="application"][id],.ic-usccalc) .ic-results .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger) :is(.ic-result-primary-label,.ic-result-label) {
    max-width: calc(100% - 44px) !important;
    margin: 86px 22px 0 !important;
  }
  body :is([role="application"][id],.ic-usccalc) .ic-results .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger) :is(.ic-result-primary-value,.ic-result-value) {
    max-width: calc(100% - 44px) !important;
    margin: 7px 22px 0 !important;
    font-size: clamp(35px,10vw,48px) !important;
  }
  body :is([role="application"][id],.ic-usccalc) .ic-results .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger) .ic-result-primary-note {
    max-width: calc(100% - 44px) !important;
    margin: 12px 22px 26px !important;
  }
  body :is([role="application"][id],.ic-usccalc) .ic-results .ic-result-primary > .ic-result-share-slot { top: 20px !important; right: 22px !important; }
}

/* v4.1.378: Ghar's header takes its height from content. Remove the fixed
   height and shorten the space between the top line and result label. */
body :is([role="application"][id],.ic-usccalc) .ic-results .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger) {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  flex: 0 0 auto !important;
  align-self: flex-start !important;
}
body :is([role="application"][id],.ic-usccalc) .ic-results .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger)::before {
  top: 27px !important;
}
body :is([role="application"][id],.ic-usccalc) .ic-results .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger) :is(.ic-result-primary-label,.ic-result-label) {
  margin-top: 75px !important;
}
body :is([role="application"][id],.ic-usccalc) .ic-results .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger) .ic-result-primary-note {
  margin-bottom: 30px !important;
}
body :is([role="application"][id],.ic-usccalc) .ic-results .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger) .ic-result-primary-value span {
  color: #fff !important;
  font-size: .45em !important;
}
@media (max-width: 780px) {
  body :is([role="application"][id],.ic-usccalc) .ic-results .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger)::before { top: 23px !important; }
  body :is([role="application"][id],.ic-usccalc) .ic-results .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger) :is(.ic-result-primary-label,.ic-result-label) { margin-top: 68px !important; }
  body :is([role="application"][id],.ic-usccalc) .ic-results .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger) .ic-result-primary-note { margin-bottom: 26px !important; }
}

/* v4.1.379: maintain roomy single-column forms within the narrower input card. */


body .ic-cryptotaxcalc .ic-inputs .ic-crypto-transaction {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  border-bottom: 0 !important;
}
body .ic-cryptotaxcalc .ic-inputs .ic-crypto-row-grid {
  grid-template-columns: minmax(0,1fr) !important;
  gap: 14px !important;
}
body .ic-statesavingscalc .ic-inputs .ic-ss-panel .ic-field-row {
  grid-template-columns: minmax(0,1fr) !important;
}
body .ic-loancalc .ic-grid > .ic-inputs {
  display: flex !important;
  flex-direction: column !important;
  grid-template-columns: none !important;
  align-items: stretch !important;
}
body .ic-loancalc .ic-grid > .ic-inputs::before {
  flex: none !important;
  white-space: nowrap !important;
}
body .ic-loancalc .ic-inputs .ic-field-row {
  grid-template-columns: minmax(0,1fr) !important;
}
body .ic-loancalc .ic-results .ic-loan-scenarios__grid {
  grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  gap: 16px !important;
}
body .ic-firsthomecalc .ic-inputs .ic-fhs-top-choice-grid {
  grid-template-columns: minmax(0,1fr) !important;
  align-items: stretch !important;
  gap: 22px !important;
}
body .ic-firsthomecalc .ic-inputs .ic-fhs-top-choice-grid > * { min-width: 0 !important; }
body .ic-firsthomecalc .ic-inputs .ic-fhs-app-type-group .ic-fhs-radio-group {
  display: flex !important;
  flex-wrap: wrap !important;
  container-type: inline-size;
  gap: 6px !important;
}
body .ic-firsthomecalc .ic-inputs .ic-fhs-route-tabs {
  display: flex !important;
  flex-wrap: wrap !important;
  container-type: inline-size;
  gap: 6px !important;
}
body .ic-firsthomecalc .ic-inputs .ic-fhs-radio-option {
  min-width: 0 !important;
  width: auto !important;
  flex: 1 1 calc(50% - 6px) !important;
  padding: 8px 14px !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  white-space: normal !important;
}
body .ic-firsthomecalc .ic-inputs .ic-fhs-radio-content {
  min-width: 0 !important;
  justify-content: center !important;
  text-align: center !important;
}
@container (min-width: 540px) {
  body .ic-dayratecalc .ic-dr-tabs > .ic-tab,
  body .ic-firsthomecalc .ic-inputs .ic-fhs-radio-option {
    flex: 0 1 auto !important;
  }
}
@media (max-width: 780px) {
  body .ic-loancalc .ic-results .ic-loan-scenarios__grid { grid-template-columns: minmax(0,1fr) !important; }
}

/* Shared selected state; v4.1.413 uses a prominent solid green fill. */
body :is(.ic-mode-tabs > .ic-mode-tab,
         .ic-savingsgoalcalc .ic-tabs > .ic-tab,
         .ic-holidaypay .ic-tabs > .ic-tab,
         .ic-vatcalc .ic-tabs > .ic-tab,
         .ic-cryptotaxcalc .ic-tabs > .ic-tab,
         .ic-vrtcalc .ic-tabs > .ic-tab,
         .ic-proratacalc .ic-tabs > .ic-tab,
         .ic-dayratecalc .ic-dr-tabs > .ic-tab,
         .ic-prsicalc .ic-prsi-tabs > .ic-tab):is(
           .ic-tab--active,.is-active,[aria-selected="true"],[aria-pressed="true"],
           :has(> input:checked),
           .ic-tab--active:hover,.is-active:hover,[aria-selected="true"]:hover,
           [aria-pressed="true"]:hover,:has(> input:checked):hover,
           .ic-tab--active:focus,.is-active:focus) {
  --ic-parity-icon-color: #fff;
  background: #126c3d !important;
  color: #fff !important;
  border-color: #126c3d !important;
  box-shadow: none !important;
}
body :is(.ic-mode-tabs > .ic-mode-tab,
         .ic-savingsgoalcalc .ic-tabs > .ic-tab,
         .ic-holidaypay .ic-tabs > .ic-tab,
         .ic-vatcalc .ic-tabs > .ic-tab,
         .ic-cryptotaxcalc .ic-tabs > .ic-tab,
         .ic-vrtcalc .ic-tabs > .ic-tab,
         .ic-proratacalc .ic-tabs > .ic-tab,
         .ic-dayratecalc .ic-dr-tabs > .ic-tab,
         .ic-prsicalc .ic-prsi-tabs > .ic-tab):is(
           .ic-tab--active,.is-active,[aria-selected="true"],[aria-pressed="true"],
           :has(> input:checked)) :is(span,.ic-fhs-radio-content,svg) {
  color: inherit !important;
  background: transparent !important;
}

/* v4.1.381: finish the compact workbench forms and exceptional result cards. */
body .ic-overtimecalc .ic-inputs .ic-rate-group {
  display: grid !important;
  grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  gap: 8px !important;
}
body .ic-overtimecalc .ic-inputs .ic-rate-pill { min-width: 0 !important; }
body .ic-overtimecalc .ic-inputs .ic-rate-pill > span {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 40px !important;
  box-sizing: border-box !important;
  text-align: center !important;
  white-space: normal !important;
  border-radius: 10px !important;
}
body .ic-overtimecalc .ic-rate-pill > input:checked + span,
body .ic-overtimecalc .ic-rate-pill > input:checked + span:hover {
  background: #e8f5ed !important;
  color: #0b6038 !important;
  border-color: #8fcbaa !important;
  box-shadow: inset 0 0 0 1px rgba(15,116,65,.1) !important;
}
body .ic-overtimecalc .ic-rate-pill:has(> input:focus-visible) > span {
  outline: 2px solid #137346 !important;
  outline-offset: 2px !important;
}
body :is(.ic-ncscalc,.ic-susicalc,.ic-helpbuycalc,.ic-vrtcalc,.ic-usccalc) .ic-inputs .ic-field-row,
body .ic-ncscalc .ic-inputs .ic-ncs-fieldset .ic-field-row,
body .ic-usccalc .ic-inputs :is(.ic-usc-primary-grid,.ic-usc-context-grid),
body .ic-helpbuycalc .ic-inputs .ic-htb-advanced-grid,
body .ic-vrtcalc .ic-inputs .ic-vrt-fields-grid,
body .ic-loancalc .ic-inputs .ic-loan-term-actions-row,
body .ic-firsthomecalc .ic-inputs .ic-fhs-flow-section--funds {
  grid-template-columns: minmax(0,1fr) !important;
}
body .ic-firsthomecalc .ic-inputs .ic-fhs-flow-section--funds > .ic-field {
  grid-column: 1 / -1 !important;
  width: 100% !important;
}
body .ic-cryptotaxcalc .ic-inputs .ic-crypto-transaction {
  border: 1px dashed #a8cdb8 !important;
  border-radius: 14px !important;
  padding: 18px !important;
  background: #f8fcf9 !important;
}
body .ic-cryptotaxcalc .ic-inputs .ic-crypto-transaction .ic-crypto-remove-row[hidden] {
  display: none !important;
}
body .ic-mortgagecalc.ic-mort-has-results .ic-grid > .ic-results,
body .ic-mortgagecalc.ic-mort-has-results #ic-mort-results {
  position: static !important;
  top: auto !important;
  max-height: none !important;
  height: auto !important;
  overflow-y: visible !important;
  overflow-x: visible !important;
  overscroll-behavior: auto !important;
  padding-right: 26px !important;
}
body .ic-usccalc:not(.ic-calculator-landing-shell) {
  position: relative !important;
  z-index: 2 !important;
  margin-top: -44px !important;
}
body .ic-susicalc .ic-results .ic-susi-primary-card {
  position: relative !important;
  isolation: isolate !important;
  display: flex !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  width: calc(100% + 52px) !important;
  min-height: 0 !important;
  box-sizing: border-box !important;
  margin: -26px -26px 26px !important;
  padding: 75px 34px 30px !important;
  border: 0 !important;
  border-radius: 20px 20px 0 0 !important;
  background: radial-gradient(circle at 96% 115%,rgba(255,255,255,.075),transparent 43%),linear-gradient(125deg,#075d37 0%,#0c7042 63%,#0b633d 100%) !important;
  color: #fff !important;
  text-align: left !important;
  box-shadow: none !important;
  overflow: hidden !important;
}
body .ic-susicalc .ic-results .ic-susi-primary-card::before {
  content: 'YOUR ESTIMATE' !important;
  position: absolute !important;
  z-index: 1 !important;
  top: 27px !important;
  left: 34px !important;
  width: auto !important;
  height: auto !important;
  border: 0 !important;
  background: transparent !important;
  color: #d9f3e5 !important;
  font: 750 11px/1.3 var(--ic-font-display,Outfit,system-ui,sans-serif) !important;
  letter-spacing: .12em !important;
  transform: none !important;
  pointer-events: none !important;
}
body .ic-susicalc .ic-results .ic-susi-primary-card::after {
  content: '' !important;
  position: absolute !important;
  z-index: 0 !important;
  width: 230px !important;
  height: 230px !important;
  right: -80px !important;
  bottom: -95px !important;
  border: 1px solid rgba(255,255,255,.09) !important;
  border-radius: 50% !important;
  box-shadow: 0 0 0 30px rgba(255,255,255,.025),0 0 0 60px rgba(255,255,255,.022),0 0 0 90px rgba(255,255,255,.018) !important;
  pointer-events: none !important;
}
body .ic-susicalc .ic-results .ic-susi-result-main {
  position: relative !important;
  z-index: 1 !important;
  display: flex !important;
  align-items: flex-start !important;
  text-align: left !important;
}
body .ic-susicalc .ic-results .ic-susi-result-main > * {
  max-width: 100% !important;
  color: #fff !important;
  text-align: left !important;
}
body .ic-susicalc .ic-results .ic-susi-kicker {
  color: #def1e7 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
body .ic-susicalc .ic-results .ic-susi-result-amount {
  font-size: clamp(38px,4.6vw,62px) !important;
  line-height: 1.08 !important;
  letter-spacing: -.045em !important;
}
body .ic-susicalc .ic-results .ic-susi-result-context {
  margin-top: 6px !important;
  color: #e2f3e9 !important;
  font-size: 13px !important;
}
body .ic-susicalc .ic-results .ic-susi-primary-card > .ic-share-container {
  position: absolute !important;
  z-index: 4 !important;
  top: 28px !important;
  right: 34px !important;
  width: auto !important;
  margin: 0 !important;
}
body .ic-susicalc .ic-results .ic-susi-primary-card .ic-share-btn {
  color: #fff !important;
  background: rgba(255,255,255,.09) !important;
  border-color: rgba(255,255,255,.32) !important;
}
@media (max-width: 780px) {
  body .ic-usccalc:not(.ic-calculator-landing-shell) { margin-top: -22px !important; }
  body .ic-susicalc .ic-results .ic-susi-primary-card {
    width: calc(100% + 40px) !important;
    margin: -20px -20px 20px !important;
    padding: 68px 22px 26px !important;
  }
  body .ic-susicalc .ic-results .ic-susi-primary-card::before { top: 23px !important; left: 22px !important; }
  body .ic-susicalc .ic-results .ic-susi-primary-card > .ic-share-container { top: 20px !important; right: 22px !important; }
}

/* v4.1.386: consistent field rhythm and calm supporting notes. */
body .ic-holidaypay .ic-inputs :is(.ic-field-grid,.ic-field-row),
body .ic-mortaffcalc .ic-inputs .ic-field-row {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) !important;
  gap: 16px !important;
}
body .ic-holidaypay .ic-inputs :is(.ic-field-grid,.ic-field-row) > .ic-field,
body .ic-mortaffcalc .ic-inputs .ic-field-row > .ic-field {
  grid-column: 1 / -1 !important;
  min-width: 0;
}
@media (min-width: 761px) {
  body .ic-holidaypay .ic-results .ic-summary-grid.ic-summary-grid--four.ic-holiday-top-metrics {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 14px !important;
  }
}
body :is(.ic-ncscalc,.ic-susicalc):not(.ic-calculator-landing-shell) > .ic-grid > .ic-inputs {
  border-bottom-left-radius: 20px !important;
  border-bottom-right-radius: 20px !important;
}
body :is(.ic-ncscalc,.ic-susicalc) .ic-inputs .ic-input-help-note {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 16px 0 0;
  padding: 12px 14px;
  border: 1px solid #dfe5eb;
  border-radius: 10px;
  background: #edf1f5;
  color: var(--ic-text-muted,#596b7a);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
}
body :is(.ic-ncscalc,.ic-susicalc) .ic-inputs .ic-input-help-note > svg {
  flex: 0 0 14px;
  width: 14px;
  height: 14px;
  margin-top: 2px;
  color: var(--ic-primary,#17884e);
}
body :is(.ic-ncscalc,.ic-susicalc) .ic-inputs .ic-input-help-note > span { min-width: 0; }
body :is(.ic-ncscalc,.ic-susicalc) .ic-inputs .ic-input-help-note strong { font-weight: 500; }

/* These four calculators retain their full-width form and result arrangement. */
body :is(#ic-redundancycalc,#ic-salarycalc,#ic-payecalc,#ic-renttaxcreditcalc)[role="application"] {
  border: 1px solid #dfe5eb !important;
  border-radius: 20px !important;
  background: #fff !important;
  padding: 0 !important;
  overflow: hidden !important;
  box-shadow: none !important;
}
body :is(#ic-redundancycalc,#ic-salarycalc,#ic-payecalc,#ic-renttaxcreditcalc) > :is(.ic-rd-form-shell,.ic-sal-topbar,.ic-paye-topbar,.ic-rtc-form-shell) {
  padding: 30px !important;
}
body :is(#ic-redundancycalc,#ic-salarycalc,#ic-payecalc,#ic-renttaxcreditcalc) > .ic-results {
  padding: 26px !important;
}
body :is(#ic-redundancycalc,#ic-payecalc,#ic-renttaxcreditcalc) > .ic-results .ic-result-primary {
  width: 100% !important;
  margin: 0 0 20px !important;
  border-radius: 16px !important;
}
@media (max-width: 780px) {
  body :is(#ic-redundancycalc,#ic-salarycalc,#ic-payecalc,#ic-renttaxcreditcalc) > :is(.ic-rd-form-shell,.ic-sal-topbar,.ic-paye-topbar,.ic-rtc-form-shell),
  body :is(#ic-redundancycalc,#ic-salarycalc,#ic-payecalc,#ic-renttaxcreditcalc) > .ic-results {
    padding: 22px !important;
  }
}

/* v4.1.388: batch 2, based on the accepted 4.1.386 workbench. */
/* Service Charge now uses the same independent input/result surfaces. */
body .ic-fhs-service-charge-page__main { padding-top: 0 !important; }
body .ic-fhsservicecalc[id] .ic-inputs .ic-fhs-service-charge-fields {
  grid-template-columns: minmax(0,1fr) !important;
  gap: 18px !important;
}
body .ic-fhsservicecalc[id] .ic-fhs-service-charge-actions { margin-top: 0 !important; }
body .ic-fhsservicecalc[id] .ic-results .ic-fhs-service-charge-overview {
  display: flex !important;
  flex-direction: column !important;
  gap: 24px !important;
  min-width: 0 !important;
}
body .ic-fhsservicecalc[id] .ic-results .ic-fhs-service-charge-overview-main {
  display: block !important;
  min-width: 0 !important;
}
body .ic-fhsservicecalc[id] .ic-results .ic-fhs-service-charge-summary-grid {
  display: grid !important;
  grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  gap: 14px !important;
}
body .ic-fhsservicecalc[id] .ic-results .ic-fhs-service-charge-summary-grid > .ic-summary-card {
  grid-column: auto !important;
}
body .ic-fhsservicecalc:not(.ic-fhs-service-charge-calculator--standalone) { margin-top: 0 !important; }

/* Every Savings input, including emergency and advanced modes, gets its own row. */
body #ic-savingsgoalcalc.ic-savingsgoalcalc .ic-inputs .ic-field-row,
body #ic-savingsgoalcalc.ic-savingsgoalcalc .ic-inputs #ic-sg-mode-emergency .ic-sg-emergency-row {
  grid-template-columns: minmax(0,1fr) !important;
  gap: 18px !important;
}
body #ic-savingsgoalcalc.ic-savingsgoalcalc .ic-inputs .ic-field-row > .ic-field {
  grid-column: auto !important;
  width: 100% !important;
  min-width: 0 !important;
}

/* Two columns are the maximum inside a split result card. */
body #ic-loancalc.ic-loancalc .ic-results .ic-summary-grid.ic-loan-top-metrics,
body #ic-loancalc.ic-loancalc .ic-results .ic-loan-scenarios__grid,
body #ic-dayratecalc.ic-dayratecalc .ic-results .ic-dr-hero-row .ic-dr-summary-grid,
body #ic-cryptotaxcalc.ic-cryptotaxcalc .ic-results .ic-crypto-summary-grid {
  display: grid !important;
  grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  gap: 14px !important;
  min-width: 0 !important;
}
/* Remove the nested frames, while retaining individual cards and table cells. */
body #ic-loancalc.ic-loancalc .ic-results :is(.ic-loan-insights,.ic-loan-scenarios,.ic-loan-schedule-wrap) {
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  width: 100% !important;
  min-width: 0 !important;
}
body #ic-loancalc.ic-loancalc .ic-results .ic-loan-schedule-table-wrap {
  border: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* Crypto metrics reuse the canonical summary-card component. */
body #ic-cryptotaxcalc.ic-cryptotaxcalc .ic-results .ic-crypto-summary-grid .ic-summary-card {
  display: flex !important;
  flex-direction: column !important;
  gap: 7px !important;
  border: 1px solid #dfe5eb !important;
  border-radius: 16px !important;
  background: #fff !important;
  box-shadow: 0 1px 2px rgba(15,23,42,.04) !important;
}
body #ic-cryptotaxcalc.ic-cryptotaxcalc .ic-results .ic-crypto-summary-grid .ic-summary-card--accent {
  border-color: rgba(22,163,74,.26) !important;
  background: linear-gradient(180deg,#f0fdf4,#fff) !important;
}
body #ic-cryptotaxcalc.ic-cryptotaxcalc .ic-results .ic-crypto-summary-grid .ic-summary-label {
  color: #64748b !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  letter-spacing: .07em !important;
  text-transform: uppercase !important;
}
body #ic-cryptotaxcalc.ic-cryptotaxcalc .ic-results .ic-crypto-summary-grid .ic-summary-value {
  font-family: var(--ic-font-display,Outfit,system-ui,sans-serif) !important;
  font-size: clamp(20px,2vw,24px) !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  color: #0f172a;
  font-variant-numeric: tabular-nums;
}
body #ic-cryptotaxcalc.ic-cryptotaxcalc .ic-results .ic-crypto-summary-grid .ic-summary-card--accent .ic-summary-value { color: #16a34a !important; }
body #ic-cryptotaxcalc.ic-cryptotaxcalc .ic-results .ic-crypto-summary-grid .ic-summary-meta { color: #64748b !important; font-size: 12px !important; line-height: 1.5 !important; }

@media (max-width: 760px) {
  body #ic-loancalc.ic-loancalc .ic-results .ic-summary-grid.ic-loan-top-metrics,
  body #ic-loancalc.ic-loancalc .ic-results .ic-loan-scenarios__grid,
  body #ic-dayratecalc.ic-dayratecalc .ic-results .ic-dr-hero-row .ic-dr-summary-grid,
  body #ic-cryptotaxcalc.ic-cryptotaxcalc .ic-results .ic-crypto-summary-grid,
  body .ic-fhsservicecalc[id] .ic-results .ic-fhs-service-charge-summary-grid {
    grid-template-columns: minmax(0,1fr) !important;
  }
}

/* v4.1.413: input-side selector visuals, without changing typography.
   Keep result-side navigation and explanatory choice cards independent. */
body [role="application"][id] .ic-inputs :is(.ic-mode-tab,.ic-tab,.ic-rate-pill):not([disabled]):not(:has(> input:disabled)) {
  box-sizing: border-box !important;
  border-radius: 10px !important;
  background: #fff !important;
  border: 1px solid #c9d5df !important;
  color: #223344 !important;
  box-shadow: none !important;
  white-space: normal !important;
  text-align: center !important;
}
body [role="application"][id] .ic-inputs :is(.ic-mode-tab,.ic-tab,.ic-rate-pill):not([disabled]):not(:has(> input:disabled)):hover {
  background: #f0f8f3 !important;
  border-color: #79aa8b !important;
}
body [role="application"][id] .ic-inputs :is(.ic-mode-tab,.ic-tab,.ic-rate-pill):not([disabled]):not(:has(> input:disabled)):is(.ic-tab--active,.is-active,[aria-selected="true"],[aria-pressed="true"],:has(> input:checked)) {
  background: #126c3d !important;
  border-color: #126c3d !important;
  color: #fff !important;
  box-shadow: none !important;
}
body [role="application"][id] .ic-inputs :is(.ic-mode-tab,.ic-tab,.ic-rate-pill) :is(span,svg) {
  color: inherit !important;
}
body [role="application"][id] .ic-inputs .ic-rate-pill > span {
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}
body [role="application"][id] .ic-inputs :is(.ic-mode-tab,.ic-tab,.ic-rate-pill):is(:focus-visible,:has(> input:focus-visible)),
body #ic-mortaffcalc .ic-inputs .ic-ma-buyer-option:has(> input:focus-visible) {
  outline: 2px solid #223344 !important;
  outline-offset: 3px !important;
}
body #ic-savingsgoalcalc.ic-savingsgoalcalc .ic-inputs .ic-tab-bar > .ic-tabs {
  display: grid !important;
  grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  gap: 10px !important;
  width: 100% !important;
}
body #ic-savingsgoalcalc.ic-savingsgoalcalc .ic-inputs .ic-tab-bar > .ic-tabs > .ic-tab {
  min-width: 0 !important;
  width: 100% !important;
}
body #ic-mortaffcalc .ic-inputs .ic-ma-buyer-option:is(.is-active,:has(> input:checked)) {
  border-color: #126c3d !important;
  box-shadow: inset 0 0 0 1px #126c3d !important;
  background: #f0f8f3 !important;
}

/* Mobile workbench: each input card is independent of the results card.
   The former shared-shell rule in ic-base.css squared its bottom-left corner. */
@media (max-width: 780px) {
  body [role="application"][id] :is(.ic-grid,.ic-calc-shell,.ic-panel) > :is(.ic-inputs,.ic-calc-card) {
    border: 1px solid #dfe5eb !important;
    border-radius: 20px !important;
    border-bottom-left-radius: 20px !important;
    border-bottom-right-radius: 20px !important;
  }

  /* Result surfaces have no second frame on phones. The primary and the
     following cards can each use the available width. */
  body [role="application"][id] :is(.ic-grid,.ic-calc-shell,.ic-panel) > :is(.ic-results,.ic-calc-results) {
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    min-width: 0 !important;
    width: 100% !important;
  }
  /* The mortgage desktop scroll layout leaves a 26px right gutter.
     On a single-column phone layout that gutter narrows every result card. */
  body #ic-mortgagecalc.ic-mortgagecalc #ic-mort-results {
    padding: 0 !important;
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }
  /* Wide calculators keep the deliberate gap above their first result. */
  body :is(#ic-redundancycalc,#ic-salarycalc,#ic-payecalc,#ic-renttaxcreditcalc) > .ic-results {
    padding: 22px 0 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }
  body :is(#ic-redundancycalc,#ic-salarycalc,#ic-payecalc,#ic-renttaxcreditcalc)[role="application"] {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }
  /* The full-width applications have direct form shells rather than .ic-inputs.
     Keep the result unframed while restoring a distinct input card. */
  body :is(#ic-redundancycalc,#ic-salarycalc,#ic-payecalc,#ic-renttaxcreditcalc)[role="application"] > :is(.ic-rd-form-shell,.ic-sal-topbar,.ic-paye-topbar,.ic-rtc-form-shell) {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    border: 1px solid #dfe5eb !important;
    border-radius: 20px !important;
    background: #fff !important;
    box-shadow: none !important;
  }
  body [role="application"][id] :is(.ic-grid,.ic-calc-shell,.ic-panel) > :is(.ic-results,.ic-calc-results) > * {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
  }
  /* Earlier mobile heroes assume a padded result panel and extend 40px
     beyond it. With a zero-gutter panel that extension causes horizontal
     overflow, most visibly in VRT and USC. */
  body [role="application"][id] .ic-results .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger) {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 0 12px !important;
    box-sizing: border-box !important;
  }
  /* SUSI's hero has its own class and previously extended beyond the
     now unpadded result surface on mobile. */
body .ic-susicalc[role="application"] .ic-results .ic-susi-primary-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 0 12px !important;
    box-sizing: border-box !important;
  }
  body #ic-vrtcalc.ic-vrtcalc.ic-payecalc > .ic-grid,
  body [role="application"][id] :is(.ic-grid,.ic-calc-shell,.ic-panel):has(> .ic-inputs):has(> .ic-results) {
    grid-template-columns: minmax(0,1fr) !important;
    gap: 20px !important;
    min-width: 0 !important;
  }
  body #ic-usccalc.ic-usccalc #ic-usc-results {
    gap: 12px !important;
  }
  body #ic-usccalc.ic-usccalc #ic-usc-results .ic-result-primary,
  body #ic-usccalc.ic-usccalc #ic-usc-results .ic-usc-chips {
    margin-bottom: 0 !important;
    margin-top: 0 !important;
  }

  /* Holiday's three mode tabs can wrap. Keep them in normal document flow so
     the first section always follows the real tab height at any font size. */
  body .ic-holidaypay > .ic-tab-bar {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    width: 100% !important;
    box-sizing: border-box !important;
    padding: 22px 22px 16px !important;
    border: 1px solid #dfe5eb !important;
    border-bottom: 0 !important;
    border-radius: 20px 20px 0 0 !important;
    background: #fff !important;
  }
  body .ic-holidaypay > .ic-tab-bar::before {
    content: 'Your details';
    display: block;
    margin-bottom: 16px;
    color: #103e2a;
    font-family: var(--ic-font-display, Outfit, system-ui, sans-serif);
    font-size: 24px;
    font-weight: 700;
    line-height: 1.25;
  }
  body .ic-holidaypay .ic-panel:not(.ic-panel--hidden) > .ic-inputs {
    padding: 0 22px 22px !important;
    border-top: 0 !important;
    border-radius: 0 0 20px 20px !important;
  }
  body .ic-holidaypay .ic-panel > .ic-inputs::before { content: none !important; }

  /* Net Salary uses .ic-sal-net-card instead of .ic-result-primary. Give it
     the same green hero treatment and keep its dashboard within the viewport. */
  body #ic-salarycalc.ic-salarycalc #ic-sal-results :is(.ic-sal-stagger,.ic-sal-dashboard) {
    width: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }
  body #ic-salarycalc.ic-salarycalc #ic-sal-results .ic-sal-net-card {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    padding: 0 22px 28px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 20px 20px 0 0 !important;
    overflow: hidden !important;
    background: radial-gradient(circle at 96% 115%,rgba(255,255,255,.075),transparent 43%),linear-gradient(125deg,#075d37 0%,#0c7042 63%,#0b633d 100%) !important;
    color: #fff !important;
    text-align: left !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
  }
  body #ic-salarycalc.ic-salarycalc #ic-sal-results .ic-sal-net-card::before {
    content: 'YOUR ESTIMATE' !important;
    position: absolute !important;
    top: 23px !important;
    left: 22px !important;
    width: auto !important;
    height: auto !important;
    transform: none !important;
    background: transparent !important;
    color: #d9f3e5 !important;
    font: 750 11px/1.3 var(--ic-font-display,Outfit,system-ui,sans-serif) !important;
    letter-spacing: .12em !important;
  }
  body #ic-salarycalc.ic-salarycalc #ic-sal-results .ic-sal-net-card :is(.ic-sal-net-label,.ic-sal-net-value,.ic-sal-net-sub) {
    position: relative !important;
    z-index: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    color: #fff !important;
    text-align: left !important;
  }
  body #ic-salarycalc.ic-salarycalc #ic-sal-results .ic-sal-net-label {
    margin: 76px 0 0 !important;
    color: #def1e7 !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
  }
  body #ic-salarycalc.ic-salarycalc #ic-sal-results .ic-sal-net-value {
    margin: 7px 0 0 !important;
    font-size: clamp(35px,10vw,48px) !important;
    line-height: 1.08 !important;
    overflow-wrap: anywhere;
  }
  body #ic-salarycalc.ic-salarycalc #ic-sal-results .ic-sal-net-sub {
    margin: 12px 0 0 !important;
    color: #e2f3e9 !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
  }
  body #ic-salarycalc.ic-salarycalc #ic-sal-results .ic-sal-net-card > .ic-share-container {
    position: absolute !important;
    top: 20px !important;
    right: 22px !important;
    width: auto !important;
    margin: 0 !important;
  }
  body #ic-salarycalc.ic-salarycalc #ic-sal-results .ic-sal-net-card .ic-share-btn {
    color: #fff !important;
    border-color: rgba(255,255,255,.4) !important;
    background: rgba(255,255,255,.1) !important;
  }
}

/* v4.1.401: soft elevation only on calculator input surfaces. */
body [role="application"][id] :is(.ic-grid,.ic-calc-shell,.ic-panel) > :is(.ic-inputs,.ic-calc-card),
body :is(#ic-redundancycalc,#ic-salarycalc,#ic-payecalc,#ic-renttaxcreditcalc)[role="application"] > :is(.ic-rd-form-shell,.ic-sal-topbar,.ic-paye-topbar,.ic-rtc-form-shell) {
  box-shadow: rgba(149,157,165,.20) 0 8px 24px !important;
}
/* Full-width calculators share one shell. Elevate the form shell without a
   visible dividing shadow beneath it. */
body :is(#ic-redundancycalc,#ic-salarycalc,#ic-payecalc,#ic-renttaxcreditcalc)[role="application"] > :is(.ic-rd-form-shell,.ic-sal-topbar,.ic-paye-topbar,.ic-rtc-form-shell) {
  box-shadow: 0 8px 24px rgba(149,157,165,.16) !important;
}
body :is(#ic-redundancycalc,#ic-salarycalc,#ic-payecalc,#ic-renttaxcreditcalc)[role="application"] {
  box-shadow: rgba(149,157,165,.20) 0 8px 24px !important;
}
/* Match the compact VAT rate chips for the multiplier only. Scenario choices
   keep their current two-column tab layout. */
body .ic-overtimecalc .ic-inputs .ic-overtime-multiplier-rates {
  display: flex !important;
  flex-wrap: wrap !important;
  grid-template-columns: none !important;
  gap: 6px !important;
}
body .ic-overtimecalc .ic-inputs .ic-overtime-multiplier-rates .ic-rate-pill > span {
  display: inline-flex !important;
  width: auto !important;
  min-height: 34px !important;
  padding: 8px 14px !important;
  border-radius: var(--ic-radius-sm,8px) !important;
  white-space: nowrap !important;
}
body .ic-overtimecalc .ic-overtime-multiplier-rates .ic-rate-pill > input:checked + span {
  background: var(--ic-primary,#0b7041) !important;
  border-color: var(--ic-primary,#0b7041) !important;
  color: #fff !important;
  box-shadow: 0 1px 4px rgba(15,78,48,.18) !important;
}
/* Desktop Net Salary uses its own hero markup, outside the shared selector. */
@media (min-width: 781px) {
  body #ic-salarycalc.ic-salarycalc #ic-sal-results .ic-sal-hero-left .ic-sal-net-card {
    position: relative !important;
    display: block !important;
    min-height: 212px !important;
    padding: 68px 34px 30px !important;
    align-items: stretch !important;
    border: 0 !important;
    border-radius: 20px 20px 0 0 !important;
    background: radial-gradient(circle at 96% 115%,rgba(255,255,255,.075),transparent 43%),linear-gradient(125deg,#075d37 0%,#0c7042 63%,#0b633d 100%) !important;
    color: #fff !important;
    text-align: left !important;
    box-shadow: none !important;
    overflow: hidden !important;
  }
  body #ic-salarycalc.ic-salarycalc #ic-sal-results .ic-sal-net-card::before {
    content: 'YOUR ESTIMATE' !important;
    position: absolute !important;
    top: 27px !important;
    left: 34px !important;
    width: auto !important;
    height: auto !important;
    background: none !important;
    transform: none !important;
    color: #d9f3e5 !important;
    font: 750 11px/1.3 var(--ic-font-display,Outfit,system-ui,sans-serif) !important;
    letter-spacing: .12em !important;
  }
  body #ic-salarycalc.ic-salarycalc #ic-sal-results .ic-sal-net-card :is(.ic-sal-net-label,.ic-sal-net-value,.ic-sal-net-sub) {
    color: #fff !important;
    text-align: left !important;
    max-width: 100% !important;
  }
  body #ic-salarycalc.ic-salarycalc #ic-sal-results .ic-sal-net-label {
    margin: 0 !important;
    color: #def1e7 !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
  }
  body #ic-salarycalc.ic-salarycalc #ic-sal-results .ic-sal-net-value {
    margin: 8px 0 0 !important;
    font-size: clamp(38px,4.6vw,62px) !important;
    line-height: 1.08 !important;
  }
  body #ic-salarycalc.ic-salarycalc #ic-sal-results .ic-sal-net-sub {
    margin: 12px 0 0 !important;
    color: #e2f3e9 !important;
    font-size: 14px !important;
  }
  body #ic-salarycalc.ic-salarycalc #ic-sal-results .ic-sal-net-card > .ic-share-container {
    position: absolute !important;
    top: 27px !important;
    right: 34px !important;
    width: auto !important;
    margin: 0 !important;
  }
  body #ic-salarycalc.ic-salarycalc #ic-sal-results .ic-sal-net-card .ic-share-btn {
    color: #fff !important;
    border-color: rgba(255,255,255,.4) !important;
    background: rgba(255,255,255,.1) !important;
  }
  body .ic-susicalc[role="application"][id] .ic-results .ic-susi-primary-card {
    width: calc(100% + 52px) !important;
    max-width: none !important;
  }
}

/* v4.1.404: match the specificity of the green hero and Net Salary rules.
   The earlier generic mobile override lost to their two :not() selectors
   and the two ID selectors on the salary card. */
@media (max-width: 780px) {
  body :is([role="application"][id],.ic-usccalc) .ic-results .ic-result-primary:not(.ic-htb-result-danger):not(.ic-fhs-result-danger),
  body .ic-susicalc .ic-results .ic-susi-primary-card,
  body #ic-salarycalc.ic-salarycalc #ic-sal-results .ic-sal-net-card,
  body .ic-fhsservicecalc[role="application"][id] .ic-results .ic-fhs-service-charge-primary {
    border-radius: 20px !important;
    overflow: hidden !important;
  }
}

/* v4.1.424: stack the embedded FHS guide tool only; retain standalone layout. */
body .ic-guide-page--first-home-scheme-service-charges-explained .ic-fhs-service-charge-calculator.ic-fhsservicecalc[id] > .ic-grid.ic-fhs-service-charge-workbench {
  grid-template-columns: minmax(0,1fr) !important;
  gap: 20px !important;
  width: 100% !important;
}
body .ic-guide-page--first-home-scheme-service-charges-explained .ic-fhs-service-charge-calculator.ic-fhsservicecalc[id] > .ic-grid > :is(.ic-inputs,.ic-results) {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  min-width: 0 !important;
}
body .ic-guide-page--first-home-scheme-service-charges-explained .ic-fhs-service-charge-calculator.ic-fhsservicecalc[id] .ic-inputs::before { content: none !important; }
body .ic-guide-page--first-home-scheme-service-charges-explained .ic-fhs-service-charge-calculator.ic-fhsservicecalc[id] .ic-inputs .ic-fhs-service-charge-fields {
  grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  align-items: start !important;
}
body .ic-guide-page--first-home-scheme-service-charges-explained .ic-fhs-service-charge-calculator.ic-fhsservicecalc[id] .ic-fhs-service-charge-actions {
  grid-column: 1 / -1 !important;
  margin-top: 0 !important;
}
body .ic-guide-page--first-home-scheme-service-charges-explained .ic-fhs-service-charge-calculator.ic-fhsservicecalc[id] .ic-results .ic-fhs-service-charge-summary-grid {
  grid-template-columns: repeat(4,minmax(0,1fr)) !important;
}
@media (max-width:760px) {
  body .ic-guide-page--first-home-scheme-service-charges-explained .ic-fhs-service-charge-calculator.ic-fhsservicecalc[id] .ic-results .ic-fhs-service-charge-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
}
@media (max-width:600px) {
  body .ic-guide-page--first-home-scheme-service-charges-explained .ic-fhs-service-charge-calculator.ic-fhsservicecalc[id] .ic-inputs .ic-fhs-service-charge-fields { grid-template-columns: minmax(0,1fr) !important; }
}
@media (max-width:420px) {
  body .ic-guide-page--first-home-scheme-service-charges-explained .ic-fhs-service-charge-calculator.ic-fhsservicecalc[id] .ic-results .ic-fhs-service-charge-summary-grid { grid-template-columns: minmax(0,1fr) !important; }
}
