:root{--cream:#FAF3E8;--paper:#FFFBF4;--sand:#EED9BE;--linen:#DDCBB4;--fern:#2F3B2C;--terra:#A85A40;--ink:#2B2620;--mute:#5F5347;
--serif:"Cormorant Garamond",Georgia,serif;--sans:"Jost","Avenir Next","Helvetica Neue",Arial,sans-serif;color-scheme:light}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font:300 18px/1.6 var(--sans)}
img{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:400;margin:0;line-height:1.05;text-wrap:balance}
p{margin:0}
.label{font:400 14px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--terra)}
.it{font-family:var(--serif);font-style:italic;font-weight:300;line-height:1.3}
.btn{display:inline-block;font:400 14px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;padding:16px 26px;border:1px solid var(--ink);border-radius:999px;background:none;color:var(--ink);cursor:pointer;text-decoration:none}
.btn.solid{background:var(--fern);border-color:var(--fern);color:var(--cream)}
.btn:hover{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.btn[disabled]{opacity:.5;cursor:default}
:focus-visible{outline:2px solid var(--terra);outline-offset:3px}

/* top bar */
.top{position:sticky;top:0;z-index:5;background:var(--cream);border-bottom:1px solid rgba(58,43,34,.1);padding:14px 16px 16px}
.top-in{max-width:760px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px}
.top img{width:170px;height:auto}
.top .count{font:400 14px var(--sans);letter-spacing:.08em;color:var(--mute)}
.bar{max-width:760px;margin:10px auto 0;height:3px;background:var(--linen);border-radius:3px;overflow:hidden}
.bar i{display:block;height:100%;width:0;background:var(--terra);transition:width .4s ease}
.tabs{max-width:760px;margin:0 auto;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding:8px 0 10px}
.tabs::-webkit-scrollbar{display:none}
.tabs button{flex:0 0 auto;font:400 13px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;background:none;border:1px solid transparent;border-radius:999px;padding:9px 12px;color:var(--mute);cursor:pointer}
.tabs button[aria-current="true"]{border-color:var(--ink);color:var(--ink)}
.tabs button.done::after{content:" ✓";color:var(--terra)}

main{max-width:760px;margin:0 auto;padding:0 16px 80px}
.ch{display:none;padding-top:28px;animation:fade .35s ease}
.ch.on{display:block}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.ch h1{font-size:clamp(42px,9vw,72px);text-transform:uppercase}
.ch h2{font-size:clamp(34px,6.5vw,50px);text-transform:uppercase}
.ch h3{font-size:26px}
.stack{display:grid;gap:22px}
.lead{font-size:20px}
.card{background:var(--paper);border:1px solid var(--linen);border-radius:14px;padding:22px}
.fern{background:var(--fern);color:var(--cream);border-radius:14px;padding:24px}
.fern .label{color:var(--sand)}
.small{font-size:18px;color:var(--mute)}
.nav{display:flex;justify-content:space-between;gap:12px;margin-top:36px;flex-wrap:wrap}
.saved{font-size:17px;color:var(--mute);text-align:center;margin-top:14px}

/* three things */
.three{display:grid;gap:10px;counter-reset:t;margin:0;padding:0;list-style:none}
.three li{background:var(--paper);border:1px solid var(--linen);border-radius:14px;padding:16px 18px 16px 62px;position:relative}
.three li::before{counter-increment:t;content:counter(t);position:absolute;left:18px;top:14px;width:30px;height:30px;border-radius:50%;background:var(--terra);color:var(--cream);font:400 16px/30px var(--sans);text-align:center}
.three b{display:block;font:400 23px/1.2 var(--serif)}
.three span{font-size:17px}

/* fields */
.q{display:grid;gap:8px}
.q>label,.q>.ql{font:400 22px/1.25 var(--serif)}
.q .hint{font-size:18px;color:var(--mute);margin-top:-4px}
input[type=text],input[type=email],input[type=tel],input[type=date],input[type=time],input[type=number],textarea,select{
  width:100%;font:300 18px/1.4 var(--sans);color:var(--ink);background:var(--paper);border:1px solid var(--linen);border-radius:10px;padding:13px 14px}
textarea{min-height:96px;resize:vertical}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--terra)}
.two{display:grid;gap:14px}
@media (min-width:640px){.two{grid-template-columns:1fr 1fr}}
.group{border:0;margin:0;padding:0;display:grid;gap:22px}

/* pills (radio + checkbox) */
.pills{display:flex;flex-wrap:wrap;gap:8px}
.pills label{position:relative}
.pills input{position:absolute;opacity:0;width:1px;height:1px}
.pills span{display:inline-block;font:400 16px/1 var(--sans);border:1px solid var(--linen);background:var(--paper);border-radius:999px;padding:12px 15px;cursor:pointer}
.pills input:checked+span{background:var(--fern);color:var(--cream);border-color:var(--fern)}
.pills input:focus-visible+span{outline:2px solid var(--terra);outline-offset:2px}

/* symptom grid */
.sym{display:grid;gap:8px}
.sym .row{background:var(--paper);border:1px solid var(--linen);border-radius:12px;padding:12px 14px;display:grid;gap:8px}
.sym .row b{font-weight:400;font-size:17px}
.sym .pills span{padding:9px 12px;font-size:15px}
@media (min-width:640px){.sym .row{grid-template-columns:1fr auto;align-items:center}}

/* Bristol chart */
.bristol{display:grid;gap:8px}
.bristol label{display:grid;grid-template-columns:44px 92px 1fr;gap:12px;align-items:center;background:var(--paper);border:1px solid var(--linen);border-radius:12px;padding:10px 14px;cursor:pointer}
.bristol input{position:absolute;opacity:0;width:1px;height:1px}
.bristol label:has(input:checked){border-color:var(--terra);background:#F6E6DA}
.bristol label:has(input:focus-visible){outline:2px solid var(--terra)}
.bristol .n{font:400 26px/1 var(--serif);color:var(--terra);text-align:center}
.bristol svg{width:92px;height:34px}
.bristol small{font-size:17px;line-height:1.35}

/* dosha */
.dq{background:var(--paper);border:1px solid var(--linen);border-radius:14px;padding:16px;display:grid;gap:10px}
.dq h3{font:400 13px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--terra)}
.dq .opt{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;border:1px solid var(--linen);border-radius:12px;padding:12px 14px;cursor:pointer;background:var(--cream);text-align:left;font:300 17px/1.4 var(--sans);color:var(--ink);width:100%}
.dq .opt em{font-style:normal;font:400 12px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;padding:7px 10px;border-radius:999px;white-space:nowrap}
.dq .opt[data-r="5"]{border-color:var(--terra);background:#F6E6DA}
.dq .opt[data-r="5"] em{background:var(--terra);color:var(--cream)}
.dq .opt[data-r="3"]{border-color:var(--sand);background:#FBF1E4}
.dq .opt[data-r="3"] em{background:var(--sand);color:var(--ink)}
.dq .opt[data-r="1"] em{color:var(--mute)}
.dtotal{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;text-align:center}
.dtotal div{background:var(--paper);border:1px solid var(--linen);border-radius:14px;padding:14px 8px}
.dtotal b{display:block;font:400 30px/1 var(--serif)}
.dtotal span{font-size:14px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}

/* upload */
.drop{border:1.5px dashed var(--linen);border-radius:14px;padding:18px;background:var(--paper);display:grid;gap:10px}
.drop input[type=file]{font:300 16px var(--sans);max-width:100%}

/* consent */
.consent{display:flex;gap:12px;align-items:flex-start;background:var(--paper);border:1px solid var(--linen);border-radius:14px;padding:16px 18px;cursor:pointer;font-size:17px}
.consent input{flex:0 0 22px;height:22px;margin:3px 0 0;accent-color:var(--terra)}

/* diary */
.slot{background:var(--paper);border:1px solid var(--linen);border-radius:14px;padding:16px;display:grid;gap:10px}
.slot .head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.slot .head b{font:400 22px/1.2 var(--serif)}
.slot .head input{width:130px}
.err{color:#9B2F1E;font-size:16px}
.is-bad input,.is-bad textarea{border-color:#9B2F1E}
.consent.is-bad{border-color:#9B2F1E}
.sent{text-align:left}
.fern .three li{color:var(--ink)}
.fern .three a{color:var(--terra)}

/* meal photos */
.ph{display:grid;gap:8px}
.thumbs{display:flex;flex-wrap:wrap;gap:8px}
.thumbs:empty{display:none}
.thumbs figure{margin:0;position:relative;width:84px;height:84px}
.thumbs img{width:84px;height:84px;object-fit:cover;border-radius:10px}
.thumbs button{position:absolute;top:-6px;right:-6px;width:26px;height:26px;border-radius:50%;border:0;background:var(--ink);color:var(--cream);font:400 16px/26px var(--sans);cursor:pointer;padding:0}
.phbtn{justify-self:start;cursor:pointer}
.phbtn input{position:absolute;opacity:0;width:1px;height:1px}
.phbtn span{display:inline-block;font:400 15px/1 var(--sans);letter-spacing:.06em;border:1px dashed var(--terra);color:var(--terra);border-radius:999px;padding:11px 16px}
.phbtn input:focus-visible+span{outline:2px solid var(--terra);outline-offset:2px}

/* ROOTED prep checklist */
.prep .three .go{display:inline-block;margin-top:10px;font:400 14px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--terra);border:1px solid var(--terra);border-radius:999px;padding:11px 16px;text-decoration:none}
.prep .three .st{display:none;font:400 14px/1 var(--sans);font-style:normal;letter-spacing:.1em;text-transform:uppercase;color:var(--fern);margin-top:10px}
.prep .three li.done .st{display:block}
.prep .three li.done .go{display:none}
.prep .three li.done::before{content:"✓";background:var(--fern)}
.prep .three li.done b{text-decoration:line-through;text-decoration-color:rgba(43,38,32,.35)}
.prep .alldone{font:400 22px/1.3 var(--serif)}
.prep .three li>span{display:block}
.prep .three .gos{display:flex;flex-wrap:wrap;gap:10px}
.prep .three li.done .gos{display:none}
input[type=file]::file-selector-button{font:400 14px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--terra);color:var(--terra);background:var(--paper);border-radius:999px;padding:10px 14px;margin-right:10px;cursor:pointer}
.drop input[type=file]{color:var(--mute)}

/* intake extras */
input.reveal{margin-top:4px}
.supps{display:grid;gap:8px}
.srow{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:6px;background:var(--paper);border:1px solid var(--linen);border-radius:12px;padding:8px}
.srow input,.srow select{padding:10px 10px;font-size:16px;min-width:0}
.srow select{font-family:var(--sans);color:var(--ink);background:var(--paper);border:1px solid var(--linen);border-radius:10px}
.srow input:first-child{grid-column:1/-1}
@media (min-width:640px){.srow{grid-template-columns:2fr 1.4fr 1fr 1.4fr}.srow input:first-child{grid-column:auto}}
.addrow{justify-self:start;padding:12px 18px;font-size:13px}
.arrows{display:flex;align-items:center;gap:6px}
.arrows button{width:34px;height:34px;border-radius:50%;border:1px solid var(--linen);background:var(--paper);color:var(--ink);font:400 22px/1 var(--sans);cursor:pointer;padding:0 0 3px}
.arrows button:hover{border-color:var(--ink)}
[hidden]{display:none!important}
.mealt{display:grid;gap:8px;grid-template-columns:1fr 1fr}
.mealt label{display:grid;gap:4px;background:var(--paper);border:1px solid var(--linen);border-radius:12px;padding:10px 12px}
.mealt span{font-size:16px}
.mealt input{padding:8px 10px}
@media (min-width:640px){.mealt{grid-template-columns:repeat(3,1fr)}}
