:root{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#17202a;
  background:#f3f6f7;
  font-synthesis:none;
  --ink:#17202a;
  --muted:#68797c;
  --line:#dce6e7;
  --brand:#123136;
  --brand-2:#14795f;
  --brand-soft:#e8f6f1;
  --danger:#a93939;
  --danger-soft:#ffe8e8;
  --warning:#8a6516;
  --warning-soft:#fff5dd;
}
*{box-sizing:border-box}
body{margin:0;background:#f3f6f7}
button,input,select{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.45}
#app{min-height:100vh}

.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:20px max(22px,calc((100vw - 1180px)/2));
  background:var(--brand);
  color:#fff;
}
.brand{display:flex;align-items:center;gap:12px}
.brand-mark{width:42px;height:42px;border-radius:12px;background:#1b846a;display:grid;place-items:center;font-weight:900;letter-spacing:.03em}
.topbar h1{margin:1px 0 0;font-size:24px;line-height:1.05}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:900;color:#76cdb3}
.secondary,.ghost,.primary,.seg,.day,.occupation,.text-btn{border:1px solid #cbd9da;border-radius:10px;background:#fff;color:#2c4245;padding:9px 12px}
.secondary{background:transparent;color:#fff;border-color:#66878b}
.secondary.dark{color:#30484b;border-color:#b7c7c9}
.primary{background:var(--brand-2);border-color:var(--brand-2);color:#fff;font-weight:800}
.ghost{background:#fff}
.text-btn{border:0;background:transparent;padding:5px 8px}
.danger{color:var(--danger)}

.sticky-summary{
  position:sticky;top:0;z-index:20;
  max-width:1180px;margin:0 auto;
  display:grid;grid-template-columns:repeat(4,1fr);
  background:#fff;border:1px solid var(--line);border-top:0;border-radius:0 0 14px 14px;
  box-shadow:0 8px 22px rgba(15,50,54,.08);
}
.sticky-summary span{padding:10px 18px;border-right:1px solid #edf2f2}
.sticky-summary span:last-child{border-right:0}
.sticky-summary b,.sticky-summary small{display:block}
.sticky-summary b{font-size:16px}
.sticky-summary small{font-size:11px;color:#7b8a8c}
.sticky-summary .accent b{color:var(--brand-2)}

.shell{max-width:1180px;margin:20px auto 0;padding:0 18px 48px}
.progress{display:grid;grid-template-columns:repeat(10,1fr);gap:7px;margin:0 0 14px}
.progress-step{border:0;background:transparent;padding:0;color:#738386;text-align:center;min-width:0}
.progress-step>span{width:28px;height:28px;margin:0 auto 5px;border:1px solid #cddadb;border-radius:50%;display:grid;place-items:center;background:#fff;font-size:12px;font-weight:800}
.progress-step small{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.progress-step.current>span{background:var(--brand-2);border-color:var(--brand-2);color:#fff}
.progress-step.current small{color:#0f684f;font-weight:800}
.progress-step.done>span{background:var(--brand-soft);border-color:#86cbb7;color:#0f684f}

.wizard-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:0 12px 36px rgba(23,49,53,.06)}
.step-heading{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start;margin-bottom:24px}
.step-heading.with-action{grid-template-columns:44px 1fr auto}
.step-number{width:38px;height:38px;border-radius:11px;background:var(--brand-soft);color:var(--brand-2);display:grid;place-items:center;font-weight:900}
.step-heading h2{margin:2px 0 6px;font-size:27px;line-height:1.1}
.step-heading p{margin:0;color:var(--muted);max-width:790px}

.choice-block,.section-gap{margin-top:18px}
.small-label,label{font-size:13px;font-weight:800;color:#526467}
.small-label{display:block;margin-bottom:7px}
.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.form-grid.two{grid-template-columns:repeat(2,1fr)}
.wide{grid-column:span 2}
label{display:grid;gap:6px}
label small{font-weight:500;color:#7c8b8e}
input,select{width:100%;padding:11px 12px;border:1px solid #cad7d8;border-radius:10px;background:#fff;color:var(--ink)}
input:focus,select:focus{outline:2px solid #8fd2bf;border-color:var(--brand-2)}
.height-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.inline-field{max-width:320px;margin-top:16px}
.field-help{margin-top:6px;color:#718184;font-size:12px}

.segmented{display:flex;flex-wrap:wrap;gap:8px}
.seg.active,.day.active,.occupation.active{border-color:var(--brand-2);background:var(--brand-soft);color:#0d674f}
.days{display:flex;gap:7px;flex-wrap:wrap}
.day{min-width:49px}

.stats-row,.activity-result,.calorie-comparison,.macro-math,.prescription-macros{display:grid;gap:10px}
.stats-row{grid-template-columns:repeat(3,1fr);margin-top:18px}
.stats-row span,.activity-result span,.calorie-comparison span,.macro-math span{background:#f5f8f8;border-radius:12px;padding:13px}
.stats-row small,.stats-row b,.activity-result small,.activity-result b,.calorie-comparison small,.calorie-comparison b,.macro-math small,.macro-math b{display:block}
.stats-row small,.activity-result small,.calorie-comparison small,.macro-math small{font-size:11px;color:#768789}
.stats-row b,.activity-result b,.calorie-comparison b,.macro-math b{font-size:18px;color:#1d3033;margin-top:2px}

.hero-result{margin-top:20px;padding:24px;border-radius:15px;background:var(--brand-soft)}
.hero-result small,.hero-result strong,.hero-result p{display:block}
.hero-result small{color:#55736c;font-weight:700}
.hero-result strong{font-size:38px;color:#0c6049;margin:3px 0}
.hero-result strong span{font-size:17px;color:#2c7462}
.hero-result p{margin:0;color:#667d78}
.macro-hero{max-width:620px}

.notice,.source-note{margin-top:16px;padding:13px 15px;border-radius:12px;background:#f3f7f7;color:#607174}
.source-note{font-size:12px}

.occupation-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.occupation{min-height:164px;text-align:left;padding:13px}
.occupation b,.occupation span,.occupation small{display:block}
.occupation b{font-size:14px}
.occupation span{font-size:12px;color:#596b6e;margin:6px 0}
.occupation small{font-size:10px;color:#859396;line-height:1.4}

.activities{display:grid;gap:14px}
.activity-card{border:1px solid #d9e4e5;border-radius:15px;padding:16px}
.activity-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.activity-head strong,.activity-head small{display:block}
.activity-head small{margin-top:3px;color:#7a898c}
.activity-result{grid-template-columns:repeat(3,1fr);margin-top:13px}
.activity-result .accent-result{background:var(--brand-soft)}
.empty-state{text-align:center;padding:38px 20px;border:1px dashed #cddadb;border-radius:14px;background:#fafcfc}
.empty-state strong{display:block;font-size:18px}
.empty-state p{color:#6f8082;margin:6px 0 15px}

.tdee-equation{display:grid;grid-template-columns:1.2fr auto 1.4fr auto 1.2fr auto 1.2fr;gap:9px;align-items:center}
.tdee-equation>div:not(.operator){background:#f5f8f8;padding:15px;border-radius:12px;text-align:center}
.tdee-equation small,.tdee-equation b,.tdee-equation span{display:block}
.tdee-equation small{color:#738486;font-size:11px}
.tdee-equation b{font-size:21px;margin:2px 0}
.tdee-equation span{font-size:11px;color:#809092}
.operator{text-align:center;font-weight:900;color:#718183}
.daily-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:10px}
.daily-grid div{padding:11px 8px;background:#f6f9f9;border-radius:10px;text-align:center}
.daily-grid small,.daily-grid b,.daily-grid span{display:block}
.daily-grid b{font-size:18px;margin:2px 0 5px}
.daily-grid span{font-size:10px;color:#7a898c}
h3{margin:22px 0 8px}

.goal-controls,.gain-presets,.manual-fat{display:flex;align-items:end;gap:15px;flex-wrap:wrap;margin-top:18px}
.goal-controls label,.gain-presets label,.manual-fat label{min-width:190px}
.calorie-comparison{grid-template-columns:repeat(3,1fr);margin-top:22px}
.calorie-comparison .target,.macro-math .target{background:var(--brand-soft)}
.alert{display:grid;gap:3px;margin-top:15px;padding:13px 15px;border-radius:12px}
.alert span{font-size:12px}
.warning-alert{background:var(--warning-soft);color:var(--warning)}
.danger-alert{background:var(--danger-soft);color:var(--danger)}

.macro-math{grid-template-columns:repeat(4,1fr);margin-top:20px}

.prescription{display:grid;grid-template-columns:1.5fr .8fr 1.4fr;gap:16px;align-items:center;padding:24px;border-radius:16px;background:var(--brand);color:#fff}
.prescription-client h3{margin:3px 0 4px;font-size:24px}
.prescription-client p{margin:2px 0;color:#c5d5d7;font-size:13px}
.prescription-calories{text-align:center}
.prescription-calories small,.prescription-calories strong,.prescription-calories span{display:block}
.prescription-calories strong{font-size:46px;color:#8dd8c2;line-height:1}
.prescription-calories span{font-size:12px;color:#c5d5d7}
.prescription-macros{grid-template-columns:repeat(3,1fr)}
.prescription-macros span{text-align:center;padding:10px;border-left:1px solid #365256}
.prescription-macros b,.prescription-macros small{display:block}
.prescription-macros b{font-size:25px}
.prescription-macros small{font-size:11px;color:#c5d5d7}
.calculation-details{margin-top:18px;border:1px solid var(--line);border-radius:13px;padding:13px 15px}
.calculation-details summary{cursor:pointer;font-weight:800;color:#345257}
.calculation-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}
.calculation-grid span{background:#f5f8f8;padding:12px;border-radius:10px}
.calculation-grid small,.calculation-grid b,.calculation-grid em{display:block}
.calculation-grid small{color:#758587;font-size:11px}
.calculation-grid b{font-size:17px}
.calculation-grid em{font-size:10px;color:#849294;font-style:normal}
.result-actions{display:flex;gap:10px;margin-top:17px}

.wizard-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin-top:28px;padding-top:18px;border-top:1px solid #e8eeee}
.wizard-nav #back{justify-self:start}
.wizard-nav #next{justify-self:end}
.step-count{font-size:12px;color:#829092}

@media(max-width:980px){
  .occupation-grid{grid-template-columns:repeat(2,1fr)}
  .tdee-equation{grid-template-columns:1fr 1fr}
  .tdee-equation .operator{display:none}
  .daily-grid{grid-template-columns:repeat(4,1fr)}
  .progress{grid-template-columns:repeat(5,1fr)}
  .prescription{grid-template-columns:1fr 1fr}
  .prescription-macros{grid-column:1/-1}
  .prescription-macros span:first-child{border-left:0}
}

@media(max-width:700px){
  .topbar{align-items:flex-start;padding:17px 16px}
  .topbar h1{font-size:20px}
  .brand-mark{display:none}
  .sticky-summary{position:static;grid-template-columns:1fr 1fr;border-radius:0}
  .sticky-summary span:nth-child(2){border-right:0}
  .shell{padding:0 10px 28px;margin-top:12px}
  .progress{display:flex;overflow:auto;padding-bottom:4px}
  .progress-step{min-width:56px}
  .wizard-card{padding:18px}
  .step-heading,.step-heading.with-action{grid-template-columns:36px 1fr}
  .step-heading.with-action .primary{grid-column:2;justify-self:start}
  .step-heading h2{font-size:23px}
  .form-grid,.form-grid.two,.stats-row,.activity-result,.daily-grid,.calorie-comparison,.macro-math,.calculation-grid{grid-template-columns:1fr}
  .wide{grid-column:auto}
  .occupation-grid{grid-template-columns:1fr}
  .occupation{min-height:0}
  .tdee-equation{grid-template-columns:1fr}
  .prescription{grid-template-columns:1fr;text-align:center}
  .prescription-macros{grid-template-columns:repeat(3,1fr)}
  .prescription-macros span:first-child{border-left:0}
  .wizard-nav{grid-template-columns:1fr 1fr}
  .step-count{display:none}
  .result-actions{flex-direction:column}
}

@media print{
  body{background:#fff}
  .topbar,.sticky-summary,.progress,.wizard-nav,#resetTop,.result-actions,.calculation-details{display:none!important}
  .shell{max-width:none;margin:0;padding:0}
  .wizard-card{border:0;box-shadow:none;padding:0}
  .step-heading{display:none}
  .prescription{color:#111;background:#fff;border:1px solid #ddd}
  .prescription-calories strong{color:#111}
  .prescription-client p,.prescription-calories span,.prescription-macros small{color:#444}
}