.mobile-transfer{
  display:none}
.mobile-transfer summary{
  min-height:44px;
  padding:9px 0;
  font-size:12px}
.mobile-transfer p{
  font-size:11px;
  color:var(--muted)}
.upload:focus-within{
  outline:3px solid var(--ochre);
  outline-offset:3px}
@media(max-width:850px){
  .mobile-transfer{
  display:block;
  margin-top:26px}
}
:root{
  --forest:#193e31;
  --forest-light:#2b5543;
  --cream:#f5f2e9;
  --paper:#fffdf7;
  --ink:#24382d;
  --muted:#697267;
  --line:#deded0;
  --sage:#e6eadc;
  --ochre:#b4833c;
  --danger:#9b382b;
  --serif:Georgia,'Times New Roman',serif;
  --sans:'Trebuchet MS','Gill Sans',Verdana,sans-serif}
*{
  box-sizing:border-box}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font:15px/1.55 var(--sans)}
button,input,select,textarea{
  font:inherit}
button,a,input,select,textarea,summary{
  touch-action:manipulation}
button{
  cursor:pointer}
button:disabled{
  cursor:wait;
  opacity:.48}
button,label.upload,a{
   -webkit-tap-highlight-color:transparent}
button{
  min-height:44px}
input,select{
  min-height:46px}
input,select,textarea{
  width:100%;
  border:1px solid #c8cdbf;
  border-radius:5px;
  background:#fffef9;
  color:var(--ink);
  padding:10px 12px;
  outline-offset:3px}
textarea{
  resize:vertical}
input:focus,select:focus,textarea:focus{
  border-color:var(--forest)}
:focus-visible{
  outline:3px solid var(--ochre);
  outline-offset:3px}
input[type=checkbox]{
  width:19px;
  height:19px;
  min-height:19px;
  flex-shrink:0;
  accent-color:var(--forest)}
label{
  display:flex;
  flex-direction:column;
  gap:7px;
  font-size:13px;
  font-weight:600;
  margin:0 0 19px}
fieldset{
  margin:0;
  padding:0;
  border:0;
  min-width:0}
legend{
  font:30px/1.2 var(--serif);
  padding:0;
  width:100%;
  margin-bottom:15px}
h1,h2,h3,p{
  margin-top:0}
h1,h2{
  font-family:var(--serif);
  font-weight:400}
h1{
  font-size:clamp(32px,3.1vw,45px);
  line-height:1.13;
  letter-spacing:-1.2px;
  margin-bottom:13px}
h2{
  font-size:27px;
  line-height:1.2;
  margin-bottom:18px}
h3{
  font-size:16px;
  margin:24px 0 14px}
p{
  margin-bottom:18px}
small{
  font-size:12px}
a{
  color:inherit}
.app-shell{
  display:grid;
  grid-template-columns:244px minmax(0,1fr);
  min-height:100vh}
.sidebar{
  background:var(--forest);
  color:#f4f1df;
  padding:37px 22px 24px;
  display:flex;
  flex-direction:column;
  position:sticky;
  top:0;
  height:100dvh;
  background-image:radial-gradient(ellipse at bottom left,#36564155,transparent 70%)}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  margin-bottom:58px}
.brand>span:last-child{
  font:27px var(--serif);
  letter-spacing:-.6px}
.brand small{
  display:block;
  font:11px var(--sans);
  letter-spacing:1.5px;
  margin-top:3px;
  color:#d1d9c8}
.brand-mark{
  display:grid;
  place-items:center;
  border:1px solid #aabca6;
  border-radius:50%;
  width:47px;
  height:47px;
  font:italic 32px var(--serif)}
.sidebar-label{
  font-size:9px;
  font-weight:700;
  letter-spacing:2px;
  color:#b7c6b0;
  margin:0 14px 18px}
.sidebar nav{
  display:grid;
  gap:8px}
.nav-button{
  display:flex;
  align-items:center;
  gap:11px;
  border:0;
  border-radius:5px;
  text-align:left;
  padding:12px 11px;
  background:transparent;
  color:#d7dfd0;
  font-size:13px;
  font-weight:600}
.nav-button>span:first-child{
  font-size:10px;
  font-weight:400;
  color:#b3c2ad}
.nav-button.active{
  background:#f2efd9;
  color:var(--forest)}
.nav-button.active>span:first-child{
  color:var(--forest-light)}
.nav-button:hover:not(.active){
  background:#ffffff0c}
.nav-dot{
  width:6px;
  height:6px;
  border-radius:50%;
  background:#bb9051;
  margin-left:auto}
.count{
  font-size:10px;
  background:#ffffff17;
  padding:2px 6px;
  border-radius:3px;
  margin-left:auto}
.sidebar-bottom{
  margin-top:auto;
  padding:56px 12px 0;
  font-size:11px;
  color:#bfceb8;
  line-height:1.7}
.sidebar-bottom p{
  margin:12px 0}
.small-title{
  font-size:11px;
  font-weight:700;
  letter-spacing:.8px}
.sidebar-bottom .small-title{
  color:#efefdd;
  font-size:12px;
  letter-spacing:0}
.sidebar-link{
  display:flex;
  align-items:center;
  color:#eef0dc;
  background:none;
  border:0;
  padding:4px 0;
  text-align:left;
  font-size:11px;
  min-height:44px;
  text-decoration:underline;
  text-underline-offset:4px;
  margin:0}
.sidebar-bottom details{
  margin-top:16px;
  padding-top:15px;
  border-top:1px solid #ffffff25}
.sidebar-bottom summary{
  cursor:pointer;
  min-height:44px;
  padding-top:8px}
.topbar{
  height:77px;
  border-bottom:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:0 43px;
  font-size:9px;
  letter-spacing:1.7px}
.connection{
  display:flex;
  align-items:center;
  gap:7px;
  letter-spacing:0;
  font-size:10px;
  color:var(--muted)}
#connection-dot{
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--ochre)}
#connection-dot.online{
  background:var(--forest)}
main{
  max-width:1450px;
  margin:0 auto;
  padding:36px 43px 0}
.section-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  margin:4px 0 30px}
.eyebrow{
  font-size:9px;
  letter-spacing:2.1px;
  font-weight:700;
  color:var(--muted);
  margin-bottom:12px}
.lead{
  font-size:13px;
  color:var(--muted);
  line-height:1.7;
  margin:0;
  max-width:590px}
.badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  white-space:nowrap;
  border:1px solid #cbd2be;
  border-radius:30px;
  padding:7px 12px;
  font-size:10px;
  color:var(--forest-light);
  margin-top:26px}
.badge::before{
  content:'';
  height:5px;
  width:5px;
  border-radius:50%;
  background:var(--ochre)}
.badge.approved::before{
  background:var(--forest)}
.paper{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:8px;
  padding:27px}
.setup-layout{
  display:grid;
  grid-template-columns:196px minmax(0,1fr);
  gap:27px}
.guide{
  padding-top:17px}
.guide>.small-title{
  font-size:9px;
  letter-spacing:1.5px}
.guide ol{
  padding:0;
  list-style:none;
  counter-reset:step;
  margin:28px 0 35px}
.guide li{
  position:relative;
  counter-increment:step;
  padding:1px 0 25px 37px;
  font-size:13px;
  font-weight:600;
  color:#70786d}
.guide li:before{
  content:counter(step);
  position:absolute;
  left:0;
  top:0;
  width:24px;
  height:24px;
  display:grid;
  place-items:center;
  border:1px solid #c9cdbd;
  border-radius:50%;
  font-size:10px;
  font-weight:400;
  background:var(--cream)}
.guide li:not(:last-child):after{
  content:'';
  width:1px;
  position:absolute;
  left:12px;
  top:26px;
  bottom:3px;
  background:#d5d9ca}
.guide li.current{
  color:var(--forest)}
.guide li.current:before{
  background:var(--forest);
  color:var(--paper);
  border-color:var(--forest)}
.guide li.done:before{
  background:var(--sage);
  border-color:#9baa94}
.guide li span{
  display:block;
  font-size:10px;
  font-weight:400;
  margin-top:5px}
.guide-note{
  border-top:1px solid var(--line);
  padding-top:22px}
.guide-note .serif{
  font:20px var(--serif)}
.guide-note p{
  font-size:11px;
  color:var(--muted);
  line-height:1.8;
  margin:12px 0}
.questionnaire{
  padding:31px 33px 0;
  box-shadow:0 8px 26px #283e2905;
  min-height:526px}
.step-number{
  display:block;
  font:9px var(--sans);
  letter-spacing:2px;
  color:var(--ochre);
  margin-bottom:16px}
.muted{
  color:var(--muted);
  font-size:13px;
  line-height:1.7}
.form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 17px}
.form-grid.three{
  grid-template-columns:repeat(3,minmax(0,1fr))}
.form-grid.four{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px}
.form-grid.four label{
  font-size:11px}
.check{
  display:flex;
  flex-direction:row;
  align-items:flex-start;
  gap:11px;
  font-size:13px;
  font-weight:400;
  min-height:44px;
  margin-bottom:8px}
.check input{
  margin-top:2px}
.hint{
  font-size:11px;
  color:var(--muted);
  font-weight:400;
  line-height:1.65}
.note{
  font-size:11px;
  line-height:1.75;
  color:#5d654f;
  background:#efefdf;
  padding:12px 15px;
  border-radius:4px}
.examples{
  border-top:1px solid var(--line);
  margin-top:7px;
  padding-top:7px;
  font-size:11px;
  color:var(--muted)}
summary{
  cursor:pointer;
  min-height:44px;
  padding-block:8px;
}
.examples summary{
  min-height:44px;
  display:flex;
  align-items:center;
  color:var(--forest-light);
  font-size:12px}
.actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px}
.form-footer{
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:space-between;
  border-top:1px solid var(--line);
  padding:22px 0;
  margin-top:27px}
#step-caption{
  font-size:10px;
  letter-spacing:.5px;
  color:var(--muted)}
.primary,.secondary,.danger{
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:7px;
  min-height:44px;
  padding:11px 18px;
  border:1px solid var(--forest);
  border-radius:5px;
  font-size:12px;
  font-weight:600;
  line-height:1.45;
  text-decoration:none}
.primary{
  background:var(--forest);
  color:#fffdf0}
.primary:hover{
  background:var(--forest-light)}
.secondary{
  background:transparent;
  color:var(--forest);
  border-color:#c2cabb}
.secondary:hover{
  background:var(--sage)}
.danger{
  background:none;
  color:var(--danger);
  border-color:#d4bbb0}
.text-button{
  border:0;
  background:transparent;
  color:var(--forest-light);
  padding:7px;
  font-size:11px;
  text-decoration:underline;
  text-underline-offset:4px}
.row-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:13px}
.row-heading h2,.row-heading h3{
  margin:0}
.meal-setting,.ingredient-row,.event-row{
  padding:18px 0;
  border-top:1px solid var(--line)}
.meal-setting .form-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px}
.meal-setting label{
  font-size:11px;
  margin-bottom:10px}
.meal-setting input{
  padding:8px}
.row-label{
  display:flex;
  gap:12px;
  align-items:center}
.row-label>label{
  flex:1}
.row-label>button{
  align-self:flex-start}
.review-row{
  display:grid;
  grid-template-columns:130px minmax(0,1fr);
  gap:16px;
  border-bottom:1px solid var(--line);
  padding:12px 0;
  font-size:12px}
.review-row>span:first-child{
  color:var(--muted)}
.review-row>span:last-child{
  white-space:pre-wrap;
  overflow-wrap:anywhere}
.approval{
  margin:25px 0 17px}
.workspace-footer{
  display:flex;
  justify-content:space-between;
  gap:15px;
  border-top:1px solid var(--line);
  margin-top:45px;
  padding:20px 0 26px;
  font-size:9px;
  letter-spacing:.4px;
  color:var(--muted)}
#notice{
  padding:13px 17px;
  margin-bottom:22px;
  background:var(--sage);
  border:1px solid #bdcab5;
  border-radius:5px;
  font-size:13px;
  white-space:pre-wrap;
  overflow-wrap:anywhere}
#notice.error,.form-error{
  color:var(--danger);
  background:#f7eae1;
  border-color:#e4c4b4}
.form-error{
  padding:12px;
  font-size:12px;
  border-radius:4px}
#busy{
  position:fixed;
  bottom:23px;
  left:50%;
  transform:translateX(-50%);
  background:var(--forest);
  color:#fffdf0;
  padding:13px 22px;
  border-radius:5px;
  z-index:50;
  display:flex;
  align-items:center;
  gap:12px;
  font-size:12px;
  box-shadow:0 5px 25px #193e3133}
.spinner{
  height:15px;
  width:15px;
  border:2px solid #ffffff55;
  border-top-color:white;
  border-radius:50%;
  animation:spin .8s linear infinite}
@keyframes spin{
  to{
  transform:rotate(360deg)}
}
.view{
  animation:appear .3s ease-out}
@keyframes appear{
  from{
  opacity:0;
  transform:translateY(5px)}
to{
  opacity:1;
  transform:none}
}
.empty{
  padding:40px 30px;
  text-align:left}
.empty h2{
  font-size:29px}
.empty p{
  max-width:620px;
  color:var(--muted);
  font-size:13px}
.plan-toolbar{
  display:flex;
  align-items:center;
  gap:20px;
  margin-bottom:23px;
  padding:17px 22px}
.plan-toolbar label{
  margin:0;
  max-width:180px}
.plan-toolbar>.primary{
  margin-top:22px;
  white-space:nowrap}
.plan-toolbar p{
  margin:23px 0 0;
  max-width:260px}
.plan-status{
  display:flex;
  gap:20px;
  align-items:flex-start;
  justify-content:space-between;
  margin-bottom:18px;
  font-size:12px}
.plan-status p{
  margin:0}
.plan-status small{
  display:block;
  color:var(--muted);
  margin-top:4px}
.week-strip{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:7px;
  margin-bottom:24px}
.day-button{
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--paper);
  padding:12px 7px;
  text-align:left;
  color:var(--ink);
  min-height:112px}
.day-button strong{
  display:block;
  font:25px var(--serif);
  margin:5px 0}
.day-button span,.day-button small{
  font-size:10px;
  display:block}
.day-button.active{
  background:var(--forest);
  color:#f9f6e8;
  border-color:var(--forest)}
.day-button .day-alert{
  color:#a75c35}
.day-button.active .day-alert{
  color:#efd499}
.day-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 300px;
  gap:22px}
.meal-card{
  margin-bottom:15px;
  padding:21px}
.meal-card h3{
  font:23px var(--serif);
  margin:0}
.meal-state{
  font-size:10px;
  background:var(--sage);
  padding:4px 8px;
  border-radius:20px;
  white-space:nowrap}
.meal-item{
  padding:15px 0;
  border-top:1px solid var(--line)}
.meal-item .text-button{
  font-size:13px;
  text-align:left;
  padding:0;
  font-weight:600;
  text-decoration:none;
  min-height:44px}
.mini-values{
  font-size:12px;
  color:var(--muted);
  margin:5px 0 10px}
.tune-form{
  display:flex;
  gap:9px;
  align-items:center;
  flex-wrap:wrap}
.tune-form label{
  font-size:12px;
  margin:0;
  max-width:104px}
.tune-form input{
  width:104px}
.tune-form button{
  margin-top:21px}
.topping-form select{
  max-width:100%}
.meal-note{
  font-size:12px;
  color:var(--muted);
  margin:12px 0 0}
.nutrition-summary{
  position:sticky;
  top:20px;
  align-self:start;
  padding:23px}
.nutrition-summary h2{
  font-size:24px;
  margin-bottom:5px}
.metric-row{
  border-top:1px solid var(--line);
  padding:14px 0}
.metric-row .row-heading{
  margin:0}
.metric-row strong{
  font-size:18px;
  font-weight:400;
  font-variant-numeric:tabular-nums}
.metric-row small{
  font-size:12px;
  color:var(--muted)}
.metric-bar{
  height:4px;
  background:var(--sage);
  margin:8px 0;
  overflow:hidden;
  border-radius:2px}
.metric-bar span{
  height:100%;
  display:block;
  background:var(--forest-light)}
.deviation{
  font-size:12px}
.deviation.outside{
  color:var(--danger)}
.validation-issues{
  font-size:11px;
  color:var(--danger);
  padding-left:17px}
.catalog-tools{
  display:flex;
  gap:15px;
  align-items:center;
  margin-bottom:17px}
.catalog-tools .search{
  flex:1;
  margin-bottom:0}
.catalog-tools .secondary{
  margin:22px 0 0;
  white-space:nowrap}
.upload{
  cursor:pointer}
.recipe-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:17px}
.recipe-card{
  padding:22px;
  display:flex;
  flex-direction:column}
.recipe-card .eyebrow{
  font-size:8px;
  letter-spacing:1.2px}
.recipe-card h2{
  font-size:26px;
  margin:5px 0 12px}
.recipe-card p{
  font-size:11px;
  color:var(--muted);
  line-height:1.8;
  overflow-wrap:anywhere}
.recipe-card details{
  font-size:11px;
  white-space:pre-wrap}
.recipe-card summary{
  min-height:44px;
  padding:10px 0}
.recipe-card .recipe-actions{
  margin-top:auto;
  padding-top:17px;
  display:flex;
  gap:10px;
  flex-wrap:wrap}
.recipe-card .mini-values{
  border-top:1px solid var(--line);
  padding-top:12px;
  color:var(--forest)}
.suggestions-header{
  margin:24px 0 18px}
.suggestions-header h2{
  margin-bottom:8px}
.suggestions-header p{
  font-size:12px;
  color:var(--muted)}
#suggestions:not(:empty){
  border-bottom:1px solid var(--line);
  padding-bottom:25px;
  margin-bottom:25px}
.history-layout{
  display:grid;
  grid-template-columns:1.25fr 1fr;
  gap:23px}
.history-facts{
  margin-top:23px}
.history-entry{
  padding:16px 0;
  border-bottom:1px solid var(--line);
  font-size:12px;
  overflow-wrap:anywhere}
.history-entry p{
  font-size:11px;
  color:var(--muted);
  margin:8px 0}
.history-entry pre{
  white-space:pre-wrap;
  font:10px var(--sans);
  max-height:220px;
  overflow:auto}
.history-entry small{
  color:var(--muted);
  font-size:10px}
.empty-hint{
  font-size:12px;
  color:var(--muted);
  padding:14px 0}
.event-tag{
  font-size:11px;
  background:var(--sage);
  padding:10px 13px;
  margin-bottom:12px;
  border-radius:4px}
.event-row .form-grid{
  gap:10px}
.event-row label{
  font-size:11px;
  margin-bottom:12px}
dialog{
  width:min(840px,calc(100vw - 32px));
  max-height:calc(100dvh - 40px);
  padding:29px 32px;
  background:var(--paper);
  color:var(--ink);
  border:1px solid var(--line);
  border-radius:9px;
  box-shadow:0 15px 80px #102e3140}
dialog::backdrop{
  background:#132e2780;
  backdrop-filter:blur(3px)}
.dialog-heading{
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:flex-start;
  margin-bottom:22px}
.dialog-heading h2{
  font-size:31px;
  margin:0}
.close-dialog{
  font-size:24px;
  line-height:1;
  width:44px;
  padding:0;
  flex-shrink:0}
.ingredient-row{
  background:#f6f5ec;
  padding:15px;
  border-radius:5px;
  margin:14px 0;
  border:1px solid var(--line)}
.ingredient-row>.form-grid{
  grid-template-columns:2fr 1fr}
.ingredient-values{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:9px}
.ingredient-values label{
  font-size:10px;
  margin-bottom:7px}
.ingredient-values input{
  padding:8px}
.compact-fieldset{
  border:1px solid var(--line);
  padding:15px;
  margin:15px 0}
.compact-fieldset legend{
  font:12px var(--sans);
  width:auto;
  padding:0 5px;
  margin:0}
.check-options{
  display:flex;
  flex-wrap:wrap;
  gap:7px 22px}
.check-options .check{
  margin:0;
  font-size:12px}
.recipe-info-values{
  font-size:11px;
  color:var(--forest)}
#observation-dialog{
  width:min(520px,calc(100vw - 32px))}
.skip{
  position:fixed;
  top:-70px;
  left:12px;
  background:var(--paper);
  padding:12px;
  z-index:100}
.skip:focus{
  top:12px}
.visually-hidden{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0}
[hidden]{
  display:none!important}
@media(min-width:1500px){
  main{
  padding-top:48px}
.questionnaire{
  padding:38px 43px 0}
.setup-layout{
  grid-template-columns:230px minmax(0,1fr)}
}
@media(max-width:1150px){
  .app-shell{
  grid-template-columns:210px minmax(0,1fr)}
.sidebar{
  padding:29px 14px 20px}
.brand{
  gap:9px}
.brand>span:last-child{
  font-size:23px}
.brand-mark{
  width:40px;
  height:40px}
.topbar{
  padding:0 27px}
main{
  padding:28px 27px 0}
.setup-layout{
  grid-template-columns:150px minmax(0,1fr);
  gap:18px}
.questionnaire{
  padding:26px 24px 0}
.guide li{
  font-size:12px;
  padding-left:32px}
.day-layout{
  grid-template-columns:minmax(0,1fr)}
.nutrition-summary{
  position:static;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:13px}
.nutrition-summary>h2,.nutrition-summary>p,.nutrition-summary>.summary-status,.nutrition-summary>.validation-issues{
  grid-column:1/-1}
.metric-row{
  padding:10px 0}
.plan-toolbar{
  flex-wrap:wrap}
.plan-toolbar p{
  max-width:none;
  margin:0}
.form-grid.four{
  grid-template-columns:repeat(2,minmax(0,1fr))}
.history-layout{
  grid-template-columns:1fr}
}
@media(max-width:850px){
  .app-shell{
  display:block}
.sidebar{
  position:static;
  height:auto;
  padding:18px 23px}
.brand{
  margin-bottom:18px}
.brand>span:last-child{
  font-size:25px}
.brand small{
  display:inline;
  margin-left:13px;
  font-size:10px}
.sidebar-label,.sidebar-bottom{
  display:none}
.sidebar nav{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:6px}
.nav-button{
  padding:11px 8px;
  font-size:11px;
  justify-content:center}
.nav-button>span:first-child,.nav-dot,.count{
  display:none}
.topbar{
  height:57px;
  padding:0 23px;
  font-size:8px}
main{
  padding:27px 23px 0}
.setup-layout{
  grid-template-columns:155px minmax(0,1fr)}
.section-heading{
  gap:15px}
.section-heading>.secondary{
  font-size:10px;
  max-width:180px}
.section-heading .badge{
  margin-top:15px}
.recipe-card{
  padding:18px}
.catalog-tools{
  flex-wrap:wrap}
.catalog-tools .search{
  flex-basis:100%}
.catalog-tools .secondary{
  margin-top:0}
.workspace-footer{
  margin-top:30px}
.brand small{
  letter-spacing:1px}
}
@media(max-width:650px){
  body{
  font-size:14px}
.sidebar{
  padding:18px 16px 13px}
.brand small{
  margin-left:11px}
.sidebar nav{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr))}
.nav-button{
  justify-content:flex-start;
  padding-left:12px;
  font-size:12px}
.nav-button>span:first-child{
  display:inline}
.topbar{
  padding:0 17px;
  font-size:8px}
.connection{
  font-size:9px;
  gap:5px}
.topbar>.connection>.text-button{
  font-size:9px;
  padding:5px}
main{
  padding:24px 16px 0}
.section-heading{
  margin-bottom:23px;
  flex-wrap:wrap}
.section-heading .badge{
  margin:0}
.section-heading>.secondary{
  max-width:none}
.eyebrow{
  font-size:8px;
  letter-spacing:1.6px}
h1{
  font-size:33px}
.lead{
  font-size:12px}
.setup-layout{
  display:block}
.guide{
  padding-top:0}
.guide>.small-title,.guide-note{
  display:none}
.guide ol{
  display:flex;
  margin:0 0 21px;
  gap:8px}
.guide li{
  flex:1;
  min-height:48px;
  padding:29px 0 0;
  font-size:9px}
.guide li span{
  display:none}
.guide li:before{
  width:22px;
  height:22px;
  font-size:10px}
.guide li:not(:last-child):after{
  height:1px;
  width:calc(100% - 30px);
  left:27px;
  top:11px;
  bottom:auto}
.questionnaire{
  padding:23px 19px 0;
  min-height:0}
legend{
  font-size:26px}
.muted{
  font-size:12px}
.form-grid.three{
  gap:10px}
.form-grid.three label{
  font-size:10px}
.form-grid.three input{
  padding:9px}
.form-grid{
  gap:12px}
.form-grid.four{
  gap:0 12px}
.form-grid label{
  margin-bottom:14px}
.meal-setting .form-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px}
.form-footer{
  padding:18px 0;
  gap:8px}
.form-footer button{
  padding:10px 12px;
  font-size:11px}
.examples .actions{
  display:grid}
.review-row{
  grid-template-columns:95px minmax(0,1fr);
  gap:10px;
  font-size:11px}
.workspace-footer{
  font-size:8px;
  display:grid;
  gap:6px}
.paper{
  padding:21px}
.questionnaire{
  padding:23px 19px 0}
.recipe-grid{
  grid-template-columns:1fr}
.week-strip{
  gap:4px}
.day-button{
  min-height:94px;
  padding:9px 4px}
.day-button strong{
  font-size:21px}
.day-button span,.day-button small{
  font-size:8px}
.day-button .day-alert{
  font-size:7px}
.plan-toolbar{
  padding:17px;
  gap:12px;
  align-items:flex-end}
.plan-toolbar label{
  max-width:154px}
.plan-toolbar>.primary{
  padding:10px 13px;
  flex:1;
  margin-top:0;
  font-size:11px}
.plan-toolbar p{
  font-size:10px}
.plan-status{
  display:block}
.plan-status small{
  margin-bottom:10px}
.day-layout{
  gap:15px}
.meal-card{
  padding:18px}
.meal-card h3{
  font-size:23px}
.nutrition-summary{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px 20px}
.catalog-tools .secondary{
  font-size:11px;
  padding:10px 12px}
.empty{
  padding:27px 21px}
.empty h2{
  font-size:27px}
.history-layout{
  gap:18px}
dialog{
  padding:23px 19px;
  width:calc(100vw - 22px);
  max-height:calc(100dvh - 24px)}
.dialog-heading h2{
  font-size:28px}
.ingredient-values{
  grid-template-columns:repeat(2,minmax(0,1fr))}
.ingredient-row>.form-grid{
  grid-template-columns:1.5fr 1fr}
.ingredient-row{
  padding:13px}
.ingredient-values label:last-child{
  grid-column:1/-1}
.tune-form{
  gap:8px}
.tune-form .secondary{
  font-size:10px;
  padding:10px}
.tune-form label{
  max-width:92px}
.tune-form input{
  width:92px}
#busy{
  width:max-content;
  max-width:calc(100vw - 32px);
  font-size:11px;
  padding:12px 17px}
.check{
  font-size:12px}
.history-entry pre{
  font-size:10px}
}
@media(prefers-reduced-motion:reduce){
  *{
  animation:none!important;
  scroll-behavior:auto!important}
}
@media print{
  .sidebar,.topbar,.workspace-footer,button,.plan-toolbar,#notice,#busy{
  display:none!important}
.app-shell{
  display:block}
main{
  padding:0}
.paper{
  break-inside:avoid}
.day-layout{
  display:block}
.nutrition-summary{
  position:static}
body{
  font-size:12pt;
  background:white}
}

