:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#20322d;background:#faf9f5;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;background:#faf9f5}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:230px 1fr}.sidebar{background:#183d34;color:#ebf4ee;padding:30px 20px;display:flex;flex-direction:column;min-height:100vh}.brand{display:flex;align-items:center;gap:9px;color:inherit;text-decoration:none;font-size:23px;font-weight:700;letter-spacing:-1px;margin:0 10px 56px}.brand-mark{align-items:center;background:#d9f0c0;border-radius:9px;color:#183d34;display:inline-flex;font-family:Georgia,serif;font-size:27px;height:30px;justify-content:center;width:30px}nav{display:grid;gap:7px}.nav-item{background:transparent;border:0;border-radius:9px;color:#bdd1c5;font-weight:600;padding:12px 13px;text-align:left}.nav-item:hover,.nav-item.active{background:#2a5147;color:#fff}.sidebar-footer{color:#9eb8aa;font-size:12px;line-height:1.5;margin:auto 10px 0}.content{margin:0 auto;max-width:1300px;padding:34px 52px 60px;width:100%}.topbar,.intro-row,.card-heading,.log-header,.meal-title-row{align-items:center;display:flex;justify-content:space-between}.eyebrow{color:#79867f;font-size:13px;font-weight:600;margin:0 0 7px;text-transform:uppercase;letter-spacing:.08em}h1,h2,h3,h4,p{margin-top:0}h1{font-family:Georgia,serif;font-size:clamp(32px,4vw,48px);font-weight:500;letter-spacing:-1.8px;margin-bottom:0}.avatar{background:#e1aa76;border:0;border-radius:50%;color:#fff;font-weight:700;height:42px;width:42px}.page-grid{display:grid;gap:32px;grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);margin-top:54px}.intro-row{margin-bottom:24px}.intro-row h2,.log-card h2{font-family:Georgia,serif;font-size:27px;font-weight:500;letter-spacing:-.7px;margin-bottom:7px}.intro-row p,.log-card>p{color:#718078;font-size:15px;margin-bottom:0}.outline-button,.demo-button{background:transparent;border:1px solid #cad4ce;border-radius:8px;color:#365247;font-size:13px;font-weight:700;padding:10px 13px}.timeline-card{background:#fff;border:1px solid #e6e9e5;border-radius:16px;padding:25px}.history-card{background:#fff;border:1px solid #e6e9e5;border-radius:16px;margin-top:54px;padding:28px}.profile-page{margin-top:54px}.profile-grid{display:grid;gap:24px;grid-template-columns:repeat(2,minmax(0,1fr))}.profile-card,.progress-history{background:#fff;border:1px solid #e6e9e5;border-radius:16px;padding:26px}.profile-card h3,.progress-history h3{font-family:Georgia,serif;font-size:22px;font-weight:500;margin-bottom:0}.measure-input{display:grid;gap:12px;grid-template-columns:minmax(0,1fr) 95px}.measurements{display:grid;gap:9px;grid-template-columns:repeat(3,minmax(0,1fr))}.progress-history{margin-top:24px}.photo-section,.groups-card{background:#fff;border:1px solid #e6e9e5;border-radius:16px;margin-top:24px;padding:26px}.groups-card h3{font-family:Georgia,serif;font-size:22px;font-weight:500;margin-bottom:7px}.groups-card>div>p{color:#65756c;font-size:13px;line-height:1.5}.group-form{align-items:end;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) 150px;margin-top:18px}.group-list{border-top:1px solid #edf0ed;margin-top:20px}.group-list article{border-bottom:1px solid #edf0ed;display:flex;justify-content:space-between;padding:14px 0}.group-list small{color:#65756c}.group-admin-item{display:grid;gap:12px}.group-admin-heading{display:flex;justify-content:space-between}.member-form{align-items:end;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) auto;margin:0}.member-list{background:#f7faf6;border-radius:8px;padding:8px 12px}.member-row{align-items:center;border-bottom:1px solid #e5ede4;display:flex;justify-content:space-between;padding:9px 0}.member-row:last-child{border-bottom:0}.member-row span{display:grid;gap:2px}.member-row small{font-size:12px}.photo-section h3{font-family:Georgia,serif;font-size:22px;font-weight:500;margin-bottom:7px}.photo-section>div>p{color:#65756c;font-size:13px;line-height:1.5}.photo-form{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) auto;margin-top:18px}.photo-form .primary-button{align-self:end;min-width:130px}.photo-gallery{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));margin-top:22px}.photo-gallery figure{margin:0}.photo-gallery img{aspect-ratio:1;border-radius:10px;display:block;object-fit:cover;width:100%}.photo-gallery figcaption{color:#65756c;display:grid;font-size:12px;gap:4px;margin-top:7px}.delete-photo{color:#9b4338}.progress-history article{border-top:1px solid #edf0ed;display:grid;gap:5px;padding:16px 0}.progress-history article:first-of-type{margin-top:20px}.progress-history article span,.progress-history article small{color:#65756c;font-size:13px}.history-list{border-top:1px solid #edf0ed}.history-actions{display:flex;gap:9px}.history-row{align-items:center;border-bottom:1px solid #edf0ed;display:flex;gap:20px;justify-content:space-between;padding:20px 0}.history-row h3{font-size:16px;margin:0 0 6px}.history-row p{font-size:14px;margin-bottom:6px}.history-row .history-date{color:#718078;font-size:12px;font-weight:700;letter-spacing:.02em}.history-row small{color:#819087;font-size:12px}.empty-state{color:#718078;margin:32px 0 4px}.card-heading h3{font-size:16px;margin:0}.card-heading span{color:#839087;font-size:13px}.day-controls{align-items:center;display:flex;gap:8px;justify-content:center;margin-top:19px}.day-button,.day-label{background:#f5f8f4;border:1px solid #dce5dc;border-radius:7px;color:#365247;font-size:13px;font-weight:700;min-height:34px;padding:6px 10px}.day-button{font-size:18px;line-height:1;min-width:34px;padding:3px 8px}.day-button:disabled{cursor:not-allowed;opacity:.45}.timeline{margin-top:24px}.meal-row{display:grid;grid-template-columns:50px 17px 1fr;gap:12px;min-height:101px;position:relative}.meal-row:not(:last-child):after{background:#dce4de;content:"";height:calc(100% - 24px);left:58px;position:absolute;top:24px;width:1px}.meal-row time{color:#7f8c84;font-size:13px;padding-top:5px}.meal-dot{background:#d9f0c0;border:4px solid #f5fbef;border-radius:50%;height:17px;width:17px;z-index:1}.meal-summary{border-bottom:1px solid #edf0ed;padding-bottom:21px}.meal-row:last-child .meal-summary{border-bottom:0}.meal-title-row h4{font-size:15px;margin-bottom:6px}.meal-title-row span{background:#f2f4e9;border-radius:99px;color:#637253;font-size:11px;padding:4px 8px}.meal-summary p{font-size:14px;margin-bottom:7px}.meal-summary small{color:#819087;font-size:12px}.meal-context{color:#65756c;font-size:12px;line-height:1.5;margin-top:8px}.meal-context span{color:#4d6d5d;font-weight:600}.meal-context p{font-style:italic;margin:4px 0 0}.history-row .meal-context{max-width:640px}.log-card{background:#edf5e9;border-radius:16px;padding:27px}.log-header{justify-content:flex-start;gap:10px}.soft-icon{align-items:center;background:#d9f0c0;border-radius:50%;color:#2c604f;display:inline-flex;font-size:22px;height:34px;justify-content:center;width:34px}form{display:grid;gap:15px;margin-top:24px}label,fieldset{color:#47574f;display:grid;font-size:12px;font-weight:700;gap:7px}label span{color:#77847c;float:right;font-weight:500}input,select{background:#fff;border:1px solid #d5dfd5;border-radius:8px;color:#21332c;min-height:42px;padding:9px 11px;width:100%}textarea{background:#fff;border:1px solid #d5dfd5;border-radius:8px;color:#21332c;min-height:80px;padding:9px 11px;resize:vertical;width:100%}fieldset{border:0;margin:0;padding:0}legend{margin-bottom:7px}.food-row{display:grid;gap:7px;grid-template-columns:minmax(0,1fr) 72px 76px}.optional-details{border-top:1px solid #dce6dc;color:#47574f;font-size:13px;padding-top:14px}.optional-details summary{color:#38715d;cursor:pointer;font-weight:700}.optional-fields{display:grid;gap:12px;margin-top:14px}.text-button{background:transparent;border:0;color:#38715d;font-size:12px;font-weight:700;padding:3px 0;text-align:left;width:fit-content}.range{accent-color:#447560;padding:0}.select-pair{display:grid;gap:12px;grid-template-columns:1fr 1fr}.primary-button{background:#183d34;border:0;border-radius:8px;color:#fff;font-size:14px;font-weight:700;min-height:46px;padding:11px 16px}.primary-button:hover{background:#245145}.edit-actions{align-items:center;display:flex;gap:12px;justify-content:space-between}.edit-actions .primary-button{flex:1}.danger-button{background:transparent;border:1px solid #d9b2ab;border-radius:8px;color:#9b4338;font-size:13px;font-weight:700;min-height:46px;padding:10px 13px}.demo-button{border-color:transparent;color:#597067}.message{background:#f1f6e9;border:1px solid #dce9cf;border-radius:9px;color:#375543;margin:25px 0 0;padding:12px 14px}.modal-backdrop{align-items:center;background:#1127207a;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;padding:20px;position:fixed;z-index:5}.modal{background:#fffdf9;border-radius:18px;max-width:450px;padding:36px;position:relative;width:100%}.edit-modal{max-height:calc(100vh - 40px);overflow-y:auto}.modal .soft-icon{margin-bottom:18px}.modal h2{font-family:Georgia,serif;font-size:30px;font-weight:500;letter-spacing:-1px;margin-bottom:10px}.modal p{color:#647269;font-size:14px;line-height:1.6}.close-button{background:transparent;border:0;color:#718078;font-size:28px;line-height:1;position:absolute;right:16px;top:12px}@media(max-width:880px){.app-shell{grid-template-columns:1fr}.sidebar{min-height:auto;padding:18px 22px}.brand{margin:0 0 18px}nav{display:flex;overflow-x:auto}.nav-item{white-space:nowrap}.sidebar-footer{display:none}.content{padding:28px 20px 45px}.page-grid,.profile-grid,.photo-form,.group-form{grid-template-columns:1fr;margin-top:35px}.photo-form .primary-button,.group-form .primary-button{width:100%}}@media(max-width:480px){.topbar{align-items:flex-start}.intro-row{align-items:flex-start;gap:15px}.outline-button{padding:8px 10px}.timeline-card,.log-card,.history-card{padding:19px}.select-pair{grid-template-columns:1fr}.food-row{grid-template-columns:minmax(0,1fr) 66px 70px}.history-actions{width:100%}.history-actions .outline-button{flex:1}.history-row{align-items:flex-start;flex-direction:column}.history-row .outline-button{width:100%}}
