.ngv-calc {
  --calc-red: #ce2b24;
  --calc-line: #d8d5cd;
  --calc-muted: #625f58;
  color: inherit;
  font: inherit;
  line-height: 1.7;
}
.ngv-calc * { box-sizing: border-box; }
.ngv-calc [hidden] { display: none !important; }
.ngv-calc h2, .ngv-calc h3 { line-height: 1.4; letter-spacing: -.02em; }
.ngv-calc h2 { font-size: 1.65rem; margin: 0 0 .6rem; }
.ngv-calc h3 { font-size: 1.1rem; margin: 0 0 .7rem; }
.ngv-calc p { margin: .5rem 0 1rem; }
.ngv-calc .calc-note { color: var(--calc-muted); font-size: .88rem; }
.ngv-calc .calc-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 2.5rem;
  align-items: start;
  margin-top: 1.7rem;
}
.ngv-calc .calc-form { min-width: 0; }
.ngv-calc fieldset { border: 0; border-top: 1px solid var(--calc-line); margin: 0 0 1.5rem; padding: 1.1rem 0 0; min-width: 0; }
.ngv-calc legend { font-weight: 650; padding: 0 1rem 0 0; }
.ngv-calc .calc-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem 1rem; }
.ngv-calc .calc-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ngv-calc label { display: block; font-size: .95rem; }
.ngv-calc label > span:first-child { display: block; margin-bottom: .3rem; }
.ngv-calc input[type=number], .ngv-calc input[type=text], .ngv-calc select {
  width: 100%;
  max-width: 100%;
  min-height: 42px;
  padding: .55rem .65rem;
  background: #fff;
  color: #222;
  border: 1px solid #aaa;
  border-radius: 0;
  font: inherit;
  font-size: .95rem;
}
.ngv-calc input:focus, .ngv-calc select:focus, .ngv-calc button:focus-visible, .ngv-calc summary:focus-visible { outline: 2px solid #165db5; outline-offset: 3px; }
.ngv-calc input:invalid:not(:placeholder-shown) { border-color: #a3261f; }
.ngv-calc .calc-check { display: flex; align-items: flex-start; gap: .6rem; margin: .65rem 0; }
.ngv-calc .calc-check input { flex: none; margin: .38rem 0 0; accent-color: var(--calc-red); }
.ngv-calc .calc-check > span:first-child { margin: 0; }
.ngv-calc .calc-small { font-size: .82rem; color: var(--calc-muted); margin: .25rem 0 .7rem; }
.ngv-calc .calc-language { margin-bottom: 1.3rem; }
.ngv-calc .calc-language > label { margin-bottom: .7rem; }
.ngv-calc .calc-benchmarks { font-size: .86rem; color: #174f42; min-height: 1.5em; margin-top: .45rem; }
.ngv-calc .calc-result { border-top: 3px solid #222; padding-top: 1rem; position: sticky; top: 1.5rem; min-width: 0; }
.ngv-calc .calc-result-block { border-bottom: 1px solid var(--calc-line); padding-bottom: 1rem; margin-bottom: 1rem; }
.ngv-calc .calc-result-label { font-size: .9rem; }
.ngv-calc .calc-score { display: block; font-size: 2.8rem; font-weight: 600; line-height: 1.3; font-variant-numeric: tabular-nums; }
.ngv-calc .calc-score small { font-size: .9rem; font-weight: 400; }
.ngv-calc .calc-breakdown { margin: .8rem 0 0; font-size: .88rem; }
.ngv-calc .calc-breakdown div { display: flex; gap: 1rem; justify-content: space-between; padding: .15rem 0; }
.ngv-calc dt, .ngv-calc dd { margin: 0; }
.ngv-calc .calc-status { font-size: .88rem; color: #4e4b45; }
.ngv-calc .calc-error { font-size: .9rem; color: #9b211b; }
.ngv-calc details { margin: 0 0 1.3rem; }
.ngv-calc summary { cursor: pointer; font-weight: 600; padding: .55rem 0; }
.ngv-calc details > div { padding-top: .7rem; }
.ngv-calc button { padding: .55rem .9rem; border: 1px solid #777; background: #fff; color: #222; border-radius: 0; font: inherit; font-size: .9rem; cursor: pointer; }
.ngv-calc button:hover { background: #eeeae1; }
.ngv-calc .calc-job-row { display: grid; grid-template-columns: minmax(0, 1fr) 100px 42px; gap: .6rem; margin: .8rem 0; align-items: end; }
.ngv-calc .calc-job-row button { height: 42px; padding: .4rem; }
.ngv-calc .calc-job-label { font-size: .8rem; color: var(--calc-muted); grid-column: 1 / -1; margin-top: -.4rem; }
.ngv-calc .calc-actions { display: flex; gap: 1rem; flex-wrap: wrap; margin: 1.2rem 0; }
.ngv-calc .calc-sources { font-size: .82rem; border-top: 1px solid var(--calc-line); padding-top: 1rem; margin-top: 1.5rem; }
.ngv-calc .calc-sources a { display: inline-block; margin-right: 1rem; }
.ngv-calc .calc-livebar { display: none; }
.ngv-calc .calc-rule-notice { border-left: 3px solid var(--calc-red); padding-left: .8rem; font-size: .88rem; }
.ngv-calc .calc-help { font-weight: 400; font-size: .85rem; }
.ngv-calc .calc-full { grid-column: 1 / -1; }

/* Compact presentation on the combined Express Entry service and tool page. */
.ngv-calc-ee > header .calc-usage { margin: 0; }
.ngv-calc-ee > header .calc-usage > summary { font-size: .88rem; font-weight: 400; padding: .25rem 0; }
.ngv-calc-ee .calc-layout { grid-template-columns: minmax(0, 1fr) 245px; gap: 2rem; margin-top: .8rem; }
.ngv-calc-ee .calc-form > fieldset:first-child .calc-grid > label:last-child { grid-column: 1 / -1; }
.ngv-calc-ee .calc-score { color: var(--calc-red); font-size: 3.35rem; }
.ngv-calc-ee .calc-score-details { margin: .4rem 0 0; }
.ngv-calc-ee .calc-score-details summary { font-size: .88rem; font-weight: 400; padding: .3rem 0; }
.ngv-calc-ee .calc-secondary-result { border-bottom: 1px solid var(--calc-line); margin: 0; }
.ngv-calc-ee .calc-secondary-result > summary { font-size: .88rem; }
.ngv-calc-ee [data-fsw-inline] { float: right; font-variant-numeric: tabular-nums; }
.ngv-calc-ee .calc-secondary-result .calc-result-block { margin-bottom: 0; border-bottom: 0; }
.ngv-calc-ee .calc-result > [data-preview-result] { margin-top: 1rem; }
.ngv-calc-ee .calc-result [data-preview-result] .calc-score { font-size: 2.6rem; }
.ngv-calc-ee .calc-result .calc-breakdown { font-size: .85rem; }
.ngv-calc-ee .calc-form > details { border-top: 1px solid var(--calc-line); padding-top: .25rem; }
.ngv-calc-ee .calc-form > details > summary { font-size: .95rem; }
.ngv-calc-ee [data-results] { background: #222; border-color: #222; color: #fff; }
.ngv-calc-ee [data-results]:hover { background: #45413a; }

/* Dedicated FSW assessment: one score and the project minimums. */
.ngv-calc-fsw > header .calc-usage { margin: 0; }
.ngv-calc-fsw > header .calc-usage > summary { font-size: .88rem; font-weight: 400; padding: .25rem 0; }
.ngv-calc-fsw .calc-layout { grid-template-columns: minmax(0, 1fr) 260px; gap: 2rem; margin-top: .8rem; }
.ngv-calc-fsw .calc-form > fieldset:first-child .calc-grid > label:last-child { grid-column: 1 / -1; }
.ngv-calc-fsw .calc-score { color: var(--calc-red); font-size: 3.35rem; }
.ngv-calc-fsw .calc-threshold { font-size: 1rem; font-weight: 650; margin: .35rem 0; }
.ngv-calc-fsw .calc-score-details, .ngv-calc-fsw .calc-minimum-details { margin: .4rem 0 0; }
.ngv-calc-fsw .calc-score-details summary, .ngv-calc-fsw .calc-minimum-details summary { font-size: .88rem; font-weight: 400; padding: .35rem 0; }
.ngv-calc-fsw .calc-minimum-details dt { flex: 1; }
.ngv-calc-fsw .calc-minimum-details dd { flex: none; }
.ngv-calc-fsw [data-results] { background: #222; border-color: #222; color: #fff; }
.ngv-calc-fsw [data-results]:hover { background: #45413a; }

@media (max-width: 800px) {
  .ngv-calc .calc-layout { grid-template-columns: 1fr; gap: 1.5rem; }
  .ngv-calc .calc-result { position: static; grid-row: 1; }
  .ngv-calc .calc-result-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; }
  .ngv-calc .calc-score { font-size: 2.25rem; }
  .ngv-calc .calc-livebar { display: flex; gap: 1.25rem; position: sticky; bottom: 0; z-index: 3; background: #fff; border-top: 2px solid #222; padding: .6rem .2rem; font-size: .85rem; }
  .ngv-calc .calc-livebar strong { font-size: 1.15rem; }
  .ngv-calc .calc-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ngv-calc-fsw .calc-layout { grid-template-columns: 1fr; gap: 1rem; }
  .ngv-calc-fsw .calc-result-columns { display: block; }
  .ngv-calc-fsw [data-fsw-result] { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 0 .8rem; margin: 0; padding-bottom: .3rem; }
  .ngv-calc-fsw [data-fsw-result] .calc-score { font-size: 2.5rem; }
  .ngv-calc-fsw [data-fsw-result] > p, .ngv-calc-fsw [data-fsw-result] > details { grid-column: 1 / -1; }
  .ngv-calc-fsw .calc-livebar { justify-content: space-between; flex-wrap: wrap; gap: .25rem .75rem; }
  .ngv-calc-ee .calc-layout { gap: 1rem; }
  .ngv-calc-ee .calc-result { padding-top: .45rem; }
  .ngv-calc-ee .calc-result-columns { display: block; }
  .ngv-calc-ee [data-current-result] { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 0 .8rem; margin: 0; padding-bottom: .3rem; }
  .ngv-calc-ee [data-current-result] .calc-score { font-size: 2.3rem; }
  .ngv-calc-ee [data-current-result] > p, .ngv-calc-ee .calc-score-details { grid-column: 1 / -1; }
  .ngv-calc-ee [data-current-result] > p { margin: .1rem 0 .25rem; }
  .ngv-calc-ee .calc-score-details { margin-top: 0; }
  .ngv-calc-ee .calc-secondary-result > summary { padding: .45rem 0; }
  .ngv-calc-ee .calc-secondary-result .calc-score { font-size: 2.25rem; }
}
@media (max-width: 420px) {
  .ngv-calc .calc-grid { grid-template-columns: 1fr; }
  .ngv-calc .calc-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ngv-calc .calc-job-row { grid-template-columns: minmax(0, 1fr) 80px 38px; }
  .ngv-calc .calc-result-columns { gap: .8rem; }
  .ngv-calc h2 { font-size: 1.4rem; }
}
@media print {
  .ngv-calc .calc-result { position: static; }
  .ngv-calc .calc-livebar, .ngv-calc .calc-actions { display: none; }
  .ngv-calc .calc-layout { display: block; }
  .ngv-calc details { display: block; }
}
