/* BMITDEE V3.1.0 Foundation
   Shared responsive shell, unified navigation/footer, width system,
   mobile controls, focus behavior, and accessibility primitives. */
:root{
  --site-max-width:1120px;
  --reading-max-width:780px;
  --form-max-width:720px;
  --page-gutter:clamp(16px,3vw,32px);
  --header-height:68px;
  --surface:#fff;
  --surface-soft:#f6f9fc;
  --surface-blue:#f3f8fd;
  --ink:#1c2a36;
  --muted:#566979;
  --navy-950:#1e3142;
  --navy-900:#263b4e;
  --blue-700:#0052a3;
  --blue-600:#006dcc;
  --blue-100:#e9f3fd;
  --line:#d8e4ee;
  --line-strong:#c5d5e2;
  --success:#166534;
  --danger:#b42318;
  --focus:#f4b400;
  --radius-sm:8px;
  --radius-md:12px;
  --radius-lg:16px;
  --shadow-sm:0 4px 14px rgba(27,48,66,.07);
  --shadow-lg:0 18px 45px rgba(20,43,63,.16);
}

html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 18px)}
body{
  min-width:320px;
  background:#f3f6f9;
  color:var(--ink);
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:15px;
  line-height:1.58;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
body.nav-open{overflow:hidden}
img,svg,canvas,video{max-width:100%}
a{text-underline-offset:3px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{
  outline:3px solid var(--focus)!important;
  outline-offset:3px!important;
  box-shadow:none!important;
}
button,input,select,textarea{font-family:inherit}
button{touch-action:manipulation}

.skip-link{
  position:fixed;
  z-index:3000;
  top:10px;
  left:12px;
  left:max(12px,env(safe-area-inset-left));
  transform:translateY(-160%);
  background:#fff;
  color:#123a5d;
  border:2px solid var(--focus);
  border-radius:8px;
  padding:10px 14px;
  font-weight:800;
  box-shadow:var(--shadow-lg);
}
.skip-link:focus{transform:none}
.sr-only,.visually-hidden{
  position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;
  overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important
}

/* Shared site shell */
.site-container,
.topbar-inner,
.main-wrap,
.seo-content-wrap,
.content-wrap,
.footer-inner{
  width:calc(100% - (2 * var(--page-gutter)))!important;
  max-width:var(--site-max-width)!important;
  margin-inline:auto!important;
  box-sizing:border-box!important;
}
main{display:block;padding:0;background:transparent}
.main-wrap{
  min-height:0!important;
  padding:0 0 56px!important;
  background:transparent!important;
}
.main-wrap:first-child{padding-top:24px!important}
.seo-content-wrap,.content-wrap{
  padding:0 0 56px!important;
  background:transparent!important;
}

/* Header + unified information architecture */
.topbar{
  position:sticky;
  top:0;
  z-index:1000;
  min-height:var(--header-height);
  background:var(--navy-900);
  color:#fff;
  box-shadow:0 1px 0 rgba(255,255,255,.08),0 6px 20px rgba(16,35,50,.12);
}
.topbar-inner{
  min-height:var(--header-height)!important;
  height:auto!important;
  padding-left:0!important;
  padding-right:0!important;
  padding-left:max(0px,env(safe-area-inset-left))!important;
  padding-right:max(0px,env(safe-area-inset-right))!important;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.brand,.footer-brand{
  flex:0 0 auto;
  color:#fff!important;
  font-size:20px!important;
  font-weight:850!important;
  letter-spacing:-.02em!important;
  text-decoration:none!important;
  white-space:nowrap;
}
.brand span,.footer-brand span{font-weight:500!important;color:#a8d5ff}
.nav{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:4px!important;
  margin-left:auto;
}
.nav-group{position:relative}
.nav-group-toggle,.nav-history{
  min-height:44px;
  display:inline-flex;
  align-items:center;
  gap:7px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:#fff!important;
  padding:9px 11px;
  font-size:14px!important;
  font-weight:700;
  line-height:1.2;
  text-decoration:none!important;
  cursor:pointer;
}
.nav-group-toggle:hover,.nav-group.open>.nav-group-toggle,.nav-group.active>.nav-group-toggle,.nav-history:hover,.nav-history[aria-current="page"]{
  background:rgba(255,255,255,.12);
}
.nav-chevron{font-size:15px;line-height:1;transition:transform .18s ease}
.nav-group.open .nav-chevron{transform:rotate(180deg)}
.nav-dropdown{
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  z-index:1100;
  width:286px;
  padding:8px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  box-shadow:var(--shadow-lg);
  opacity:0;
  visibility:hidden;
  transform:translateY(-5px);
  pointer-events:none;
  transition:opacity .16s ease,transform .16s ease,visibility .16s;
}
.nav-group:first-child .nav-dropdown{left:0;right:auto}
.nav-group.open .nav-dropdown,.nav-group:focus-within .nav-dropdown{
  opacity:1;visibility:visible;transform:none;pointer-events:auto
}
.nav-dropdown a{
  display:block;
  min-height:42px;
  padding:10px 11px;
  border-radius:8px;
  color:#263b4e!important;
  font-size:14px!important;
  font-weight:650;
  line-height:1.35;
  text-decoration:none!important;
}
.nav-dropdown a:hover,.nav-dropdown a:focus-visible{background:var(--surface-blue);color:var(--blue-700)!important}
.nav-dropdown a[aria-current="page"]{
  background:var(--blue-100);
  color:#003b73!important;
  font-weight:850;
}
.menu-toggle{
  display:none;
  min-width:48px;
  min-height:48px;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:8px 10px!important;
  border:1px solid rgba(255,255,255,.7)!important;
  border-radius:9px!important;
  color:#fff!important;
  background:transparent!important;
  font-size:14px!important;
  font-weight:800;
  cursor:pointer;
}
.menu-icon{width:20px;display:grid;gap:4px}
.menu-icon span{display:block;height:2px;border-radius:4px;background:#fff;transition:.18s ease}
.menu-toggle[aria-expanded="true"] .menu-icon span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] .menu-icon span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] .menu-icon span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.nav-backdrop{display:none}

/* Consistent visible content frame */
.calculator-card,.result-card,.guide-content,.guide-cta,.quiz-card,.formula-input-card,.formula-result-card,
.calibration-input-card,.calibration-result-card,.deficit-input-card,.deficit-result-card,.deficit-article-card,
.faq-intro-card,.faq-authority-section details,.history-chart-card,.history-table-card,.history-actions-card,
.email-result-card,.related-calculators,.advisor-card{
  border-color:var(--line)!important;
  box-shadow:var(--shadow-sm);
}
.calculator-card{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:clamp(22px,4vw,38px)!important;
  border-radius:var(--radius-lg)!important;
}
.result-card{width:100%;padding:8px 0 32px}
.guide-page,.formula-page,.calibration-page,.deficit-page,.embed-page,.faq-authority-page,.weekend-digest-page,.history-dashboard{
  width:100%!important;
  max-width:var(--site-max-width)!important;
}
.guide-hero{padding:18px 0 16px!important;max-width:900px}
.guide-hero h1,.calculator-card h1,.result-heading h1{
  color:#003b73!important;
  letter-spacing:-.025em!important;
}
.guide-hero h1{font-size:clamp(2rem,4vw,2.75rem)!important;line-height:1.12!important}
.calculator-card h1{font-size:clamp(1.75rem,3.5vw,2.35rem)!important;line-height:1.16!important}
.result-heading h1{font-size:clamp(2rem,4vw,2.8rem)!important;line-height:1.1!important}
.guide-hero p,.intro{font-size:clamp(1rem,1.5vw,1.08rem)!important;line-height:1.62!important;color:#42586a!important}
.guide-content{padding:clamp(18px,3vw,28px)!important;border-radius:var(--radius-md)!important}
.guide-content p,.guide-content li,.simple-page p,.simple-page li{font-size:15.5px;line-height:1.7}
.guide-content>p,.guide-content>ul,.guide-content>ol,.simple-page>p,.simple-page>ul,.simple-page>ol,.simple-page>.advisor-card{
  max-width:var(--reading-max-width)
}
.guide-content h2,.simple-page h2{max-width:900px}
.seo-content{max-width:100%!important;padding:clamp(22px,4vw,38px)!important;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}
.seo-content>p,.seo-content>ul,.seo-content>ol,.homepage-faq{max-width:var(--reading-max-width)}

/* Form and control foundation */
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea,
.calc-form input:not([type="checkbox"]):not([type="radio"]),.calc-form select,
.inline-recalc input,.inline-recalc select,.contact-form input,.contact-form textarea,
.formula-form-row input,.formula-form-row select,.calibration-form-row input,.calibration-form-row select,
.deficit-form-row input,.deficit-form-row select,.history-login-form input,.email-result-row input[type="email"]{
  min-height:46px!important;
  border:1px solid var(--line-strong)!important;
  border-radius:8px!important;
  background:#fff!important;
  color:var(--ink)!important;
  font-size:16px!important;
  line-height:1.25!important;
  padding:10px 11px!important;
}
textarea{min-height:120px!important;line-height:1.5!important}
input[type="checkbox"],input[type="radio"]{width:20px;height:20px;accent-color:var(--blue-600);flex:0 0 auto}
button,.btn-calc,.text-button,.danger-button,.formula-actions a,.formula-actions button,
.quiz-actions button,.quiz-result-actions a,.quiz-result-actions button,.guide-cta a,.result-actions a,.result-actions button{
  min-height:44px;
}
.btn-calc,.text-button,.formula-actions a,.formula-actions button,.quiz-actions button,.quiz-result-actions a,.quiz-result-actions button,.guide-cta a{
  border-radius:9px!important;
  font-weight:800!important;
}
.calc-form{width:100%;max-width:var(--form-max-width)!important}
.form-row{grid-template-columns:150px minmax(0,260px) minmax(0,1fr)!important;gap:12px!important}
.form-group-label{font-weight:800;color:#111;text-align:right}
.tabs{
  width:max-content;
  max-width:100%;
  padding:4px!important;
  margin:10px 0 22px 150px!important;
  border:1px solid var(--line)!important;
  border-radius:10px;
  background:#f2f6fa;
  gap:3px;
}
.tab{
  min-height:42px;
  padding:8px 16px!important;
  margin:0!important;
  border:0!important;
  border-radius:7px!important;
  background:transparent!important;
  font-weight:750;
}
.tab.active{background:#fff!important;color:#003b73!important;box-shadow:0 1px 4px rgba(20,43,63,.12)}
.form-error-summary{margin:0 0 18px!important;max-width:none!important}
[aria-invalid="true"]{border-color:var(--danger)!important;box-shadow:0 0 0 3px rgba(180,35,24,.12)!important}

/* Data layouts */
.formula-page,.calibration-page,.deficit-page{max-width:var(--site-max-width)!important}
.formula-compare-grid{grid-template-columns:minmax(300px,360px) minmax(0,1fr)!important}
.calibration-grid,.deficit-grid{grid-template-columns:minmax(300px,390px) minmax(0,1fr)!important}
.table-wrap,.formula-table-wrap{max-width:100%;overflow-x:auto!important;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
table{border-spacing:0}

/* Footer */
.footer{background:var(--navy-950)!important;color:#dce7ef;margin-top:0}
.footer-inner{
  display:grid!important;
  grid-template-columns:260px minmax(0,1fr)!important;
  gap:40px!important;
  padding-top:42px!important;
  padding-bottom:26px!important;
  padding-bottom:max(26px,env(safe-area-inset-bottom))!important;
  color:#dce7ef!important;
  border-top:0!important;
}
.footer-lead p{margin:12px 0 0;color:#b8c8d4;font-size:13px;line-height:1.6}
.footer-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
.footer-grid section{min-width:0}
.footer-grid h2{margin:0 0 12px;color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:.08em}
.footer-grid a{display:block;color:#cad8e2!important;font-size:13px;line-height:1.4;padding:5px 0;text-decoration:none}
.footer-grid a:hover{color:#fff!important;text-decoration:underline}
.footer-bottom{
  grid-column:1/-1;
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,.14);
  color:#aebfcb;
  font-size:12px;
}
.status-success{color:var(--success)!important}.status-error{color:var(--danger)!important}
.status-kicker{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:850;color:var(--muted)}
.status-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap}

/* Global notification */
.site-toast{
  position:fixed;
  z-index:2500;
  right:16px;
  bottom:16px;
  right:max(16px,env(safe-area-inset-right));
  bottom:max(16px,env(safe-area-inset-bottom));
  max-width:min(380px,calc(100vw - 32px));
  padding:12px 15px;
  border-radius:10px;
  background:#203649;
  color:#fff;
  box-shadow:var(--shadow-lg);
  font-weight:700;
  opacity:0;
  transform:translateY(10px);
  pointer-events:none;
  transition:.2s ease;
}
.site-toast.show{opacity:1;transform:none}.site-toast.error{background:#8f1d18}

/* Mobile and tablet navigation */
@media(max-width:960px){
  :root{--header-height:64px}
  .topbar-inner{min-height:var(--header-height)!important}
  .menu-toggle{display:inline-flex!important}
  .nav{
    display:none!important;
    position:fixed!important;
    top:var(--header-height)!important;
    left:0!important;
    right:0!important;
    z-index:1200!important;
    width:100%!important;
    max-height:calc(100dvh - var(--header-height))!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    margin:0!important;
    padding:12px var(--page-gutter) 24px!important;
    padding:12px max(var(--page-gutter),env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(var(--page-gutter),env(safe-area-inset-left))!important;
    border-top:1px solid rgba(255,255,255,.12);
    background:var(--navy-900)!important;
    box-shadow:var(--shadow-lg);
  }
  .nav.open{display:block!important}
  .nav-group{border-bottom:1px solid rgba(255,255,255,.12)}
  .nav-group-toggle,.nav-history{width:100%;min-height:52px;justify-content:space-between;padding:12px 10px!important;font-size:16px!important}
  .nav-history{margin-top:8px;background:rgba(255,255,255,.1)}
  .nav-dropdown{
    position:static!important;
    width:100%!important;
    padding:0 0 10px 8px!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    pointer-events:auto!important;
    display:none;
  }
  .nav-group.open .nav-dropdown{display:block}
  .nav-dropdown a{min-height:48px;color:#eef6fb!important;padding:12px 13px!important;font-size:15px!important}
  .nav-dropdown a:hover,.nav-dropdown a:focus-visible,.nav-dropdown a[aria-current="page"]{background:rgba(255,255,255,.12)!important;color:#fff!important}
  .nav-backdrop{
    position:fixed;inset:var(--header-height) 0 0;z-index:1050;display:block;border:0;background:rgba(9,21,31,.5);padding:0
  }
  .nav-backdrop[hidden]{display:none!important}
  .footer-inner{grid-template-columns:1fr!important;gap:28px!important}
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:720px){
  body{font-size:16px}
  .main-wrap:first-child{padding-top:16px!important}
  .calculator-card{padding:22px!important;border-radius:12px!important}
  .guide-hero{padding:12px 0 10px!important}
  .guide-content,.quiz-card,.formula-input-card,.formula-result-card,.calibration-input-card,.calibration-result-card,.deficit-input-card,.deficit-result-card,.deficit-article-card{padding:18px!important}
  .result-heading{display:block!important}
  .result-heading p{margin-bottom:14px!important}
  .formula-compare-grid,.calibration-grid,.deficit-grid{grid-template-columns:1fr!important}
  .footer-grid{grid-template-columns:1fr 1fr;gap:24px 18px}
}

@media(max-width:600px){
  .calc-form .form-row,.tdee-classic-form .form-row{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:6px!important;
    margin:17px 0!important;
  }
  .form-row>label:first-child,.form-group-label{text-align:left!important}
  .form-row>*{grid-column:1!important}
  .calc-form input[type=number],.calc-form select,.height-pair,.with-unit{width:100%!important;max-width:100%!important}
  .height-pair{display:grid!important;grid-template-columns:1fr 1fr}
  .height-pair select{width:100%!important}
  .with-unit{position:relative}
  .with-unit input{width:100%!important;padding-right:52px!important}
  .with-unit span{position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none}
  .form-action{margin-left:0!important;padding:8px 0 12px!important}
  .form-action .btn-calc{width:100%;min-height:50px}
  .tabs{width:100%;margin:10px 0 20px!important;display:grid!important;grid-template-columns:1fr 1fr}
  .tab{width:100%;min-height:46px}
  .inline-radios{display:grid!important;grid-template-columns:1fr 1fr;gap:10px!important}
  .inline-radios label,.formula-radio-row label,.calibration-radio-row label,.deficit-radio-row label{min-height:44px;display:flex!important;align-items:center!important}
  .email-result-row{display:grid!important;grid-template-columns:1fr!important}
  .email-result-row button{width:100%;min-height:48px}
  .human-check{grid-template-columns:1fr!important}
  .footer-grid{grid-template-columns:1fr}
  .footer-bottom{display:grid;gap:8px}
  .menu-label{display:none}
}

@media(max-width:380px){
  :root{--page-gutter:14px}
  .calculator-card{padding:18px!important}
  .guide-content{padding:16px!important}
  .brand{font-size:18px!important}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

@media print{
  .topbar,.footer,.skip-link,.site-toast{display:none!important}
  body{background:#fff}
  .main-wrap,.seo-content-wrap,.content-wrap{width:100%!important;max-width:none!important}
}

/* Keep embeddable widget self-contained while improving mobile controls. */
.widget-body{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important}
.widget-body input,.widget-body select,.widget-body button{font-size:16px!important;min-height:46px!important}
