.bottom-nav{width:min(480px,100%);padding:10px 8px calc(10px + var(--safe-bottom));z-index:40;border-bottom:none;border-radius:20px 20px 0 0;grid-template-columns:repeat(5,1fr);gap:2px;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav__link{min-height:48px;color:var(--color-dune);letter-spacing:.02em;transition:color var(--transition-base);flex-direction:column;align-items:center;gap:4px;padding-top:4px;font-size:11px;font-weight:500;text-decoration:none;display:flex}.bottom-nav__dot{width:5px;height:5px;transition:background var(--transition-base), transform var(--transition-spring);background:0 0;border-radius:50%}.bottom-nav__link.active{color:var(--color-forest)}.bottom-nav__link.active .bottom-nav__dot{background:var(--color-gold);transform:scale(1.2)}.login-page{max-width:480px;min-height:100dvh;padding:14vh var(--space-5) var(--space-10);justify-content:space-between;gap:var(--space-8);flex-direction:column;margin:0 auto;display:flex}.login-hero .wordmark{font-size:var(--text-sm);letter-spacing:.32em;color:var(--color-forest);margin-bottom:var(--space-4);font-weight:500}.login-hero h1{font-family:var(--font-display);margin-bottom:var(--space-4);font-size:clamp(3.5rem,14vw,5rem);font-weight:300}.login-sub{max-width:30ch;color:var(--color-charcoal);font-size:var(--text-lg);line-height:1.45}.login-actions{gap:var(--space-3);flex-direction:column;display:flex}.login-form{padding:var(--space-5);text-align:left}.login-form .overline{margin-bottom:var(--space-3)}.login-error{color:var(--color-error);font-size:var(--text-sm);margin:0 0 var(--space-3)}.login-ok{color:var(--color-forest);font-size:var(--text-sm);margin:0 0 var(--space-3)}.login-note{font-size:var(--text-xs);text-align:center;margin-top:var(--space-3);line-height:1.4}.home-alert{padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);color:var(--color-error);font-size:var(--text-sm);font-weight:500}.home-reply{padding:var(--space-4);margin-bottom:var(--space-4)}.home-reply p:last-child{color:var(--color-forest);margin-top:6px}.home-title{margin-top:6px;font-size:clamp(2.4rem,10vw,3.2rem)}.home-hero{padding:var(--space-5);margin-bottom:var(--space-5)}.home-hero h2{font-family:var(--font-display);font-size:var(--text-2xl);margin:6px 0 8px}.goal-ring{--p:40%;width:148px;height:148px;margin:var(--space-6) auto;background:conic-gradient(var(--color-gold) var(--p), #c4b9a859 0);animation:ring-in .8s var(--transition-spring);border-radius:50%;place-items:center;display:grid}.goal-ring__inner{background:var(--color-white);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:118px;height:118px;display:flex}.goal-ring__value{font-family:var(--font-display);color:var(--color-forest);font-size:2rem;line-height:1}.goal-ring__label{color:var(--color-dune);margin-top:4px;font-size:11px}.home-meta{text-align:center;font-size:var(--text-sm);margin-top:var(--space-3)}.home-snapshot{gap:var(--space-3);grid-template-columns:repeat(3,1fr);display:grid}.snap{padding:var(--space-3);text-align:center}.snap strong{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-forest);margin-top:4px;font-weight:400;display:block}@keyframes ring-in{0%{opacity:.5;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.metric-scale{margin-bottom:var(--space-5);padding:var(--space-4);border-radius:var(--radius-lg);background:#ffffffb3;border:1px solid #c4b9a859}.metric-scale__head{margin-bottom:var(--space-3);justify-content:space-between;align-items:baseline;display:flex}.metric-scale__head label{color:var(--color-forest);font-weight:500}.metric-scale__head strong{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--color-forest);font-weight:400}.metric-scale .slider{margin-bottom:var(--space-2)}.photo-preview{margin-top:var(--space-3);grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.photo-preview img{aspect-ratio:1;object-fit:cover;border-radius:8px;width:100%}.checkin-head{margin-bottom:var(--space-4);justify-content:space-between;align-items:flex-start;display:flex}.checkin-head h1{font-size:var(--text-3xl);margin-top:4px}.checkin-ring{--p:20%;background:conic-gradient(var(--color-gold) var(--p), #c4b9a859 0);border-radius:50%;flex-shrink:0;place-items:center;width:52px;height:52px;display:grid}.checkin-ring span{background:var(--color-bone);width:40px;height:40px;color:var(--color-forest);border-radius:50%;place-items:center;font-size:11px;font-weight:600;display:grid}.checkin-progress{height:3px;margin-bottom:var(--space-5);background:#c4b9a859;border-radius:999px;overflow:hidden}.checkin-progress>div{background:var(--color-gold);height:100%;transition:width var(--transition-spring)}.checkin-step{padding-bottom:100px}.step-copy{margin-bottom:var(--space-4);color:var(--color-charcoal)}.macro-row{margin-bottom:var(--space-4)}.macro-row p{color:var(--color-forest);margin-bottom:var(--space-2);font-weight:500}.urgent-toggle{gap:var(--space-3);padding:var(--space-4);margin-top:var(--space-4);align-items:flex-start;display:flex}.urgent-toggle input{accent-color:var(--color-error);margin-top:4px}.urgent-toggle strong{color:var(--color-forest);display:block}.review-card{padding:var(--space-5)}.review-card ul{margin:var(--space-4) 0;padding:0;list-style:none}.review-card li{justify-content:space-between;gap:var(--space-3);font-size:var(--text-sm);border-bottom:1px solid #c4b9a859;padding:.7rem 0;display:flex}.review-card li span{color:var(--color-dune)}.review-card li strong{color:var(--color-forest);text-align:right;font-weight:500}.review-note{font-size:var(--text-sm)}.checkin-actions{left:50%;bottom:calc(var(--nav-height) + var(--safe-bottom) + 8px);justify-content:space-between;align-items:center;gap:var(--space-3);z-index:30;border-radius:16px;width:min(448px,100% - 24px);padding:10px 12px;display:flex;position:fixed;transform:translate(-50%)}.checkin-success{place-items:center;min-height:70vh;display:grid}.success-card{width:100%;padding:var(--space-8) var(--space-5);text-align:center}.success-mark{width:64px;height:64px;margin:0 auto var(--space-4);background:var(--color-sage);color:#fff;animation:pop .45s var(--transition-spring);border-radius:50%;place-items:center;font-size:1.75rem;display:grid}.success-card h1{font-size:var(--text-4xl);margin-bottom:var(--space-3)}.success-card p{margin-bottom:var(--space-6);color:var(--color-charcoal)}.success-card .btn+.btn{margin-top:var(--space-3)}@keyframes pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.trend-chart{padding:var(--space-4);margin-bottom:var(--space-4)}.trend-chart__head h3{font-family:var(--font-display);font-size:var(--text-2xl);margin-top:4px}.trend-chart__head .up{color:var(--color-sage);font-size:var(--text-base);margin-left:6px}.trend-chart__head .down{color:var(--color-error);font-size:var(--text-base);margin-left:6px}.trend-chart__plot{margin-top:var(--space-2)}.progress-page .display{font-size:var(--text-4xl)}.email-preview{padding:var(--space-4);margin-top:var(--space-4)}.email-preview h3{font-size:var(--text-base);font-family:var(--font-ui);margin:6px 0 4px;font-weight:600}.email-preview pre{white-space:pre-wrap;font-family:var(--font-ui);font-size:var(--text-xs);color:var(--color-charcoal);background:var(--color-bone);padding:var(--space-3);border-radius:var(--radius-md);margin-top:var(--space-3);max-height:220px;overflow:auto}.protocol-page .display{max-width:16ch;font-size:clamp(1.8rem,7vw,2.4rem)}.protocol-card{padding:var(--space-5);margin-bottom:var(--space-5)}.protocol-meta{gap:var(--space-3);margin-top:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.protocol-meta span{font-size:var(--text-xs);display:block}.protocol-meta strong{color:var(--color-forest);font-weight:600;font-size:var(--text-sm)}.protocol-page h2{font-family:var(--font-display);font-size:var(--text-2xl);margin-bottom:var(--space-3)}.compound-list{gap:var(--space-3);margin-bottom:var(--space-5);flex-direction:column;display:flex}.compound{padding:var(--space-4)}.compound h3{font-family:var(--font-ui);font-size:var(--text-lg);margin-bottom:4px;font-weight:600}.compound-notes{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--color-trust-blue)}.macro-grid{gap:var(--space-3);margin:var(--space-3) 0;grid-template-columns:repeat(3,1fr);display:grid}.macro-grid span{font-size:var(--text-xs);color:var(--color-dune);display:block}.macro-grid strong{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--color-forest);font-weight:400}.profile-page .display{font-size:var(--text-4xl)}.profile-card{padding:var(--space-5);margin-bottom:var(--space-4)}.profile-card h2{font-family:var(--font-display);font-size:var(--text-2xl);margin-bottom:6px}.profile-card select{border:1px solid var(--color-sandstone);border-radius:var(--radius-sm);background:var(--color-white);width:100%;min-height:48px;margin-top:10px;padding:0 12px}.consent{margin-top:var(--space-3);font-size:var(--text-sm);color:var(--color-forest);font-weight:500}.admin-page{padding-bottom:var(--space-10)}.clients-toolbar{gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.client-form{padding:var(--space-5);margin-bottom:var(--space-4)}.client-form h2,.client-detail h2,.overdue-card h2{font-family:var(--font-display);font-size:var(--text-2xl);margin-bottom:var(--space-3)}.client-list{gap:var(--space-2);margin-bottom:var(--space-4);flex-direction:column;display:flex}.client-row{justify-content:space-between;align-items:center;gap:var(--space-3);text-align:left;width:100%;padding:var(--space-3) var(--space-4);display:flex}.client-row.active{border-color:var(--color-forest)}.client-row__meta{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.client-detail,.overdue-card{padding:var(--space-5);margin-top:var(--space-4)}.overdue-panel .btn{margin-top:var(--space-4)}.photo-thumbs{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.photo-thumbs img{object-fit:cover;border-radius:6px;width:56px;height:56px}.toast{justify-content:space-between;align-items:center;gap:12px;display:flex}.toast button{color:var(--color-forest);font-size:14px}.admin-fields-row select{border:1px solid var(--color-sandstone);border-radius:var(--radius-sm);background:var(--color-white);min-height:48px;padding:0 12px}.admin-page .display{font-size:var(--text-4xl)}.admin-tabs{margin-bottom:var(--space-5)}.admin-grid{gap:var(--space-4);display:grid}@media (width>=840px){.admin-grid{grid-template-columns:280px 1fr}}.inbox-list{gap:var(--space-2);flex-direction:column;display:flex}.inbox-item{text-align:left;padding:var(--space-3) var(--space-4);width:100%}.inbox-item.active{border-color:var(--color-forest)}.inbox-item__top{align-items:center;gap:var(--space-2);margin-bottom:4px;display:flex}.inbox-item p{font-size:var(--text-sm);color:var(--color-dune)}.badge{letter-spacing:.06em;text-transform:uppercase;background:var(--color-sprout);color:var(--color-forest);border-radius:999px;padding:2px 6px;font-size:10px;font-weight:700}.badge.urgent{color:var(--color-error);background:#c94a4a26}.inbox-detail,.protocol-editor{padding:var(--space-5)}.inbox-detail h2,.protocol-editor h2{font-family:var(--font-display);font-size:var(--text-2xl);margin-bottom:var(--space-3)}.detail-list{margin:0 0 var(--space-4);padding:0;list-style:none}.detail-list li{font-size:var(--text-sm);border-bottom:1px solid #c4b9a84d;padding:.55rem 0}.admin-fields-row{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));display:grid}.compound-editor{padding:var(--space-3);margin-bottom:var(--space-3);border:1px dashed var(--color-sandstone);border-radius:var(--radius-md)}.compound-editor__head{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.btn-link-danger{color:var(--color-error);font-size:var(--text-sm);letter-spacing:.04em;text-transform:uppercase;font-weight:600}.email-item{padding:var(--space-4);margin-bottom:var(--space-3)}.email-item h3{font-family:var(--font-ui);font-size:var(--text-base);margin:4px 0;font-weight:600}.email-item pre{white-space:pre-wrap;font-family:var(--font-ui);font-size:var(--text-xs);background:var(--color-bone);padding:var(--space-3);border-radius:var(--radius-md);margin-top:var(--space-3)}.onboarding-page .display{margin:8px 0 12px;font-size:clamp(2.2rem,9vw,3rem)}.onboard-card{padding:var(--space-5);margin:var(--space-4) 0}.onboard-card h2{font-family:var(--font-display);font-size:var(--text-2xl);margin-bottom:6px}.onboard-card select{border:1px solid var(--color-sandstone);border-radius:var(--radius-sm);background:var(--color-white);width:100%;min-height:48px;margin-top:10px;padding:0 12px}.admin-auth-page{max-width:480px;margin:0 auto}.admin-auth-page .display{margin:8px 0 12px;font-size:clamp(2.2rem,9vw,3rem)}.admin-auth-card{padding:var(--space-5);margin:var(--space-5) 0}.admin-auth-ok{color:var(--color-sage);font-size:var(--text-sm);margin:0 0 var(--space-3)}.admin-auth-card input{letter-spacing:.35em;text-align:center;font-size:1.25rem}:root{--color-bone:#f5f3ee;--color-white:#fff;--color-forest:#2d3830;--color-charcoal:#4a4a4a;--color-deep:#1a1f1c;--color-gold:#c9a227;--color-gold-hover:#b8922a;--color-sage:#8b9a87;--color-sprout:#a8b5a0;--color-sandstone:#c4b9a8;--color-dune:#a89b8a;--color-trust-blue:#2d5a7b;--color-error:#c94a4a;--color-success:#8b9a87;--font-display:"Cormorant Garamond", Georgia, "Times New Roman", serif;--font-ui:"DM Sans", "Helvetica Neue", Helvetica, sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.75rem;--text-4xl:2.25rem;--text-5xl:2.75rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:24px;--shadow-sm:0 1px 3px #2d38300f, 0 1px 2px #2d38300a;--shadow-md:0 4px 6px #2d383012, 0 2px 4px #2d38300a;--shadow-lg:0 10px 15px #2d383014, 0 4px 6px #2d38300a;--glass-bg:#f5f3eeb8;--glass-border:#c4b9a873;--glass-blur:blur(18px) saturate(1.4);--safe-bottom:env(safe-area-inset-bottom,0px);--nav-height:72px;--header-height:56px;--transition-fast:.15s ease;--transition-base:.22s ease;--transition-spring:.32s cubic-bezier(.22, 1, .36, 1)}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-ui);font-size:var(--text-base);color:var(--color-charcoal);background:radial-gradient(120% 80% at 100% -10%, #c9a2271f, transparent 50%), radial-gradient(90% 60% at -10% 100%, #8b9a8729, transparent 45%), linear-gradient(180deg, #f8f6f1 0%, var(--color-bone) 45%, #efebe3 100%);-webkit-font-smoothing:antialiased;background-attachment:fixed;margin:0;line-height:1.5}button,input,textarea,select{font:inherit;color:inherit}a{color:var(--color-trust-blue)}h1,h2,h3,h4{color:var(--color-forest);margin:0;font-weight:400}h1,.display{font-family:var(--font-display);letter-spacing:-.02em;font-weight:300;line-height:1.1}p{margin:0}img{max-width:100%;display:block}button{cursor:pointer;background:0 0;border:none;padding:0}:focus-visible{outline:2px solid var(--color-gold);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-shell{max-width:480px;min-height:100dvh;padding-bottom:calc(var(--nav-height) + var(--safe-bottom) + 12px);margin:0 auto;position:relative}.app-shell.admin-wide{max-width:960px}.page{padding:var(--space-5) var(--space-4) var(--space-8)}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-6);display:flex}.overline{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-sage);font-weight:600}.muted{color:var(--color-dune)}.glass{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--shadow-sm)}.surface{border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);background:#ffffffd1;border:1px solid #c4b9a859}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:48px;padding:0 var(--space-6);border-radius:var(--radius-sm);font-size:var(--text-sm);letter-spacing:.06em;text-transform:uppercase;transition:transform var(--transition-fast), background var(--transition-base), opacity var(--transition-base);font-weight:600;display:inline-flex}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-gold{background:var(--color-gold);color:var(--color-forest)}.btn-gold:hover:not(:disabled){background:var(--color-gold-hover)}.btn-forest{background:var(--color-forest);color:var(--color-bone)}.btn-ghost{color:var(--color-forest);border:1px solid var(--color-sandstone);background:0 0}.btn-block{width:100%}.field{gap:var(--space-2);margin-bottom:var(--space-4);flex-direction:column;display:flex}.field label{font-size:var(--text-sm);color:var(--color-forest);font-weight:500}.field input,.field textarea,.field select{border:1px solid var(--color-sandstone);border-radius:var(--radius-sm);background:var(--color-white);min-height:48px;padding:.75rem 1rem}.field textarea{resize:vertical;min-height:96px}.chip-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.chip{border:1px solid var(--color-sandstone);min-height:40px;color:var(--color-forest);font-size:var(--text-sm);transition:background var(--transition-base), border-color var(--transition-base), color var(--transition-base);background:#ffffffb3;border-radius:999px;padding:.5rem .9rem}.chip.active{background:var(--color-forest);border-color:var(--color-forest);color:var(--color-bone)}.chip.danger.active{background:var(--color-error);border-color:var(--color-error)}.scale-labels{font-size:var(--text-xs);color:var(--color-dune);justify-content:space-between;display:flex}.slider{width:100%;accent-color:var(--color-forest)}.toast{left:50%;bottom:calc(var(--nav-height) + var(--safe-bottom) + 16px);z-index:50;border-radius:var(--radius-lg);max-width:min(420px,100vw - 32px);color:var(--color-forest);font-size:var(--text-sm);padding:.85rem 1.1rem;font-weight:500;position:fixed;transform:translate(-50%)}.empty-state{text-align:center;padding:var(--space-10) var(--space-4)}.empty-state h2{font-family:var(--font-display);font-size:var(--text-3xl);margin-bottom:var(--space-2)}
