@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap");

:root{
  --primary:#375623;
  --primary-dark:#2c451c;
  --primary-mid:#4b6f2d;
  --primary-soft:#8fb36b;
  --bg:#f7faf3;
  --soft:#eef5e8;
  --card:#ffffff;
  --text:#17220f;
  --muted:#617052;
  --line:#d9e6cf;
  --shadow:0 4px 12px rgba(0,0,0,.08);
  --radius-card:12px;
  --radius-control:12px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Inter","Aptos","Segoe UI",Roboto,Arial,sans-serif;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  color:var(--text);
  background:
    radial-gradient(circle at 0 0, rgba(143,179,107,.24), transparent 32%),
    linear-gradient(180deg,#fff 0%,var(--bg) 48%,#fff 100%);
}
.wrap{width:min(1240px,calc(100% - 36px));margin:0 auto}
.site-header{background:#fff;box-shadow:0 8px 28px rgba(55,86,35,.10)}
.topbar{min-height:118px;display:flex;align-items:center;justify-content:space-between;gap:26px}
.brand{display:inline-flex;align-items:center;text-decoration:none;cursor:pointer}
.brand img{display:block;width:auto;height:auto;max-width:100%;transition:transform .25s ease,opacity .25s ease}
.brand:hover img,.brand:focus-visible img{transform:scale(1.02);opacity:.95}
.brand:focus-visible{outline:3px solid rgba(143,179,107,.45);outline-offset:6px;border-radius:12px}
.top-actions{display:flex;gap:12px;flex-wrap:wrap}
button,.ghost{
  border:0;border-radius:14px;background:linear-gradient(135deg,var(--primary),var(--primary-mid));
  color:#fff;padding:14px 24px;font-weight:700;font-size:16px;cursor:pointer;
  box-shadow:0 12px 26px rgba(55,86,35,.22)
}
.ghost{background:var(--soft);color:var(--primary);box-shadow:none;border:1px solid var(--line)}.danger-ghost{background:#fff5f1;color:#7a2e16;border-color:#efc8bb}
button:hover{filter:brightness(.97)}
.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.button-icon{width:20px;height:20px;display:inline-block;filter:brightness(0) saturate(100%) invert(28%) sepia(18%) saturate(1400%) hue-rotate(49deg) brightness(88%) contrast(88%)}
button:not(.ghost):not(.secondary) .button-icon{filter:brightness(0) invert(1)}
.hero{
  color:#fff;
  background:
    linear-gradient(90deg,rgba(44,69,28,.98),rgba(55,86,35,.92)),
    radial-gradient(circle at 82% 25%,rgba(143,179,107,.65),transparent 36%);
  padding:52px 0;
}
.hero-grid{display:grid;grid-template-columns:1fr 300px;gap:34px;align-items:center}
.eyebrow{margin:0 0 10px;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:#dff2d0}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(34px,5vw,60px);line-height:1.02;margin-bottom:14px}
.lead{font-size:19px;line-height:1.55;max-width:780px;margin:0}
.hero-summary{border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.14);border-radius:24px;padding:24px;backdrop-filter:blur(10px)}
.hero-summary span,.hero-summary small{display:block;color:#e8f5dd}
.hero-summary strong{display:block;font-size:34px;margin:8px 0}
.app{padding:30px 0 48px}
.stepper{display:grid;grid-template-columns:160px 1fr 160px 1fr 160px 1fr 160px;gap:12px;align-items:start;margin-bottom:28px}.stepper.five-step{grid-template-columns:145px 1fr 145px 1fr 145px 1fr 145px 1fr 145px}.stepper.six-step{grid-template-columns:120px 1fr 120px 1fr 120px 1fr 120px 1fr 120px 1fr 120px}
.step-item{text-align:center;color:var(--muted)}
.step-item span{width:44px;height:44px;margin:0 auto 9px;display:grid;place-items:center;border-radius:99px;background:#e7eedf;color:var(--text);font-weight:700;font-size:20px}
.step-item strong{display:block}
.step-item.active span,.step-item.done span{background:linear-gradient(135deg,var(--primary),var(--primary-mid));color:#fff;box-shadow:0 8px 20px rgba(55,86,35,.25)}
.step-item.active strong,.step-item.done strong{color:var(--primary)}
.step-line{height:2px;background:var(--line);margin-top:22px}
.layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.85fr);gap:22px}
.panel{background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}
.form-panel{padding:clamp(22px,3vw,34px)}
.panel-head{display:flex;gap:18px;align-items:center;margin-bottom:26px}
.badge{width:64px;height:64px;display:grid;place-items:center;border-radius:99px;background:linear-gradient(135deg,var(--primary),var(--primary-mid));color:#fff;font-size:30px;box-shadow:0 12px 26px rgba(55,86,35,.22)}
.step-icon-img{width:32px;height:32px;display:block;filter:brightness(0) invert(1)}
#stepKicker{margin:0 0 4px;color:var(--primary);text-transform:uppercase;letter-spacing:.06em;font-weight:700}
#stepTitle{margin:0;font-size:clamp(26px,3vw,34px)}
.step{display:none}.step.active{display:block}
.grid{display:grid;gap:20px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
label{display:grid;gap:8px;font-weight:700}
input,select{min-height:50px;width:100%;border:1px solid #cdddc1;border-radius:12px;padding:11px 13px;background:#fff;color:var(--text);font-size:16px}
input:focus,select:focus{outline:3px solid rgba(143,179,107,.35);border-color:var(--primary)}
.actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap;margin-top:28px}
.secondary{background:#f0f6ea;color:var(--primary);box-shadow:none;border:1px solid var(--line)}
.hidden{display:none}
.side-panel{padding:28px;background:linear-gradient(180deg,rgba(238,245,232,.96),rgba(255,255,255,.96))}
.side-panel h3{color:var(--primary);margin-bottom:16px}
.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff;margin-bottom:20px}
.mini-stats div{padding:18px 12px;text-align:center}.mini-stats div+div{border-left:1px solid var(--line)}
.mini-stats span{display:block;color:var(--muted);font-weight:700;font-size:13px;margin-bottom:8px}
.mini-stats strong{color:var(--primary);font-size:21px}
.tip-card{background:var(--primary);color:#fff;padding:18px;border-radius:18px;line-height:1.5;margin-top:16px}
.tip-card p{margin:8px 0 0}.tip-card.light{background:#fff;color:var(--text);border:1px solid var(--line)}
.results-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}
.result-card,.subpanel{border:1px solid var(--line);background:#fbfdf9;border-radius:18px;padding:18px}
.result-card span{display:block;color:var(--muted);font-weight:700;margin-bottom:8px}
.result-card strong{font-size:26px;color:var(--primary)}
.subpanel{margin-top:18px}.subpanel canvas,.subpanel svg{max-width:100%;height:auto}.step-note{background:var(--soft);border:1px solid var(--line);border-left:5px solid var(--primary);border-radius:16px;padding:16px 18px;line-height:1.5;color:var(--muted);margin-bottom:22px}.step-note strong{color:var(--primary)}
.household-tariff-note{margin-top:20px;margin-bottom:0}.household-tariff-note strong{display:block;margin-bottom:4px}
.municipality-warning{background:#fdeaea;border-color:#efb3b3;border-left-color:#d64545;color:#8f2f2f}.municipality-warning strong{color:#d64545}
.recommendations{margin:0;padding-left:20px}.recommendations li{margin:10px 0;line-height:1.45}
.footer{background:linear-gradient(90deg,var(--primary-dark),var(--primary));color:#fff;padding:26px 0;text-align:center}.footer p{margin:0}

.print-report{
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:22px;
}
.report-header{
  display:flex;
  align-items:center;
  gap:20px;
  padding-bottom:18px;
  margin-bottom:18px;
  border-bottom:1px solid var(--line);
}
.report-logo{
  width:auto;
  height:auto;
  max-width:220px;
}
.report-kicker{
  margin:0 0 5px;
  color:var(--primary);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:700;
  font-size:13px;
}
.report-header h3{
  margin:0 0 5px;
  font-size:26px;
  color:var(--primary);
}
.report-header p:last-child{
  margin:0;
  color:var(--muted);
}
.report-meta{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin-bottom:16px;
}
.report-meta div{
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px;
  background:#fbfdf9;
}
.report-meta span{
  display:block;
  color:var(--muted);
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
  margin-bottom:4px;
}
.report-meta strong{
  color:var(--text);
  font-size:14px;
}
.report-grid{
  display:grid;
  grid-template-columns:1.35fr .85fr;
  gap:16px;
  align-items:start;
}
.summary-table{
  width:100%;
  border-collapse:collapse;
  font-size:14px;
}
.summary-table th,
.summary-table td{
  text-align:left;
  padding:8px 6px;
  border-bottom:1px solid var(--line);
}
.summary-table th{
  color:var(--primary);
  font-size:12px;
  text-transform:uppercase;
}
.summary-table td:nth-child(2),
.summary-table td:nth-child(3),
.summary-table th:nth-child(2),
.summary-table th:nth-child(3){
  text-align:right;
}
.compact-panel{
  margin-top:18px;
}
.recommendations-panel{
  margin-top:16px;
}
.report-disclaimer{
  margin:14px 0 0;
  color:var(--muted);
  font-size:13px;
  line-height:1.4;
}


/* Version 4.0 Water Wise Score */
.score-card{
  display:grid;
  grid-template-columns:140px 1fr;
  gap:20px;
  align-items:center;
  background:linear-gradient(135deg,#f7faf3,#eef5e8);
  border:1px solid var(--line);
  border-left:6px solid var(--primary);
  border-radius:20px;
  padding:20px;
  margin:0 0 16px;
}
.score-circle{
  width:128px;
  height:128px;
  border-radius:50%;
  display:grid;
  place-items:center;
  align-content:center;
  background:#fff;
  border:8px solid var(--primary);
  box-shadow:0 14px 32px rgba(55,86,35,.16);
  color:var(--primary);
}
.score-circle strong{
  display:block;
  font-size:42px;
  line-height:1;
}
.score-circle span{
  display:block;
  font-weight:700;
  color:var(--muted);
}
.score-kicker{
  margin:0 0 4px;
  color:var(--primary);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:700;
  font-size:13px;
}
.score-content h3{
  margin:0 0 8px;
  font-size:30px;
  color:var(--primary);
}
.score-content p{
  margin-bottom:14px;
  color:var(--muted);
  line-height:1.45;
}
.score-bar{
  height:12px;
  background:#dfe9d7;
  border-radius:999px;
  overflow:hidden;
}
#scoreBarFill{
  width:0%;
  height:100%;
  background:linear-gradient(90deg,var(--primary),var(--primary-soft));
  border-radius:999px;
  transition:width .3s ease;
}


/* Version 4.1 score rating colours:
   Excellent = Blue, Good = Green, Average = Yellow, High Use = Orange, Critical = Red */
.score-card{
  --score-colour:#375623;
  --score-colour-soft:#eef5e8;
}
.score-card.score-excellent{
  --score-colour:#1f77b4;
  --score-colour-soft:#eaf4fb;
}
.score-card.score-good{
  --score-colour:#375623;
  --score-colour-soft:#eef5e8;
}
.score-card.score-average{
  --score-colour:#f2c94c;
  --score-colour-soft:#fff8dc;
}
.score-card.score-high-use{
  --score-colour:#f2994a;
  --score-colour-soft:#fff0e3;
}
.score-card.score-critical{
  --score-colour:#d64545;
  --score-colour-soft:#fdeaea;
}
.score-card{
  background:linear-gradient(135deg,#ffffff,var(--score-colour-soft));
  border-left-color:var(--score-colour);
}
.score-circle{
  border-color:var(--score-colour);
  color:var(--score-colour);
}
.score-kicker,
.score-content h3{
  color:var(--score-colour);
}
#scoreBarFill{
  background:linear-gradient(90deg,var(--score-colour),color-mix(in srgb,var(--score-colour) 70%,white));
}


/* Version 4.3 Household Benchmarking */
.benchmark-card{
  border:1px solid var(--line);
  border-radius:20px;
  background:#fff;
  padding:20px;
  margin:0 0 16px;
}
.benchmark-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px;
}
.benchmark-kicker{
  margin:0 0 4px;
  color:var(--primary);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:13px;
  font-weight:700;
}
.benchmark-header h3{
  margin:0;
  color:var(--primary);
  font-size:24px;
}
#benchmarkStatus{
  background:var(--soft);
  color:var(--primary);
  border:1px solid var(--line);
  border-radius:999px;
  padding:8px 12px;
  white-space:nowrap;
}
.benchmark-bars{
  display:grid;
  gap:12px;
}
.benchmark-row{
  display:grid;
  grid-template-columns:290px 1fr 150px;
  gap:12px;
  align-items:center;
}
.benchmark-label{
  font-weight:700;
  color:var(--text);
}
.benchmark-track{
  height:18px;
  border-radius:999px;
  background:#e7eedf;
  overflow:hidden;
}
.benchmark-fill{
  height:100%;
  width:0%;
  border-radius:999px;
  background:#1f77b4;
  transition:width .3s ease;
}
.un-fill{background:#1f77b4}
.target-fill{background:#375623}
.sa-fill{background:#f2c94c}
.household-fill{background:#08264a}
.municipal-fill{background:#f2994a}
.benchmark-row strong{
  font-size:14px;
  text-align:right;
  color:var(--muted);
}
.benchmark-insights{
  margin:16px 0 0;
  padding-left:20px;
  color:var(--text);
}
.benchmark-insights li{
  margin:6px 0;
  line-height:1.4;
}

@media(max-width:980px){.hero-grid,.layout,.report-grid{grid-template-columns:1fr}.report-meta{grid-template-columns:repeat(2,1fr)}.stepper,.stepper.five-step,.stepper.six-step{grid-template-columns:repeat(6,1fr)}.step-line{display:none}.side-panel{order:-1}}
@media(max-width:720px){.benchmark-header{flex-direction:column}.benchmark-row{grid-template-columns:1fr}.benchmark-row strong{text-align:left}.score-card{grid-template-columns:1fr}.score-circle{width:116px;height:116px}.topbar{align-items:flex-start;flex-direction:column;padding:18px 0}.brand img{max-width:260px}.grid.two,.results-grid,.mini-stats,.report-meta{grid-template-columns:1fr}.report-header{align-items:flex-start;flex-direction:column}.report-logo{max-width:240px}.mini-stats div+div{border-left:0;border-top:1px solid var(--line)}.stepper,.stepper.five-step,.stepper.six-step{grid-template-columns:1fr 1fr}.actions{justify-content:stretch}.actions button{flex:1 1 150px}}
@media print{
  @page{size:A4;margin:10mm}
  .topbar,.hero,.stepper,.actions,.side-panel,.footer{display:none!important}
  body{background:#fff;color:#000}
  .wrap{width:100%;margin:0}
  .layout{display:block}
  .panel{box-shadow:none;border:0}
  .form-panel{padding:0}
  .step{display:none!important}
  .step[data-step="6"]{display:block!important}
  .print-report{border:0;border-radius:0;padding:0}
  .report-header{padding-bottom:8px;margin-bottom:8px}
  .report-logo{max-width:150px}
  .report-header h3{font-size:20px}
  .report-meta{grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:8px}.score-card{grid-template-columns:90px 1fr;gap:10px;padding:9px;margin-bottom:8px}.score-circle{width:82px;height:82px;border-width:5px}.score-circle strong{font-size:26px}.score-content h3{font-size:17px;margin-bottom:3px}.score-content p{font-size:10px;margin-bottom:5px}.score-bar{height:7px}.benchmark-card{padding:8px;margin-bottom:8px}.benchmark-header{margin-bottom:6px}.benchmark-header h3{font-size:15px}.benchmark-kicker{font-size:10px}.benchmark-row{grid-template-columns:185px 1fr 105px;gap:6px}.benchmark-track{height:10px}.benchmark-label,.benchmark-row strong{font-size:10px}.benchmark-insights{font-size:10px;margin-top:6px}.benchmark-insights li{margin:2px 0}
  .report-meta div{padding:7px}
  .report-meta strong{font-size:11px}
  .results-grid{grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:8px}
  .result-card{padding:9px}
  .result-card strong{font-size:18px}
  .report-grid{grid-template-columns:1fr;gap:8px}
  .subpanel{padding:9px;margin-top:6px}
  .subpanel h3{font-size:15px;margin-bottom:6px}
  #usageChart{height:320px!important}
  .summary-table{font-size:11px}
  .summary-table th,.summary-table td{padding:4px}
  .recommendations{font-size:11px}
  .recommendations li{margin:4px 0}
  .report-disclaimer{font-size:10px;margin-top:6px}
}

/* Version 3.3 colour logo and full-width summary chart update */
.single-report-grid{
  grid-template-columns:1fr;
}
.full-width-chart{
  width:100%;
}
.full-width-chart canvas,
.full-width-chart svg{
  width:100%;
  max-width:100%;
}


/* Version 4.4 - Full width report on Step 5 */
.layout.results-layout{
  grid-template-columns:1fr;
}
.layout.results-layout .side-panel{
  display:none;
}


@media print{
  body.print-executive .site-header,
  body.print-executive .stepper,
  body.print-executive .executive-report-intro,
  body.print-executive .actions,
  body.print-executive .footer,
  body.print-executive .report-preview-note{
    display:none!important;
  }
  body.print-executive .wrap{
    width:100%!important;
    margin:0!important;
  }
  body.print-executive .form-panel,
  body.print-executive .panel,
  body.print-executive .report-preview-wrap{
    padding:0!important;
    border:0!important;
    box-shadow:none!important;
    background:#fff!important;
  }
  body.print-executive #executiveReportCanvas{
    width:100%!important;
    max-width:100%!important;
    box-shadow:none!important;
    border-radius:0!important;
  }
}


/* Version 5.2 - Final five-step dashboard layout */
.layout.results-layout{
  grid-template-columns:1fr;
}
.layout.results-layout .side-panel{
  display:none;
}


/* Version 5.3 - About page */
.top-link{
  display:inline-block;
  text-decoration:none;
}
.about-main{
  padding:38px 0 56px;
}
.about-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:24px;
  box-shadow:var(--shadow);
  padding:clamp(24px,4vw,42px);
  max-width:none;
  width:100%;
  margin:0;
}
.about-card h2{
  color:var(--primary);
  font-size:clamp(30px,4vw,44px);
  margin-bottom:16px;
}
.about-card h3{
  color:var(--primary);
  margin-top:30px;
  clear:both;
}
.about-card p,
.about-card li{
  color:var(--text);
  line-height:1.65;
  font-size:17px;
}
.about-card ul{
  padding-left:22px;
}

.about-calculator-art{
  float:left;
  width:25%;
  max-width:220px;
  min-width:150px;
  height:auto;
  margin:4px 22px 14px 0;
  border-radius:18px;
  box-shadow:0 4px 12px rgba(0,0,0,.08);
}
.about-note{
  background:var(--soft);
  border-left:6px solid var(--primary);
  border-radius:16px;
  padding:18px 20px;
  margin-top:24px;
  font-weight:700;
}
.about-actions{
  margin-top:28px;
}
.about-actions a{
  display:inline-block;
  text-decoration:none;
}

/* Version 7.0.0 baseline - Mutually exclusive hand-dishwashing methods */
.dish-method-group{
  grid-column:1 / -1;
  min-width:0;
  margin:0;
  padding:16px 18px 18px;
  border:2px solid var(--primary);
  border-radius:16px;
  background:#fbfdf9;
  transition:opacity .2s ease, border-color .2s ease, background-color .2s ease;
}
.dish-method-group legend{
  padding:0 8px;
}
.dish-method-choice{
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:10px;
  color:var(--primary-dark);
  cursor:pointer;
}
.dish-method-choice input[type="radio"]{
  width:20px;
  height:20px;
  margin:0;
  accent-color:var(--primary-dark);
}
.dish-method-fields{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
}
.dish-method-group.is-inactive{
  opacity:.58;
  border-color:var(--line);
  background:#f3f5f2;
}
.dish-or-row{
  grid-column:1 / -1;
  display:flex;
  justify-content:center;
  align-items:center;
  margin:-2px 0;
}
.dish-or-badge{
  display:inline-flex;
  justify-content:center;
  align-items:center;
  width:48px;
  height:48px;
  border-radius:50%;
  background:var(--primary-dark);
  color:#fff;
  font-size:15px;
  font-weight:800;
  letter-spacing:.04em;
  box-shadow:0 4px 10px rgba(0,63,38,.28);
}
@media(max-width:720px){
  .dish-method-fields{grid-template-columns:1fr}
}


/* Version 5.5 - Benchmark story layout */
.benchmark-story-bars{
  gap:18px;
}
.benchmark-item{
  border:1px solid var(--line);
  border-radius:16px;
  background:#fbfdf9;
  padding:14px 16px;
}
.benchmark-item .benchmark-row{
  margin-bottom:8px;
}
.benchmark-statement{
  margin:0;
  padding:9px 12px;
  border-radius:12px;
  font-weight:700;
  line-height:1.35;
  font-size:14px;
}
.statement-good{
  background:#eaf7ea;
  color:#17692b;
}
.statement-watch{
  background:#fff8dc;
  color:#755b00;
}
.statement-warning{
  background:#fff0e3;
  color:#8a4300;
}
.statement-critical{
  background:#fdeaea;
  color:#9a1f1f;
}
.statement-neutral{
  background:#eef6ff;
  color:#08264a;
}
@media(max-width:720px){
  .benchmark-item{
    padding:12px;
  }
  .benchmark-statement{
    font-size:13px;
  }
}
@media print{
  .benchmark-item{
    padding:6px!important;
    margin:0!important;
  }
  .benchmark-statement{
    padding:4px 6px!important;
    font-size:9px!important;
  }
}

/* Version 6.0 - Results Dashboard hierarchy update */
.results-step .score-card{
  padding:22px;
  margin-bottom:16px;
}
.results-step .dashboard-metrics-grid{
  margin-bottom:22px;
}
.results-step .result-card{
  min-height:104px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

@media(max-width:720px){
  .results-step .score-card{
    padding:18px;
  }
  .results-step .result-card{
    min-height:auto;
  }
}

@media print{
  .results-step .score-card{
    padding:10px!important;
    margin-bottom:8px!important;
  }
  .results-step .dashboard-metrics-grid{
    margin-bottom:8px!important;
  }
  .results-step .result-card{
    min-height:auto!important;
  }
}

/* Version 6.0 - Benchmark bar placement and status colour alignment */
.benchmark-item .benchmark-row{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  align-items:stretch;
  margin-bottom:8px;
}
.benchmark-title-line{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}
.benchmark-title-line strong{
  font-size:14px;
  text-align:right;
  color:var(--muted);
  white-space:nowrap;
}
.benchmark-item .benchmark-track{
  width:100%;
}
.benchmark-fill.fill-good{background:#17692b;}
.benchmark-fill.fill-watch{background:#755b00;}
.benchmark-fill.fill-warning{background:#8a4300;}
.benchmark-fill.fill-critical{background:#9a1f1f;}
.benchmark-fill.fill-neutral{background:#08264a;}

@media(max-width:720px){
  .benchmark-title-line{
    flex-direction:column;
    gap:4px;
  }
  .benchmark-title-line strong{
    text-align:left;
  }
}

@media print{
  .benchmark-item .benchmark-row{
    grid-template-columns:1fr!important;
    gap:3px!important;
  }
  .benchmark-title-line{
    gap:6px!important;
  }
  .benchmark-title-line strong{
    font-size:9px!important;
  }
}

/* Version 6.0 - Print-safe SVG benchmarking bars */
.benchmark-svg{
  display:block;
  width:100%;
  height:100%;
}
.benchmark-bg{
  fill:#e7eedf;
  stroke:none;
}
.benchmark-fill-svg{
  fill:#1f77b4;
  stroke:none;
}
.benchmark-fill-svg.un-fill{fill:#1f77b4;}
.benchmark-fill-svg.target-fill{fill:#375623;}
.benchmark-fill-svg.sa-fill{fill:#f2c94c;}
.benchmark-fill-svg.fill-good{fill:#17692b;}
.benchmark-fill-svg.fill-watch{fill:#755b00;}
.benchmark-fill-svg.fill-warning{fill:#8a4300;}
.benchmark-fill-svg.fill-critical{fill:#9a1f1f;}
.benchmark-fill-svg.fill-neutral{fill:#08264a;}
.sa-flag-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:1.45em;
  height:1em;
  margin-right:0.18em;
  vertical-align:-0.1em;
}
.sa-flag-svg{
  display:block;
  width:100%;
  height:100%;
  box-shadow:0 0 0 1px rgba(0,0,0,.12);
}
@media print{
  *{
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
  .benchmark-svg, .benchmark-bg, .benchmark-fill-svg{
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
}


/* Version 6.0 - Typography and styling refinement */
h1{
  font-weight:700;
  letter-spacing:-0.035em;
}
h2,
h3,
#stepTitle,
.score-content h3,
.benchmark-header h3,
.about-card h2,
.about-card h3,
.subpanel h3,
.side-panel h3{
  font-weight:600;
  letter-spacing:-0.02em;
}
button,
.ghost,
label,
.step-item strong,
.result-card span,
.mini-stats span,
.benchmark-label,
.benchmark-statement,
.about-note{
  font-weight:600;
}
.result-card strong,
.mini-stats strong,
.score-circle strong,
.hero-summary strong{
  font-weight:700;
  letter-spacing:-0.025em;
}
.panel,
.about-card,
.hero-summary,
.print-report,
.score-card,
.benchmark-card,
.benchmark-item,
.result-card,
.subpanel,
.tip-card,
.step-note,
.report-meta div{
  border-radius:var(--radius-card);
  box-shadow:var(--shadow);
}
button,
.ghost,
input,
select,
.benchmark-statement,
.about-note{
  border-radius:var(--radius-control);
}
.score-circle,
.badge,
.step-item span{
  box-shadow:0 4px 12px rgba(0,0,0,.08);
}
.footer p{
  font-size:14px;
  font-weight:400;
  letter-spacing:.01em;
}
@media print{
  body{
    font-family:"Inter","Aptos","Segoe UI",Roboto,Arial,sans-serif!important;
    -webkit-font-smoothing:antialiased;
    print-color-adjust:exact!important;
  }
}


/* Version 6.1 - Clickable Water Wise logo and square benchmark bar refinement */
.benchmark-bg,.benchmark-fill-svg{rx:0;ry:0;shape-rendering:crispEdges;}


/* Version 6.3 artwork folder support */
.sa-flag-icon{
  display:inline-block;
  width:24px;
  height:16px;
  object-fit:cover;
  vertical-align:-3px;
  margin-right:6px;
  border-radius:2px;
  box-shadow:0 0 0 1px rgba(0,0,0,.08);
}

/* Phosphor icon integration */
.inline-icon,.benchmark-icon,.score-rating-icon{display:inline-block;vertical-align:-0.18em;object-fit:contain}
.benchmark-icon{width:20px;height:20px;margin-right:6px;filter:brightness(0) saturate(100%) invert(28%) sepia(18%) saturate(1400%) hue-rotate(49deg) brightness(88%) contrast(88%)}
.score-rating-icon{width:24px;height:24px;margin-right:6px;filter:brightness(0) saturate(100%) invert(28%) sepia(18%) saturate(1400%) hue-rotate(49deg) brightness(88%) contrast(88%)}

/* Version 6.3 - About page calculator artwork */
@media(max-width:720px){
  .about-calculator-art{
    float:none;
    display:block;
    width:48%;
    min-width:150px;
    max-width:200px;
    margin:0 auto 18px;
  }
}
@media print{
  .about-calculator-art{
    width:25%!important;
    max-width:180px!important;
    box-shadow:none!important;
  }
}


/* Version 6.5.6 responsive SVG usage-composition doughnut chart */
.usage-chart{display:block;width:100%;min-height:520px;position:relative;}
.usage-chart svg{display:block;width:100%;height:auto;overflow:visible;font-family:Inter,Arial,sans-serif;}
.usage-chart .usage-slice{transition:opacity .18s ease,transform .18s ease;transform-box:fill-box;transform-origin:center;}
.usage-chart .usage-slice:hover,.usage-chart .usage-slice:focus{opacity:.86;outline:none;}
.usage-chart .usage-label-name{font-size:14px;font-weight:600;fill:#17220f;}
.usage-chart .usage-label-value{font-size:13px;fill:#5f6b57;}
.usage-chart .usage-centre-caption{font-size:14px;fill:#5f6b57;}
.usage-chart .usage-centre-value{font-size:25px;font-weight:700;fill:#17220f;}
.usage-chart .usage-mobile-legend-name{font-size:13px;fill:#17220f;}
.usage-chart .usage-mobile-legend-value{font-size:13px;fill:#5f6b57;}
.usage-chart .usage-empty{font-size:18px;fill:#5f6b57;}
@media(max-width:760px){.usage-chart{min-height:560px;}.usage-chart .usage-external-labels{display:none;}}
@media(min-width:761px){.usage-chart .usage-mobile-legend{display:none;}}
@media print{.usage-chart{min-height:520px!important;page-break-inside:avoid;}.usage-chart svg{max-width:100%!important;}.usage-chart .usage-mobile-legend{display:none!important;}.usage-chart .usage-external-labels{display:block!important;}}

/* Version 6.5.6 Results Dashboard header alignment */
.report-header{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  column-gap:28px;
}
.report-heading{
  min-width:0;
  text-align:left;
}
.report-logo{
  justify-self:end;
  max-width:220px;
}
@media(max-width:720px){
  .report-header{
    grid-template-columns:minmax(0,1fr) auto;
    align-items:start;
    column-gap:16px;
  }
  .report-logo{
    max-width:150px;
  }
  .report-header h3{
    font-size:22px;
  }
}
@media(max-width:520px){
  .report-header{
    grid-template-columns:1fr;
  }
  .report-logo{
    justify-self:end;
    max-width:170px;
  }
}
@media print{
  .report-header{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
  }
  .report-logo{
    justify-self:end!important;
    max-width:150px!important;
  }
}

/* Version 6.5.8 - Dedicated one-page A4 landscape PDF report */
@media print{
  @page{
    size:A4 landscape;
    margin:7mm;
  }

  html,body{
    width:100%;
    min-width:0!important;
    height:auto;
    margin:0!important;
    padding:0!important;
    background:#fff!important;
  }

  body{
    font-size:8.5pt!important;
  }

  .topbar,.hero,.stepper,.actions,.side-panel,.footer{
    display:none!important;
  }

  .wrap,.layout,.panel,.form-panel,.step.results-step{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    box-shadow:none!important;
    background:#fff!important;
  }

  .step{display:none!important;}
  .step[data-step="6"]{display:block!important;}

  .print-report{
    display:grid!important;
    grid-template-columns:minmax(0, .95fr) minmax(0, 1.25fr);
    grid-template-areas:
      "header header"
      "meta meta"
      "score metrics"
      "chart benchmark"
      "recommendations recommendations"
      "disclaimer disclaimer";
    column-gap:5mm;
    row-gap:2.2mm;
    width:100%!important;
    min-height:0!important;
    padding:0!important;
    margin:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    overflow:visible!important;
  }

  .report-header{
    grid-area:header;
    min-height:13mm;
    padding:0 0 2mm!important;
    margin:0!important;
    border-bottom:1px solid #cfd8c8;
  }
  .report-kicker{font-size:7.5pt!important;margin:0 0 .7mm!important;}
  .report-header h3{font-size:16pt!important;line-height:1.05!important;margin:0 0 .8mm!important;}
  .report-header #reportDate{font-size:7.5pt!important;margin:0!important;}
  .report-logo{max-width:39mm!important;max-height:13mm!important;width:auto!important;height:auto!important;}

  .report-meta{
    grid-area:meta;
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:2mm!important;
    margin:0!important;
  }
  .report-meta div{
    min-height:10mm!important;
    padding:1.5mm 2mm!important;
    border-radius:2mm!important;
    box-shadow:none!important;
  }
  .report-meta span{font-size:6.5pt!important;line-height:1!important;}
  .report-meta strong{font-size:8pt!important;line-height:1.15!important;}

  .score-card{
    grid-area:score;
    display:grid!important;
    grid-template-columns:22mm minmax(0,1fr)!important;
    gap:2.5mm!important;
    min-height:25mm!important;
    padding:2mm!important;
    margin:0!important;
    border-radius:2.5mm!important;
    box-shadow:none!important;
    break-inside:avoid!important;
  }
  .score-circle{width:20mm!important;height:20mm!important;border-width:1.3mm!important;}
  .score-circle strong{font-size:18pt!important;}
  .score-circle span{font-size:7pt!important;}
  .score-content{align-self:center;}
  .score-kicker{font-size:6.5pt!important;margin:0 0 .5mm!important;}
  .score-content h3{font-size:11pt!important;line-height:1.05!important;margin:0 0 .7mm!important;}
  .score-content p{font-size:7pt!important;line-height:1.18!important;margin:0 0 1mm!important;}
  .score-bar{height:1.7mm!important;}

  .results-grid{
    grid-area:metrics;
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:2mm!important;
    margin:0!important;
    align-self:stretch;
  }
  .result-card{
    min-height:25mm!important;
    padding:2mm 1.6mm!important;
    margin:0!important;
    border-radius:2.5mm!important;
    box-shadow:none!important;
  }
  .result-card span{font-size:6.5pt!important;line-height:1.12!important;}
  .result-card strong{font-size:12pt!important;line-height:1.05!important;margin-top:1mm!important;}

  .report-grid.single-report-grid{
    grid-area:chart;
    display:block!important;
    margin:0!important;
    min-width:0!important;
  }
  .full-width-chart{
    height:91mm!important;
    min-height:91mm!important;
    margin:0!important;
    padding:2mm!important;
    border-radius:2.5mm!important;
    box-shadow:none!important;
    overflow:hidden!important;
    break-inside:avoid!important;
  }
  .full-width-chart h3{font-size:10pt!important;margin:0 0 1mm!important;}
  .usage-chart{
    width:100%!important;
    height:82mm!important;
    min-height:0!important;
    overflow:hidden!important;
  }
  .usage-chart svg{
    width:100%!important;
    height:100%!important;
    max-width:none!important;
    overflow:visible!important;
  }
  .usage-chart .usage-label-name{font-size:10px!important;}
  .usage-chart .usage-label-value{font-size:9px!important;}
  .usage-chart .usage-centre-caption{font-size:10px!important;}
  .usage-chart .usage-centre-value{font-size:18px!important;}
  .usage-chart .usage-mobile-legend{display:none!important;}
  .usage-chart .usage-external-labels{display:block!important;}

  .benchmark-card{
    grid-area:benchmark;
    height:91mm!important;
    min-height:91mm!important;
    margin:0!important;
    padding:2mm!important;
    border-radius:2.5mm!important;
    box-shadow:none!important;
    overflow:hidden!important;
    break-inside:avoid!important;
  }
  .benchmark-header{margin:0 0 1mm!important;}
  .benchmark-kicker{font-size:6.5pt!important;margin:0 0 .4mm!important;}
  .benchmark-header h3{font-size:10pt!important;margin:0!important;}
  .benchmark-story-bars{display:grid!important;gap:1.5mm!important;}
  .benchmark-item{padding:1.5mm!important;margin:0!important;border-radius:2mm!important;box-shadow:none!important;}
  .benchmark-item .benchmark-row{gap:.8mm!important;margin:0 0 .7mm!important;}
  .benchmark-title-line{gap:2mm!important;align-items:center!important;}
  .benchmark-label,.benchmark-title-line strong{font-size:7pt!important;line-height:1.1!important;}
  .benchmark-icon{width:3.4mm!important;height:3.4mm!important;margin-right:1mm!important;}
  .sa-flag-icon{width:4mm!important;height:2.7mm!important;margin-right:1mm!important;}
  .benchmark-track{height:2.5mm!important;}
  .benchmark-statement{padding:1mm 1.4mm!important;font-size:6.7pt!important;line-height:1.15!important;border-radius:1.5mm!important;}

  .recommendations-panel{
    grid-area:recommendations;
    min-height:24mm!important;
    margin:0!important;
    padding:2mm!important;
    border-radius:2.5mm!important;
    box-shadow:none!important;
    break-inside:avoid!important;
  }
  .recommendations-panel h3{font-size:9pt!important;margin:0 0 1mm!important;}
  .recommendations{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    column-gap:4mm!important;
    row-gap:.7mm!important;
    margin:0!important;
    padding-left:4mm!important;
    font-size:6.8pt!important;
    line-height:1.15!important;
  }
  .recommendations li{margin:0!important;break-inside:avoid!important;}

  .report-disclaimer{
    grid-area:disclaimer;
    margin:0!important;
    padding-top:1mm!important;
    border-top:1px solid #d8dfd3;
    font-size:6pt!important;
    line-height:1.12!important;
  }

  /* Keep the chart and comparison columns together on one landscape page. */
  .print-report,.report-header,.report-meta,.score-card,.results-grid,
  .benchmark-card,.report-grid,.recommendations-panel,.report-disclaimer{
    page-break-inside:avoid!important;
    break-inside:avoid!important;
  }
}

/* Version 6.5.8 - Responsive ranked horizontal water-use chart */
.usage-chart{
  display:block;
  width:100%;
  min-height:430px;
  position:relative;
}
.usage-chart svg{
  display:block;
  width:100%;
  height:auto;
  overflow:visible;
  font-family:Inter,Arial,sans-serif;
}
.usage-chart .usage-bar-row{outline:none;}
.usage-chart .usage-bar-fill{
  transition:opacity .18s ease,filter .18s ease;
}
.usage-chart .usage-bar-row:hover .usage-bar-fill,
.usage-chart .usage-bar-row:focus .usage-bar-fill{
  opacity:.82;
  filter:brightness(.96);
}
.usage-chart .usage-bar-label{
  font-size:16px;
  font-weight:700;
  fill:#17220f;
}
.usage-chart .usage-bar-value{
  font-size:15px;
  font-weight:700;
  fill:#17220f;
}
.usage-chart .usage-bar-track{fill:#edf1e9;}
.usage-chart .usage-total-divider{stroke:#d4ddcd;stroke-width:1.5;}
.usage-chart .usage-total-label{
  font-size:14px;
  font-weight:700;
  fill:#66715f;
}
.usage-chart .usage-total-value{
  font-size:19px;
  font-weight:700;
  fill:#17220f;
}
.usage-chart .usage-empty{font-size:18px;fill:#5f6b57;}
@media(max-width:760px){
  .usage-chart{min-height:390px;}
  .usage-chart .usage-bar-label{font-size:15px;}
  .usage-chart .usage-bar-value{font-size:14px;}
}

/* Version 6.5.8 - Approved one-page landscape report refinements */
@media print{
  /* Prevent any non-report Step 5 content from generating a leading page. */
  .step.results-step{
    position:static!important;
    transform:none!important;
    page-break-before:avoid!important;
    break-before:avoid-page!important;
  }
  .step.results-step > :not(.print-report):not(.actions){display:none!important;}
  .print-report{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    page-break-before:avoid!important;
    break-before:avoid-page!important;
  }

  .result-card span{
    font-size:7.4pt!important;
    font-weight:700!important;
  }
  .result-card strong{
    font-size:13.5pt!important;
  }

  .usage-chart{
    height:78mm!important;
    min-height:0!important;
  }
  .usage-chart .usage-bar-label{font-size:12px!important;}
  .usage-chart .usage-bar-value{font-size:11px!important;}
  .usage-chart .usage-total-label{font-size:10px!important;}
  .usage-chart .usage-total-value{font-size:14px!important;}

  .benchmark-story-bars{
    display:grid!important;
    grid-template-rows:repeat(3,minmax(0,1fr))!important;
    height:72mm!important;
    align-content:stretch!important;
    gap:3.2mm!important;
  }
  .benchmark-item{
    height:auto!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
  }

  .recommendations-panel{
    min-height:29mm!important;
    padding:2.5mm 3mm!important;
  }
  .recommendations-panel h3{
    font-size:11.5pt!important;
    margin:0 0 2mm!important;
  }
  .recommendations{
    counter-reset:waterwise-recommendation;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    column-gap:5mm!important;
    margin:0!important;
    padding:0!important;
    list-style:none!important;
    font-size:8.8pt!important;
    line-height:1.28!important;
  }
  .recommendations li{
    counter-increment:waterwise-recommendation;
    position:relative;
    padding-left:9mm!important;
  }
  .recommendations li::before{
    content:counter(waterwise-recommendation);
    position:absolute;
    left:0;
    top:-.3mm;
    width:6mm;
    height:6mm;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#375623;
    color:#fff;
    font-size:8pt;
    font-weight:700;
  }
  .recommendations li:nth-child(n+4){display:none!important;}
}

/* Version 6.5.10 - PDF-only header removal and chart typography */
@media print{
  /* The PDF is a standalone report: suppress the application step heading and
     the redundant report kicker, while retaining the on-screen Step 5 header. */
  .panel-head,
  .report-kicker{
    display:none!important;
  }

  .report-header{
    min-height:11mm!important;
  }

  /* Improve print readability of category names, percentages and monthly kL. */
  .usage-chart .usage-bar-label{
    font-size:14px!important;
    font-weight:700!important;
  }
  .usage-chart .usage-bar-value{
    font-size:13px!important;
    font-weight:700!important;
  }
  .usage-chart .usage-total-label{
    font-size:12px!important;
  }
  .usage-chart .usage-total-value{
    font-size:16px!important;
  }
}
