html,body,button,input,select,textarea{font-family:var(--font-body)}
h1,h2,h3,h4,.brand-mark,.nav-item small,.meal-tab span,.home-entry b,.library-heading strong{font-family:var(--font-display)!important;font-weight:500!important}
html,body{width:100%;height:100%;overflow:hidden}
.app-shell{width:min(100%,430px);height:100dvh;overflow:hidden}
.app-main{min-height:0;flex:1;overflow:hidden}
.screen-content{min-height:0;overflow:hidden!important;padding:0 14px!important}
.screen-anchor,.screen-anchor:has(.home-v3),.screen-anchor:has(.picker-view),.screen-anchor:has(.plate-v1),.screen-anchor:has(.summary-compact){height:calc(100% - 10px)!important;min-height:0;padding:10px 0 0!important;overflow:hidden!important}
[data-role=screen]{height:100%;min-height:0;overflow:hidden}
.global-nav{height:76px;flex:0 0 76px;padding:4px 10px 7px;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;border-top:2px solid #26221d;background:#fffaf4}
.global-nav .nav-item{min-width:44px;min-height:64px;border:2px solid transparent;border-radius:20px;color:#332820}.global-nav .nav-item img{width:30px;height:30px;object-fit:contain}.global-nav .nav-item small{font-size:12px;color:#332820;line-height:1}.global-nav .nav-item.is-active{background:#ffd86e;border-color:#26221d;box-shadow:none}

.home-v3{height:100%!important;min-height:0!important;margin:0!important;display:grid!important;grid-template-rows:70px 45px 34px minmax(0,1fr) 145px;gap:7px;overflow:hidden!important}
.home-v3 .home-version-line{display:flex;align-items:center;gap:5px;min-height:18px}.home-v3 .original-version-button{border:1px solid #e2c3aa;border-radius:999px;background:#fffaf4;color:#6d5a4d;padding:3px 9px;font:inherit;font-size:10px;line-height:1;cursor:pointer}.home-v3 .original-version-button:focus-visible{outline:2px solid #79b2d0;outline-offset:2px}
.home-v3 .hero-row{height:70px;min-height:70px;margin:0;justify-content:center;position:relative}.home-v3 .hero-row>div{text-align:center}.home-v3 .hero-row h2{margin:0;font-size:40px;line-height:1.05;color:#26221d}.home-v3 .hero-row p{margin:4px 0 0;font-size:11px;color:#6d5a4d}.home-v3 .hero-row .hero-cat{position:absolute;right:2px;top:0;width:76px;height:70px;object-fit:contain}
.home-v3 .home-meal-tabs{height:45px;min-height:45px;display:flex;gap:0;padding:0;overflow:hidden}.home-v3 .home-meal-tabs .meal-tab{height:45px;min-width:0;flex:1;align-items:center;justify-content:center;padding:6px 4px;border:2px solid #26221d;border-radius:0;background:#fffaf4;text-align:center}.home-v3 .home-meal-tabs .meal-tab:first-child{border-radius:22px 0 0 22px}.home-v3 .home-meal-tabs .meal-tab:last-child{border-radius:0 22px 22px 0}.home-v3 .home-meal-tabs .meal-tab span{font-size:16px;line-height:1.1;color:#26221d}.home-v3 .home-meal-tabs .meal-tab small{display:none}.home-v3 .home-meal-tabs .meal-tab.is-active{background:#ffd86e;box-shadow:none}
.home-v3 .today-strip{height:34px;min-height:34px;align-self:center;margin:0!important;padding:3px 13px;border:2px solid #26221d;border-radius:18px;background:#fffaf4}.home-v3 .training-check{height:44px;min-height:44px;gap:8px;align-items:center}.home-v3 .training-check input{width:22px;height:22px;margin:0}.home-v3 .training-check b{font-size:14px;color:#26221d}.home-v3 .training-check small,.home-v3 .today-strip>strong{display:none}
.home-v3 .home-entry-grid{height:auto;min-height:0;margin:0!important;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;flex:none!important}.home-v3 .home-entry{height:100%;min-height:0!important;display:block;position:relative;overflow:hidden;padding:0;border:2px solid #26221d;border-radius:22px;background:#fffaf4;box-shadow:none;color:#26221d}.home-v3 .home-entry>.entry-art{position:absolute;left:50%;top:53px;transform:translateX(-50%);width:130px;height:160px;background:transparent;box-shadow:none;overflow:visible}.home-v3 .home-entry>.entry-art img{width:126px;height:154px;object-fit:contain}.home-v3 .home-entry.custom-entry-card>.entry-art{top:110px;width:136px;height:145px}.home-v3 .home-entry.custom-entry-card>.entry-art img{width:136px;height:136px}.home-v3 .home-entry>span:not(.entry-art):not(.entry-foods):not(.entry-add-mark){position:absolute;left:15px;top:14px;display:flex;flex-direction:column;gap:3px;z-index:2}.home-v3 .home-entry>span:not(.entry-art):not(.entry-foods):not(.entry-add-mark) b{font-size:18px;color:#26221d}.home-v3 .home-entry>span:not(.entry-art):not(.entry-foods):not(.entry-add-mark) small{font-size:10px;color:#6d5a4d}.home-v3 .home-entry>i{position:absolute;right:13px;top:13px;padding:6px 8px;border-radius:10px;background:#ffd86e;color:#26221d;font-size:10px;font-style:normal;font-weight:900;z-index:2}.home-v3 .entry-foods{position:absolute;left:10px;right:10px;bottom:11px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;z-index:2}.home-v3 .entry-foods>span{display:flex;flex-direction:column;align-items:center;gap:1px;padding:3px 1px;border:1px solid #eadfc8;border-radius:11px;background:#fffdf8}.home-v3 .entry-foods img{width:40px;height:40px;object-fit:contain}.home-v3 .entry-foods b{font-size:9px;white-space:nowrap;color:#302820}.home-v3 .entry-add-mark{position:absolute;left:50%;top:58%;transform:translate(-50%,-50%);display:grid!important;place-items:center;width:58px;height:58px;border:3px dashed #79b2d0;border-radius:50%;color:#26221d;font-size:45px;line-height:1;z-index:2}
.home-v3 .home-library-v3{height:145px;min-height:145px!important;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:25px 34px minmax(0,1fr);gap:5px 8px;position:relative;overflow:visible;margin:0!important;padding:9px 10px;border:2px solid #26221d;border-radius:22px;background:#fffaf4}.home-v3 .home-library-v3 .library-heading{display:flex;flex-direction:column;gap:1px;min-width:0}.home-v3 .home-library-v3 .library-heading .eyebrow{font-size:10px;color:#26221d}.home-v3 .home-library-v3 .library-heading strong{font-size:15px;color:#26221d;line-height:1.1}.home-v3 .home-library-v3 .library-open-label{align-self:start;padding:5px 8px;font-size:10px;border:1.5px solid #26221d;background:#ffd86e;color:#26221d}.home-v3 .home-library-v3 .home-search{grid-column:1/-1;height:34px;min-height:34px;display:flex;align-items:center;padding:4px 9px;border:2px solid #26221d;border-radius:17px;background:#fffdf8;color:#6d5a4d}.home-v3 .home-library-v3 .library-examples{grid-column:1/-1;height:50px;min-height:50px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0;overflow:visible}.home-v3 .home-library-v3 .library-examples>span{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:0;height:50px;overflow:hidden;border:1px solid #eadfc8;border-radius:12px;background:#fffdf8;color:#26221d;font-size:9px;font-weight:900}.home-v3 .home-library-v3 .library-examples>span>img{width:34px!important;height:34px!important;object-fit:contain}.home-v3 .home-library-v3 .library-examples>span>span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-v3 .home-library-v3 .library-cat{position:absolute;right:4px;top:-30px;width:58px;height:66px;object-fit:contain;z-index:3;pointer-events:none}

.picker-view{height:100%!important;min-height:0!important;display:grid!important;grid-template-columns:72px minmax(0,1fr);grid-template-rows:40px 40px minmax(0,1fr) 26px 70px;column-gap:10px;row-gap:7px;margin:0!important;overflow:hidden!important}.picker-view>.subhead{grid-column:1/-1;grid-row:1;height:40px;margin:0!important}.picker-view>.subhead h2{font-size:27px;color:#26221d}.picker-view>.category-tabs{grid-column:1;grid-row:2/span 3;display:flex;flex-direction:column;gap:0;margin:0!important;padding:3px 0;border:2px solid #26221d;border-radius:22px;background:#fffaf4;overflow:hidden}.picker-view .category-tab{flex:1;min-height:44px;padding:4px 2px;border-radius:0;background:transparent;color:#26221d;font-size:11px}.picker-view .category-tab.is-active{background:#b8d795;box-shadow:none;color:#26221d}.picker-view>.search-box{grid-column:2;grid-row:2;height:40px;margin:0!important;padding:6px 9px;border:2px solid #26221d;border-radius:19px;background:#fffdf8}.picker-view>.food-grid{grid-column:2;grid-row:3;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:9px;margin:0;min-height:0!important}.picker-view .food-card{height:auto!important;min-height:0!important;display:block;padding:0;border:1.5px solid #26221d;border-radius:16px;background:#fffaf4;overflow:hidden}.picker-view .food-card-main{width:100%;height:100%;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:8px;border:0;border-radius:14px;background:transparent;color:#26221d;text-align:left}.picker-view .food-image{flex:0 0 112px;width:100%;height:112px;display:grid;place-items:center;border-radius:12px;background:#fffaf4}.picker-view .food-image img{width:104px;height:104px;object-fit:contain}.picker-view .food-card strong{font-size:15px;line-height:1.2;color:#26221d;white-space:nowrap;overflow:visible}.picker-view .food-card small{font-size:11px;line-height:1.3;color:#6d5a4d;white-space:nowrap;overflow:visible}.picker-view .food-plus{right:7px;bottom:7px;width:44px;height:44px;border:2px solid #26221d;border-radius:50%;background:#ffd86e;color:#26221d;font-size:25px;z-index:2}.picker-view>.pager{grid-column:2;grid-row:4;height:26px;margin:0!important;align-self:center}.picker-view>.selection-tray{grid-column:1/-1;grid-row:5;height:70px;min-height:70px;display:grid;grid-template-columns:74px minmax(0,1fr) auto;align-items:center;gap:8px;position:static!important;padding:8px 10px!important;border:2px solid #26221d;border-radius:21px;background:#fffaf4;color:#26221d;font-size:11px}.picker-view>.selection-tray .mini-foods img{width:42px;height:42px;border:1px solid #eadfc8;background:#fffdf8}.picker-view>.selection-tray .primary-button{min-width:100px;min-height:44px;padding:9px 12px;border:2px solid #26221d;border-radius:14px;background:#ffad43;color:#26221d;font-size:11px;box-shadow:none;white-space:nowrap}

.plate-v1{height:100%!important;min-height:0!important;display:grid!important;grid-template-columns:minmax(0,1fr) 112px;grid-template-rows:40px 190px 234px 132px 24px 54px;column-gap:9px;row-gap:6px;overflow:hidden!important}.plate-v1>.subhead{grid-column:1/-1;grid-row:1;height:40px;margin:0!important}.plate-v1>.subhead h2{font-size:27px;color:#26221d}.plate-v1>.plate-board-row{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:9px;min-width:0;height:190px}.plate-v1 .plate-stage{width:100%;height:190px;min-height:190px;margin:0;border:2px solid #26221d;border-radius:24px;background:#fffaf4;overflow:hidden}.plate-v1 .plate-stage .scene-base{width:100%;height:100%;object-fit:contain}.plate-v1 .plate-food{z-index:2;gap:1px;padding:0;background:transparent;color:#26221d;font-size:10px;font-weight:900}.plate-v1 .plate-food img{width:82px;height:82px;object-fit:contain}.plate-v1 .plate-food span{padding:0;background:transparent;color:#26221d;font-size:10px;line-height:1.1;white-space:nowrap}.plate-v1 .plate-food-1{left:17%;top:20%}.plate-v1 .plate-food-2{right:15%;top:19%}.plate-v1 .plate-food-3{left:20%;bottom:13%}.plate-v1 .plate-food-4{right:15%;bottom:12%}.plate-v1>.plate-board-row>.plate-actions{height:190px;display:flex;flex-direction:column;gap:8px}.plate-v1 .plate-actions button{min-height:44px;display:flex;align-items:center;justify-content:center;gap:4px;padding:5px 4px;border:2px solid #26221d;border-radius:15px;background:#fffaf4;color:#26221d;font-size:11px;font-weight:900;box-shadow:none}.plate-v1 .plate-actions button:first-child{background:#fff0c5}.plate-v1 .plate-actions img{width:29px;height:29px;object-fit:contain}.plate-v1>.board-panel{grid-column:1/-1;grid-row:3;display:grid;grid-template-rows:184px 44px;gap:6px;min-height:0}.plate-v1 .board-stage{width:88%;height:184px;min-height:184px;margin:0 auto;border:2px solid #26221d;border-radius:24px;background:#e5bc82;overflow:hidden}.plate-v1 .board-stage .scene-base{width:100%;height:100%;object-fit:contain}.plate-v1 .board-stage .board-food{width:126px;height:126px;object-fit:contain;z-index:2}.plate-v1 .board-stage .board-label{display:none}.plate-v1 .board-food-copy{position:absolute;left:50%;bottom:11px;transform:translateX(-50%);z-index:3;display:flex;flex-direction:column;align-items:center;gap:1px;color:#26221d;white-space:nowrap}.plate-v1 .board-food-copy strong{font-size:14px}.plate-v1 .board-food-copy small{font-size:10px}.plate-v1>.board-panel .gram-control{width:70%;height:44px;min-height:44px;margin:0 auto;display:grid;grid-template-columns:44px minmax(0,1fr) 26px 44px;gap:7px;align-items:center}.plate-v1 .gram-control button{width:44px;height:44px;min-width:44px;border:2px solid #26221d;border-radius:13px;background:#fff0c5;color:#26221d;font-size:24px}.plate-v1 .gram-control input{height:44px;border:2px solid #26221d;border-radius:13px;background:#fffaf4;color:#26221d;font-size:18px;text-align:center}.plate-v1 .gram-control span{font-size:11px;color:#523a32}
.plate-v1>.scale-card{grid-column:1/-1;grid-row:4;width:76%;height:132px;min-height:132px;display:grid;grid-template-columns:94px minmax(0,1fr);grid-template-rows:34px minmax(0,1fr);gap:3px 7px;margin:0 auto;padding:8px 10px;border:2px solid #26221d;border-radius:20px;background:#edf3e9;overflow:hidden}.plate-v1>.scale-card>img{grid-column:1;grid-row:1/3;width:88px;height:108px;object-fit:contain}.plate-v1 .scale-reading{grid-column:2;grid-row:1;display:flex;align-items:center;gap:4px;min-width:0;overflow:hidden}.plate-v1 .scale-reading span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:#26221d}.plate-v1 .scale-reading strong{font-size:22px;line-height:1;color:#315c56;white-space:nowrap}.plate-v1 .scale-reading strong small{font-size:10px}.plate-v1 .board-macro-panel{grid-column:2;grid-row:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;min-width:0;min-height:0;padding:0;border:0;background:transparent;overflow:hidden}.plate-v1 .board-macro-title{grid-column:1/-1;display:flex;justify-content:space-between;line-height:1}.plate-v1 .board-macro-title strong{font-size:10px;color:#26221d}.plate-v1 .board-macro-title span{font-size:9px;color:#6d5a4d}.plate-v1 .board-macro-row{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;padding:2px;border-left:1px solid #c5d5ca}.plate-v1 .board-macro-row:first-of-type{border-left:0}.plate-v1 .board-macro-row span{font-size:10px;color:#26221d;white-space:nowrap}.plate-v1 .board-macro-row strong{font-size:17px;line-height:1.05;white-space:nowrap}.plate-v1 .board-macro-row small{font-size:10px;white-space:nowrap}.plate-v1>.day-macro-inline{grid-column:1/-1;grid-row:5;height:24px;display:flex;align-items:center;justify-content:center;color:#315c56;font-size:11px;white-space:nowrap}.plate-v1>.settlement-strip{grid-column:1/-1;grid-row:6;height:54px;min-height:54px;display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0;padding:3px;border:2px solid #26221d;border-radius:18px;background:#fffaf4}.plate-v1>.settlement-strip button{min-height:44px;border:0;border-radius:13px;background:transparent;color:#26221d;font-size:11px;font-weight:900}.plate-v1>.settlement-strip button+button{border-left:1px solid #eadfc8}.plate-v1>.settlement-strip img{width:31px;height:31px;vertical-align:middle;margin-right:4px}

.summary-compact{position:static!important;left:auto!important;right:auto!important;top:auto!important;height:calc(100% - 10px)!important;min-height:0!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);grid-template-rows:36px 18px minmax(0,1fr) 92px 88px 66px;column-gap:6px;row-gap:6px;margin:0!important;padding:0!important;overflow:hidden!important}.summary-compact>.subhead{position:static!important;grid-column:1/-1;grid-row:1;height:36px;margin:0!important}.summary-compact>.subhead h2{font-size:25px;color:#26221d}.summary-compact>.summary-pot-heading{grid-column:1/-1;grid-row:2;height:18px;margin:0;padding:0 3px}.summary-compact>.wood-table{grid-column:1/-1;grid-row:3;width:100%;height:100%;min-height:0;margin:0;border:2px solid #26221d;border-radius:24px;background:repeating-linear-gradient(8deg,#c9986f 0 12px,#b7835d 12px 16px,#d2a078 16px 29px);overflow:hidden}.summary-compact .pot-stage{width:100%;height:100%;min-height:0;margin:0;background:transparent;overflow:hidden}.summary-compact .pot-stage .scene-base{width:100%;height:100%;object-fit:contain;transform:none;filter:none}.summary-compact .pot-foods{position:absolute;inset:12% 10%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));align-items:center;justify-items:center;gap:2px 7px;padding:0;overflow:hidden}.summary-compact .pot-food-label{width:100%;min-height:0;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;color:#26221d;overflow:visible}.summary-compact .pot-food-label img{width:clamp(70px,20vw,96px)!important;height:clamp(70px,20vw,96px)!important;object-fit:contain}.summary-compact .pot-food-label b{font-size:12px;line-height:1.15;white-space:nowrap;color:#26221d}.summary-compact>.vegetables-section{grid-column:1;grid-row:4;width:100%;height:92px;min-height:92px;display:block!important;padding:5px 7px;border:2px solid #26221d;border-radius:18px;background:#fffaf4;overflow:hidden}.summary-compact>.vegetables-section .vegetable-open{display:flex;align-items:center;gap:5px;width:100%;height:44px;min-height:44px;padding:0;border:0;background:transparent;text-align:left;color:#26221d}.summary-compact>.vegetables-section .compact-section-title{display:flex!important;align-items:center;gap:5px;min-width:0;height:42px}.summary-compact>.vegetables-section .compact-section-title .eyebrow{display:block!important;font-size:9px;white-space:nowrap}.summary-compact>.vegetables-section .compact-section-title strong{font-size:12px;white-space:nowrap}.summary-compact>.vegetables-section .veg-bowl{width:47px;height:38px;flex:0 0 47px}.summary-compact>.vegetables-section .veg-list{min-width:0;display:flex;justify-content:flex-start;overflow:hidden}.summary-compact>.vegetables-section .veg-chip{max-width:100%;padding:3px 5px;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.summary-compact>.vegetables-section .veg-chip img{width:28px;height:28px}.summary-compact>.supplement-section{grid-column:2;grid-row:4;width:100%;height:92px;min-height:92px;padding:5px 7px;border:2px solid #26221d;border-radius:18px;background:#fffaf4;overflow:hidden}.summary-compact>.supplement-section .compact-section-title{height:27px;min-height:27px;display:flex;align-items:center;gap:5px;margin:0 0 3px;overflow:hidden}.summary-compact>.supplement-section .compact-section-title>img{width:28px;height:28px;flex:0 0 28px}.summary-compact>.supplement-section .compact-section-title strong{font-size:12px;white-space:nowrap}.summary-compact>.supplement-section .compact-section-title small{display:block;font-size:9px;white-space:nowrap}.summary-compact .supplement-table{display:grid;gap:2px;min-width:0}.summary-compact .supplement-table-head{display:grid;grid-template-columns:15px minmax(0,1fr) 31px 28px 38px;gap:2px;margin:0;color:#6d5a4d;font-size:8px;line-height:1;white-space:nowrap}.summary-compact .supplement-table-row{position:static!important;grid-template-columns:15px minmax(0,1fr) 31px 28px 38px!important;height:44px;min-height:44px;padding:2px 3px;background:#fff0d4}.summary-compact .supplement-table-row input{width:15px;height:15px;margin:0}.summary-compact .supplement-copy,.summary-compact .supplement-copy b,.summary-compact .supplement-timing,.summary-compact .supplement-quantity,.summary-compact .supplement-table-row i{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;line-height:1}.summary-compact>.photographer-section{grid-column:1/-1;grid-row:5;width:100%;height:88px;min-height:88px;display:flex;align-items:center;gap:7px;position:static!important;padding:5px 8px;border:2px solid #26221d;border-radius:18px;background:#fffaf4;overflow:visible}.summary-compact>.photographer-section .cat-art{width:82px;height:78px;flex:0 0 82px;object-fit:contain}.summary-compact>.photographer-section .photo-copy{min-width:0;display:flex;flex:1;flex-direction:column;gap:2px}.summary-compact>.photographer-section .photo-actions{position:static;display:flex;gap:5px}.summary-compact>.photographer-section .photo-action{width:92px;min-width:92px;height:52px;min-height:52px;display:flex;align-items:center;justify-content:center;gap:4px;padding:5px;border:2px solid #26221d;border-radius:12px;background:#fff0d4;color:#26221d;font-size:10px}.summary-compact>.photographer-section .photo-action img{width:27px;height:27px}.summary-compact>.compact-footer{position:static!important;left:auto!important;right:auto!important;top:auto!important;grid-column:1/-1;grid-row:6;width:100%!important;height:66px!important;min-height:66px!important;display:flex!important;align-items:center;justify-content:space-between;gap:8px;margin:0!important;padding:4px 7px;border:2px solid #26221d;border-radius:18px;background:#fffaf4;overflow:hidden}.summary-compact>.compact-footer .lock-copy{min-width:0;display:flex;flex-direction:column;gap:2px;overflow:hidden}.summary-compact>.compact-footer .lock-copy strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.summary-compact>.compact-footer .lock-copy small{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.summary-compact>.compact-footer .checkin-button{width:190px!important;min-width:190px!important;height:58px!important;min-height:58px!important;margin:0;padding:10px 12px;border:2px solid #26221d;border-radius:15px;background:#ffad43;color:#26221d;font-size:13px;box-shadow:none}
.summary-compact>.vegetable-editor{position:absolute;inset:8px;z-index:10;overflow:auto;padding:10px;border:2px solid #26221d;border-radius:18px;background:#fffaf4}
@media(max-width:375px){.screen-content{padding-inline:10px!important}.home-v3{grid-template-rows:62px 42px 34px minmax(0,1fr) 126px;gap:5px}.home-v3 .hero-row,.home-v3 .hero-row h2{height:62px;min-height:62px}.home-v3 .hero-row h2{font-size:34px}.home-v3 .hero-row .hero-cat{width:64px;height:60px}.home-v3 .home-meal-tabs,.home-v3 .home-meal-tabs .meal-tab{height:42px;min-height:42px}.home-v3 .home-meal-tabs .meal-tab span{font-size:14px}.home-v3 .home-entry-grid{gap:6px}.home-v3 .home-entry>.entry-art{top:42px;width:105px;height:130px}.home-v3 .home-entry>.entry-art img{width:104px;height:128px}.home-v3 .home-entry.custom-entry-card>.entry-art{top:91px;width:112px;height:120px}.home-v3 .home-entry.custom-entry-card>.entry-art img{width:112px;height:112px}.home-v3 .home-entry>span:not(.entry-art):not(.entry-foods):not(.entry-add-mark){left:10px;top:10px}.home-v3 .home-entry>span:not(.entry-art):not(.entry-foods):not(.entry-add-mark) b{font-size:15px}.home-v3 .home-entry>span:not(.entry-art):not(.entry-foods):not(.entry-add-mark) small{font-size:9px}.home-v3 .entry-foods{left:6px;right:6px;bottom:7px}.home-v3 .entry-foods img{width:31px;height:31px}.home-v3 .entry-foods b{font-size:8px}.home-v3 .home-library-v3{height:126px;min-height:126px;padding:7px 8px;grid-template-rows:22px 30px minmax(0,1fr);gap:4px 6px}.home-v3 .home-library-v3 .library-heading strong{font-size:13px}.home-v3 .home-library-v3 .home-search{height:30px;min-height:30px}.home-v3 .home-library-v3 .library-examples,.home-v3 .home-library-v3 .library-examples>span{height:43px;min-height:43px}.home-v3 .home-library-v3 .library-examples>span>img{width:28px!important;height:28px!important}.home-v3 .home-library-v3 .library-cat{width:50px;height:56px;top:-25px}.picker-view{grid-template-columns:68px minmax(0,1fr);column-gap:7px;grid-template-rows:38px 38px minmax(0,1fr) 24px 64px;row-gap:5px}.picker-view>.subhead{height:38px}.picker-view>.subhead h2{font-size:23px}.picker-view .food-image{flex-basis:88px;height:88px}.picker-view .food-image img{width:82px;height:82px}.picker-view .food-card strong{font-size:13px}.picker-view .food-card small{font-size:10px}.picker-view .food-plus{width:44px;height:44px}.picker-view>.selection-tray{height:64px;min-height:64px;padding:6px 7px!important;grid-template-columns:62px minmax(0,1fr) auto}.picker-view>.selection-tray .primary-button{min-width:88px;padding-inline:7px;font-size:10px}.plate-v1{grid-template-rows:36px 170px 210px 118px 22px 52px;row-gap:4px}.plate-v1>.subhead{height:36px}.plate-v1>.subhead h2{font-size:23px}.plate-v1>.plate-board-row{height:170px;grid-template-columns:minmax(0,1fr) 96px;gap:6px}.plate-v1 .plate-stage{height:170px;min-height:170px}.plate-v1>.plate-board-row>.plate-actions{height:170px}.plate-v1 .plate-food img{width:66px;height:66px}.plate-v1 .board-stage{width:88%;height:160px;min-height:160px}.plate-v1>.board-panel{grid-template-rows:160px 44px;height:210px}.plate-v1 .board-stage .board-food{width:112px;height:112px}.plate-v1>.scale-card{width:82%;height:118px;min-height:118px;grid-template-columns:78px minmax(0,1fr);padding:6px 7px}.plate-v1>.scale-card>img{width:73px;height:98px}.plate-v1 .board-macro-row strong{font-size:15px}.plate-v1>.day-macro-inline{font-size:10px}.plate-v1>.settlement-strip{height:52px;min-height:52px}.summary-compact{height:calc(100% - 10px)!important;grid-template-rows:32px 17px minmax(0,1fr) 84px 78px 62px;row-gap:4px}.summary-compact>.subhead{height:32px}.summary-compact>.subhead h2{font-size:22px}.summary-compact>.summary-pot-heading{height:17px}.summary-compact .pot-food-label img{width:clamp(64px,18vw,82px)!important;height:clamp(64px,18vw,82px)!important}.summary-compact .pot-food-label b{font-size:10px}.summary-compact>.vegetables-section,.summary-compact>.supplement-section{height:84px;min-height:84px}.summary-compact>.supplement-section{padding:4px 5px}.summary-compact>.supplement-section .compact-section-title strong{font-size:10px}.summary-compact>.supplement-section .compact-section-title small{font-size:8px}.summary-compact .supplement-table-head{grid-template-columns:15px minmax(0,1fr) 28px 23px 32px;font-size:7px}.summary-compact .supplement-table-row{grid-template-columns:15px minmax(0,1fr) 28px 23px 32px}.summary-compact .supplement-table-row b,.summary-compact .supplement-timing,.summary-compact .supplement-quantity,.summary-compact .supplement-table-row i{font-size:8px}.summary-compact>.photographer-section{height:78px;min-height:78px;padding:4px 5px;gap:4px}.summary-compact>.photographer-section .cat-art{width:68px;height:68px;flex-basis:68px}.summary-compact>.photographer-section .photo-actions{gap:3px}.summary-compact>.photographer-section .photo-action{width:78px;min-width:78px;height:48px;min-height:48px;font-size:9px}.summary-compact>.photographer-section .photo-action img{width:23px;height:23px}.summary-compact>.compact-footer{height:62px!important;min-height:62px!important;padding-inline:5px}.summary-compact>.compact-footer .checkin-button{width:166px!important;min-width:166px!important;height:54px!important;min-height:54px!important;font-size:11px}.summary-compact>.compact-footer .lock-copy strong{font-size:9px}.summary-compact>.compact-footer .lock-copy small{font-size:8px}}
@media(min-width:431px){.screen-content{padding-inline:20px!important}}

/* V1 summary C-coordinate pass. Dynamic food, text and values remain DOM layers. */
.summary-compact[data-page="summary"]{
  position:relative!important;
  width:100vw!important;
  height:752px!important;
  min-height:752px!important;
  margin-left:calc((100% - 100vw)/2)!important;
  padding:0!important;
  display:block!important;
  overflow:hidden!important;
}
.summary-compact[data-page="summary"]>.subhead{position:absolute!important;left:20px;top:8px;width:350px;height:52px;margin:0!important;z-index:8}
.summary-compact[data-page="summary"]>.summary-pot-heading{position:absolute!important;left:20px;top:60px;width:350px;height:28px;margin:0!important;z-index:8}
.summary-compact[data-page="summary"]>.wood-table{
  position:fixed!important;left:0;top:113px;width:390px;height:517px;min-height:517px;margin:0!important;
  border:0!important;border-radius:0!important;
  background:repeating-linear-gradient(8deg,#d6a477 0 14px,#c58c60 14px 18px,#dda97b 18px 31px)!important;
  overflow:hidden!important;z-index:1!important;
}
.summary-compact[data-page="summary"] .pot-stage{position:absolute!important;left:0;top:0;width:390px;height:517px;min-height:517px;margin:0!important;overflow:visible!important}
.summary-compact[data-page="summary"] .pot-stage>.scene-base{position:absolute!important;inset:0;width:390px!important;height:517px!important;object-fit:fill!important;transform:scaleX(1.08)!important;transform-origin:center!important}
.summary-compact[data-page="summary"] .pot-foods{position:absolute!important;inset:0!important;display:block!important;padding:0!important;overflow:visible!important;z-index:3}
.summary-compact[data-page="summary"] .pot-food-label{position:absolute!important;width:104px!important;height:82px!important;min-height:82px!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:visible!important}
.summary-compact[data-page="summary"] .pot-food-label:nth-child(1){left:69px;top:42px}
.summary-compact[data-page="summary"] .pot-food-label:nth-child(2){left:222px;top:42px}
.summary-compact[data-page="summary"] .pot-food-label:nth-child(3){left:69px;top:151px}
.summary-compact[data-page="summary"] .pot-food-label:nth-child(4){left:209px;top:149px;width:112px!important}
.summary-compact[data-page="summary"] .pot-vegetable-label{position:absolute!important;left:209px;top:149px;width:112px;height:82px;display:flex;align-items:center;justify-content:center;overflow:visible;background:transparent!important;padding:0!important;border:0!important;border-radius:0!important}
.summary-compact[data-page="summary"] .pot-vegetable-label img{width:76px;height:58px;object-fit:contain;transform:scale(1.28)}
.summary-compact[data-page="summary"] .pot-vegetable-label b{position:absolute;left:50%;bottom:0;transform:translateX(-50%);font-size:12px;line-height:15px;white-space:nowrap;text-shadow:0 1px 0 #fff8ef,1px 0 0 #fff8ef,-1px 0 0 #fff8ef}
.summary-compact[data-page="summary"] .pot-food-label img{width:76px!important;height:58px!important;object-fit:contain!important}
.summary-compact[data-page="summary"] .pot-food-label img{transform:scale(1.28)}
.summary-compact[data-page="summary"] .pot-food-label b{position:absolute;left:50%;bottom:0;transform:translateX(-50%);font-size:12px!important;line-height:15px!important;white-space:nowrap!important;text-shadow:0 1px 0 #fff8ef,1px 0 0 #fff8ef,-1px 0 0 #fff8ef!important}
.summary-compact[data-page="summary"]>.vegetables-section{
  position:absolute!important;left:20px;top:392px;width:126px!important;height:133px!important;min-height:133px!important;
  margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;overflow:visible!important;z-index:6
}
.summary-compact[data-page="summary"]>.vegetables-section .vegetable-open{position:relative!important;width:126px!important;height:133px!important;min-height:133px!important;padding:0!important;overflow:visible!important}
.summary-compact[data-page="summary"]>.vegetables-section .compact-section-title{position:absolute!important;inset:0!important;width:126px!important;height:133px!important;display:block!important}
.summary-compact[data-page="summary"]>.vegetables-section .veg-bowl{position:absolute!important;left:0;top:0;width:126px!important;height:133px!important;object-fit:cover!important;object-position:center!important}
.summary-compact[data-page="summary"]>.vegetables-section .compact-section-title>span{position:absolute!important;left:47px;top:93px;width:75px;height:36px;display:flex!important;align-items:center;justify-content:center;border:2px solid #26221d;border-radius:13px;background:#fff8e9;overflow:hidden}
.summary-compact[data-page="summary"]>.vegetables-section .compact-section-title .eyebrow{display:none!important}
.summary-compact[data-page="summary"]>.vegetables-section .compact-section-title strong{font-size:11px!important}
.summary-compact[data-page="summary"]>.vegetables-section .veg-list{position:absolute!important;left:2px;top:106px;width:42px!important;height:24px;display:block!important;overflow:hidden!important}
.summary-compact[data-page="summary"]>.vegetables-section .veg-chip{padding:0!important;font-size:8px!important;background:transparent!important}
.summary-compact[data-page="summary"]>.vegetables-section .veg-chip img{display:none!important}
.summary-compact[data-page="summary"]>.supplement-section{
  position:absolute!important;left:160px;top:416px;width:220px!important;height:145px!important;min-height:145px!important;
  margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;overflow:visible!important;z-index:6
}
.summary-compact[data-page="summary"]>.supplement-section .compact-section-title{position:absolute!important;left:0;top:25px;width:52px!important;height:108px!important;margin:0!important;overflow:visible!important}
.summary-compact[data-page="summary"]>.supplement-section .compact-section-title>img{width:52px!important;height:108px!important;object-fit:contain!important}
.summary-compact[data-page="summary"]>.supplement-section .compact-section-title>img{object-fit:cover!important;object-position:center!important}
.summary-compact[data-page="summary"]>.supplement-section .compact-section-title>span{display:none!important}
.summary-compact[data-page="summary"]>.supplement-section .supplement-table{position:absolute!important;left:50px;top:0;width:160px;height:145px;padding:2px 4px;border:2px solid #26221d;border-radius:12px;background:#fff8e9;overflow:hidden!important;gap:0!important}
.summary-compact[data-page="summary"] .supplement-table-head{height:9px;grid-template-columns:15px minmax(0,1fr) 31px 25px 34px!important;font-size:8px!important;line-height:9px!important}
.summary-compact[data-page="summary"] .supplement-table-row{grid-template-columns:15px minmax(0,1fr) 31px 25px 34px!important;min-height:44px!important;height:44px!important;padding:2px!important;background:transparent!important;border-top:1px solid #d8b890;border-radius:0!important}
.summary-compact[data-page="summary"] .supplement-copy b,.summary-compact[data-page="summary"] .supplement-timing,.summary-compact[data-page="summary"] .supplement-quantity,.summary-compact[data-page="summary"] .supplement-table-row i{font-size:9px!important}
.summary-compact[data-page="summary"]>.photographer-section{
  position:absolute!important;left:10px;top:589px;width:320px!important;height:119px!important;min-height:119px!important;
  margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;overflow:visible!important;z-index:7
}
.summary-compact[data-page="summary"]>.photographer-section .cat-art{position:absolute!important;left:0;top:0;width:103px!important;height:119px!important;object-fit:contain!important}
.summary-compact[data-page="summary"]>.photographer-section .cat-art{filter:none!important;opacity:1!important;mix-blend-mode:normal!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-copy{position:absolute!important;left:108px;top:0;width:190px;height:44px;display:block!important;overflow:hidden}
.summary-compact[data-page="summary"]>.photographer-section .photo-copy .eyebrow{display:none!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-copy strong{font-size:13px!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-state{display:block;font-size:10px!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-actions{position:absolute!important;left:112px;top:51px;right:auto!important;display:flex!important;gap:8px!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-action{width:92px!important;min-width:92px!important;height:44px!important;min-height:44px!important;padding:4px!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-action+ .photo-action{width:106px!important;min-width:106px!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-action span{font-size:9px!important;white-space:nowrap!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-action img{width:24px!important;height:24px!important;flex:0 0 24px}
.summary-compact[data-page="summary"]>.compact-footer{
  position:absolute!important;left:168px!important;right:auto!important;top:694px!important;width:200px!important;height:51px!important;min-height:51px!important;
  margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;overflow:visible!important;z-index:8
}
.summary-compact[data-page="summary"]>.compact-footer .lock-copy{position:absolute!important;left:0;bottom:53px;width:200px!important;height:34px!important;text-align:center;overflow:visible!important}
.summary-compact[data-page="summary"]>.compact-footer .lock-copy strong,.summary-compact[data-page="summary"]>.compact-footer .lock-copy small{font-size:9px!important;white-space:normal!important;overflow:visible!important}
.summary-compact[data-page="summary"]>.compact-footer .checkin-button{position:fixed!important;left:168px!important;top:704px!important;display:block!important;width:200px!important;min-width:200px!important;height:51px!important;min-height:51px!important;margin:0!important;border:2px solid #26221d!important;border-radius:20px!important;background:#ffad43!important;color:#26221d!important;opacity:1!important;visibility:visible!important;font-size:17px!important;z-index:20!important}

@media(max-width:375px){
  .summary-compact[data-page="summary"]{height:726px!important;min-height:726px!important}
  .summary-compact[data-page="summary"]>.wood-table{width:375px;height:495px;min-height:495px}
  .summary-compact[data-page="summary"] .pot-stage,.summary-compact[data-page="summary"] .pot-stage>.scene-base{width:375px!important;height:495px!important;min-height:495px!important}
  .summary-compact[data-page="summary"]>.photographer-section{top:565px}
  .summary-compact[data-page="summary"]>.compact-footer{left:160px!important;top:665px!important}
  .summary-compact[data-page="summary"]>.compact-footer .checkin-button{left:160px!important;top:675px!important}
}

/* r42test45: calendar quick preview mirrors every visible data-form field in
   compact two-column value groups instead of silently dropping fields. */
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-detail-panel{height:auto!important;min-height:0!important;display:block!important;padding:0!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-calendar .detail-panel-head{height:40px!important;min-height:40px!important;margin-bottom:4px!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-detail-carousel{box-sizing:border-box!important;width:100%!important;height:auto!important;min-height:0!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:auto!important;align-items:stretch!important;gap:5px!important;padding:0 1px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-detail-carousel>*{box-sizing:border-box!important;width:auto!important;height:auto!important;min-width:0!important;min-height:106px!important;overflow:visible!important;padding:6px!important;border-radius:12px!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-preview-card>strong,.app-shell:not(.auth-gate) .host-v1-calendar .meal-detail-head strong{font-size:12px!important;line-height:1.05!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-preview-values{min-width:0!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:2px 4px!important;align-content:start!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-preview-values>span{min-width:0!important;display:block!important;font-size:7px!important;line-height:1.2!important;color:var(--v1-muted)!important;white-space:normal!important;overflow-wrap:anywhere!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-preview-values>span>b{display:inline!important;margin-right:2px!important;color:var(--v1-ink)!important;font-weight:800!important}
.app-shell:not(.auth-gate) .host-v1-calendar .meal-detail-card{min-height:106px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-calendar .meal-detail-copy{min-width:0!important;display:flex!important;flex-direction:column!important;gap:2px!important}
.app-shell:not(.auth-gate) .host-v1-calendar .meal-detail-copy span{font-size:7px!important;line-height:1.2!important;white-space:normal!important;overflow:visible!important;overflow-wrap:anywhere!important}
.app-shell:not(.auth-gate) .host-v1-calendar .meal-photo-preview{margin:2px 0 0!important}
.app-shell:not(.auth-gate) .host-v1-calendar .detail-order-note{margin-top:4px!important;min-height:14px!important;font-size:8px!important;line-height:1.1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
@media(max-width:375px){
  .app-shell:not(.auth-gate) .host-v1-calendar .detail-panel-head{height:36px!important;min-height:36px!important}
  .app-shell:not(.auth-gate) .host-v1-calendar .calendar-detail-carousel>*{min-height:100px!important;padding:5px!important}
  .app-shell:not(.auth-gate) .host-v1-calendar .calendar-preview-values>span,.app-shell:not(.auth-gate) .host-v1-calendar .meal-detail-copy span{font-size:6.5px!important}
}

/* r42test45: never substitute an unrelated food illustration. When the API
   has no dedicated asset, the name occupies the same visual slot until the
   matching image is supplied. */
.app-shell:not(.auth-gate) .food-text-fallback{box-sizing:border-box!important;display:grid!important;place-items:center!important;min-width:0!important;min-height:0!important;padding:4px!important;color:var(--v1-ink)!important;background:#fff6ea!important;font-weight:900!important;line-height:1.05!important;text-align:center!important;overflow:hidden!important;overflow-wrap:anywhere!important}
.app-shell:not(.auth-gate) .food-image>.food-text-fallback{width:100%!important;height:100%!important;border-radius:11px!important;font-size:clamp(18px,5vw,30px)!important}
.app-shell:not(.auth-gate) .food-avatar>.food-text-fallback{width:100%!important;height:100%!important;border-radius:13px!important;font-size:10px!important}
.app-shell:not(.auth-gate) .custom-row>.food-text-fallback{width:29px!important;height:29px!important;border-radius:8px!important;font-size:8px!important}
.app-shell:not(.auth-gate) .mini-foods>.food-text-fallback{width:29px!important;height:29px!important;flex:0 0 29px!important;border:2px solid #fff!important;border-radius:50%!important;font-size:7px!important}
.app-shell:not(.auth-gate) .natural-result-main>.food-text-fallback{width:24px!important;height:24px!important;flex:0 0 24px!important;padding:2px!important;border-radius:7px!important;font-size:7px!important;overflow-wrap:anywhere!important}
.app-shell:not(.auth-gate) .natural-result-main>.food-visual:not(.food-text-fallback){display:block!important;width:22px!important;height:22px!important;object-fit:contain!important}
.app-shell:not(.auth-gate) .entry-food-visual,.app-shell:not(.auth-gate) .library-food-visual{width:28px!important;height:28px!important;object-fit:contain!important}
.app-shell:not(.auth-gate) .entry-foods>.food-text-fallback{font-size:7px!important;border-radius:6px!important}
.app-shell:not(.auth-gate) .library-examples button>.food-text-fallback{font-size:8px!important;border-radius:6px!important}
.app-shell:not(.auth-gate) .plate-food>.food-text-fallback{width:48px!important;height:48px!important;border-radius:10px!important;font-size:9px!important}
.app-shell:not(.auth-gate) .board-stage>.food-text-fallback{display:grid!important;width:79px!important;height:79px!important;border-radius:50%!important;font-size:14px!important}
.app-shell:not(.auth-gate) .pot-food-label>.food-text-fallback,.app-shell:not(.auth-gate) .pot-vegetable-label>.food-text-fallback{width:clamp(44px,14vw,76px)!important;height:clamp(42px,13vw,68px)!important;border-radius:9px!important;font-size:clamp(9px,2.8vw,14px)!important}
.app-shell:not(.auth-gate) .veg-chip>.food-text-fallback{width:23px!important;height:23px!important;border-radius:6px!important;font-size:7px!important;padding:2px!important}

/* The photo control is one member-facing choice. Its second column is kept
   empty until a thumbnail exists, so adding a photo never changes the card's
   surrounding layout. */
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section{box-sizing:border-box!important;width:100%!important;height:76px!important;min-height:76px!important;padding:5px 7px!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(82px,108px)!important;grid-template-rows:1fr!important;align-items:center!important;gap:6px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy{grid-column:1!important;grid-row:1!important;min-width:0!important;width:auto!important;height:auto!important;display:flex!important;flex-direction:column!important;gap:2px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy .eyebrow,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy strong,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-state{max-width:100%!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy .eyebrow{font-size:8px!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy strong{font-size:12px!important;line-height:1.1!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-state{font-size:8px!important;line-height:1.1!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-picker{grid-column:2!important;grid-row:1!important;min-width:0!important;width:100%!important;height:100%!important;display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:34px 34px!important;gap:3px!important;align-content:center!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-picker select{width:100%!important;height:34px!important;min-height:34px!important;min-width:0!important;padding:2px 5px!important;border:1.5px solid #26221d!important;border-radius:9px!important;background:#fff0d4!important;color:#26221d!important;font-size:9px!important;font-weight:800!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb-strip{width:100%!important;height:34px!important;min-height:34px!important;display:flex!important;align-items:center!important;gap:3px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb-empty{box-sizing:border-box!important;width:34px!important;height:34px!important;min-width:34px!important;display:grid!important;place-items:center!important;position:relative!important;overflow:hidden!important;border:1px solid #dccab7!important;border-radius:7px!important;background:#fffdf8!important;color:var(--v1-muted)!important;font-size:7px!important;line-height:1!important;text-align:center!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb small{position:absolute!important;right:2px!important;bottom:2px!important;padding:1px 2px!important;border-radius:3px!important;background:rgba(0,0,0,.55)!important;color:#fff!important;font-size:7px!important;line-height:1!important}
@media(max-width:375px){
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section{height:70px!important;min-height:70px!important;grid-template-columns:minmax(0,1fr) 82px!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-picker{grid-template-rows:31px 31px!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-picker select,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb-empty,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb-strip{height:31px!important;min-height:31px!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb-empty{width:31px!important;min-width:31px!important}
}

@media(min-width:376px){.global-nav{height:75px!important;flex:0 0 75px!important}}

/* Session error layout: keep both login paths readable above the fixed nav. */
.app-shell:has([data-testid="session-error"]) .screen-content{
  overflow-x:hidden!important;
  overflow-y:auto!important;
  padding-inline:clamp(14px,4vw,22px)!important;
  padding-bottom:max(12px,env(safe-area-inset-bottom))!important;
}
.app-shell:has([data-testid="session-error"]) .screen-anchor{
  display:flex!important;
  flex:1 0 auto!important;
  flex-direction:column!important;
  height:auto!important;
  min-height:100%!important;
  padding:clamp(10px,2vh,18px) 0 clamp(14px,2vh,22px)!important;
  overflow:visible!important;
}
.app-shell:has([data-testid="session-error"]) [data-role="screen"]{
  display:flex!important;
  flex:1 0 auto!important;
  flex-direction:column!important;
  min-height:100%!important;
  height:auto!important;
}
.app-shell:has([data-testid="session-error"]) .empty-state{
  width:min(100%,350px);
  flex:1 0 auto;
  min-height:0;
  margin:0 auto;
  padding:clamp(8px,1.8vh,18px) 0;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-content:center;
  justify-items:stretch;
  gap:clamp(6px,1.35vh,11px);
  text-align:center;
}
.app-shell:has([data-testid="session-error"]) .empty-state>img{
  width:clamp(64px,18vw,82px);
  height:clamp(64px,18vw,82px);
  justify-self:center;
  object-fit:contain;
}
.app-shell:has([data-testid="session-error"]) .empty-state h2{
  margin:0;
  color:var(--v1-ink);
  font-size:clamp(24px,6.8vw,30px);
  line-height:1.15;
  font-weight:700!important;
}
.app-shell:has([data-testid="session-error"]) .empty-state>p{
  width:100%;
  max-width:none;
  margin:0;
  color:var(--v1-muted);
  font-size:clamp(14px,3.8vw,17px);
  line-height:1.45;
  overflow-wrap:anywhere;
  word-break:break-word;
  white-space:normal;
}
.app-shell:has([data-testid="session-error"]) .member-key-form,
.app-shell:has([data-testid="session-error"]) .member-password-form{
  width:100%;
  max-width:none;
  margin:0;
  display:grid;
  gap:7px;
  text-align:left;
}
.app-shell:has([data-testid="session-error"]) .member-key-form label,
.app-shell:has([data-testid="session-error"]) .member-password-form label{
  display:grid;
  gap:6px;
  color:var(--v1-ink);
  font-size:14px;
  line-height:1.2;
  font-weight:700;
}
.app-shell:has([data-testid="session-error"]) .member-key-form input,
.app-shell:has([data-testid="session-error"]) .member-password-form input{
  width:100%;
  height:48px;
  min-height:48px;
  padding:10px 14px;
  border:2px solid #eaded1;
  border-radius:16px;
  background:#fffdf8;
  color:var(--v1-ink);
  font-size:16px!important;
  line-height:1.25;
  outline:0;
}
.app-shell:has([data-testid="session-error"]) .member-key-form input::placeholder,
.app-shell:has([data-testid="session-error"]) .member-password-form input::placeholder{
  color:#a99486;
  opacity:1;
}
.app-shell:has([data-testid="session-error"]) .member-key-form .primary-button,
.app-shell:has([data-testid="session-error"]) .member-password-form .small-button{
  width:100%;
  height:46px;
  min-height:46px;
  padding:10px 14px;
  border:2px solid var(--v1-ink);
  border-radius:16px;
  font-size:15px;
  line-height:1.2;
  white-space:normal;
}
.app-shell:has([data-testid="session-error"]) .empty-state>[data-action="retry-load"]{
  justify-self:center;
  min-width:76px;
  min-height:44px;
  height:44px;
  padding:8px 16px;
  border:2px solid var(--v1-ink);
  border-radius:15px;
  background:#fff0d1;
  color:var(--v1-ink);
  font-size:14px;
  line-height:1.2;
}
.app-shell:has([data-testid="session-error"]) .empty-state>small{
  width:100%;
  max-width:none;
  color:var(--v1-muted);
  font-size:12px;
  line-height:1.35;
  overflow-wrap:anywhere;
  white-space:normal;
}
.app-shell:has([data-testid="session-error"]) .empty-state>.ui-build-label{
  color:#a99486;
  font-size:11px;
  line-height:1.2;
}
.app-shell.has-data-issues .screen-anchor{
  padding-top:6px!important;
}
.data-issues-banner{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  margin:0 0 8px;
  padding:8px 10px;
  border:2px solid #26221d;
  border-radius:16px;
  background:#fff0d4;
  color:var(--v1-ink);
  font-size:14px;
  line-height:1.35;
  overflow-wrap:anywhere;
  word-break:break-word;
  white-space:normal;
}
.module-error-banner{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:4px 10px;
  margin:0 0 8px;
  padding:8px 10px;
  border:2px solid #b8613d;
  border-radius:16px;
  background:#fff4eb;
  color:var(--v1-ink);
  font-size:13px;
  line-height:1.35;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.module-error-banner strong,.module-error-banner span{min-width:0}
.module-error-banner strong{font-size:14px}
.module-error-banner span{color:var(--v1-muted)}
.module-error-banner .small-button{grid-column:2;grid-row:1 / span 2;align-self:center;min-height:44px}
/* The header keeps only status metadata. Logout is intentionally opened by the
   five-tap member gesture, so no visual control or reserved header space is
   present in the normal member layout. */
.app-shell .app-header{
  position:absolute;
  inset:0 0 auto;
  height:0!important;
  min-height:0!important;
  padding:0!important;
  border:0!important;
  overflow:visible!important;
  opacity:1!important;
  pointer-events:none;
  z-index:8;
}
.app-shell .app-header>*{display:none!important}

/* Global nav: equal cells, safe-area aware, active state stays inside one cell. */
.global-nav{
  height:calc(76px + env(safe-area-inset-bottom));
  flex:0 0 calc(76px + env(safe-area-inset-bottom));
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:2px;
  padding:4px max(8px,env(safe-area-inset-left)) max(5px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-right));
}
.global-nav .nav-item{
  width:100%;
  min-width:0;
  min-height:44px;
  height:100%;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
}
.global-nav .nav-item img{flex:0 0 auto;width:30px;height:30px;object-fit:contain}
.global-nav .nav-item small{display:block;max-width:100%;white-space:nowrap;line-height:1.1}

@media(max-width:375px){
  .global-nav{height:calc(76px + env(safe-area-inset-bottom));flex-basis:calc(76px + env(safe-area-inset-bottom))}
  .app-shell:has([data-testid="session-error"]) .empty-state{width:100%;gap:7px}
  .app-shell:has([data-testid="session-error"]) .empty-state h2{font-size:24px}
  .app-shell:has([data-testid="session-error"]) .empty-state>p{font-size:14px}
  .app-shell:has([data-testid="session-error"]) .member-key-form label,
  .app-shell:has([data-testid="session-error"]) .member-password-form label{font-size:13px}
}

/* 2026-09 responsive layout contract: fluid constraints, not device-specific coordinates. */
:root{
  --v1-inline-pad:clamp(10px,4vw,20px);
  --v1-layout-gap:clamp(5px,1.8vw,9px);
  --v1-control-size:clamp(42px,11vw,48px);
}
.screen-content{padding-inline:var(--v1-inline-pad)!important}
.screen-anchor{padding-top:clamp(6px,1.6vh,12px)!important}
.host-view{width:100%;min-width:0}
.host-page-head,.host-page-head>div,.data-card-head,.data-card-head>div{min-width:0}
.host-page-head h2{font-size:clamp(26px,7vw,34px);line-height:1.05;overflow-wrap:anywhere}
.host-page-head .target-pill,.host-page-head .month-actions{flex:0 0 auto}
.host-view button,.host-view input,.host-view select,.host-view textarea{max-width:100%;box-sizing:border-box}

/* Home: the hero may wrap, while the two primary actions always share the width. */
.home-v3{grid-template-rows:minmax(74px,auto) 46px 44px minmax(0,1fr) clamp(118px,18vh,145px)!important;gap:var(--v1-layout-gap)!important}
.home-v3 .hero-row{height:auto;min-height:0;align-items:center;margin:0}
.home-v3 .hero-row>div{min-width:0;max-width:100%}
.home-v3 .hero-row h2{font-size:clamp(32px,9.4vw,40px);line-height:1.05;overflow-wrap:anywhere}
.home-v3 .hero-row p{max-width:min(100%,32ch);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;line-height:1.35}
.home-v3 .hero-row .hero-cat{width:clamp(58px,18vw,76px);height:clamp(56px,17vw,70px);right:0}
.home-v3 .home-meal-tabs,.home-v3 .home-meal-tabs .meal-tab{height:46px;min-height:46px}
.home-v3 .home-meal-tabs .meal-tab{padding-inline:clamp(3px,1.5vw,9px)}
.home-v3 .home-meal-tabs .meal-tab span{font-size:clamp(13px,4vw,16px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-v3 .home-entry-grid{min-height:0;align-self:stretch;gap:var(--v1-layout-gap)}
.home-v3 .home-entry{min-width:0;min-height:0;height:100%}
.home-v3 .home-entry>span:not(.entry-art):not(.entry-foods):not(.entry-add-mark){max-width:calc(100% - 46px);min-width:0}
.home-v3 .home-entry>span:not(.entry-art):not(.entry-foods):not(.entry-add-mark) b,.home-v3 .home-entry>span:not(.entry-art):not(.entry-foods):not(.entry-add-mark) small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.home-v3 .home-entry>.entry-art{top:auto;bottom:clamp(40px,8vh,70px);width:clamp(92px,34vw,150px);height:clamp(104px,30vw,176px)}
.home-v3 .home-entry>.entry-art img{width:100%;height:100%;object-fit:contain}
.home-v3 .home-entry.custom-entry-card>.entry-art{top:auto;bottom:clamp(36px,7vh,62px);width:clamp(96px,35vw,150px);height:clamp(96px,29vw,170px)}
.home-v3 .home-entry.custom-entry-card>.entry-art img{width:100%;height:100%;object-fit:contain}
.home-v3 .entry-foods{left:clamp(6px,2vw,10px);right:clamp(6px,2vw,10px);bottom:clamp(6px,1.8vw,11px);gap:clamp(2px,1vw,4px)}
.home-v3 .entry-foods>span{min-width:0;overflow:hidden}
.home-v3 .entry-foods img{width:clamp(28px,10vw,40px);height:clamp(28px,10vw,40px)}
.home-v3 .entry-foods b{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.home-v3 .entry-add-mark{width:clamp(48px,15vw,58px);height:clamp(48px,15vw,58px);font-size:clamp(34px,11vw,45px)}
.home-v3 .home-library-v3{height:auto;min-height:clamp(118px,18vh,145px)!important;padding:clamp(7px,2vw,10px);gap:clamp(4px,1.4vw,7px)}
.home-v3 .home-library-v3 .library-heading strong{font-size:clamp(12px,3.7vw,15px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.home-v3 .home-library-v3 .library-examples,.home-v3 .home-library-v3 .library-examples>span{height:clamp(42px,7vh,50px);min-height:clamp(42px,7vh,50px)}
.home-v3 .home-library-v3 .library-examples>span>img{width:clamp(28px,9vw,34px)!important;height:clamp(28px,9vw,34px)!important}

/* Picker: cards use a bounded image area and allow labels to wrap instead of crop. */
.picker-view{grid-template-columns:clamp(64px,19vw,76px) minmax(0,1fr)!important;column-gap:clamp(7px,2.4vw,10px)!important}
.picker-view>.category-tabs{min-height:0}
.picker-view>.food-grid{min-width:0;min-height:0;overflow:hidden}
.picker-view .food-card,.picker-view .food-card-main{min-width:0;min-height:0}
.picker-view .food-card-main{padding:clamp(6px,1.8vw,9px)}
.picker-view .food-image{flex:0 1 clamp(78px,15vh,112px);height:clamp(78px,15vh,112px);min-height:0}
.picker-view .food-image img{width:clamp(72px,27vw,104px);height:clamp(72px,27vw,104px);max-width:100%;max-height:100%}
.picker-view .food-card strong,.picker-view .food-card small{max-width:calc(100% - 2px);white-space:normal;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow-wrap:anywhere}
.picker-view .food-plus{width:var(--v1-control-size);height:var(--v1-control-size);right:clamp(5px,1.6vw,8px);bottom:clamp(5px,1.6vw,8px)}
.picker-view>.selection-tray{grid-template-columns:clamp(58px,18vw,76px) minmax(0,1fr) auto;min-width:0;gap:clamp(5px,1.8vw,9px)}
.picker-view>.selection-tray .mini-foods{min-width:0;overflow:hidden}
.picker-view>.selection-tray .mini-foods img{flex:0 0 auto;width:clamp(34px,11vw,42px);height:clamp(34px,11vw,42px)}
.picker-view>.selection-tray .primary-button{min-width:clamp(88px,25vw,108px);padding-inline:clamp(7px,2vw,12px);overflow:hidden;text-overflow:ellipsis}

/* Data/trends/calendar: the viewport owns the height; dense panels own only local scrolling. */
.host-v1-data{grid-template-rows:auto auto auto minmax(0,1fr) auto auto!important;gap:var(--v1-layout-gap)!important}
.host-v1-data .data-panel{min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding-bottom:2px}
.host-v1-data .data-form-card,.host-v1-data .pvt-card{height:auto;min-height:0!important}
.host-v1-data .data-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--v1-layout-gap)}
.host-v1-data .data-field{min-height:clamp(54px,8vh,78px);height:auto;overflow:hidden}
.host-v1-data .data-field input,.host-v1-data .data-field select{min-height:clamp(34px,5vh,44px);font-size:clamp(13px,3.8vw,15px)}
.host-v1-data .data-field textarea{height:clamp(38px,6vh,52px);min-height:clamp(34px,5vh,44px)}
.host-v1-data .data-progress-strip{min-width:0;overflow:hidden}
.host-v1-trends{grid-template-rows:auto auto auto auto minmax(0,1fr) auto auto!important;gap:var(--v1-layout-gap)!important}
.host-v1-trends .trend-chart-card{min-height:0;overflow:hidden}
.host-v1-trends .trend-chart{min-height:clamp(150px,27vh,280px);max-height:clamp(220px,39vh,330px)}
.host-v1-trends .trend-chart svg{inset:12px 8px 28px clamp(34px,11vw,42px);width:calc(100% - clamp(42px,13vw,52px));height:calc(100% - 40px)}
.host-v1-trends .trend-points{inset:12px 8px 28px clamp(34px,11vw,42px)}
.host-v1-trends .trend-x-labels{left:clamp(34px,11vw,42px);right:8px}
.host-v1-trends .trend-y-labels{left:4px;font-size:clamp(8px,2.3vw,10px)}
.host-v1-calendar{grid-template-rows:auto minmax(0,1fr) auto!important;gap:var(--v1-layout-gap)!important}
.host-v1-calendar .month-card{min-height:0;overflow:hidden}
.host-v1-calendar .calendar-grid{grid-auto-rows:minmax(clamp(28px,5vh,44px),1fr);gap:clamp(3px,1vw,5px)}
.host-v1-calendar .calendar-cell,.host-v1-calendar .calendar-cell>button{min-height:clamp(34px,6vh,48px)}
.host-v1-calendar .calendar-detail-panel{min-height:0;overflow:hidden}
.host-v1-calendar .calendar-detail-carousel{min-height:0;overflow-x:auto;overflow-y:hidden}

/* Migrated check-in photos are authenticated media, never filesystem paths. */
.meal-detail-copy{min-width:0}
.meal-photo-preview{display:grid;grid-template-columns:clamp(54px,18vw,78px) minmax(0,1fr);align-items:center;gap:7px;margin:2px 0 0;min-width:0}
.meal-photo-preview img{display:block;width:clamp(54px,18vw,78px);height:clamp(54px,18vw,78px);border:1px solid #dccab7;border-radius:11px;background:#fffaf1;object-fit:cover}
.meal-photo-preview figcaption{min-width:0;color:var(--v1-muted);font-size:10px;overflow-wrap:anywhere}

@media(max-width:375px){
  .home-v3{grid-template-rows:minmax(68px,auto) 42px 42px minmax(0,1fr) 126px!important}
  .home-v3 .home-meal-tabs,.home-v3 .home-meal-tabs .meal-tab{height:42px;min-height:42px}
  .home-v3 .hero-row h2{font-size:clamp(29px,9vw,35px)}
  .picker-view{grid-template-rows:38px 38px minmax(0,1fr) 24px 64px!important;row-gap:5px!important}
  .picker-view .food-image{height:clamp(72px,13vh,92px)}
  .host-v1-trends .trend-chart{min-height:140px}
}

/* 2026-09 responsive audit correction: the eyebrow is a real grid row. */
.home-v3{
  grid-template-rows:auto minmax(82px,auto) 46px 44px clamp(132px,38vw,160px) clamp(126px,18vh,145px)!important;
  align-content:start!important;
}
.home-v3>.eyebrow{min-height:16px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-v3 .hero-row{height:auto;min-height:82px;margin:0;overflow:visible;align-items:center}
.home-v3 .hero-row>div{min-width:0;width:min(100%,22rem);padding-inline:clamp(4px,2vw,12px)}
.home-v3 .hero-row h2{font-size:clamp(30px,8.8vw,40px);line-height:1.05;white-space:nowrap}
.home-v3 .hero-row p{max-width:100%;max-height:2.7em;margin:4px 0 0;line-height:1.35}
.home-v3 .home-entry-grid{height:clamp(132px,38vw,160px);min-height:132px;max-height:160px;align-self:start}
.home-v3 .home-entry>.entry-art{left:auto;right:clamp(4px,1.6vw,9px);top:clamp(42px,11vw,58px);bottom:auto;transform:none;width:clamp(42px,13vw,56px);height:clamp(40px,12vw,54px);z-index:0;opacity:.78}
.home-v3 .home-entry.custom-entry-card>.entry-art{left:auto;right:clamp(4px,1.6vw,9px);top:auto;bottom:clamp(20px,6vw,30px);width:clamp(46px,14vw,60px);height:clamp(46px,14vw,60px);z-index:0;opacity:.86}
.home-v3 .home-entry>span:not(.entry-art):not(.entry-foods):not(.entry-add-mark){z-index:3;max-width:calc(100% - 42px);padding:2px 4px;border-radius:8px;background:rgba(255,250,244,.94)}
.home-v3 .entry-foods{z-index:4}
.home-v3 .coach-entry .entry-foods{right:clamp(54px,16vw,68px)}
.home-v3 .entry-add-mark{z-index:3}

@media(max-width:375px){
  .home-v3{grid-template-rows:auto minmax(78px,auto) 42px 44px clamp(132px,38vw,148px) 126px!important}
  .home-v3 .hero-row{min-height:78px}
  .home-v3 .home-entry-grid{height:clamp(132px,38vw,148px)}
  .home-v3 .home-entry>.entry-art{top:52px;right:5px;width:42px;height:40px}
  .home-v3 .home-entry.custom-entry-card>.entry-art{right:5px;bottom:20px;width:48px;height:48px}
  .home-v3 .coach-entry .entry-foods{right:54px}
}

/* Final responsive guard: the former summary coordinate skin is retained for
   historical reference above, but never controls the live layout. Every
   summary region now follows the same fluid grid as the other screens. */
.summary-compact[data-page="summary"]{
  position:static!important;inset:auto!important;width:100%!important;height:calc(100% - 10px)!important;min-height:0!important;
  margin:0!important;padding:0!important;display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)!important;
  grid-template-rows:36px 18px minmax(0,1fr) 92px 88px 66px!important;
  column-gap:6px!important;row-gap:6px!important;overflow:hidden!important;
}
.summary-compact[data-page="summary"]>.subhead{
  position:static!important;inset:auto!important;grid-column:1/-1!important;grid-row:1!important;width:auto!important;height:36px!important;margin:0!important;z-index:auto!important;
}
.summary-compact[data-page="summary"]>.summary-pot-heading{
  position:static!important;inset:auto!important;grid-column:1/-1!important;grid-row:2!important;width:auto!important;height:18px!important;margin:0!important;padding:0 3px!important;
}
.summary-compact[data-page="summary"]>.wood-table{
  position:static!important;inset:auto!important;grid-column:1/-1!important;grid-row:3!important;width:100%!important;height:100%!important;min-height:0!important;margin:0!important;
  border:2px solid #26221d!important;border-radius:24px!important;overflow:hidden!important;z-index:auto!important;
}
.summary-compact[data-page="summary"] .pot-stage{
  position:relative!important;inset:auto!important;width:100%!important;height:100%!important;min-height:0!important;margin:0!important;overflow:hidden!important;
}
.summary-compact[data-page="summary"] .pot-stage>.scene-base{
  position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:contain!important;transform:none!important;transform-origin:center!important;
}
.summary-compact[data-page="summary"] .pot-foods{
  position:absolute!important;inset:12% 10%!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:repeat(2,minmax(0,1fr))!important;align-items:center!important;justify-items:center!important;gap:2px 7px!important;padding:0!important;overflow:hidden!important;z-index:3!important;
}
.summary-compact[data-page="summary"] .pot-food-label,
.summary-compact[data-page="summary"] .pot-vegetable-label{
  position:static!important;inset:auto!important;width:100%!important;height:auto!important;min-height:0!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:visible!important;transform:none!important;background:transparent!important;padding:0!important;border:0!important;border-radius:0!important;
}
.summary-compact[data-page="summary"] .pot-food-label{flex-direction:column!important;gap:1px!important}
.summary-compact[data-page="summary"] .pot-food-label img{width:clamp(58px,18vw,96px)!important;height:clamp(58px,18vw,96px)!important;object-fit:contain!important;transform:none!important}
.summary-compact[data-page="summary"] .pot-food-label b,
.summary-compact[data-page="summary"] .pot-vegetable-label b{position:static!important;left:auto!important;bottom:auto!important;transform:none!important;max-width:100%!important;font-size:clamp(10px,3vw,12px)!important;line-height:1.15!important;white-space:normal!important;text-align:center!important;overflow-wrap:anywhere!important;text-shadow:none!important}
.summary-compact[data-page="summary"] .pot-vegetable-label img{width:clamp(58px,18vw,76px)!important;height:clamp(48px,14vw,58px)!important;object-fit:contain!important;transform:none!important}
.summary-compact[data-page="summary"]>.vegetables-section{
  position:static!important;inset:auto!important;grid-column:1!important;grid-row:4!important;width:100%!important;height:92px!important;min-height:92px!important;margin:0!important;padding:5px 7px!important;border:2px solid #26221d!important;border-radius:18px!important;background:#fffaf4!important;overflow:hidden!important;z-index:auto!important;
}
.summary-compact[data-page="summary"]>.vegetables-section .vegetable-open{
  position:static!important;width:100%!important;height:44px!important;min-height:44px!important;padding:0!important;overflow:hidden!important;
}
.summary-compact[data-page="summary"]>.vegetables-section .compact-section-title{
  position:static!important;inset:auto!important;width:auto!important;height:42px!important;display:flex!important;align-items:center!important;gap:5px!important;min-width:0!important;
}
.summary-compact[data-page="summary"]>.vegetables-section .veg-bowl{position:static!important;width:47px!important;height:38px!important;flex:0 0 47px!important;object-fit:contain!important}
.summary-compact[data-page="summary"]>.vegetables-section .compact-section-title>span{position:static!important;width:auto!important;height:auto!important;display:flex!important;align-items:flex-start!important;justify-content:flex-start!important;flex-direction:column!important;gap:1px!important;border:0!important;border-radius:0!important;background:transparent!important;overflow:hidden!important}
.summary-compact[data-page="summary"]>.vegetables-section .compact-section-title .eyebrow{display:block!important;font-size:9px!important;white-space:nowrap!important}
.summary-compact[data-page="summary"]>.vegetables-section .compact-section-title strong{font-size:12px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.summary-compact[data-page="summary"]>.vegetables-section .veg-list{position:static!important;width:auto!important;height:auto!important;min-width:0!important;display:flex!important;justify-content:flex-start!important;overflow:hidden!important}
.summary-compact[data-page="summary"]>.vegetables-section .veg-chip{max-width:100%!important;padding:3px 5px!important;font-size:11px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.summary-compact[data-page="summary"]>.vegetables-section .veg-chip img{display:block!important;width:28px!important;height:28px!important;object-fit:contain!important}
.summary-compact[data-page="summary"]>.supplement-section{
  position:static!important;inset:auto!important;grid-column:2!important;grid-row:4!important;width:100%!important;height:auto!important;min-height:92px!important;margin:0!important;padding:5px 7px!important;border:2px solid #26221d!important;border-radius:18px!important;background:#fffaf4!important;overflow:visible!important;z-index:auto!important;
}
.summary-compact[data-page="summary"]>.supplement-section .compact-section-title{position:static!important;width:100%!important;height:30px!important;min-height:30px!important;display:flex!important;align-items:center!important;gap:5px!important;margin:0 0 3px!important;overflow:hidden!important}
.summary-compact[data-page="summary"]>.supplement-section .compact-section-title>img{position:static!important;width:28px!important;height:28px!important;flex:0 0 28px!important;object-fit:contain!important}
.summary-compact[data-page="summary"]>.supplement-section .compact-section-title>span{display:flex!important;flex-direction:column!important;min-width:0!important;overflow:hidden!important}
.summary-compact[data-page="summary"]>.supplement-section .compact-section-title strong{font-size:12px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.summary-compact[data-page="summary"]>.supplement-section .compact-section-title small{display:block!important;font-size:9px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.summary-compact[data-page="summary"]>.supplement-section .supplement-table{position:static!important;width:100%!important;height:auto!important;display:grid!important;gap:2px!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;overflow:visible!important}
.summary-compact[data-page="summary"] .supplement-table-head{height:9px!important;grid-template-columns:15px minmax(0,1fr) 31px 28px 38px!important;font-size:8px!important;line-height:1!important;white-space:nowrap!important}
.summary-compact[data-page="summary"] .supplement-table-row{position:static!important;grid-template-columns:15px minmax(0,1fr) 31px 28px 38px!important;min-height:44px!important;height:auto!important;padding:2px 3px!important;background:#fff0d4!important;border-top:0!important;border-radius:8px!important}
.summary-compact[data-page="summary"] .supplement-copy,.summary-compact[data-page="summary"] .supplement-copy b,.summary-compact[data-page="summary"] .supplement-timing,.summary-compact[data-page="summary"] .supplement-quantity,.summary-compact[data-page="summary"] .supplement-table-row i{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:9px!important;line-height:1!important}
.summary-compact[data-page="summary"]>.photographer-section{
  position:static!important;inset:auto!important;grid-column:1/-1!important;grid-row:5!important;width:100%!important;height:auto!important;min-height:88px!important;margin:0!important;padding:5px 8px!important;display:grid!important;align-items:center!important;gap:7px!important;border:2px solid #26221d!important;border-radius:18px!important;background:#fffaf4!important;overflow:visible!important;z-index:auto!important;
}
.summary-compact[data-page="summary"]>.photographer-section .cat-art{position:static!important;width:82px!important;height:78px!important;flex:0 0 82px!important;object-fit:contain!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-copy{position:static!important;width:auto!important;height:auto!important;min-width:0!important;display:flex!important;flex:1!important;flex-direction:column!important;gap:2px!important;overflow:hidden!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-copy .eyebrow{display:block!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-copy strong{font-size:13px!important;white-space:nowrap!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-state{display:block!important;font-size:10px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-actions{position:static!important;display:flex!important;gap:5px!important;min-width:0!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-action{width:auto!important;min-width:0!important;height:52px!important;min-height:52px!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:4px!important;padding:5px!important;border:2px solid #26221d!important;border-radius:12px!important;background:#fff0d4!important;font-size:10px!important;overflow:hidden!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-action + .photo-action{width:auto!important;min-width:0!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-action span{font-size:9px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-action img{position:static!important;width:24px!important;height:24px!important;flex:0 0 24px!important}
.summary-compact[data-page="summary"]>.compact-footer{
  position:static!important;inset:auto!important;grid-column:1/-1!important;grid-row:6!important;width:100%!important;height:auto!important;min-height:66px!important;margin:0!important;padding:4px 7px!important;display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;border:2px solid #26221d!important;border-radius:18px!important;background:#fffaf4!important;overflow:visible!important;z-index:auto!important;
}
.summary-compact[data-page="summary"]>.compact-footer .lock-copy{position:static!important;width:auto!important;height:auto!important;min-width:0!important;display:flex!important;flex:1!important;flex-direction:column!important;gap:2px!important;text-align:left!important;overflow:hidden!important}
.summary-compact[data-page="summary"]>.compact-footer .lock-copy strong,.summary-compact[data-page="summary"]>.compact-footer .lock-copy small{position:static!important;width:auto!important;height:auto!important;max-width:100%!important;font-size:11px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.summary-compact[data-page="summary"]>.compact-footer .checkin-button{position:static!important;inset:auto!important;width:auto!important;min-width:0!important;flex:0 0 clamp(128px,38vw,190px)!important;height:58px!important;min-height:58px!important;margin:0!important;padding:10px 12px!important;border:2px solid #26221d!important;border-radius:15px!important;background:#ffad43!important;color:#26221d!important;font-size:13px!important;opacity:1!important;visibility:visible!important;z-index:auto!important}

/* iOS/Android never auto-zoom a control while typing. Visual size remains
   governed by the surrounding fluid boxes and text may wrap when needed. */
@media(max-width:767px){
  html,body{-webkit-text-size-adjust:100%;text-size-adjust:100%}
  input,select,textarea{font-size:16px!important;line-height:1.25!important}
}

/* Content may be taller than a short phone viewport. Let the app shell scroll
   the current screen instead of clipping the lower action area or media. */
.screen-content{overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain}
.screen-anchor{height:auto!important;min-height:100%!important;overflow:visible!important;padding-bottom:max(12px,env(safe-area-inset-bottom))!important}
[data-role="screen"]{height:auto!important;min-height:100%!important;overflow:visible!important}
.picker-view,.plate-v1,.plate-v2,.board-view,.summary-compact{height:auto!important;min-height:clamp(620px,calc(100dvh - 76px),860px)!important;overflow:visible!important}
.summary-compact[data-page="summary"]{height:auto!important;min-height:clamp(620px,calc(100dvh - 76px),860px)!important;grid-template-rows:minmax(36px,auto) 18px minmax(260px,1fr) minmax(92px,auto) minmax(88px,auto) minmax(66px,auto)!important}
.summary-compact[data-page="summary"]>.subhead{height:auto!important;min-height:47px!important;overflow:visible!important}
.summary-compact[data-page="summary"] .pot-stage>.scene-base{min-width:0!important;min-height:0!important}
.summary-compact[data-page="summary"]>.photographer-section{display:grid!important;grid-template-columns:clamp(60px,22vw,82px) minmax(0,1fr)!important;grid-template-rows:auto auto!important;align-items:center!important}
.summary-compact[data-page="summary"]>.photographer-section .cat-art{grid-column:1!important;grid-row:1/3!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-copy{grid-column:2!important;grid-row:1!important;width:auto!important;min-width:0!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-actions{grid-column:2!important;grid-row:2!important;width:100%!important;min-width:0!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-action{width:auto!important;min-width:0!important;flex:1 1 0!important}
.summary-compact[data-page="summary"]>.compact-footer .lock-copy{height:auto!important;min-height:0!important}

/* The logout control belongs only to the food screen.  Keep the HTML hidden
   attribute authoritative even when the legacy header skin uses !important. */

/* Home library rows are content-sized, so the search field and examples never
   overlap when a device width changes or system text is enlarged. */
.home-v3 .home-library-v3{
  height:auto!important;min-height:clamp(136px,18vh,160px)!important;
  grid-template-rows:minmax(22px,auto) minmax(42px,auto) minmax(42px,auto)!important;
}
.home-v3 .home-library-v3 .home-search{
  height:auto!important;min-height:42px!important;margin:0!important;
}
.home-v3 .home-library-v3 .library-examples{
  height:auto!important;min-height:42px!important;margin:0!important;
}
.home-v3 .home-library-v3 .library-examples>button,
.home-v3 .home-library-v3 .library-examples>span{
  height:auto!important;min-height:42px!important;
}

/* The legacy summary selector above used a fixed viewport box and clipped its
   last row.  The live screen is allowed to grow so screen-content can scroll
   to the action instead of silently hiding it. */
.screen-anchor:has(.summary-compact){
  height:auto!important;min-height:0!important;overflow:visible!important;
}
.summary-compact[data-page="summary"]>.compact-footer{
  position:sticky!important;bottom:0!important;z-index:6!important;
  box-shadow:0 -4px 10px rgba(38,34,29,.08)!important;
}

/* Fit the summary to the three contractual phone heights.  The pot is the
   only elastic visual area; text, supplement rows, photo actions and CTA keep
   their intrinsic height instead of pushing the CTA behind global navigation. */
.summary-compact[data-page="summary"]{
  min-height:0!important;
  grid-template-rows:minmax(49px,auto) 18px clamp(220px,calc(100dvh - 576px),358px) minmax(92px,auto) minmax(88px,auto) minmax(66px,auto)!important;
}
.summary-compact[data-page="summary"]>.subhead{min-height:49px!important;overflow:visible!important}
.summary-compact[data-page="summary"]>.supplement-section{height:auto!important;min-height:92px!important}
.summary-compact[data-page="summary"] .supplement-table-head{display:none!important}
.summary-compact[data-page="summary"] .supplement-table-row{
  display:grid!important;grid-template-columns:15px minmax(0,1fr)!important;
  min-height:38px!important;height:auto!important;align-items:start!important;
  padding:4px 3px!important;gap:2px 4px!important;
}
.summary-compact[data-page="summary"] .supplement-row-main{grid-column:2;min-width:0;display:flex!important;flex-direction:column;gap:2px;overflow:visible}
.summary-compact[data-page="summary"] .supplement-copy,
.summary-compact[data-page="summary"] .supplement-copy b{
  min-width:0!important;display:block!important;white-space:normal!important;
  overflow-wrap:anywhere!important;overflow:visible!important;text-overflow:clip!important;
  font-size:10px!important;line-height:1.2!important;
}
.summary-compact[data-page="summary"] .supplement-meta{display:flex!important;flex-wrap:wrap;gap:2px 6px;min-width:0;line-height:1.2;overflow:visible}
.summary-compact[data-page="summary"] .supplement-timing,
.summary-compact[data-page="summary"] .supplement-quantity,
.summary-compact[data-page="summary"] .supplement-table-row i{
  min-width:0!important;width:auto!important;display:inline!important;white-space:normal!important;
  overflow:visible!important;text-overflow:clip!important;font-size:9px!important;line-height:1.2!important;
}
.summary-compact[data-page="summary"]>.photographer-section{
  min-height:88px!important;height:auto!important;
  grid-template-columns:clamp(52px,16vw,64px) minmax(0,1fr)!important;
}
.summary-compact[data-page="summary"]>.photographer-section .cat-art{width:58px!important;height:56px!important;flex-basis:58px!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-actions{min-height:42px!important;height:42px!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-action{height:42px!important;min-height:42px!important;padding:3px!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-action img{width:20px!important;height:20px!important;flex-basis:20px!important}
.summary-compact[data-page="summary"]>.compact-footer .lock-copy strong,
.summary-compact[data-page="summary"]>.compact-footer .lock-copy small{
  white-space:normal!important;overflow-wrap:anywhere!important;overflow:visible!important;
  text-overflow:clip!important;line-height:1.2!important;
}

/* Three or more supplement rows need their own vertical budget.  Keep the
   table readable and reclaim space from the decorative pot so the CTA remains
   above the fixed navigation on the contractual 375/390/430 heights. */
.summary-compact[data-page="summary"]:has(.supplement-table){
  grid-template-rows:minmax(49px,auto) 18px clamp(150px,calc(100dvh - 652px),282px) minmax(92px,auto) minmax(88px,auto) minmax(66px,auto)!important;
}
.summary-compact[data-page="summary"]:has(.supplement-table) .pot-food-label img{
  width:clamp(48px,14vw,72px)!important;height:clamp(48px,14vw,72px)!important;
}

/* 2026-09-04 r42test37: the live phone contract is a fixed viewport.  Only
   the food picker may scroll; all other diet-flow screens use bounded rows. */
.app-shell:not(.auth-gate):not(.picker-scroll) .screen-content{overflow:hidden!important;overscroll-behavior:none!important}
.app-shell:not(.auth-gate):not(.picker-scroll) .screen-anchor{height:100%!important;min-height:0!important;overflow:hidden!important}
.app-shell:not(.auth-gate):not(.picker-scroll) [data-role="screen"]{height:100%!important;min-height:0!important;overflow:hidden!important}
.app-shell.auth-gate .screen-content{overflow-y:auto!important}
.app-shell.picker-scroll .screen-content{overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain}
.app-shell.picker-scroll .screen-anchor,.app-shell.picker-scroll [data-role="screen"]{height:auto!important;min-height:100%!important;overflow:visible!important}

/* Home flow: eyebrow, hero, daily balance, meal tabs, training, entry cards,
   and library are separate rows so no text is laid over by artwork. */
.home-v3[data-page="home"]{
  height:100%!important;min-height:0!important;align-content:start!important;overflow:hidden!important;
  grid-template-rows:16px minmax(68px,76px) 58px 44px 44px clamp(150px,23vh,190px) minmax(120px,136px)!important;
  gap:6px!important;
}
.home-v3[data-page="home"]>.eyebrow{min-width:0;min-height:16px;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-v3[data-page="home"] .hero-row{height:100%!important;min-height:0!important;margin:0!important;overflow:hidden!important;position:relative;display:flex;align-items:center;justify-content:center}
.home-v3[data-page="home"] .hero-row>div{min-width:0;max-width:calc(100% - 62px);padding-inline:4px;text-align:center}
.home-v3[data-page="home"] .hero-row h2{max-width:100%;font-size:clamp(30px,8.8vw,40px)!important;line-height:1.05!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-v3[data-page="home"] .hero-row p{max-width:100%;margin:4px 0 0;font-size:10px;line-height:1.25;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.home-v3[data-page="home"] .hero-row .hero-cat{right:0;top:50%;width:clamp(52px,16vw,68px);height:clamp(50px,15vw,64px);transform:translateY(-50%);object-fit:contain}
.today-macro-balance{min-width:0;height:100%;display:grid;grid-template-rows:19px minmax(0,1fr);gap:2px;padding:5px 8px;border:2px solid #26221d;border-radius:15px;background:#edf3e9;overflow:hidden;color:#315c56}
.today-macro-balance-head{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:6px;line-height:1;overflow:hidden}
.today-macro-balance-head strong{min-width:0;font-size:11px;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.today-macro-balance-head small{flex:0 1 auto;min-width:0;color:#6d5a4d;font-size:8px;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.today-macro-balance-grid{min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden}
.today-macro-balance-grid>div{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:0 3px;border-left:1px solid #c5d5ca;overflow:hidden}
.today-macro-balance-grid>div:first-child{border-left:0}
.today-macro-balance-grid span{max-width:100%;color:#332820;font-size:8px;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.today-macro-balance-grid strong{max-width:100%;font-size:10px;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-v3[data-page="home"] .home-meal-tabs,.home-v3[data-page="home"] .home-meal-tabs .meal-tab{height:44px!important;min-height:44px!important}
.home-v3[data-page="home"] .home-meal-tabs{min-width:0;overflow:hidden!important}
.home-v3[data-page="home"] .home-meal-tabs .meal-tab{min-width:0;padding:5px 3px!important;overflow:hidden}
.home-v3[data-page="home"] .home-meal-tabs .meal-tab span{max-width:100%;font-size:clamp(13px,3.8vw,16px)!important;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-v3[data-page="home"] .today-strip{height:44px!important;min-height:44px!important;margin:0!important;padding:3px 10px!important;align-self:stretch;overflow:hidden}
.home-v3[data-page="home"] .today-strip .training-check{min-width:0;height:38px!important;min-height:38px!important;overflow:hidden}
.home-v3[data-page="home"] .today-strip .training-check span{min-width:0;overflow:hidden}
.home-v3[data-page="home"] .today-strip .training-check b{max-width:100%;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-v3[data-page="home"] .home-entry-grid{height:100%!important;min-height:0!important;max-height:none!important;align-self:stretch;overflow:hidden;gap:7px!important}
.home-v3[data-page="home"] .home-entry{min-width:0;width:100%;height:100%!important;min-height:0!important;overflow:hidden!important}
.home-v3[data-page="home"] .home-entry>span:not(.entry-art):not(.entry-foods):not(.entry-add-mark){left:9px;top:9px;right:auto;max-width:calc(100% - 50px)!important;min-width:0;padding:2px 3px!important;background:rgba(255,250,244,.95);border-radius:7px;z-index:4;overflow:hidden}
.home-v3[data-page="home"] .home-entry>span:not(.entry-art):not(.entry-foods):not(.entry-add-mark) b,.home-v3[data-page="home"] .home-entry>span:not(.entry-art):not(.entry-foods):not(.entry-add-mark) small{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-v3[data-page="home"] .home-entry>span:not(.entry-art):not(.entry-foods):not(.entry-add-mark) b{font-size:14px!important;line-height:1.1}
.home-v3[data-page="home"] .home-entry>span:not(.entry-art):not(.entry-foods):not(.entry-add-mark) small{font-size:8px!important;line-height:1.2}
.home-v3[data-page="home"] .home-entry>i{right:8px;top:8px;z-index:5;padding:5px 6px;line-height:1;white-space:nowrap}
.home-v3[data-page="home"] .home-entry>.entry-art{left:auto;right:5px;top:auto;bottom:6px;transform:none;width:48px!important;height:48px!important;z-index:1;opacity:.82;overflow:visible}
.home-v3[data-page="home"] .home-entry>.entry-art img{width:100%!important;height:100%!important;object-fit:contain}
.home-v3[data-page="home"] .home-entry.custom-entry-card>.entry-art{left:auto;right:5px;top:auto;bottom:5px;width:48px!important;height:48px!important;z-index:1}
.home-v3[data-page="home"] .entry-foods{left:6px!important;right:53px!important;top:auto!important;bottom:6px!important;height:auto!important;min-height:0!important;min-width:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px!important;z-index:4;overflow:hidden}
.home-v3[data-page="home"] .entry-foods>span{min-width:0;padding:2px 0!important;gap:0;overflow:hidden}
.home-v3[data-page="home"] .entry-foods img{width:clamp(24px,8vw,31px)!important;height:clamp(24px,8vw,31px)!important}
.home-v3[data-page="home"] .entry-foods b{max-width:100%;font-size:8px!important;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-v3[data-page="home"] .entry-add-mark{left:42%!important;top:52%!important;width:44px!important;height:44px!important;font-size:32px!important;z-index:4}
.home-v3[data-page="home"] .home-library-v3{height:100%!important;min-height:0!important;margin:0!important;padding:6px 8px!important;grid-template-rows:34px 40px minmax(0,1fr)!important;gap:4px 6px!important;overflow:hidden!important}
.home-v3[data-page="home"] .home-library-v3 .library-heading{min-width:0;overflow:hidden;padding-right:40px!important}
.home-v3[data-page="home"] .home-library-v3 .library-heading strong{max-width:100%;font-size:13px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-v3[data-page="home"] .home-library-v3 .library-open-label{height:27px;min-height:27px;padding:4px 7px!important;font-size:9px;line-height:1}
.home-v3[data-page="home"] .home-library-v3 .home-search{height:40px!important;min-height:40px!important;margin:0!important;overflow:hidden}
.home-v3[data-page="home"] .home-library-v3 .home-search input{min-width:0;max-width:100%;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-v3[data-page="home"] .home-library-v3 .library-examples{height:100%!important;min-height:0!important;margin:0!important;overflow:hidden!important;gap:4px!important}
.home-v3[data-page="home"] .home-library-v3 .library-examples>button,.home-v3[data-page="home"] .home-library-v3 .library-examples>span{min-width:0;height:100%!important;min-height:0!important;overflow:hidden!important}
.home-v3[data-page="home"] .home-library-v3 .library-examples img{width:clamp(24px,8vw,32px)!important;height:clamp(24px,8vw,32px)!important}
.home-v3[data-page="home"] .home-library-v3 .library-examples span{max-width:100%;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-v3[data-page="home"] .home-library-v3 .library-cat{right:2px;top:-21px;width:46px;height:52px;z-index:6}

/* Plate and board: each visual stage has an explicit row budget. */
.plate-v1[data-page="plate"]{
  height:100%!important;min-height:0!important;overflow:hidden!important;align-content:start!important;
  grid-template-rows:36px clamp(132px,18vh,170px) clamp(180px,25vh,228px) clamp(104px,15vh,138px) 20px 48px!important;
  row-gap:5px!important;
}
.plate-v1[data-page="plate"]>.subhead{height:36px!important;min-height:36px!important;margin:0!important;overflow:hidden}
.plate-v1[data-page="plate"]>.subhead>div{min-width:0;overflow:hidden}
.plate-v1[data-page="plate"]>.subhead h2{max-width:100%;font-size:clamp(22px,6.5vw,27px)!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plate-v1[data-page="plate"]>.subhead .target-pill{flex:0 0 auto;white-space:nowrap}
.plate-v1[data-page="plate"]>.plate-board-row{height:100%!important;min-height:0!important;align-items:stretch!important;grid-template-columns:minmax(0,1fr) clamp(88px,25vw,104px)!important;gap:6px!important;overflow:hidden}
.plate-v1[data-page="plate"]>.plate-board-row>.plate-stage{align-self:stretch!important;height:auto!important;min-height:0!important;margin:0!important;overflow:hidden!important}
.plate-v1[data-page="plate"]>.plate-board-row>.plate-stage .scene-base{width:100%;height:100%;object-fit:contain}
.plate-v1[data-page="plate"] .plate-food img{width:clamp(50px,15vw,70px)!important;height:clamp(50px,15vw,70px)!important}
.plate-v1[data-page="plate"] .plate-food span{max-width:70px;font-size:8px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plate-v1[data-page="plate"]>.plate-board-row>.plate-actions{align-self:stretch!important;height:auto!important;min-height:0!important;gap:6px!important;overflow:hidden}
.plate-v1[data-page="plate"] .plate-actions button{min-width:0;min-height:44px;height:calc((100% - 6px)/2);padding:4px 3px!important;font-size:10px!important;line-height:1.1;overflow:hidden}
.plate-v1[data-page="plate"] .plate-actions img{width:24px;height:24px;flex:0 0 24px}
.plate-v1[data-page="plate"]>.board-panel{height:100%!important;min-height:0!important;display:grid!important;grid-template-rows:minmax(0,1fr) 38px!important;gap:5px!important;overflow:hidden!important}
.plate-v1[data-page="plate"]>.board-panel>.board-stage{width:100%!important;height:100%!important;min-height:0!important;margin:0!important;overflow:hidden!important}
.plate-v1[data-page="plate"] .board-stage .scene-base{width:100%;height:100%;object-fit:contain}
.plate-v1[data-page="plate"] .board-stage .board-food{width:clamp(82px,27vw,126px);height:clamp(82px,27vw,126px);max-width:45%;max-height:72%;object-fit:contain}
.plate-v1[data-page="plate"] .board-food-copy{left:50%;bottom:6px;max-width:calc(100% - 16px);min-width:0;overflow:hidden}
.plate-v1[data-page="plate"] .board-food-copy strong,.plate-v1[data-page="plate"] .board-food-copy small{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plate-v1[data-page="plate"] .board-food-copy strong{font-size:12px}
.plate-v1[data-page="plate"] .board-food-copy small{font-size:8px}
.plate-v1[data-page="plate"]>.board-panel .gram-control{width:min(76%,360px)!important;height:38px!important;min-height:38px!important;margin:0 auto!important;grid-template-columns:38px minmax(0,1fr) 20px 38px!important;gap:5px!important}
.plate-v1[data-page="plate"] .gram-control button{width:38px!important;height:38px!important;min-width:38px!important;font-size:21px!important}
.plate-v1[data-page="plate"] .gram-control input{height:38px!important;min-width:0;font-size:16px!important}
.plate-v1[data-page="plate"] .gram-control span{font-size:10px;white-space:nowrap}
.plate-v1[data-page="plate"]>.scale-card{width:100%!important;height:100%!important;min-height:0!important;margin:0!important;padding:5px 7px!important;grid-template-columns:clamp(66px,20vw,82px) minmax(0,1fr)!important;grid-template-rows:24px minmax(0,1fr)!important;gap:2px 5px!important;overflow:hidden!important}
.plate-v1[data-page="plate"]>.scale-card>img{width:100%!important;height:100%!important;max-height:100%;object-fit:contain}
.plate-v1[data-page="plate"] .scale-reading{min-width:0;overflow:hidden;gap:3px!important}
.plate-v1[data-page="plate"] .scale-reading span{min-width:0;font-size:8px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plate-v1[data-page="plate"] .scale-reading strong{font-size:clamp(18px,5.6vw,24px)!important;white-space:nowrap}
.plate-v1[data-page="plate"] .scale-reading strong small{font-size:9px}
.plate-v1[data-page="plate"] .board-macro-panel{min-width:0!important;min-height:0!important;display:grid!important;grid-template-rows:16px minmax(0,1fr)!important;grid-template-columns:1fr!important;gap:2px!important;overflow:hidden!important}
.plate-v1[data-page="plate"] .board-macro-title{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:4px;overflow:hidden}
.plate-v1[data-page="plate"] .board-macro-title strong,.plate-v1[data-page="plate"] .board-macro-title span{min-width:0;font-size:8px!important;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plate-v1[data-page="plate"] .board-macro-grid{min-width:0;min-height:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden}
.plate-v1[data-page="plate"] .board-macro-row{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:1px 2px!important;border-left:1px solid #c5d5ca;overflow:hidden}
.plate-v1[data-page="plate"] .board-macro-row:first-child{border-left:0}
.plate-v1[data-page="plate"] .board-macro-row span,.plate-v1[data-page="plate"] .board-macro-row strong,.plate-v1[data-page="plate"] .board-macro-row small{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plate-v1[data-page="plate"] .board-macro-row span{font-size:8px!important;line-height:1}
.plate-v1[data-page="plate"] .board-macro-row strong{font-size:clamp(11px,3.2vw,16px)!important;line-height:1!important}
.plate-v1[data-page="plate"] .board-macro-row small{font-size:7px!important;line-height:1!important}
.plate-v1[data-page="plate"]>.day-macro-inline{height:20px!important;min-height:20px!important;margin:0!important;padding:0 3px;overflow:hidden;color:#315c56;font-size:8px!important;line-height:1;white-space:nowrap;text-overflow:ellipsis}
.plate-v1[data-page="plate"]>.settlement-strip{height:48px!important;min-height:48px!important;margin:0!important;padding:2px!important;overflow:hidden}
.plate-v1[data-page="plate"]>.settlement-strip button{min-width:0;min-height:42px;padding:3px;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plate-v1[data-page="plate"]>.settlement-strip img{width:26px;height:26px;margin-right:2px}

/* Summary: the pot absorbs spare height while the actionable rows keep their
   own boxes.  Long names are clipped inside their cell, never across a cell. */
.summary-compact[data-page="summary"]{
  height:100%!important;min-height:0!important;display:grid!important;align-content:start!important;overflow:hidden!important;
  grid-template-rows:40px 16px minmax(170px,1fr) 62px minmax(86px,auto) 70px 54px!important;
  gap:5px!important;
}
.summary-compact[data-page="summary"]>.subhead{height:40px!important;min-height:40px!important;overflow:hidden!important}
.summary-compact[data-page="summary"]>.subhead>div{min-width:0;overflow:hidden}
.summary-compact[data-page="summary"]>.subhead h2{max-width:100%;font-size:clamp(21px,6vw,25px)!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.summary-compact[data-page="summary"]>.summary-pot-heading{height:16px!important;min-height:16px!important;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.summary-compact[data-page="summary"]>.wood-table{height:100%!important;min-height:0!important;margin:0!important;overflow:hidden!important}
.summary-compact[data-page="summary"] .pot-stage{height:100%!important;min-height:0!important;overflow:hidden!important}
.summary-compact[data-page="summary"] .pot-stage>.scene-base{width:100%!important;height:100%!important;object-fit:contain!important;transform:none!important}
.summary-compact[data-page="summary"] .pot-foods{inset:10% 8%!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:repeat(2,minmax(0,1fr))!important;gap:2px 5px!important;overflow:hidden!important}
.summary-compact[data-page="summary"] .pot-food-label,.summary-compact[data-page="summary"] .pot-vegetable-label{min-width:0!important;max-width:100%!important;overflow:hidden!important}
.summary-compact[data-page="summary"] .pot-food-label img{width:clamp(44px,14vw,76px)!important;height:clamp(44px,14vw,76px)!important;max-width:100%;object-fit:contain!important}
.summary-compact[data-page="summary"] .pot-food-label b,.summary-compact[data-page="summary"] .pot-vegetable-label b{max-width:100%;font-size:clamp(8px,2.7vw,12px)!important;line-height:1.1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.summary-compact[data-page="summary"]>.vegetables-section{height:100%!important;min-height:0!important;padding:4px 6px!important;overflow:hidden!important}
.summary-compact[data-page="summary"]>.vegetables-section .vegetable-open{height:100%!important;min-height:0!important;display:grid!important;grid-template-rows:38px minmax(0,1fr)!important;gap:2px!important;overflow:hidden!important}
.summary-compact[data-page="summary"]>.vegetables-section .compact-section-title{height:38px!important;min-height:38px!important;overflow:hidden!important}
.summary-compact[data-page="summary"]>.vegetables-section .veg-bowl{width:42px!important;height:34px!important;flex:0 0 42px!important}
.summary-compact[data-page="summary"]>.vegetables-section .compact-section-title>span{min-width:0;overflow:hidden!important}
.summary-compact[data-page="summary"]>.vegetables-section .compact-section-title strong{max-width:100%;font-size:11px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.summary-compact[data-page="summary"]>.vegetables-section .veg-list{min-width:0;max-width:100%;overflow:hidden!important;justify-content:flex-start!important}
.summary-compact[data-page="summary"]>.vegetables-section .veg-chip{min-width:0;max-width:100%;font-size:8px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.summary-compact[data-page="summary"]>.vegetables-section .veg-chip b{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.summary-compact[data-page="summary"]>.supplement-section{height:auto!important;min-height:0!important;padding:4px 6px!important;overflow:hidden!important}
.summary-compact[data-page="summary"]>.supplement-section .compact-section-title{height:26px!important;min-height:26px!important;margin:0 0 3px!important;overflow:hidden!important}
.summary-compact[data-page="summary"]>.supplement-section .compact-section-title>img{width:25px!important;height:25px!important;flex:0 0 25px!important}
.summary-compact[data-page="summary"]>.supplement-section .compact-section-title>span{min-width:0;overflow:hidden!important}
.summary-compact[data-page="summary"]>.supplement-section .compact-section-title strong,.summary-compact[data-page="summary"]>.supplement-section .compact-section-title small{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.summary-compact[data-page="summary"]>.supplement-section .supplement-table{min-width:0;min-height:0;display:grid!important;grid-auto-rows:minmax(22px,auto);gap:2px!important;overflow:hidden!important}
.summary-compact[data-page="summary"]>.supplement-section .supplement-table-head{display:none!important}
.summary-compact[data-page="summary"]>.supplement-section .supplement-table-row{min-width:0;min-height:22px!important;height:auto!important;display:grid!important;grid-template-columns:15px minmax(0,1fr)!important;align-items:center;gap:2px 4px!important;padding:2px 3px!important;overflow:hidden!important}
.summary-compact[data-page="summary"]>.supplement-section .supplement-row-main{grid-column:2;min-width:0;display:grid!important;grid-template-rows:auto auto;gap:1px;overflow:hidden!important}
.summary-compact[data-page="summary"]>.supplement-section .supplement-copy,.summary-compact[data-page="summary"]>.supplement-section .supplement-meta{min-width:0;overflow:hidden!important}
.summary-compact[data-page="summary"]>.supplement-section .supplement-copy b,.summary-compact[data-page="summary"]>.supplement-section .supplement-timing,.summary-compact[data-page="summary"]>.supplement-section .supplement-quantity,.summary-compact[data-page="summary"]>.supplement-section .supplement-table-row i{max-width:100%;font-size:8px!important;line-height:1.1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.summary-compact[data-page="summary"]>.supplement-section .supplement-meta{display:flex!important;gap:4px;line-height:1;white-space:nowrap}
.summary-compact[data-page="summary"]>.photographer-section{height:100%!important;min-height:0!important;padding:4px 6px!important;display:grid!important;grid-template-columns:clamp(48px,15vw,62px) minmax(0,1fr)!important;grid-template-rows:24px 34px!important;gap:2px 5px!important;overflow:hidden!important}
.summary-compact[data-page="summary"]>.photographer-section .cat-art{grid-column:1!important;grid-row:1/3!important;width:100%!important;height:100%!important;max-height:100%;object-fit:contain!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-copy{grid-column:2!important;grid-row:1!important;min-width:0!important;overflow:hidden!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-copy .eyebrow,.summary-compact[data-page="summary"]>.photographer-section .photo-copy strong,.summary-compact[data-page="summary"]>.photographer-section .photo-state{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.summary-compact[data-page="summary"]>.photographer-section .photo-copy strong{font-size:11px!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-actions{grid-column:2!important;grid-row:2!important;width:100%!important;height:34px!important;min-height:34px!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:4px!important;overflow:hidden!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-action{width:100%!important;min-width:0!important;height:34px!important;min-height:34px!important;padding:2px!important;gap:2px!important;border-width:1.5px!important;font-size:8px!important;overflow:hidden!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-action img{width:18px!important;height:18px!important;flex:0 0 18px!important}
.summary-compact[data-page="summary"]>.photographer-section .photo-action span{min-width:0;max-width:100%;font-size:8px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.summary-compact[data-page="summary"]>.compact-footer{height:100%!important;min-height:0!important;padding:3px 5px!important;gap:5px!important;overflow:hidden!important}
.summary-compact[data-page="summary"]>.compact-footer .lock-copy{min-width:0;overflow:hidden!important}
.summary-compact[data-page="summary"]>.compact-footer .lock-copy strong,.summary-compact[data-page="summary"]>.compact-footer .lock-copy small{max-width:100%;font-size:8px!important;line-height:1.1!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.summary-compact[data-page="summary"]>.compact-footer .checkin-button{flex:0 0 clamp(116px,35vw,160px)!important;width:auto!important;min-width:0!important;height:44px!important;min-height:44px!important;padding:7px 8px!important;font-size:10px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

@media(max-width:375px){
  .home-v3[data-page="home"]{grid-template-rows:16px 68px 54px 42px 40px 150px 120px!important;gap:5px!important}
  .home-v3[data-page="home"] .home-meal-tabs,.home-v3[data-page="home"] .home-meal-tabs .meal-tab{height:42px!important;min-height:42px!important}
  .home-v3[data-page="home"] .today-macro-balance{padding-inline:6px}
  .home-v3[data-page="home"] .today-macro-balance-head strong{font-size:10px}
  .home-v3[data-page="home"] .today-macro-balance-head small{font-size:7px}
  .home-v3[data-page="home"] .home-library-v3{grid-template-rows:31px 36px minmax(0,1fr)!important;padding-block:5px!important}
  .plate-v1[data-page="plate"]{grid-template-rows:34px 132px 180px 104px 20px 46px!important;row-gap:4px!important}
  .plate-v1[data-page="plate"]>.subhead{height:34px!important;min-height:34px!important}
  .plate-v1[data-page="plate"]>.plate-board-row{grid-template-columns:minmax(0,1fr) 88px!important}
  .plate-v1[data-page="plate"] .plate-actions button{font-size:9px!important}
  .summary-compact[data-page="summary"]{grid-template-rows:36px 15px minmax(150px,1fr) 58px minmax(86px,auto) 66px 50px!important;gap:4px!important}
  .summary-compact[data-page="summary"]>.subhead{height:36px!important;min-height:36px!important}
  .summary-compact[data-page="summary"]>.compact-footer .checkin-button{flex-basis:116px!important;height:42px!important;min-height:42px!important}
}

/* The custom plate keeps both controls in the same two-column board row.
   The legacy plate-v2 layer assigns the action column to row 2; override that
   placement explicitly so the second action never falls below its row. */
.plate-v1[data-page="plate"]>.plate-board-row{
  grid-template-rows:minmax(0,1fr)!important;
}
.plate-v1[data-page="plate"]>.plate-board-row>.plate-stage{
  grid-column:1!important;grid-row:1!important;align-self:stretch!important;height:100%!important;min-height:0!important;
}
.plate-v1[data-page="plate"]>.plate-board-row>.plate-actions{
  grid-column:2!important;grid-row:1!important;align-self:stretch!important;height:100%!important;min-height:0!important;
  display:grid!important;grid-template-columns:1fr!important;grid-template-rows:repeat(2,minmax(0,1fr))!important;gap:6px!important;
}
.plate-v1[data-page="plate"]>.plate-board-row>.plate-actions button{
  width:100%!important;height:auto!important;min-height:0!important;align-self:stretch!important;
}

/* Auth gate: keep the login and first-password forms readable without the
   normal bottom navigation taking away their vertical budget. */
.app-shell.auth-gate .empty-state{min-height:calc(100dvh - 24px)!important;height:auto!important;padding:32px 8px 24px!important;gap:8px!important;overflow:visible!important}
.app-shell.auth-gate .empty-state img{width:68px;height:68px;flex:0 0 auto}
.app-shell.auth-gate .empty-state h2{max-width:100%;font-size:clamp(22px,7vw,28px);line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-shell.auth-gate .empty-state p{max-width:100%;font-size:12px;line-height:1.45;overflow-wrap:anywhere}
.app-shell.auth-gate .member-password-form,.app-shell.auth-gate .password-reset-form{width:min(100%,300px);min-width:0;display:grid;gap:8px;margin:2px auto 0;text-align:left}
.app-shell.auth-gate .member-password-form label,.app-shell.auth-gate .password-reset-form label{display:grid;gap:4px;min-width:0;color:#332820;font-size:12px;line-height:1.2;font-weight:800}
.app-shell.auth-gate .member-password-form input,.app-shell.auth-gate .password-reset-form input{width:100%;height:46px;min-height:46px;padding:9px 12px;border:2px solid #eaded1;border-radius:14px;background:#fffdf8;color:#332820;font-size:16px!important;line-height:1.2;outline:0}
.app-shell.auth-gate .member-password-form .primary-button,.app-shell.auth-gate .password-reset-form .primary-button{width:100%;height:44px;min-height:44px;padding:8px 12px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-shell.auth-gate .empty-state>small{max-width:min(100%,300px);font-size:10px;line-height:1.35;overflow-wrap:anywhere}

/* r42test37: remember-login is a real preference, not customer-facing reset copy. */
.app-shell.auth-gate .global-nav{display:none!important}
.app-shell.auth-gate .screen-content{overflow:hidden!important;padding-bottom:0!important}
.app-shell.auth-gate .screen-anchor{height:100%!important;min-height:0!important;padding-top:10px!important;overflow:hidden!important}
.app-shell.auth-gate .empty-state{height:100%!important;min-height:0!important;box-sizing:border-box!important}
.app-shell.auth-gate .remember-login{display:flex!important;align-items:center;gap:7px;min-height:24px;margin:0!important;color:#332820;font-size:11px!important;line-height:1.2!important;font-weight:700!important}
.app-shell.auth-gate .remember-login input{width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;flex:0 0 18px;padding:0!important;border:0!important;accent-color:#ee8a3a}
.app-shell.auth-gate .remember-login span{min-width:0;font-size:11px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* r42test37: a balance is target minus the whole day's total. Positive is
   remaining capacity; negative is over target. The sign carries the meaning. */
.today-macro-balance-grid>div strong.macro-balance-value.is-positive{color:#3f8a63!important}
.today-macro-balance-grid>div strong.macro-balance-value.is-negative{color:#c94b4b!important}
.today-macro-balance-grid>div strong.macro-balance-value.is-zero{color:#6d5a4d!important}

/* r42test37: data is a compact single-viewport form. The date note is its own
   row; the previous layout had fewer rows than its actual child count. */
.host-v1-data{grid-template-rows:38px 34px 42px 14px minmax(0,1fr) 58px 52px auto!important;gap:5px!important;align-content:stretch!important}
.host-v1-data:has(.host-status){grid-template-rows:38px minmax(0,1fr)!important;gap:5px!important}
.host-v1-data:has(.host-status)>.host-status{grid-row:2;align-self:start;min-height:0;padding:16px 12px}
.host-v1-data>.host-page-head{height:100%;min-height:0;margin:0;padding-inline:1px;overflow:hidden}
.host-v1-data>.data-tabs{height:100%;min-height:0;padding:2px;gap:3px}
.host-v1-data>.data-tabs .data-tab{height:100%;min-height:0;padding:3px 2px;border-radius:11px;font-size:12px;line-height:1;white-space:nowrap;overflow:hidden}
.host-v1-data>.data-summary{height:100%;min-height:0;gap:4px}
.host-v1-data>.data-summary>div{padding:3px 6px;border-radius:12px}
.host-v1-data>.data-summary span{font-size:9px;line-height:1}
.host-v1-data>.data-summary strong{font-size:16px;line-height:1;overflow:hidden;text-overflow:ellipsis}
.host-v1-data>.record-date-note{height:100%;min-height:0;margin:0 2px;font-size:9px;line-height:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.host-v1-data>.data-panel{height:100%;min-height:0;overflow:hidden!important;padding:0!important}
.host-v1-data .data-form-card,.host-v1-data .pvt-card{height:100%;min-height:0!important;box-sizing:border-box;gap:4px;padding:7px;overflow:hidden}
.host-v1-data .data-card-head{flex:0 0 30px;height:30px;min-height:0;overflow:hidden}
.host-v1-data .data-card-head h3{font-size:17px;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.host-v1-data .data-card-head .eyebrow,.host-v1-data .step-count{font-size:9px;line-height:1;white-space:nowrap}
.host-v1-data .data-fields{flex:0 0 auto;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;min-height:0;overflow:hidden}
.host-v1-data .data-field{height:54px;min-height:54px;padding:4px 5px;border-radius:11px;overflow:hidden}
.host-v1-data .data-field>span{min-height:14px;font-size:10px;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.host-v1-data .data-field>span em{font-size:8px;white-space:nowrap}
.host-v1-data .data-field input,.host-v1-data .data-field select,.host-v1-data .data-field textarea{height:30px;min-height:30px;padding:0;font-size:16px!important;line-height:1.1!important}
.host-v1-data .data-field textarea{height:30px;min-height:30px;line-height:1.1!important}
.host-v1-data .data-step-actions{flex:0 0 34px;height:34px;min-height:34px;gap:4px;overflow:hidden}
.host-v1-data .data-step-actions button{height:34px;min-height:34px;padding:4px 6px;border-radius:10px;font-size:10px;line-height:1;overflow:hidden;text-overflow:ellipsis}
.host-v1-data .data-step-actions .primary-button{font-size:11px}
.host-v1-data .draft-note,.host-v1-data .form-error{min-height:0;margin:0;padding:2px 4px;font-size:9px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.host-v1-data>.inline-status{height:auto;min-height:0;padding:3px 6px;font-size:9px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Reserve a real bottom breathing room for labels on devices with and without
   a home indicator. The nav cells cannot clip their own text. */
.global-nav{box-sizing:border-box!important;height:84px!important;min-height:84px!important;flex:0 0 84px!important;padding:4px max(8px,env(safe-area-inset-left)) max(12px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-right))!important;align-items:stretch!important}
.global-nav .nav-item{height:100%!important;min-height:0!important;padding:2px 2px 3px!important;gap:2px!important;overflow:visible!important;justify-content:center!important}
.global-nav .nav-item small{line-height:1.2!important;padding-bottom:1px;overflow:visible!important}

/* Dynamic banners share the same viewport budget as the active page. Without
   this flex column the banner is added before a 100%-height page and pushes
   the last data cards under the navigation bar. */
.app-shell:not(.auth-gate):not(.picker-scroll) [data-role="screen"]{display:flex!important;flex-direction:column!important;height:100%!important;min-height:0!important;overflow:hidden!important}
.app-shell:not(.auth-gate):not(.picker-scroll) [data-role="screen"]>[data-page]{flex:1 1 auto!important;height:auto!important;min-height:0!important;max-height:100%!important}
.app-shell:not(.auth-gate):not(.picker-scroll) [data-role="screen"]>.data-issues-banner,.app-shell:not(.auth-gate):not(.picker-scroll) [data-role="screen"]>.module-error-banner{flex:0 0 auto!important}

/* r42test38 feedback pass: each screen owns its viewport budget. The previous
   coordinate skin could leave the logout control over a heading, hide action
   labels below the nav, or let a fixed summary scene escape its card. */
.app-shell:not(.auth-gate) .screen-content{min-height:0!important;overflow:hidden!important;padding-bottom:0!important}
.app-shell:not(.auth-gate) .screen-anchor{box-sizing:border-box!important;height:100%!important;min-height:0!important;overflow:hidden!important;padding-top:10px!important;padding-bottom:6px!important}
.app-shell:not(.auth-gate) [data-role="screen"]{box-sizing:border-box!important;height:100%!important;min-height:0!important;overflow:hidden!important}

/* The food library is the one intentional scroll surface. Search and the
   selected-food tray stay fixed while the result cards load on vertical swipe. */
.app-shell.picker-scroll .screen-anchor:has(.picker-view[data-page="picker"]){box-sizing:border-box!important;height:100%!important;min-height:0!important;padding-top:60px!important;padding-bottom:5px!important;overflow:hidden!important}
.app-shell.picker-scroll [data-role="screen"]:has(.picker-view[data-page="picker"]){height:100%!important;min-height:0!important;overflow:hidden!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]{box-sizing:border-box!important;width:100%!important;height:100%!important;min-height:0!important;display:grid!important;grid-template-columns:clamp(68px,19vw,76px) minmax(0,1fr)!important;grid-template-rows:40px 38px minmax(0,1fr) 70px!important;column-gap:7px!important;row-gap:5px!important;overflow:hidden!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.subhead{grid-column:1/-1!important;grid-row:1!important;width:auto!important;height:40px!important;min-height:40px!important;margin:0!important;padding:0!important;overflow:hidden!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.subhead>div{min-width:0!important;overflow:hidden!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.subhead h2{font-size:clamp(22px,6.3vw,28px)!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.category-tabs{grid-column:1!important;grid-row:2/span 2!important;width:100%!important;height:auto!important;min-height:0!important;margin:0!important;padding:3px 0!important;display:flex!important;flex-direction:column!important;gap:0!important;border:2px solid #26221d!important;border-radius:20px!important;background:#fffaf4!important;overflow:hidden!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.category-tabs .category-tab{flex:1 1 0!important;width:100%!important;min-height:38px!important;height:auto!important;padding:3px 2px!important;border-radius:0!important;font-size:clamp(9px,2.7vw,11px)!important;line-height:1.1!important;white-space:normal!important;overflow:hidden!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.category-tabs .category-tab.is-active{background:#b8d795!important;box-shadow:none!important;color:#26221d!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.search-box{grid-column:2!important;grid-row:2!important;width:100%!important;height:38px!important;min-height:38px!important;margin:0!important;padding:4px 8px!important;border:2px solid #26221d!important;border-radius:17px!important;background:#fffdf8!important;overflow:hidden!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.search-box input{height:28px!important;min-height:28px!important;font-size:16px!important;line-height:1!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll{grid-column:2!important;grid-row:3!important;width:100%!important;height:100%!important;min-height:0!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain!important;scrollbar-width:thin!important;padding:0 1px 10px!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .food-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:clamp(154px,23vh,184px)!important;gap:7px!important;min-height:0!important;align-content:start!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .food-card{width:100%!important;height:100%!important;min-height:0!important;padding:5px!important;border:1.5px solid #26221d!important;border-radius:15px!important;background:#fffaf4!important;overflow:hidden!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .food-card-main{width:100%!important;height:100%!important;min-width:0!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:2px!important;padding:4px!important;overflow:hidden!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .food-image{flex:0 0 clamp(82px,13vh,112px)!important;width:100%!important;height:clamp(82px,13vh,112px)!important;min-height:0!important;display:grid!important;place-items:center!important;border-radius:11px!important;overflow:hidden!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .food-image img{width:clamp(72px,16vw,100px)!important;height:clamp(72px,16vw,100px)!important;object-fit:contain!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .food-card strong,.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .food-card small{display:block!important;max-width:calc(100% - 34px)!important;min-width:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .food-card strong{font-size:clamp(11px,3.4vw,14px)!important;line-height:1.15!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .food-card small{font-size:clamp(8px,2.5vw,10px)!important;line-height:1.15!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .food-plus{right:5px!important;bottom:5px!important;width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;border:2px solid #26221d!important;background:#ffd86e!important;color:#26221d!important;font-size:22px!important;z-index:2!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .picker-loading,.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .soft-empty,.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .inline-error{display:grid!important;place-items:center!important;min-height:48px!important;margin:5px 0!important;padding:8px!important;text-align:center!important;font-size:11px!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .picker-load-status{padding:7px 2px 2px!important;color:var(--v1-muted)!important;font-size:9px!important;line-height:1.2!important;text-align:center!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .picker-custom-content{display:grid!important;gap:6px!important;align-content:start!important;min-height:100%!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .custom-entry{min-height:48px!important;margin:0!important;padding:7px!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .custom-entry strong{font-size:12px!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .custom-entry small{font-size:9px!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .custom-list{min-width:0!important;margin:0!important;gap:5px!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .custom-row{grid-template-columns:29px minmax(0,1fr) auto auto!important;min-width:0!important;min-height:48px!important;padding:4px!important;gap:4px!important;overflow:hidden!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .custom-row img{width:28px!important;height:28px!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .custom-row strong,.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .custom-row small{max-width:100%!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .custom-row .small-button,.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .custom-form button{min-height:36px!important;padding:4px 5px!important;font-size:9px!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.selection-tray{grid-column:1/-1!important;grid-row:4!important;position:static!important;width:100%!important;height:70px!important;min-height:70px!important;margin:0!important;padding:7px!important;display:grid!important;grid-template-columns:64px minmax(0,1fr) auto!important;align-items:center!important;gap:6px!important;border:2px solid #26221d!important;border-radius:19px!important;background:#fffaf4!important;color:#26221d!important;overflow:hidden!important;z-index:8!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.selection-tray .selection-count{min-width:0!important;font-size:10px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.selection-tray .mini-foods{min-width:0!important;overflow:hidden!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.selection-tray .mini-foods img{width:38px!important;height:38px!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.selection-tray .primary-button{min-width:88px!important;min-height:44px!important;height:44px!important;padding:6px 8px!important;border:2px solid #26221d!important;border-radius:13px!important;background:#ffad43!important;color:#26221d!important;font-size:10px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;box-shadow:none!important}

/* The summary scene is one bounded card: the image is cropped from the top
   so the orange pot fills the card, and all dynamic food layers stay within
   the visible pot opening. */
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]{position:static!important;inset:auto!important;box-sizing:border-box!important;width:100%!important;height:100%!important;min-height:0!important;margin:0!important;padding:0!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)!important;grid-template-rows:36px 17px minmax(170px,1fr) 72px 78px 58px!important;column-gap:6px!important;row-gap:5px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.subhead{position:static!important;inset:auto!important;grid-column:1/-1!important;grid-row:1!important;width:auto!important;height:36px!important;min-height:36px!important;margin:0!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.summary-pot-heading{position:static!important;inset:auto!important;grid-column:1/-1!important;grid-row:2!important;width:auto!important;height:17px!important;min-height:17px!important;margin:0!important;padding:0 3px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.wood-table{position:static!important;inset:auto!important;grid-column:1/-1!important;grid-row:3!important;width:100%!important;height:100%!important;min-height:0!important;margin:0!important;border:2px solid #26221d!important;border-radius:22px!important;background:#d6a477!important;overflow:hidden!important;z-index:auto!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"] .pot-stage{position:relative!important;inset:auto!important;width:100%!important;height:100%!important;min-height:0!important;margin:0!important;overflow:hidden!important;background:#d6a477!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"] .pot-stage>.scene-base{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;object-fit:cover!important;object-position:center top!important;transform:none!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"] .pot-foods{position:absolute!important;left:12%!important;right:12%!important;top:8%!important;bottom:48%!important;inset-inline:auto!important;inset-block:auto!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:repeat(3,minmax(0,1fr))!important;align-items:center!important;justify-items:center!important;gap:0 3px!important;padding:0!important;overflow:hidden!important;z-index:3!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"] .pot-food-label,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"] .pot-vegetable-label{position:static!important;inset:auto!important;width:100%!important;height:auto!important;min-height:0!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:1px!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;overflow:hidden!important;transform:none!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"] .pot-food-label img{width:clamp(46px,16vw,78px)!important;height:clamp(42px,13vw,68px)!important;max-width:100%!important;object-fit:contain!important;transform:none!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"] .pot-vegetable-label img{width:clamp(42px,14vw,68px)!important;height:clamp(36px,11vw,56px)!important;max-width:100%!important;object-fit:contain!important;transform:none!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"] .pot-food-label b,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"] .pot-vegetable-label b{position:static!important;left:auto!important;bottom:auto!important;max-width:100%!important;padding:1px 3px!important;border-radius:5px!important;background:rgba(255,250,242,.78)!important;font-size:clamp(8px,2.6vw,11px)!important;line-height:1.1!important;text-align:center!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;text-shadow:none!important;transform:none!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.vegetables-section{position:static!important;inset:auto!important;grid-column:1!important;grid-row:4!important;width:100%!important;height:72px!important;min-height:72px!important;margin:0!important;padding:5px 7px!important;border:2px solid #26221d!important;border-radius:16px!important;background:#fffaf4!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.vegetables-section .vegetable-open{position:static!important;width:100%!important;height:100%!important;min-height:0!important;padding:0!important;display:grid!important;grid-template-rows:34px minmax(0,1fr)!important;gap:2px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.vegetables-section .compact-section-title{position:static!important;inset:auto!important;width:100%!important;height:34px!important;min-height:34px!important;display:flex!important;align-items:center!important;gap:5px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.vegetables-section .veg-bowl{position:static!important;width:38px!important;height:31px!important;flex:0 0 38px!important;object-fit:contain!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.vegetables-section .compact-section-title>span{min-width:0!important;display:flex!important;flex-direction:column!important;gap:1px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.vegetables-section .compact-section-title .eyebrow{font-size:8px!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.vegetables-section .compact-section-title strong{font-size:11px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.vegetables-section .veg-list{min-width:0!important;width:100%!important;height:auto!important;display:flex!important;justify-content:flex-start!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.vegetables-section .veg-chip{min-width:0!important;max-width:100%!important;padding:2px 4px!important;font-size:9px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.vegetables-section .veg-chip img{width:23px!important;height:23px!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section{position:static!important;inset:auto!important;grid-column:2!important;grid-row:4!important;width:100%!important;height:72px!important;min-height:72px!important;margin:0!important;padding:5px 7px!important;border:2px solid #26221d!important;border-radius:16px!important;background:#fffaf4!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .compact-section-title{position:static!important;width:100%!important;height:25px!important;min-height:25px!important;display:flex!important;align-items:center!important;gap:4px!important;margin:0 0 2px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .compact-section-title>img{width:24px!important;height:24px!important;flex:0 0 24px!important;object-fit:contain!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .compact-section-title>span{min-width:0!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .compact-section-title strong,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .compact-section-title small{max-width:100%!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .compact-section-title strong{font-size:11px!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .compact-section-title small{font-size:8px!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-table{width:100%!important;min-width:0!important;display:grid!important;gap:2px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-table-head{display:none!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-table-row{min-width:0!important;min-height:25px!important;height:25px!important;display:grid!important;grid-template-columns:15px minmax(0,1fr)!important;gap:3px!important;padding:2px 3px!important;border:0!important;border-radius:6px!important;background:#fff0d4!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-row-main{grid-column:2!important;min-width:0!important;display:flex!important;align-items:center!important;gap:4px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-copy,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-meta{min-width:0!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-copy b,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-timing,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-quantity,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-table-row i{max-width:100%!important;font-size:8px!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-meta{display:flex!important;gap:3px!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section{position:static!important;inset:auto!important;grid-column:1/-1!important;grid-row:5!important;width:100%!important;height:78px!important;min-height:78px!important;margin:0!important;padding:4px 7px!important;display:grid!important;grid-template-columns:clamp(52px,16vw,68px) minmax(0,1fr)!important;grid-template-rows:23px 38px!important;align-items:center!important;gap:2px 6px!important;border:2px solid #26221d!important;border-radius:16px!important;background:#fffaf4!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .cat-art{grid-column:1!important;grid-row:1/3!important;position:static!important;width:100%!important;height:100%!important;max-height:100%!important;object-fit:contain!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy{grid-column:2!important;grid-row:1!important;position:static!important;min-width:0!important;width:auto!important;height:auto!important;display:flex!important;flex-direction:column!important;gap:1px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy .eyebrow,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy strong,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-state{max-width:100%!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy .eyebrow{font-size:8px!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy strong{font-size:12px!important;line-height:1!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-state{font-size:9px!important;line-height:1!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-actions{grid-column:2!important;grid-row:2!important;position:static!important;width:100%!important;height:38px!important;min-height:38px!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:4px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-action{width:100%!important;min-width:44px!important;height:38px!important;min-height:38px!important;padding:2px 4px!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:3px!important;border:1.5px solid #26221d!important;border-radius:10px!important;background:#fff0d4!important;font-size:9px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-action img{position:static!important;width:20px!important;height:20px!important;flex:0 0 20px!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-action span{min-width:0!important;max-width:100%!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.compact-footer{position:static!important;inset:auto!important;grid-column:1/-1!important;grid-row:6!important;width:100%!important;height:58px!important;min-height:58px!important;margin:0!important;padding:3px 6px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:6px!important;border:2px solid #26221d!important;border-radius:16px!important;background:#fffaf4!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.compact-footer .lock-copy{position:static!important;width:auto!important;min-width:0!important;display:flex!important;flex:1 1 auto!important;flex-direction:column!important;gap:1px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.compact-footer .lock-copy strong,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.compact-footer .lock-copy small{max-width:100%!important;font-size:8px!important;line-height:1.1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.compact-footer .checkin-button{position:static!important;inset:auto!important;flex:0 0 clamp(112px,34vw,160px)!important;width:auto!important;min-width:0!important;height:44px!important;min-height:44px!important;margin:0!important;padding:6px 7px!important;border:2px solid #26221d!important;border-radius:13px!important;background:#ffad43!important;color:#26221d!important;font-size:10px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;opacity:1!important;visibility:visible!important;z-index:auto!important}

/* Data pages use compact three-column fields. Body (5 fields) and daily
   status (11 fields) are intentionally single-page forms; long labels wrap
   inside their own field instead of being clipped or crossing into a neighbor. */
.app-shell:not(.auth-gate) .host-v1-data{grid-template-rows:38px 34px 42px 14px minmax(0,1fr) 38px auto!important;gap:5px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .host-v1-data>.data-panel{min-height:0!important;height:100%!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .host-v1-data .data-form-card,.app-shell:not(.auth-gate) .host-v1-data .pvt-card{box-sizing:border-box!important;height:100%!important;min-height:0!important;gap:4px!important;padding:7px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .host-v1-data .data-fields{grid-template-columns:repeat(3,minmax(0,1fr))!important;grid-auto-rows:minmax(54px,auto)!important;gap:4px!important;align-content:start!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .host-v1-data .data-field{height:58px!important;min-height:58px!important;padding:4px 5px!important;border-radius:11px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .host-v1-data .data-field>span{min-height:19px!important;height:19px!important;display:flex!important;align-items:flex-start!important;gap:2px!important;font-size:9px!important;line-height:1.05!important;white-space:normal!important;overflow:hidden!important;overflow-wrap:anywhere!important}
.app-shell:not(.auth-gate) .host-v1-data .data-field>span em{font-size:7px!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .host-v1-data .data-field input,.app-shell:not(.auth-gate) .host-v1-data .data-field select,.app-shell:not(.auth-gate) .host-v1-data .data-field textarea{height:29px!important;min-height:29px!important;padding:0!important;font-size:16px!important;line-height:1.05!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .host-v1-data .data-field textarea{height:29px!important;min-height:29px!important;line-height:1.05!important}
.app-shell:not(.auth-gate) .host-v1-data .data-step-actions{flex:0 0 34px!important;height:34px!important;min-height:34px!important;gap:4px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .host-v1-data .data-step-actions button{height:34px!important;min-height:34px!important;padding:4px 6px!important;font-size:10px!important;line-height:1!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell:not(.auth-gate) .host-v1-data>.data-progress-strip{box-sizing:border-box!important;width:100%!important;height:38px!important;min-height:38px!important;overflow:hidden!important}

/* The lower navigation always has a label-safe inner box. */
.app-shell:not(.auth-gate) .global-nav{box-sizing:border-box!important;position:relative!important;z-index:30!important;height:84px!important;min-height:84px!important;flex:0 0 84px!important;padding:4px max(8px,env(safe-area-inset-left)) max(12px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-right))!important;overflow:visible!important}
.app-shell:not(.auth-gate) .global-nav .nav-item{box-sizing:border-box!important;height:100%!important;min-height:0!important;min-width:0!important;padding:2px 2px 3px!important;gap:2px!important;overflow:visible!important;justify-content:center!important}
.app-shell:not(.auth-gate) .global-nav .nav-item img{flex:0 0 30px!important;width:30px!important;height:30px!important}
.app-shell:not(.auth-gate) .global-nav .nav-item small{display:block!important;max-width:100%!important;height:auto!important;line-height:1.2!important;padding-bottom:1px!important;white-space:nowrap!important;overflow:visible!important}

/* Calendar default: a flat summary card at the top. Selecting a date from the
   expanded month returns to the compact card and keeps the day's records in
   the remaining viewport. */
.app-shell:not(.auth-gate) .host-v1-calendar[data-calendar-expanded="false"]{grid-template-rows:46px 76px minmax(0,1fr)!important;gap:5px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .host-v1-calendar[data-calendar-expanded="true"]{grid-template-rows:46px minmax(0,1fr) auto!important;gap:5px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-collapsed-card{box-sizing:border-box!important;width:100%!important;height:76px!important;min-height:76px!important;padding:6px 9px!important;display:grid!important;grid-template-rows:32px minmax(0,1fr)!important;gap:3px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-collapsed-card .month-title{height:32px!important;min-height:32px!important;margin:0!important;align-items:center!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-collapsed-card .month-title>div{min-width:0!important;display:flex!important;align-items:baseline!important;gap:7px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-collapsed-card .month-title strong{font-size:17px!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-collapsed-card .month-title span{font-size:9px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-collapsed-card .small-button{height:32px!important;min-height:32px!important;padding:5px 8px!important;font-size:10px!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-collapsed-stats{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:4px!important;min-width:0!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-collapsed-stats span{min-width:0!important;padding:3px 2px!important;border-radius:7px!important;background:#fff2ca!important;color:var(--v1-muted)!important;font-size:8px!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;text-align:center!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-collapsed-stats b{color:var(--v1-ink)!important;font-size:11px!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-expanded-card{box-sizing:border-box!important;width:100%!important;height:100%!important;min-height:0!important;padding:7px 9px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-expanded-card .month-title{height:31px!important;min-height:31px!important;margin:0 0 3px!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-expanded-card .month-title strong{font-size:17px!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-expanded-card .month-title span{font-size:9px!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-expanded-card .small-button{height:30px!important;min-height:30px!important;padding:4px 7px!important;font-size:9px!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-expanded-card .calendar-grid{grid-auto-rows:minmax(30px,1fr)!important;gap:3px!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-expanded-card .calendar-cell,.app-shell:not(.auth-gate) .host-v1-calendar .calendar-expanded-card .calendar-cell>button{min-height:30px!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-expanded-card .calendar-cell>button{padding:2px 1px!important;font-size:12px!important;border-radius:9px!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-expanded-hint{text-align:center!important;color:var(--v1-muted)!important;font-size:9px!important;line-height:1!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-detail-panel{box-sizing:border-box!important;min-height:0!important;height:100%!important;padding:0!important;display:grid!important;grid-template-rows:32px minmax(0,1fr) 12px!important;gap:3px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .host-v1-calendar .detail-panel-head{height:32px!important;min-height:32px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .host-v1-calendar .detail-panel-head h3{font-size:16px!important;line-height:1!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .host-v1-calendar .detail-panel-head .small-button{height:30px!important;min-height:30px!important;padding:4px 7px!important;font-size:9px!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-detail-carousel{box-sizing:border-box!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:minmax(54px,1fr)!important;gap:5px!important;min-height:0!important;height:100%!important;padding:0 1px!important;overflow:hidden!important;scroll-snap-type:none!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-detail-carousel>*{box-sizing:border-box!important;width:auto!important;min-width:0!important;min-height:0!important;height:auto!important;flex:none!important;scroll-snap-align:none!important}
.app-shell:not(.auth-gate) .host-v1-calendar .detail-card,.app-shell:not(.auth-gate) .host-v1-calendar .meal-detail-card{min-width:0!important;min-height:0!important;height:100%!important;padding:5px 6px!important;border-radius:12px!important;gap:2px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .host-v1-calendar .detail-card strong,.app-shell:not(.auth-gate) .host-v1-calendar .meal-detail-head strong{font-size:12px!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell:not(.auth-gate) .host-v1-calendar .detail-card span,.app-shell:not(.auth-gate) .host-v1-calendar .meal-detail-card p,.app-shell:not(.auth-gate) .host-v1-calendar .meal-detail-copy span{min-width:0!important;font-size:8px!important;line-height:1.1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell:not(.auth-gate) .host-v1-calendar .meal-detail-head{min-width:0!important;height:15px!important;min-height:15px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .host-v1-calendar .meal-status{padding:2px 4px!important;font-size:8px!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .host-v1-calendar .meal-detail-copy{min-width:0!important;gap:1px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .host-v1-calendar .meal-photo-preview{grid-template-columns:36px minmax(0,1fr)!important;gap:4px!important;margin:1px 0 0!important;min-height:36px!important;height:36px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .host-v1-calendar .meal-photo-preview img{width:36px!important;height:36px!important;border-radius:7px!important;object-fit:cover!important}
.app-shell:not(.auth-gate) .host-v1-calendar .meal-photo-preview figcaption{font-size:8px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell:not(.auth-gate) .host-v1-calendar .detail-order-note{height:12px!important;min-height:12px!important;font-size:8px!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}

@media(max-width:375px){
  .app-shell.picker-scroll .picker-view[data-page="picker"]{grid-template-rows:38px 36px minmax(0,1fr) 66px!important;row-gap:4px!important}
  .app-shell.picker-scroll .picker-view[data-page="picker"]>.subhead{height:38px!important;min-height:38px!important}
  .app-shell.picker-scroll .picker-view[data-page="picker"]>.search-box{height:36px!important;min-height:36px!important}
  .app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .food-grid{grid-auto-rows:clamp(142px,21vh,164px)!important;gap:6px!important}
  .app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .food-image{flex-basis:clamp(74px,12vh,94px)!important;height:clamp(74px,12vh,94px)!important}
  .app-shell.picker-scroll .picker-view[data-page="picker"]>.selection-tray{height:66px!important;min-height:66px!important;grid-template-columns:58px minmax(0,1fr) auto!important;padding:5px!important}
  .app-shell.picker-scroll .picker-view[data-page="picker"]>.selection-tray .mini-foods img{width:34px!important;height:34px!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]{grid-template-rows:34px 16px minmax(150px,1fr) 72px 72px 54px!important;row-gap:4px!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.subhead{height:34px!important;min-height:34px!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section{height:72px!important;min-height:72px!important;grid-template-columns:54px minmax(0,1fr)!important;grid-template-rows:21px 36px!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.compact-footer{height:54px!important;min-height:54px!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.compact-footer .checkin-button{flex-basis:108px!important;height:42px!important;min-height:42px!important}
  .app-shell:not(.auth-gate) .host-v1-calendar[data-calendar-expanded="false"]{grid-template-rows:72px 66px minmax(0,1fr)!important}
  .app-shell:not(.auth-gate) .host-v1-calendar .calendar-collapsed-card{height:66px!important;min-height:66px!important;grid-template-rows:28px minmax(0,1fr)!important}
  .app-shell:not(.auth-gate) .host-v1-calendar .calendar-collapsed-card .month-title{height:28px!important;min-height:28px!important}
  .app-shell:not(.auth-gate) .host-v1-calendar .calendar-collapsed-card .small-button{height:28px!important;min-height:28px!important;font-size:9px!important}
  .app-shell:not(.auth-gate) .host-v1-calendar .calendar-detail-panel{grid-template-rows:29px minmax(0,1fr) 11px!important}
  .app-shell:not(.auth-gate) .host-v1-calendar .detail-panel-head{height:29px!important;min-height:29px!important}
  .app-shell:not(.auth-gate) .host-v1-calendar .calendar-detail-carousel{grid-auto-rows:minmax(49px,1fr)!important;gap:4px!important}
}

/* A data-quality banner is allowed above the picker, but it must consume the
   same viewport budget as the picker instead of pushing its fixed tray under
   the global navigation. */
.app-shell.picker-scroll [data-role="screen"]{display:flex!important;flex-direction:column!important;height:100%!important;min-height:0!important;overflow:hidden!important}
.app-shell.picker-scroll [data-role="screen"]>.data-issues-banner,.app-shell.picker-scroll [data-role="screen"]>.module-error-banner{flex:0 0 auto!important}
.app-shell.picker-scroll [data-role="screen"]>.picker-view[data-page="picker"]{flex:1 1 auto!important;height:auto!important;min-height:0!important;max-height:100%!important}

/* r42test39: phone gesture and text-visibility contract. The page is an
   app-like surface, so double-tap must not invoke browser zoom. The picker
   keeps its one intentional vertical gesture surface. */
html,body{touch-action:manipulation!important;-webkit-text-size-adjust:100%!important;text-size-adjust:100%!important}
.app-shell{touch-action:manipulation!important}
.app-shell .picker-food-scroll{touch-action:pan-y!important}

/* Data forms are dense by design, but every label and value still needs a
   complete line box. The old 19/29px label-control pair was two pixels taller
   than its 58px field once borders and padding were included; its ancestors
   then hid the overflow. A 48px field with a 14px label and 23px control fits
   four rows of the merged daily-status form in the same viewport. */
.app-shell:not(.auth-gate) .host-v1-data{grid-template-rows:42px 34px 42px 14px minmax(0,1fr) 38px auto!important;gap:5px!important}
.app-shell:not(.auth-gate) .host-v1-data>.host-page-head{height:100%!important;min-height:42px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-data>.host-page-head>div:first-child{min-width:0!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-data>.host-page-head h2{line-height:1.05!important;white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important}
.app-shell:not(.auth-gate) .host-v1-data>.host-page-head .eyebrow{line-height:1.15!important;white-space:nowrap!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-data>.data-summary strong{display:flex!important;align-items:baseline!important;gap:2px!important;line-height:1.05!important;white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important}
.app-shell:not(.auth-gate) .host-v1-data>.data-summary strong small{display:inline!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-data>.record-date-note{overflow:visible!important;text-overflow:clip!important}
.app-shell:not(.auth-gate) .host-v1-data>.data-panel{height:100%!important;min-height:0!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-data .data-form-card,.app-shell:not(.auth-gate) .host-v1-data .pvt-card{height:100%!important;min-height:0!important;gap:2px!important;padding:5px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-data .data-card-head{flex:0 0 32px!important;height:32px!important;min-height:32px!important;overflow:visible!important;align-items:center!important}
.app-shell:not(.auth-gate) .host-v1-data .data-card-head>div{min-width:0!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-data .data-card-head h3{min-height:17px!important;height:auto!important;font-size:16px!important;line-height:1.05!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
.app-shell:not(.auth-gate) .host-v1-data .data-card-head .eyebrow,.app-shell:not(.auth-gate) .host-v1-data .step-count{font-size:9px!important;line-height:1.15!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
.app-shell:not(.auth-gate) .host-v1-data .data-fields{grid-template-columns:repeat(3,minmax(0,1fr))!important;grid-auto-rows:48px!important;gap:3px!important;align-content:start!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-data .data-field{box-sizing:border-box!important;height:48px!important;min-height:48px!important;padding:2px 4px!important;border-radius:10px!important;justify-content:space-between!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-data .data-field>span{box-sizing:border-box!important;height:auto!important;min-height:14px!important;display:flex!important;align-items:flex-start!important;gap:2px!important;font-size:9px!important;line-height:1.05!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere!important}
.app-shell:not(.auth-gate) .host-v1-data .data-field>span b,.app-shell:not(.auth-gate) .host-v1-data .data-field>span em{flex:0 0 auto!important;overflow:visible!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .host-v1-data .data-field>span em{font-size:7px!important;line-height:1.2!important}
.app-shell:not(.auth-gate) .host-v1-data .data-field input,.app-shell:not(.auth-gate) .host-v1-data .data-field select,.app-shell:not(.auth-gate) .host-v1-data .data-field textarea{box-sizing:border-box!important;height:23px!important;min-height:23px!important;padding:0!important;font-size:16px!important;line-height:1!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-data .data-field textarea{height:23px!important;min-height:23px!important;line-height:1!important}
.app-shell:not(.auth-gate) .host-v1-data .draft-note,.app-shell:not(.auth-gate) .host-v1-data .form-error{height:auto!important;min-height:0!important;margin:0!important;padding:1px 3px!important;font-size:8px!important;line-height:1.15!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere!important}
.app-shell:not(.auth-gate) .host-v1-data .data-step-actions{flex:0 0 30px!important;height:30px!important;min-height:30px!important;gap:3px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-data .data-step-actions button{height:30px!important;min-height:30px!important;padding:3px 5px!important;font-size:9px!important;line-height:1.1!important;overflow:visible!important;text-overflow:clip!important}

.app-shell:not(.auth-gate) .host-v1-data>.data-progress-strip{box-sizing:border-box!important;height:38px!important;min-height:38px!important;overflow:hidden!important}

/* The summary's supplement list contains several rows. Giving it an explicit
   budget keeps every row readable and lets the pot absorb the remaining
   height; no row is allowed to be hidden behind the next card. */
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]{grid-template-rows:38px 16px minmax(130px,1fr) 108px 92px 66px!important;row-gap:4px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.subhead{height:38px!important;min-height:38px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.subhead>div{min-width:0!important;overflow:visible!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.subhead h2{line-height:1.08!important;white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.summary-pot-heading{height:16px!important;min-height:16px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.vegetables-section,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section{height:108px!important;min-height:108px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.vegetables-section .vegetable-open{height:100%!important;min-height:0!important;overflow:visible!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.vegetables-section .compact-section-title{height:34px!important;min-height:34px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.vegetables-section .compact-section-title>span,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.vegetables-section .compact-section-title strong,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.vegetables-section .compact-section-title .eyebrow{overflow:visible!important;white-space:normal!important;text-overflow:clip!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .compact-section-title{height:26px!important;min-height:26px!important;margin-bottom:2px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .compact-section-title>span,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .compact-section-title strong,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .compact-section-title small{min-width:0!important;overflow:visible!important;white-space:normal!important;text-overflow:clip!important;line-height:1.15!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-table{height:auto!important;min-height:0!important;display:grid!important;gap:2px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-table-row{min-width:0!important;height:20px!important;min-height:20px!important;display:grid!important;grid-template-columns:15px minmax(0,1fr)!important;align-items:center!important;gap:2px 4px!important;padding:2px 3px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-row-main{grid-column:2!important;min-width:0!important;display:flex!important;align-items:center!important;gap:4px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-copy,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-meta{min-width:0!important;overflow:visible!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-copy b,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-timing,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-quantity,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-table-row i{max-width:none!important;font-size:8px!important;line-height:1.15!important;white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-meta{display:flex!important;gap:3px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section{height:92px!important;min-height:92px!important;grid-template-rows:30px 38px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy .eyebrow,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy strong,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-state{overflow:visible!important;white-space:normal!important;text-overflow:clip!important;line-height:1.15!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-actions{height:38px!important;min-height:38px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-action{height:38px!important;min-height:38px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-action span{overflow:visible!important;white-space:nowrap!important;text-overflow:clip!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.compact-footer{height:66px!important;min-height:66px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.compact-footer .lock-copy,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.compact-footer .lock-copy strong,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.compact-footer .lock-copy small{overflow:visible!important;white-space:normal!important;text-overflow:clip!important;overflow-wrap:anywhere!important;line-height:1.15!important}
.deviation-prompt{box-sizing:border-box;max-height:calc(100% - 16px);overflow:auto;overscroll-behavior:contain;touch-action:pan-y}
.deviation-prompt p{white-space:normal;overflow-wrap:anywhere}

/* Keep the home balance and library labels inside their own rows as well.
   This removes the last small-screen case where a line-height descender or an
   example-food name was hidden by the compact library card. */
.app-shell:not(.auth-gate) .home-v3[data-page="home"]{grid-template-rows:16px minmax(68px,76px) 58px 44px 44px clamp(150px,23vh,190px) minmax(132px,148px)!important}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .today-macro-balance{grid-template-rows:19px minmax(0,1fr)!important}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .today-macro-balance-head strong{line-height:1.1!important}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .today-macro-balance-grid span,.app-shell:not(.auth-gate) .home-v3[data-page="home"] .today-macro-balance-grid strong{line-height:1.1!important;overflow:visible!important;text-overflow:clip!important}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .home-entry>span:not(.entry-art):not(.entry-foods):not(.entry-add-mark) b,.app-shell:not(.auth-gate) .home-v3[data-page="home"] .home-entry>span:not(.entry-art):not(.entry-foods):not(.entry-add-mark) small{overflow:visible!important;text-overflow:clip!important}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .home-entry>span:not(.entry-art):not(.entry-foods):not(.entry-add-mark) b{font-size:13px!important;line-height:1.1!important}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .home-entry>span:not(.entry-art):not(.entry-foods):not(.entry-add-mark) small{line-height:1.2!important}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .entry-add-mark{line-height:.85!important;overflow:visible!important}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .home-library-v3{grid-template-rows:30px 38px minmax(38px,1fr)!important;overflow:visible!important}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .home-library-v3 .library-heading{overflow:visible!important}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .home-library-v3 .library-heading strong{font-size:12px!important;line-height:1.15!important;overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .home-library-v3 .library-examples{height:100%!important;min-height:38px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .home-library-v3 .library-examples>button,.app-shell:not(.auth-gate) .home-v3[data-page="home"] .home-library-v3 .library-examples>span{height:100%!important;min-height:38px!important;padding:2px 1px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .home-library-v3 .library-examples img{width:22px!important;height:22px!important}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .home-library-v3 .library-examples span{font-size:8px!important;line-height:1.15!important;overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important}

/* r42test43: establish the responsive chart box before drawing its axes.
   The SVG, labels, hit targets and tooltip all share this box, so a shorter
   phone cannot crop the bottom of the plot or leave the axes behind another
   card. */
.app-shell:not(.auth-gate) .host-v1-trends{
  grid-template-rows:42px 34px 34px 34px minmax(0,1fr)!important;
  gap:5px!important;
  min-height:0!important;
  overflow:hidden!important;
}
.app-shell:not(.auth-gate) .host-v1-trends .trend-chart-card{
  box-sizing:border-box!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  padding:7px 8px!important;
  overflow:visible!important;
}
.app-shell:not(.auth-gate) .host-v1-trends .trend-chart-card>.data-card-head{
  flex:0 0 28px!important;
  height:28px!important;
  min-height:28px!important;
  overflow:visible!important;
}
.app-shell:not(.auth-gate) .host-v1-trends .trend-chart-card>.data-card-head>div{min-width:0!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-trends .trend-chart-card>.data-card-head h3{font-size:15px!important;line-height:1.1!important;white-space:nowrap!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-trends .trend-chart-card>.data-card-head .eyebrow,.app-shell:not(.auth-gate) .host-v1-trends .trend-chart-card>.data-card-head .step-count{font-size:8px!important;line-height:1.15!important;white-space:nowrap!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-trends .trend-summary{flex:0 0 auto!important;min-height:36px!important;margin:4px 0!important;gap:4px!important}
.app-shell:not(.auth-gate) .host-v1-trends .trend-summary>div{min-width:0!important;padding:4px!important;border-radius:10px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-trends .trend-summary span{font-size:8px!important;line-height:1.1!important;white-space:nowrap!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-trends .trend-summary strong{font-size:12px!important;line-height:1.05!important;white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important}
.app-shell:not(.auth-gate) .host-v1-trends .trend-summary small{font-size:8px!important}
.app-shell:not(.auth-gate) .host-v1-trends .trend-chart{
  position:relative!important;
  box-sizing:border-box!important;
  width:100%!important;
  height:auto!important;
  flex:1 1 0!important;
  min-height:clamp(158px,30vh,320px)!important;
  max-height:none!important;
  overflow:visible!important;
  background:repeating-linear-gradient(to bottom,#fffdf8 0,#fffdf8 24%,#eadbcb 24.5%,#fffdf8 25%,#fffdf8 49%,#eadbcb 49.5%,#fffdf8 50%,#fffdf8 74%,#eadbcb 74.5%,#fffdf8 75%)!important;
}
.app-shell:not(.auth-gate) .host-v1-trends .trend-chart-svg{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;display:block!important;overflow:visible!important;pointer-events:none!important}
.app-shell:not(.auth-gate) .host-v1-trends .trend-grid-line{stroke:#eadbcb!important;stroke-width:.55!important;vector-effect:non-scaling-stroke!important}
.app-shell:not(.auth-gate) .host-v1-trends .trend-grid-vertical{stroke-dasharray:1.4 1.8!important}
.app-shell:not(.auth-gate) .host-v1-trends .trend-axis-line{stroke:var(--v1-muted)!important;stroke-width:.75!important;vector-effect:non-scaling-stroke!important}
.app-shell:not(.auth-gate) .host-v1-trends .trend-chart-line{fill:none!important;stroke:var(--v1-orange)!important;stroke-width:1.5!important;vector-effect:non-scaling-stroke!important}
.app-shell:not(.auth-gate) .host-v1-trends .trend-chart-node{fill:var(--v1-orange)!important;stroke:#fffdf8!important;stroke-width:1!important;vector-effect:non-scaling-stroke!important}
.app-shell:not(.auth-gate) .host-v1-trends .trend-points{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-trends .trend-point{position:absolute!important;transform:translate(-50%,-50%)!important;width:32px!important;height:32px!important;margin:0!important;padding:0!important;border:0!important;border-radius:50%!important;background:transparent!important;z-index:3!important}
.app-shell:not(.auth-gate) .host-v1-trends .trend-point span{display:block!important;width:11px!important;height:11px!important;margin:9px!important;border:3px solid var(--v1-orange)!important;border-radius:50%!important;background:#fffdf8!important;box-sizing:border-box!important}
.app-shell:not(.auth-gate) .host-v1-trends .trend-point.is-selected span{background:var(--v1-yellow)!important;box-shadow:0 0 0 3px var(--v1-ink)!important}
.app-shell:not(.auth-gate) .host-v1-trends .trend-y-labels{position:absolute!important;left:3px!important;top:0!important;right:auto!important;bottom:0!important;width:auto!important;display:block!important;color:var(--v1-muted)!important;font-size:clamp(8px,2.2vw,10px)!important;line-height:1!important;z-index:2!important}
.app-shell:not(.auth-gate) .host-v1-trends .trend-y-labels span{position:absolute!important;transform:translateY(-50%)!important;white-space:nowrap!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-trends .trend-x-labels{position:absolute!important;left:0!important;right:0!important;bottom:2px!important;height:15px!important;color:var(--v1-muted)!important;font-size:clamp(8px,2.2vw,10px)!important;line-height:1!important;z-index:2!important}
.app-shell:not(.auth-gate) .host-v1-trends .trend-x-labels span{position:absolute!important;transform:translateX(-50%)!important;white-space:nowrap!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-trends .trend-tooltip{position:absolute!important;z-index:8!important;display:grid!important;gap:2px!important;min-width:92px!important;max-width:min(150px,calc(100vw - 34px))!important;box-sizing:border-box!important;padding:5px 7px!important;border:2px solid var(--v1-ink)!important;border-radius:10px!important;background:var(--v1-ink)!important;color:#fffdf8!important;box-shadow:2px 2px 0 rgba(52,39,31,.18)!important;pointer-events:none!important;font-family:var(--font-round)!important;font-size:9px!important;line-height:1.15!important;white-space:normal!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-trends .trend-tooltip.is-above{transform:translate(-50%,calc(-100% - 7px))!important}
.app-shell:not(.auth-gate) .host-v1-trends .trend-tooltip.is-below{transform:translate(-50%,7px)!important}
.app-shell:not(.auth-gate) .host-v1-trends .trend-tooltip strong{font-family:var(--font-hand)!important;font-size:11px!important;line-height:1.1!important;color:#fff!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .host-v1-trends .trend-tooltip span{font-size:9px!important;line-height:1.15!important;white-space:nowrap!important;overflow:visible!important}

/* r42test43: signal state is visually distinct from the waiting state. */
.app-shell:not(.auth-gate) .host-v1-data .pvt-run-panel[data-phase="stimulus"]{background:#cfe8ed!important;border-color:#267b7d!important;box-shadow:0 0 0 4px rgba(111,195,196,.28)!important}
.app-shell:not(.auth-gate) .host-v1-data .pvt-run-panel[data-phase="stimulus"] .pvt-run-meta span{color:#174e50!important;font-weight:700!important}
.app-shell:not(.auth-gate) .host-v1-data .pvt-run-panel[data-phase="stimulus"] .pvt-target:not(:disabled){background:#6fc3c4!important;border-color:#1d6264!important;color:#173f40!important;box-shadow:0 0 0 4px #a5e3df!important}

/* The calendar cards use the actual meal records. Keep a complete photo
   thumbnail and its caption inside the card instead of hiding it under the
   next grid row. */
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-detail-carousel{grid-auto-rows:minmax(94px,1fr)!important;align-content:stretch!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-calendar .detail-card,.app-shell:not(.auth-gate) .host-v1-calendar .meal-detail-card{height:100%!important;min-height:0!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-calendar .detail-card span,.app-shell:not(.auth-gate) .host-v1-calendar .meal-detail-card p,.app-shell:not(.auth-gate) .host-v1-calendar .meal-detail-copy span{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere!important;line-height:1.15!important}
.app-shell:not(.auth-gate) .host-v1-calendar .meal-detail-head{height:17px!important;min-height:17px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-calendar .meal-detail-head strong{font-size:11px!important;line-height:1.1!important;white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important}
.app-shell:not(.auth-gate) .host-v1-calendar .meal-status{font-size:8px!important;line-height:1!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .host-v1-calendar .meal-detail-copy{gap:2px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-calendar .meal-photo-preview{grid-template-columns:34px minmax(0,1fr)!important;gap:4px!important;min-height:34px!important;height:34px!important;margin:1px 0 0!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-calendar .meal-photo-preview img{width:34px!important;height:34px!important;border-radius:7px!important;object-fit:cover!important}
.app-shell:not(.auth-gate) .host-v1-calendar .meal-photo-preview figcaption{font-size:8px!important;line-height:1.1!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere!important}
.app-shell:not(.auth-gate) .host-v1-calendar .detail-order-note{overflow:visible!important;white-space:nowrap!important}

@media(max-width:375px){
  .app-shell:not(.auth-gate) .host-v1-trends .trend-chart{min-height:clamp(150px,29vh,260px)!important}
  .app-shell:not(.auth-gate) .host-v1-calendar .calendar-detail-carousel{grid-auto-rows:minmax(90px,1fr)!important}
}

/* r42test43: member logout is an intentional hidden five-step gesture.  The
   confirmation remains a small, keyboard-reachable dialog and never consumes
   a row in the member page layout. */
.hidden-logout-dialog{
  box-sizing:border-box!important;
  position:fixed!important;
  inset:50% auto auto 50%!important;
  transform:translate(-50%,-50%)!important;
  width:min(300px,calc(100vw - 32px))!important;
  max-height:calc(100dvh - 40px)!important;
  margin:0!important;
  padding:16px!important;
  border:2px solid #26221d!important;
  border-radius:18px!important;
  background:#fffaf4!important;
  color:#26221d!important;
  box-shadow:0 16px 38px rgba(52,39,31,.22)!important;
  z-index:100!important;
  overflow:auto!important;
}
.hidden-logout-dialog::backdrop{background:rgba(52,39,31,.28)!important}
.hidden-logout-dialog>strong{display:block!important;font-size:16px!important;line-height:1.15!important}
.hidden-logout-dialog>p{margin:7px 0 13px!important;color:var(--v1-muted)!important;font-size:11px!important;line-height:1.35!important;white-space:normal!important}
.hidden-logout-dialog>div{display:flex!important;justify-content:flex-end!important;gap:6px!important}
.hidden-logout-dialog button{min-height:34px!important;padding:6px 10px!important;font-size:10px!important;white-space:nowrap!important}

/* Deviation confirmation is a real compact modal, not a grid child that can
   be pushed below the summary footer or hidden behind the bottom navigation. */
.app-shell:not(.auth-gate) .deviation-prompt{
  box-sizing:border-box!important;
  position:fixed!important;
  inset:50% auto auto 50%!important;
  transform:translate(-50%,-50%)!important;
  width:min(330px,calc(100vw - 32px))!important;
  max-height:calc(100dvh - 40px)!important;
  margin:0!important;
  padding:14px!important;
  border:2px solid #b8613d!important;
  border-radius:16px!important;
  background:#fffaf2!important;
  box-shadow:0 16px 38px rgba(91,55,32,.24)!important;
  z-index:99!important;
  overflow:auto!important;
}
.app-shell:not(.auth-gate) .deviation-prompt::before{content:"";position:fixed;inset:0;z-index:-1;background:rgba(52,39,31,.18)!important}
.app-shell:not(.auth-gate) .deviation-prompt strong{display:block!important;font-size:14px!important;line-height:1.15!important}
.app-shell:not(.auth-gate) .deviation-prompt p{margin:7px 0 11px!important;font-size:10px!important;line-height:1.35!important;white-space:normal!important;overflow-wrap:anywhere!important}
.app-shell:not(.auth-gate) .deviation-prompt>div{display:flex!important;justify-content:flex-end!important;gap:6px!important}
.app-shell:not(.auth-gate) .deviation-prompt button{min-height:34px!important;padding:6px 9px!important;font-size:10px!important;white-space:nowrap!important}

/* Vegetables are a lightweight optional record; the editor is deliberately a
   small popup instead of taking over the entire summary page. */
.app-shell:not(.auth-gate) .vegetable-editor{
  box-sizing:border-box!important;
  position:fixed!important;
  inset:50% auto auto 50%!important;
  transform:translate(-50%,-50%)!important;
  width:min(320px,calc(100vw - 32px))!important;
  max-height:calc(100dvh - 40px)!important;
  margin:0!important;
  padding:13px!important;
  border:2px solid #26221d!important;
  border-radius:18px!important;
  background:#fffaf4!important;
  box-shadow:0 16px 38px rgba(52,39,31,.24)!important;
  z-index:98!important;
  overflow:auto!important;
}
.app-shell:not(.auth-gate) .vegetable-editor::before{content:"";position:fixed;inset:0;z-index:-1;background:rgba(52,39,31,.16)!important}
.app-shell:not(.auth-gate) .vegetable-editor-head{min-width:0!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important}
.app-shell:not(.auth-gate) .vegetable-editor-head strong{font-size:15px!important;line-height:1.15!important}
.app-shell:not(.auth-gate) .vegetable-editor>p{margin:7px 0!important;color:var(--v1-muted)!important;font-size:10px!important;line-height:1.35!important;white-space:normal!important}
.app-shell:not(.auth-gate) .vegetable-editor .vegetable-picked,.app-shell:not(.auth-gate) .vegetable-editor .vegetable-custom-list{display:grid!important;gap:4px!important;margin:7px 0!important}
.app-shell:not(.auth-gate) .vegetable-editor .vegetable-picked label,.app-shell:not(.auth-gate) .vegetable-editor .vegetable-custom-list>span{min-width:0!important;display:flex!important;align-items:center!important;gap:6px!important;padding:6px 7px!important;border-radius:9px!important;background:#fff0d4!important;font-size:10px!important;line-height:1.2!important;white-space:normal!important;overflow-wrap:anywhere!important}
.app-shell:not(.auth-gate) .vegetable-editor .vegetable-form{display:grid!important;gap:6px!important;margin-top:8px!important}
.app-shell:not(.auth-gate) .vegetable-editor .vegetable-form label{display:grid!important;gap:3px!important;font-size:10px!important;line-height:1.15!important}
.app-shell:not(.auth-gate) .vegetable-editor .vegetable-form input{box-sizing:border-box!important;width:100%!important;height:34px!important;min-height:34px!important;padding:5px 8px!important;border:1.5px solid #dccab7!important;border-radius:10px!important;background:#fffdf8!important;font-size:16px!important}
.app-shell:not(.auth-gate) .vegetable-editor .primary-button{min-height:36px!important;padding:7px 10px!important;font-size:10px!important}

/* A loaded calendar thumbnail is a button so the member can inspect the
   original photo without changing the compact day-detail layout. */
.app-shell:not(.auth-gate) .host-v1-calendar .meal-photo-open{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  min-height:34px!important;
  height:34px!important;
  display:grid!important;
  grid-template-columns:34px minmax(0,1fr)!important;
  align-items:center!important;
  gap:4px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:7px!important;
  background:transparent!important;
  color:var(--v1-muted)!important;
  text-align:left!important;
  overflow:visible!important;
}
.app-shell:not(.auth-gate) .host-v1-calendar .meal-photo-open img{display:block!important;width:34px!important;height:34px!important;border:1px solid #dccab7!important;border-radius:7px!important;background:#fffaf1!important;object-fit:cover!important}
.app-shell:not(.auth-gate) .host-v1-calendar .meal-photo-open span{min-width:0!important;font-size:8px!important;line-height:1.1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell:not(.auth-gate) .host-v1-calendar .meal-photo-open:focus-visible{outline:2px solid #2e6f67!important;outline-offset:2px!important}
.calendar-photo-dialog{
  box-sizing:border-box!important;
  position:fixed!important;
  inset:50% auto auto 50%!important;
  transform:translate(-50%,-50%)!important;
  width:max-content!important;
  max-width:calc(100vw - 28px)!important;
  max-height:calc(100dvh - 28px)!important;
  margin:0!important;
  padding:10px!important;
  border:2px solid #26221d!important;
  border-radius:16px!important;
  background:#fffaf4!important;
  box-shadow:0 16px 38px rgba(52,39,31,.3)!important;
  z-index:101!important;
  overflow:visible!important;
}
.calendar-photo-dialog::backdrop{background:rgba(52,39,31,.52)!important}
.calendar-photo-dialog img{display:block!important;max-width:min(86vw,560px)!important;max-height:78dvh!important;width:auto!important;height:auto!important;object-fit:contain!important;border-radius:10px!important}
.calendar-photo-dialog p{margin:5px 0 0!important;color:var(--v1-muted)!important;font-size:9px!important;text-align:center!important;line-height:1.1!important}
.calendar-photo-dialog .calendar-photo-close{position:absolute!important;top:-12px!important;right:-12px!important;width:30px!important;height:30px!important;min-height:30px!important;padding:0!important;border:2px solid #26221d!important;border-radius:50%!important;background:#ffd86e!important;color:#26221d!important;font-size:20px!important;line-height:1!important}

/* Keep every returned PVT reaction value readable without adding a second
   scrolling surface to the data page. Values wrap within the result card. */
.app-shell:not(.auth-gate) .host-v1-data .pvt-event-values{grid-column:1/-1!important;min-width:0!important;display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;align-items:start!important;gap:4px!important;padding-top:3px!important;border-top:1px solid #ead8b9!important}
.app-shell:not(.auth-gate) .host-v1-data .pvt-event-values>span{font-size:9px!important;line-height:1.2!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .host-v1-data .pvt-event-values>p{min-width:0!important;display:flex!important;flex-wrap:wrap!important;gap:3px!important;margin:0!important;color:var(--v1-ink)!important;font-size:9px!important;line-height:1.2!important;white-space:normal!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-data .pvt-event-values>p b{display:inline-block!important;padding:2px 4px!important;border-radius:5px!important;background:#fffdf8!important;font-family:var(--font-round)!important;font-size:9px!important;font-weight:800!important;line-height:1!important;white-space:nowrap!important}

/* Sleep is also one form now. Four narrow columns keep all visible fields in
   the same phone viewport without making the member walk
   through four nearly identical pages. */
.app-shell:not(.auth-gate) .host-v1-data[data-tab="sleep"] .data-fields{grid-template-columns:repeat(4,minmax(0,1fr))!important;grid-auto-rows:40px!important;gap:3px!important;align-content:start!important}
.app-shell:not(.auth-gate) .host-v1-data[data-tab="sleep"] .data-field{height:40px!important;min-height:40px!important;padding:2px 3px!important;border-radius:9px!important}
.app-shell:not(.auth-gate) .host-v1-data[data-tab="sleep"] .data-field>span{min-height:12px!important;font-size:8px!important;line-height:1!important;gap:1px!important}
.app-shell:not(.auth-gate) .host-v1-data[data-tab="sleep"] .data-field>span em{font-size:6px!important}
.app-shell:not(.auth-gate) .host-v1-data[data-tab="sleep"] .data-field input,.app-shell:not(.auth-gate) .host-v1-data[data-tab="sleep"] .data-field select,.app-shell:not(.auth-gate) .host-v1-data[data-tab="sleep"] .data-field textarea{height:20px!important;min-height:20px!important;font-size:13px!important;line-height:1!important}
.app-shell:not(.auth-gate) .host-v1-data[data-tab="sleep"] .data-field select{font-size:9px!important}

/* The detail area is the only calendar surface that accepts a horizontal
   gesture. The month picker remains click-driven and does not steal swipes. */
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-detail-panel[data-calendar-swipe="true"]{touch-action:pan-y!important;user-select:none!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-detail-panel[data-calendar-swipe="true"] button,.app-shell:not(.auth-gate) .host-v1-calendar .calendar-detail-panel[data-calendar-swipe="true"] input{user-select:auto!important}

/* r42test43: keep the two food sources explicit. The selection workflow reads
   the migrated production client foods; only the home library and its search
   read the natural-food endpoint. */
.picker-view>.picker-source-banner{grid-column:2!important;grid-row:2!important;box-sizing:border-box!important;width:100%!important;height:38px!important;min-height:38px!important;display:flex!important;align-items:center!important;padding:4px 9px!important;border:2px solid #26221d!important;border-radius:17px!important;background:#e8f1e4!important;color:#2e6f67!important;font-size:10px!important;line-height:1.1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-source-banner{grid-column:2!important;grid-row:2!important;height:38px!important;min-height:38px!important}
.home-v3 .home-library-v3 .library-examples>.library-status{grid-column:1/-1!important;width:auto!important;height:100%!important;min-height:0!important;border:0!important;background:transparent!important;color:var(--v1-muted)!important;font-size:9px!important;font-weight:500!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell:not(.auth-gate) .host-v1-data>.data-progress-strip{box-sizing:border-box!important;width:100%!important;height:38px!important;min-height:38px!important;padding:5px 8px!important;display:grid!important;grid-template-columns:auto auto minmax(0,1fr)!important;align-items:center!important;gap:6px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .host-v1-data>.data-progress-strip span,.app-shell:not(.auth-gate) .host-v1-data>.data-progress-strip strong,.app-shell:not(.auth-gate) .host-v1-data>.data-progress-strip small{min-width:0!important;line-height:1.1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}

/* r42test44: the home natural-food search is the only entry point to the
   natural library. Its result rows stay inside the home viewport and the
   search input keeps a phone-sized font so IME composition is not zoomed or
   interrupted by a rerender. */
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .home-library-v3 .home-search{
  display:grid!important;grid-template-columns:18px minmax(0,1fr) 24px!important;align-items:center!important;gap:4px!important;
  width:100%!important;height:38px!important;min-height:38px!important;padding:3px 7px!important;overflow:hidden!important
}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .home-library-v3 .home-search>span:first-child{font-size:16px!important;line-height:1!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .home-library-v3 .home-search input{
  width:100%!important;min-width:0!important;height:30px!important;min-height:30px!important;padding:0!important;font-size:16px!important;line-height:1.1!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important
}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .home-library-v3 .home-search-submit{
  width:24px!important;height:30px!important;min-height:30px!important;padding:0!important;border:0!important;border-radius:9px!important;background:#ffd86e!important;color:#26221d!important;font-size:20px!important;line-height:1!important
}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .home-library-v3 .library-examples{
  grid-template-columns:minmax(0,1fr)!important;grid-template-rows:repeat(2,34px) auto!important;align-content:start!important;gap:3px!important;height:auto!important;min-height:72px!important;overflow:visible!important
}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .home-library-v3:has(.natural-result-card){
  min-height:174px!important;grid-template-rows:30px 38px minmax(72px,auto)!important;overflow:visible!important
}
.app-shell:not(.auth-gate) .home-v3[data-page="home"]:has(.natural-result-card){
  grid-template-rows:16px minmax(68px,76px) 58px 44px 44px clamp(140px,21vh,175px) minmax(174px,auto)!important
}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .natural-result-card{
  grid-column:1!important;min-width:0!important;width:100%!important;height:34px!important;min-height:34px!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:4px!important;padding:2px 4px!important;border:1px solid #eadfc8!important;border-radius:10px!important;background:#fffdf8!important;overflow:hidden!important
}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .natural-result-main{
  min-width:0!important;width:100%!important;height:29px!important;min-height:29px!important;display:grid!important;grid-template-columns:24px minmax(0,1fr)!important;align-items:center!important;gap:4px!important;padding:0!important;border:0!important;border-radius:7px!important;background:transparent!important;color:#26221d!important;text-align:left!important;overflow:hidden!important
}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .natural-result-main>img{display:block!important;width:22px!important;height:22px!important;object-fit:contain!important}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .natural-result-main>span{min-width:0!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:1px!important;overflow:hidden!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .natural-result-main strong{max-width:100%!important;font-size:10px!important;line-height:1!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .natural-result-main small{max-width:100%!important;color:var(--v1-muted)!important;font-size:8px!important;line-height:1!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .natural-save-button{
  width:auto!important;min-width:64px!important;height:27px!important;min-height:27px!important;padding:3px 5px!important;border:1px solid #edb08b!important;border-radius:8px!important;background:#fff0e3!important;color:#b8613d!important;font-size:8px!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important
}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .natural-result-card.is-selected{border-color:#2e6f67!important;background:#eef5ed!important}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .library-search-message{grid-column:1!important;min-width:0!important;min-height:16px!important;height:16px!important;padding:2px 4px!important;color:#2e6f67!important;font-size:8px!important;line-height:1.1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell:not(.auth-gate) .home-v3[data-page="home"] .home-library-v3 .library-status{grid-column:1!important;min-width:0!important;width:100%!important;height:34px!important;min-height:34px!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:2px 4px!important;border:0!important;background:transparent!important;color:var(--v1-muted)!important;font-size:9px!important;line-height:1.1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}

/* r42test44: remove the historical picker spacer and clip the selected
   category to the same rounded rail, so the green state fills the rail rather
   than ending as a rectangular strip. */
.app-shell.picker-scroll .screen-anchor:has(.picker-view[data-page="picker"]){padding-top:10px!important;padding-bottom:5px!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.subhead>div{min-width:0!important;overflow:visible!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.subhead h2{overflow:visible!important;text-overflow:clip!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.category-tabs{padding:0!important;border-radius:20px!important;overflow:hidden!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.category-tabs{height:100%!important;flex:1 1 auto!important;align-self:stretch!important;min-height:0!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.category-tabs .category-tab{min-height:0!important;border-radius:0!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-chef-cat{top:0!important;right:clamp(42px,13vw,58px)!important}

/* r42test44: PVT history is selectable, timestamped, and remains compact
   enough for the same data viewport as the other forms. */
.app-shell:not(.auth-gate) .host-v1-data .pvt-result{min-width:0!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:3px 5px!important;padding:6px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-data .pvt-result>strong{grid-column:1!important;width:auto!important;font-size:13px!important;line-height:1.1!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .host-v1-data .pvt-result>time{grid-column:2!important;justify-self:end!important;min-width:0!important;color:var(--v1-muted)!important;font-size:8px!important;line-height:1.1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell:not(.auth-gate) .host-v1-data .pvt-result>span:not(.pvt-event-values){min-width:0!important;font-size:9px!important;line-height:1.1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell:not(.auth-gate) .host-v1-data .pvt-history{grid-column:1/-1!important;min-width:0!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:3px!important;margin-top:2px!important;padding-top:3px!important;border-top:1px solid #ead8b9!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-data .pvt-history-item{min-width:0!important;height:35px!important;min-height:35px!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;gap:1px!important;padding:3px 4px!important;border:1px solid #dccab7!important;border-radius:8px!important;background:#fffdf8!important;color:var(--v1-ink)!important;text-align:left!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .host-v1-data .pvt-history-item.is-selected{border-color:var(--v1-ink)!important;background:var(--v1-yellow)!important}
.app-shell:not(.auth-gate) .host-v1-data .pvt-history-item time{max-width:100%!important;color:var(--v1-ink)!important;font-size:8px!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell:not(.auth-gate) .host-v1-data .pvt-history-item span,.app-shell:not(.auth-gate) .host-v1-data .pvt-history-item small{max-width:100%!important;color:var(--v1-muted)!important;font-size:7px!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}

/* r42test44: the calendar heading gets an independent text column. The left
   column is allowed to shrink before the close button, so 当日记录 cannot be
   covered by the button; cards keep their own content height instead of
   stretching a large blank interior. */
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-detail-panel{grid-template-rows:40px minmax(0,1fr) 14px!important;gap:3px!important}
.app-shell:not(.auth-gate) .host-v1-calendar .detail-panel-head{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:8px!important;width:100%!important;height:40px!important;min-height:40px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-calendar .detail-panel-head>div{min-width:0!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-calendar .detail-panel-head h3{font-size:16px!important;line-height:1.1!important;white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important}
.app-shell:not(.auth-gate) .host-v1-calendar .detail-panel-head .small-button{height:32px!important;min-height:32px!important;padding:4px 7px!important;font-size:9px!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-detail-carousel{grid-auto-rows:minmax(92px,auto)!important;align-content:start!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-detail-carousel>*{height:92px!important;min-height:92px!important;overflow:hidden!important}

/* Cross-screen layout invariant: flexible columns must be explicitly allowed
   to shrink, and text may wrap inside its owner instead of crossing a sibling
   or being silently clipped by a fixed spacer. */
.app-shell:not(.auth-gate) [data-role="screen"] [data-page],.app-shell:not(.auth-gate) [data-role="screen"] [data-page]>*{min-width:0!important}
.app-shell:not(.auth-gate) [data-role="screen"] h2,.app-shell:not(.auth-gate) [data-role="screen"] h3,.app-shell:not(.auth-gate) [data-role="screen"] strong,.app-shell:not(.auth-gate) [data-role="screen"] span{overflow-wrap:anywhere}

@media(max-width:375px){
  .app-shell:not(.auth-gate) .home-v3[data-page="home"] .home-library-v3:has(.natural-result-card){min-height:174px!important;grid-template-rows:30px 38px minmax(72px,auto)!important}
  .app-shell:not(.auth-gate) .home-v3[data-page="home"]:has(.natural-result-card){grid-template-rows:16px 68px 54px 42px 40px 140px minmax(174px,auto)!important}
  .app-shell:not(.auth-gate) .host-v1-calendar .calendar-detail-panel{grid-template-rows:36px minmax(0,1fr) 12px!important}
  .app-shell:not(.auth-gate) .host-v1-calendar .detail-panel-head{height:36px!important;min-height:36px!important}
  .app-shell:not(.auth-gate) .host-v1-calendar .detail-panel-head h3{font-size:15px!important}
  .app-shell:not(.auth-gate) .host-v1-calendar .calendar-detail-carousel>*{height:88px!important;min-height:88px!important}
}

/* r42test45 final cascade: the rules below intentionally come after the
   legacy compact-layout overrides. */
.app-shell:not(.auth-gate) .food-text-fallback{box-sizing:border-box!important;display:grid!important;place-items:center!important;min-width:0!important;min-height:0!important;padding:4px!important;color:var(--v1-ink)!important;background:#fff6ea!important;font-weight:900!important;line-height:1.05!important;text-align:center!important;overflow:hidden!important;overflow-wrap:anywhere!important}
.app-shell:not(.auth-gate) .food-image>.food-text-fallback{width:100%!important;height:100%!important;border-radius:11px!important;font-size:clamp(18px,5vw,30px)!important}
.app-shell:not(.auth-gate) .food-avatar>.food-text-fallback{width:100%!important;height:100%!important;border-radius:13px!important;font-size:10px!important}
.app-shell:not(.auth-gate) .custom-row>.food-text-fallback{width:29px!important;height:29px!important;border-radius:8px!important;font-size:8px!important}
.app-shell:not(.auth-gate) .mini-foods>.food-text-fallback{width:29px!important;height:29px!important;flex:0 0 29px!important;border:2px solid #fff!important;border-radius:50%!important;font-size:7px!important}
.app-shell:not(.auth-gate) .natural-result-main>.food-text-fallback{width:24px!important;height:24px!important;flex:0 0 24px!important;padding:2px!important;border-radius:7px!important;font-size:7px!important}
.app-shell:not(.auth-gate) .natural-result-main>.food-visual:not(.food-text-fallback){display:block!important;width:22px!important;height:22px!important;object-fit:contain!important}
.app-shell:not(.auth-gate) .entry-foods>.food-text-fallback{font-size:7px!important;border-radius:6px!important}
.app-shell:not(.auth-gate) .library-examples button>.food-text-fallback{font-size:8px!important;border-radius:6px!important}
.app-shell:not(.auth-gate) .plate-food>.food-text-fallback{width:48px!important;height:48px!important;border-radius:10px!important;font-size:9px!important}
.app-shell:not(.auth-gate) .board-stage>.food-text-fallback{display:grid!important;width:79px!important;height:79px!important;border-radius:50%!important;font-size:14px!important}
.app-shell:not(.auth-gate) .pot-food-label>.food-text-fallback,.app-shell:not(.auth-gate) .pot-vegetable-label>.food-text-fallback{width:clamp(44px,14vw,76px)!important;height:clamp(42px,13vw,68px)!important;border-radius:9px!important;font-size:clamp(9px,2.8vw,14px)!important}
.app-shell:not(.auth-gate) .veg-chip>.food-text-fallback{width:23px!important;height:23px!important;border-radius:6px!important;font-size:7px!important;padding:2px!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section{box-sizing:border-box!important;width:100%!important;height:76px!important;min-height:76px!important;padding:5px 7px!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(82px,108px)!important;grid-template-rows:1fr!important;align-items:center!important;gap:6px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy{grid-column:1!important;grid-row:1!important;min-width:0!important;width:auto!important;height:auto!important;display:flex!important;flex-direction:column!important;gap:2px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy .eyebrow,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy strong,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-state{max-width:100%!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy .eyebrow{font-size:8px!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy strong{font-size:12px!important;line-height:1.1!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-state{font-size:8px!important;line-height:1.1!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-picker{grid-column:2!important;grid-row:1!important;min-width:0!important;width:100%!important;height:100%!important;display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:34px 34px!important;gap:3px!important;align-content:center!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-picker select{width:100%!important;height:34px!important;min-height:34px!important;min-width:0!important;padding:2px 5px!important;border:1.5px solid #26221d!important;border-radius:9px!important;background:#fff0d4!important;color:#26221d!important;font-size:9px!important;font-weight:800!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb-strip{width:100%!important;height:34px!important;min-height:34px!important;display:flex!important;align-items:center!important;gap:3px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb-empty{box-sizing:border-box!important;width:34px!important;height:34px!important;min-width:34px!important;display:grid!important;place-items:center!important;position:relative!important;overflow:hidden!important;border:1px solid #dccab7!important;border-radius:7px!important;background:#fffdf8!important;color:var(--v1-muted)!important;font-size:7px!important;line-height:1!important;text-align:center!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb small{position:absolute!important;right:2px!important;bottom:2px!important;padding:1px 2px!important;border-radius:3px!important;background:rgba(0,0,0,.55)!important;color:#fff!important;font-size:7px!important;line-height:1!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-detail-panel{height:auto!important;min-height:0!important;display:block!important;padding:0!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-calendar .detail-panel-head{height:40px!important;min-height:40px!important;margin-bottom:4px!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-detail-carousel{box-sizing:border-box!important;width:100%!important;height:auto!important;min-height:0!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:auto!important;align-items:stretch!important;gap:5px!important;padding:0 1px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-detail-carousel>*{box-sizing:border-box!important;width:auto!important;height:auto!important;min-width:0!important;min-height:106px!important;overflow:visible!important;padding:6px!important;border-radius:12px!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-preview-card>strong,.app-shell:not(.auth-gate) .host-v1-calendar .meal-detail-head strong{font-size:12px!important;line-height:1.05!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-preview-values{min-width:0!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:2px 4px!important;align-content:start!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-preview-values>span{min-width:0!important;display:block!important;font-size:7px!important;line-height:1.2!important;color:var(--v1-muted)!important;white-space:normal!important;overflow-wrap:anywhere!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-calendar .calendar-preview-values>span>b{display:inline!important;margin-right:2px!important;color:var(--v1-ink)!important;font-weight:800!important}
.app-shell:not(.auth-gate) .host-v1-calendar .meal-detail-card{min-height:106px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .host-v1-calendar .meal-detail-copy{min-width:0!important;display:flex!important;flex-direction:column!important;gap:2px!important}
.app-shell:not(.auth-gate) .host-v1-calendar .meal-detail-copy span{font-size:7px!important;line-height:1.2!important;white-space:normal!important;overflow:visible!important;overflow-wrap:anywhere!important}
.app-shell:not(.auth-gate) .host-v1-calendar .detail-order-note{margin-top:4px!important;min-height:14px!important;font-size:8px!important;line-height:1.1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
@media(max-width:375px){
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section{height:70px!important;min-height:70px!important;grid-template-columns:minmax(0,1fr) 82px!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-picker{grid-template-rows:31px 31px!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-picker select,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb-empty,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb-strip{height:31px!important;min-height:31px!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb-empty{width:31px!important;min-width:31px!important}
  .app-shell:not(.auth-gate) .host-v1-calendar .detail-panel-head{height:36px!important;min-height:36px!important}
  .app-shell:not(.auth-gate) .host-v1-calendar .calendar-detail-carousel>*{min-height:100px!important;padding:5px!important}
  .app-shell:not(.auth-gate) .host-v1-calendar .calendar-preview-values>span,.app-shell:not(.auth-gate) .host-v1-calendar .meal-detail-copy span{font-size:6.5px!important}
}

/* r42test47: the photo source menu must leave the file chooser behind a real
   user activation.  The summary also uses explicit areas so the small
   vegetable action, photo card, supplements and coach notes do not compete
   for the same fixed row. */
.app-shell:not(.auth-gate) .food-text-fallback{
  font-family:"Hiragino Maru Gothic ProN","Arial Rounded MT Bold","PingFang SC",sans-serif!important;
  color:#2e766d!important;
  font-weight:900!important;
  font-style:italic!important;
  letter-spacing:.025em!important;
  text-shadow:0 1px 0 rgba(255,250,244,.85)!important;
  transform:rotate(-1.2deg) skewX(-2deg)!important;
}
.app-shell:not(.auth-gate) .food-image>.food-text-fallback{color:#467c72!important;background:#edf5e9!important}
.app-shell:not(.auth-gate) .board-stage>.food-text-fallback{color:#b5633f!important;background:#fff0d4!important}
.app-shell:not(.auth-gate) .pot-food-label>.food-text-fallback,.app-shell:not(.auth-gate) .pot-vegetable-label>.food-text-fallback{color:#a95d3f!important;background:#fff0d4!important}
.app-shell:not(.auth-gate) .custom-row>.food-text-fallback,.app-shell:not(.auth-gate) .mini-foods>.food-text-fallback{color:#7a5a38!important;background:#fff2cc!important}

.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]{
  position:static!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)!important;
  grid-template-rows:38px 16px minmax(130px,1fr) 84px 88px 44px 58px!important;
  grid-template-areas:"head head" "heading heading" "pot pot" "veg supplement" "photo photo" "notes notes" "footer footer"!important;
  gap:4px!important;
  align-content:stretch!important;
  overflow:hidden!important;
}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.subhead{grid-area:head!important;width:100%!important;height:38px!important;min-height:38px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.summary-pot-heading{grid-area:heading!important;width:100%!important;height:16px!important;min-height:16px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.wood-table{grid-area:pot!important;width:100%!important;height:100%!important;min-height:0!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.vegetables-section{grid-area:veg!important;align-self:start!important;width:100%!important;height:34px!important;min-height:34px!important;padding:2px 5px!important;border-radius:999px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.vegetables-section .vegetable-open{width:100%!important;height:100%!important;min-height:0!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:4px!important;padding:0 3px!important;border:0!important;background:transparent!important;color:var(--v1-ink)!important;text-align:left!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.vegetables-section .vegetable-button-label{min-width:0!important;display:flex!important;align-items:center!important;gap:4px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.vegetables-section .vegetable-button-label .veg-bowl{width:23px!important;height:23px!important;flex:0 0 23px!important;object-fit:contain!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.vegetables-section .vegetable-button-label>span{min-width:0!important;display:flex!important;flex-direction:column!important;gap:1px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.vegetables-section .vegetable-button-label b{font-size:9px!important;line-height:1!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.vegetables-section .vegetable-button-label small{max-width:100%!important;color:var(--v1-muted)!important;font-size:7px!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.vegetables-section .vegetable-button-mark{flex:0 0 auto!important;color:var(--v1-orange)!important;font-size:15px!important;line-height:1!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section{grid-area:supplement!important;width:100%!important;height:100%!important;min-height:0!important;padding:4px 6px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .compact-section-title{height:23px!important;min-height:23px!important;margin:0 0 2px!important;gap:4px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .compact-section-title>img{width:22px!important;height:22px!important;flex:0 0 22px!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .compact-section-title>span{min-width:0!important;display:flex!important;flex-direction:column!important;gap:1px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .compact-section-title strong{font-size:9px!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .compact-section-title small{font-size:6.5px!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-table{height:auto!important;min-height:0!important;display:grid!important;grid-auto-rows:minmax(14px,auto)!important;gap:2px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-table-head{display:none!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-table-row{height:15px!important;min-height:15px!important;display:grid!important;grid-template-columns:13px minmax(0,1fr)!important;align-items:center!important;gap:2px 3px!important;padding:1px 2px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-table-row input{width:12px!important;height:12px!important;margin:0!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-row-main{grid-column:2!important;min-width:0!important;display:flex!important;align-items:center!important;gap:4px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-copy,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-meta{min-width:0!important;display:flex!important;gap:3px!important;overflow:hidden!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-copy b,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-timing,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-quantity,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-table-row i{max-width:100%!important;font-size:6.5px!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}

.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section{grid-area:photo!important;box-sizing:border-box!important;width:100%!important;height:100%!important;min-height:0!important;padding:4px 6px!important;display:grid!important;grid-template-columns:clamp(44px,12vw,56px) minmax(0,1fr) minmax(108px,31vw,136px)!important;grid-template-rows:1fr!important;align-items:center!important;gap:4px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .cat-art{grid-column:1!important;grid-row:1!important;width:100%!important;height:58px!important;max-height:100%!important;object-fit:contain!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy{grid-column:2!important;grid-row:1!important;min-width:0!important;width:auto!important;height:auto!important;display:flex!important;flex-direction:column!important;gap:2px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy .eyebrow,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy strong,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-state{max-width:100%!important;white-space:normal!important;overflow-wrap:anywhere!important;overflow:visible!important;line-height:1.1!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy .eyebrow{font-size:7px!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy strong{font-size:10px!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-state{font-size:7px!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-picker{grid-column:3!important;grid-row:1!important;min-width:0!important;width:100%!important;height:100%!important;display:grid!important;grid-template-rows:26px 22px minmax(0,1fr)!important;gap:2px!important;align-content:center!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-source-row{min-width:0!important;display:grid!important;grid-template-rows:26px 22px!important;gap:2px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-picker select{width:100%!important;height:26px!important;min-height:26px!important;min-width:0!important;padding:1px 4px!important;border:1.5px solid #26221d!important;border-radius:8px!important;background:#fff0d4!important;color:#26221d!important;font-size:7px!important;font-weight:800!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-open-control{box-sizing:border-box!important;width:100%!important;height:22px!important;min-height:22px!important;display:grid!important;place-items:center!important;padding:1px 3px!important;border:1px solid #edb08b!important;border-radius:7px!important;background:#fff7df!important;color:#b8613d!important;font-size:7px!important;font-weight:800!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;cursor:pointer!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-open-control.is-disabled{opacity:.55!important;cursor:not-allowed!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-file-input{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;opacity:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb-strip{width:100%!important;height:100%!important;min-height:28px!important;display:flex!important;align-items:center!important;gap:3px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb-empty{box-sizing:border-box!important;width:29px!important;height:29px!important;min-width:29px!important;display:grid!important;place-items:center!important;position:relative!important;overflow:hidden!important;border:1px solid #dccab7!important;border-radius:7px!important;background:#fffdf8!important;color:var(--v1-muted)!important;font-size:6px!important;line-height:1!important;text-align:center!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section button.photo-thumb{padding:0!important;cursor:zoom-in!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb small{position:absolute!important;right:2px!important;bottom:2px!important;padding:1px 2px!important;border-radius:3px!important;background:rgba(0,0,0,.55)!important;color:#fff!important;font-size:6px!important;line-height:1!important}

.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.coach-notes-section{grid-area:notes!important;width:100%!important;height:100%!important;min-height:0!important;padding:3px 6px!important;display:grid!important;grid-template-columns:70px minmax(0,1fr)!important;align-items:center!important;gap:5px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.coach-notes-section .compact-section-title{min-width:0!important;display:block!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.coach-notes-section .compact-section-title>span{display:flex!important;flex-direction:column!important;gap:1px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.coach-notes-section .compact-section-title .eyebrow{display:block!important;font-size:7px!important;line-height:1!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.coach-notes-section .compact-section-title strong{font-size:9px!important;line-height:1!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.coach-notes-section .coach-notes-copy{min-width:0!important;display:grid!important;gap:1px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.coach-notes-section .coach-notes-copy span{min-width:0!important;display:block!important;color:var(--v1-muted)!important;font-size:7px!important;line-height:1.2!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.compact-footer{grid-area:footer!important;width:100%!important;height:100%!important;min-height:0!important;padding:3px 5px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:5px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.compact-footer .lock-copy,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.compact-footer .lock-copy strong,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.compact-footer .lock-copy small{min-width:0!important;overflow:hidden!important;white-space:nowrap!important;text-overflow:ellipsis!important;line-height:1.1!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.compact-footer .lock-copy strong{font-size:8px!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.compact-footer .lock-copy small{font-size:7px!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.compact-footer .checkin-button{flex:0 0 clamp(112px,34vw,150px)!important;width:auto!important;min-width:0!important;height:44px!important;min-height:44px!important;padding:6px 7px!important;font-size:9px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.local-photo-preview{position:fixed!important;inset:0!important;z-index:30!important;display:grid!important;place-items:center!important;padding:28px!important;background:rgba(38,34,29,.78)!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.local-photo-preview img{display:block!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;border-radius:12px!important;box-shadow:0 14px 36px rgba(0,0,0,.28)!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.local-photo-preview .local-photo-close{position:absolute!important;top:calc(env(safe-area-inset-top) + 12px)!important;right:14px!important;width:34px!important;height:34px!important;border-radius:50%!important;background:#fff7df!important;color:#26221d!important;font-size:23px!important;line-height:1!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.save-error{grid-column:1/-1!important;grid-row:8!important;margin:0!important;align-self:start!important}
.app-shell:not(.auth-gate) .host-v1-data>.data-progress-strip span,.app-shell:not(.auth-gate) .host-v1-data>.data-progress-strip strong,.app-shell:not(.auth-gate) .host-v1-data>.data-progress-strip small{overflow:visible!important;line-height:1.2!important}

@media(max-width:375px){
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]{grid-template-columns:minmax(0,1fr) minmax(0,1.08fr)!important;grid-template-rows:36px 15px minmax(120px,1fr) 84px 82px 40px 54px!important;gap:3px!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.subhead{height:36px!important;min-height:36px!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.vegetables-section{height:32px!important;min-height:32px!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section{grid-template-columns:44px minmax(0,1fr) 104px!important;padding-inline:4px!important;gap:3px!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .cat-art{height:52px!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-picker{grid-template-rows:24px 21px minmax(0,1fr)!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-source-row{grid-template-rows:24px 21px!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-picker select{height:24px!important;min-height:24px!important;font-size:6.5px!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-open-control{height:21px!important;min-height:21px!important;font-size:6.5px!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb-empty{width:27px!important;height:27px!important;min-width:27px!important}
}

/* r42test48: the customer-facing picker and meal-photo card use one geometry
   contract. Source/debug labels do not belong in the member UI, selected food
   cards have a direct remove target, and the photo chooser stays in a card the
   same size as the vegetable action instead of taking a full-width row. */
.app-shell:not(.auth-gate) .picker-source-banner{display:none!important}
.app-shell.picker-scroll .screen-anchor:has(.picker-view[data-page="picker"]){padding-top:10px!important;padding-bottom:5px!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]{grid-template-rows:40px minmax(0,1fr) 70px!important;row-gap:5px!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.category-tabs{grid-column:1!important;grid-row:2!important;height:100%!important;min-height:0!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll{grid-column:2!important;grid-row:2!important;height:100%!important;min-height:0!important;overflow-x:hidden!important;overflow-y:auto!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.selection-tray{grid-column:1/-1!important;grid-row:3!important;height:70px!important;min-height:70px!important}
.app-shell:not(.auth-gate) .picker-view .food-card{position:relative!important}
.app-shell:not(.auth-gate) .picker-view .food-card-main{position:relative!important;z-index:1!important}
.app-shell:not(.auth-gate) .picker-view .food-remove{position:absolute!important;top:5px!important;right:5px!important;z-index:4!important;width:24px!important;height:24px!important;min-width:24px!important;min-height:24px!important;padding:0!important;border:1.5px solid #26221d!important;border-radius:50%!important;background:#fff0d4!important;color:#b8613d!important;font-size:17px!important;line-height:20px!important;font-weight:800!important;cursor:pointer!important}
.app-shell:not(.auth-gate) .picker-view .food-remove:focus-visible{outline:2px solid #79b2d0!important;outline-offset:1px!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .food-image{flex:0 0 clamp(68px,10vh,86px)!important;height:clamp(68px,10vh,86px)!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .food-image img{width:clamp(62px,18vw,84px)!important;height:clamp(62px,18vw,84px)!important}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.picker-food-scroll .food-image .food-text-fallback{font-size:clamp(15px,4.6vw,22px)!important}

.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]{grid-template-rows:38px 16px minmax(130px,1fr) 84px 84px 58px!important;grid-template-areas:"head head" "heading heading" "pot pot" "veg supplement" "photo notes" "footer footer"!important;gap:4px!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section{position:relative!important;grid-area:photo!important;width:100%!important;height:100%!important;min-height:0!important;box-sizing:border-box!important;padding:4px!important;display:grid!important;grid-template-columns:clamp(34px,10vw,44px) minmax(0,1fr)!important;grid-template-rows:22px minmax(0,1fr)!important;align-items:center!important;gap:2px 4px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .cat-art{grid-column:1!important;grid-row:1/3!important;width:100%!important;height:100%!important;max-height:100%!important;object-fit:contain!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy{grid-column:2!important;grid-row:1!important;min-width:0!important;width:100%!important;height:auto!important;display:flex!important;flex-direction:column!important;gap:1px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy .eyebrow,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy strong,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-state{max-width:100%!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;line-height:1.05!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy .eyebrow{font-size:7px!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy strong{font-size:9px!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-state{font-size:6.5px!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-picker{grid-column:2!important;grid-row:2!important;min-width:0!important;width:100%!important;height:100%!important;display:grid!important;grid-template-rows:45px minmax(0,1fr)!important;gap:2px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-source-row{min-width:0!important;display:grid!important;grid-template-rows:22px 21px!important;gap:2px!important;overflow:visible!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-picker select{width:100%!important;height:22px!important;min-height:22px!important;min-width:0!important;padding:0 3px!important;border:1px solid #26221d!important;border-radius:7px!important;background:#fff0d4!important;color:#26221d!important;font-size:7px!important;font-weight:800!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-open-control{box-sizing:border-box!important;width:100%!important;height:21px!important;min-height:21px!important;display:grid!important;place-items:center!important;padding:1px 2px!important;border:1px solid #edb08b!important;border-radius:7px!important;background:#fff7df!important;color:#b8613d!important;font-size:6.5px!important;font-weight:800!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;cursor:pointer!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-open-control:disabled{opacity:.55!important;cursor:not-allowed!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-file-input{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;opacity:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb-strip{width:100%!important;height:100%!important;min-height:24px!important;display:flex!important;align-items:center!important;gap:3px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb-empty{box-sizing:border-box!important;width:26px!important;height:26px!important;min-width:26px!important;display:grid!important;place-items:center!important;position:relative!important;overflow:hidden!important;border:1px solid #dccab7!important;border-radius:6px!important;background:#fffdf8!important;color:var(--v1-muted)!important;font-size:6px!important;line-height:1!important;text-align:center!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section button.photo-thumb{padding:0!important;cursor:zoom-in!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb small{position:absolute!important;right:1px!important;bottom:1px!important;padding:1px 2px!important;border-radius:2px!important;background:rgba(0,0,0,.55)!important;color:#fff!important;font-size:5px!important;line-height:1!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-remove-control{position:absolute!important;top:3px!important;right:3px!important;z-index:6!important;width:20px!important;height:20px!important;min-width:20px!important;min-height:20px!important;padding:0!important;border:1px solid #26221d!important;border-radius:50%!important;background:#fff7df!important;color:#b8613d!important;font-size:16px!important;line-height:16px!important;cursor:pointer!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.coach-notes-section{grid-area:notes!important;width:100%!important;height:100%!important;min-height:0!important;padding:3px 5px!important;display:grid!important;grid-template-columns:40px minmax(0,1fr)!important;align-items:center!important;gap:4px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.coach-notes-section .compact-section-title{min-width:0!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.coach-notes-section .compact-section-title>span{display:flex!important;flex-direction:column!important;gap:1px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.coach-notes-section .compact-section-title .eyebrow{font-size:6.5px!important;line-height:1!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.coach-notes-section .compact-section-title strong{font-size:8px!important;line-height:1!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.coach-notes-section .coach-notes-copy{min-width:0!important;display:grid!important;gap:1px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.coach-notes-section .coach-notes-copy span{min-width:0!important;display:block!important;color:var(--v1-muted)!important;font-size:6.5px!important;line-height:1.15!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}

@media(max-width:375px){
  .app-shell.picker-scroll .picker-view[data-page="picker"]{grid-template-rows:36px minmax(0,1fr) 66px!important;row-gap:4px!important}
  .app-shell.picker-scroll .picker-view[data-page="picker"]>.subhead{height:36px!important;min-height:36px!important}
  .app-shell.picker-scroll .picker-view[data-page="picker"]>.selection-tray{height:66px!important;min-height:66px!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]{grid-template-rows:36px 15px minmax(120px,1fr) 72px 72px 54px!important;gap:3px!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section{grid-template-columns:32px minmax(0,1fr)!important;grid-template-rows:20px minmax(0,1fr)!important;padding:3px!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-picker{grid-template-rows:41px minmax(0,1fr)!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-source-row{grid-template-rows:20px 19px!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-picker select{height:20px!important;min-height:20px!important;font-size:6.5px!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-open-control{height:19px!important;min-height:19px!important;font-size:6px!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb,.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb-empty{width:23px!important;height:23px!important;min-width:23px!important}
}

/* r42test52: preserve picker position, make every tray item removable, keep
   the grams editor focused while typing, and expose a touch-rotatable plate. */
.app-shell.picker-scroll .picker-view[data-page="picker"]>.selection-tray .mini-foods{
  min-width:0!important;
  display:flex!important;
  align-items:center!important;
  gap:5px!important;
  padding:3px 5px 3px 2px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scrollbar-width:none!important;
}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.selection-tray .mini-foods::-webkit-scrollbar{display:none}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.selection-tray .mini-food-chip{
  position:relative!important;
  flex:0 0 40px!important;
  width:40px!important;
  height:40px!important;
  min-width:40px!important;
  display:grid!important;
  place-items:center!important;
}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.selection-tray .mini-food-target{
  width:38px!important;
  height:38px!important;
  min-width:38px!important;
  min-height:38px!important;
  display:grid!important;
  place-items:center!important;
  padding:0!important;
  border:1px solid #eadfc8!important;
  border-radius:50%!important;
  background:#fffdf8!important;
  color:inherit!important;
  overflow:hidden!important;
  cursor:pointer!important;
}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.selection-tray .mini-food-target .mini-food-visual{
  display:grid!important;
  place-items:center!important;
  width:34px!important;
  height:34px!important;
  max-width:34px!important;
  max-height:34px!important;
  object-fit:contain!important;
}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.selection-tray .mini-food-target>.food-text-fallback{
  border:0!important;
  border-radius:50%!important;
  font-size:7px!important;
}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.selection-tray .mini-food-remove{
  position:absolute!important;
  top:-4px!important;
  right:-4px!important;
  z-index:3!important;
  width:16px!important;
  height:16px!important;
  min-width:16px!important;
  min-height:16px!important;
  padding:0!important;
  border:1.5px solid #26221d!important;
  border-radius:50%!important;
  background:#fff0d4!important;
  color:#b8613d!important;
  font-size:12px!important;
  font-weight:900!important;
  line-height:13px!important;
  cursor:pointer!important;
}
.app-shell.picker-scroll .picker-view[data-page="picker"]>.selection-tray .mini-food-remove:focus-visible{outline:2px solid #79b2d0!important;outline-offset:1px!important}

.app-shell:not(.auth-gate) .plate-stage[data-plate-rotate="true"]{
  position:relative!important;
  touch-action:pan-y!important;
  overscroll-behavior-x:contain!important;
}
.app-shell:not(.auth-gate) .plate-stage[data-plate-rotate="true"] .plate-food{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  right:auto!important;
  bottom:auto!important;
  z-index:3!important;
  width:clamp(52px,17vw,72px)!important;
  min-width:52px!important;
  height:auto!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  gap:1px!important;
  padding:2px!important;
  border:0!important;
  border-radius:9px!important;
  background:rgba(255,250,244,.86)!important;
  color:#26221d!important;
  transform:translate(-50%,-50%) rotate(var(--plate-food-angle)) translateY(calc(-1 * clamp(39px,14vw,62px))) rotate(calc(-1 * var(--plate-food-angle)))!important;
  transform-origin:center center!important;
  cursor:pointer!important;
}
.app-shell:not(.auth-gate) .plate-stage[data-plate-rotate="true"] .plate-food img{
  width:clamp(34px,11vw,50px)!important;
  height:clamp(34px,11vw,50px)!important;
  max-width:100%!important;
  max-height:50px!important;
  object-fit:contain!important;
}
.app-shell:not(.auth-gate) .plate-stage[data-plate-rotate="true"] .plate-food>.food-text-fallback{
  width:clamp(34px,11vw,50px)!important;
  height:clamp(34px,11vw,50px)!important;
  border-radius:9px!important;
  font-size:clamp(8px,2.5vw,12px)!important;
}
.app-shell:not(.auth-gate) .plate-stage[data-plate-rotate="true"] .plate-food span{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  color:#26221d!important;
  font-size:clamp(7px,2vw,9px)!important;
  line-height:1.05!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.app-shell:not(.auth-gate) .plate-stage[data-plate-rotate="true"] .plate-rotate-hint{
  position:absolute!important;
  left:50%!important;
  bottom:3px!important;
  z-index:4!important;
  max-width:calc(100% - 10px)!important;
  padding:2px 5px!important;
  border-radius:6px!important;
  background:rgba(255,250,244,.8)!important;
  color:var(--v1-muted)!important;
  font-size:7px!important;
  line-height:1!important;
  white-space:nowrap!important;
  transform:translateX(-50%)!important;
  pointer-events:none!important;
}

.app-shell:not(.auth-gate) .plate-v1[data-page="plate"] .gram-control{
  width:min(96%,360px)!important;
  grid-template-columns:34px 34px minmax(0,1fr) 20px 34px 34px!important;
  gap:4px!important;
}
.app-shell:not(.auth-gate) .plate-v1[data-page="plate"] .gram-control button{
  width:34px!important;
  min-width:34px!important;
  height:38px!important;
  min-height:38px!important;
  padding:0!important;
  font-size:14px!important;
  line-height:1!important;
  white-space:nowrap!important;
}
.app-shell:not(.auth-gate) .plate-v1[data-page="plate"] .gram-control input{
  width:100%!important;
  min-width:0!important;
  height:38px!important;
  min-height:38px!important;
  box-sizing:border-box!important;
  font-size:16px!important;
}
.app-shell:not(.auth-gate) .plate-v1[data-page="plate"] .gram-control span{
  min-width:0!important;
  font-size:10px!important;
  text-align:center!important;
  white-space:nowrap!important;
}

@media(max-width:375px){
  .app-shell:not(.auth-gate) .plate-v1[data-page="plate"] .gram-control{grid-template-columns:30px 30px minmax(0,1fr) 17px 30px 30px!important;gap:3px!important}
  .app-shell:not(.auth-gate) .plate-v1[data-page="plate"] .gram-control button{width:30px!important;min-width:30px!important;font-size:12px!important}
}

/* r42test53: dense food scenes keep a visual default, with an in-frame list
   fallback that makes every item reachable without changing the page height. */
.app-shell:not(.auth-gate) .food-view-toggle{
  position:absolute!important;
  top:5px!important;
  right:5px!important;
  z-index:10!important;
  box-sizing:border-box!important;
  width:42px!important;
  height:25px!important;
  min-width:42px!important;
  min-height:25px!important;
  padding:2px 4px!important;
  border:1.5px solid #26221d!important;
  border-radius:999px!important;
  background:#fff0d4!important;
  color:#26221d!important;
  font-size:8px!important;
  font-weight:900!important;
  line-height:1!important;
  white-space:nowrap!important;
  cursor:pointer!important;
}
.app-shell:not(.auth-gate) .plate-stage[data-view-mode="visual"] .scene-base,
.app-shell:not(.auth-gate) .pot-stage[data-pot-view="visual"]>.scene-base{opacity:1!important}
.app-shell:not(.auth-gate) .plate-stage[data-view-mode="list"] .scene-base,
.app-shell:not(.auth-gate) .pot-stage[data-pot-view="list"]>.scene-base{opacity:.16!important}

.app-shell:not(.auth-gate) .plate-stage[data-view-mode="visual"] .plate-food{
  width:clamp(32px,9vw,42px)!important;
  min-width:0!important;
  padding:1px!important;
  gap:0!important;
  border-radius:7px!important;
  background:rgba(255,250,244,.88)!important;
  --plate-radius:clamp(34px,12vw,54px);
  transform:translate(-50%,-50%) rotate(var(--plate-food-angle)) translateY(calc(-1 * var(--plate-radius))) rotate(calc(-1 * var(--plate-food-angle)))!important;
}
.app-shell:not(.auth-gate) .plate-stage[data-view-mode="visual"] .plate-food img,
.app-shell:not(.auth-gate) .plate-stage[data-view-mode="visual"] .plate-food>.food-text-fallback{
  width:clamp(20px,6vw,28px)!important;
  height:clamp(20px,6vw,28px)!important;
  max-width:100%!important;
  max-height:28px!important;
  border-radius:6px!important;
  font-size:clamp(5px,1.7vw,7px)!important;
  padding:1px!important;
}
.app-shell:not(.auth-gate) .plate-stage[data-view-mode="visual"] .plate-food span{
  width:100%!important;
  max-width:100%!important;
  font-size:clamp(5px,1.6vw,7px)!important;
  line-height:1!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.app-shell:not(.auth-gate) .plate-stage[data-view-mode="visual"] .plate-food[data-plate-count="9"],
.app-shell:not(.auth-gate) .plate-stage[data-view-mode="visual"] .plate-food[data-plate-count="10"],
.app-shell:not(.auth-gate) .plate-stage[data-view-mode="visual"] .plate-food[data-plate-count="11"],
.app-shell:not(.auth-gate) .plate-stage[data-view-mode="visual"] .plate-food[data-plate-count="12"]{
  width:clamp(27px,7vw,34px)!important;
  --plate-radius:clamp(32px,11vw,48px);
}
.app-shell:not(.auth-gate) .plate-stage[data-view-mode="visual"] .plate-food[data-plate-count="9"] img,
.app-shell:not(.auth-gate) .plate-stage[data-view-mode="visual"] .plate-food[data-plate-count="10"] img,
.app-shell:not(.auth-gate) .plate-stage[data-view-mode="visual"] .plate-food[data-plate-count="11"] img,
.app-shell:not(.auth-gate) .plate-stage[data-view-mode="visual"] .plate-food[data-plate-count="12"] img,
.app-shell:not(.auth-gate) .plate-stage[data-view-mode="visual"] .plate-food[data-plate-count="9"]>.food-text-fallback,
.app-shell:not(.auth-gate) .plate-stage[data-view-mode="visual"] .plate-food[data-plate-count="10"]>.food-text-fallback,
.app-shell:not(.auth-gate) .plate-stage[data-view-mode="visual"] .plate-food[data-plate-count="11"]>.food-text-fallback,
.app-shell:not(.auth-gate) .plate-stage[data-view-mode="visual"] .plate-food[data-plate-count="12"]>.food-text-fallback{
  width:clamp(17px,5vw,22px)!important;
  height:clamp(17px,5vw,22px)!important;
  max-height:22px!important;
}
.app-shell:not(.auth-gate) .plate-stage[data-view-mode="list"]{
  touch-action:pan-y!important;
}
.app-shell:not(.auth-gate) .plate-food-list,
.app-shell:not(.auth-gate) .pot-food-list{
  position:absolute!important;
  inset:31px 5px 5px!important;
  z-index:5!important;
  box-sizing:border-box!important;
  min-width:0!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  gap:3px!important;
  padding:2px!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
  touch-action:pan-y!important;
}
.app-shell:not(.auth-gate) .plate-food-list-item,
.app-shell:not(.auth-gate) .pot-food-list-item{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  min-height:28px!important;
  height:28px!important;
  flex:0 0 28px!important;
  display:grid!important;
  grid-template-columns:27px minmax(0,1fr) 13px!important;
  align-items:center!important;
  gap:4px!important;
  padding:2px 5px!important;
  border:1px solid #dccab7!important;
  border-radius:8px!important;
  background:rgba(255,250,244,.96)!important;
  color:#26221d!important;
  text-align:left!important;
  overflow:hidden!important;
  cursor:pointer!important;
}
.app-shell:not(.auth-gate) .plate-food-list-visual,
.app-shell:not(.auth-gate) .pot-food-list-visual{
  width:25px!important;
  height:25px!important;
  min-width:25px!important;
  min-height:25px!important;
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
}
.app-shell:not(.auth-gate) .plate-food-list-visual>* ,
.app-shell:not(.auth-gate) .pot-food-list-visual>*{
  display:block!important;
  width:24px!important;
  height:24px!important;
  max-width:24px!important;
  max-height:24px!important;
  object-fit:contain!important;
  border-radius:5px!important;
  font-size:6px!important;
}
.app-shell:not(.auth-gate) .plate-food-list-copy,
.app-shell:not(.auth-gate) .pot-food-list-copy{min-width:0!important;display:flex!important;align-items:baseline!important;gap:5px!important;overflow:hidden!important}
.app-shell:not(.auth-gate) .plate-food-list-copy strong,
.app-shell:not(.auth-gate) .pot-food-list-copy strong{min-width:0!important;max-width:100%!important;font-size:9px!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-shell:not(.auth-gate) .plate-food-list-copy small,
.app-shell:not(.auth-gate) .pot-food-list-copy small{flex:0 0 auto!important;font-size:8px!important;line-height:1!important;white-space:nowrap!important}
.app-shell:not(.auth-gate) .plate-food-list-arrow,
.app-shell:not(.auth-gate) .pot-food-list-arrow{justify-self:end!important;font-size:14px!important;line-height:1!important}
.app-shell:not(.auth-gate) .plate-food-list-item.is-readonly,
.app-shell:not(.auth-gate) .pot-food-list-item.is-readonly{cursor:default!important}

.app-shell:not(.auth-gate) .pot-stage[data-pot-view="visual"]>.pot-foods{
  inset:0!important;
  display:block!important;
  overflow:hidden!important;
  z-index:3!important;
}
.app-shell:not(.auth-gate) .pot-stage[data-pot-view="visual"] .pot-food-label{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  z-index:3!important;
  box-sizing:border-box!important;
  width:clamp(30px,9vw,43px)!important;
  height:auto!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:0!important;
  padding:1px!important;
  border:0!important;
  border-radius:7px!important;
  background:rgba(255,250,244,.9)!important;
  color:#26221d!important;
  transform:translate(-50%,-50%) rotate(var(--pot-food-angle)) translateY(calc(-1 * clamp(33px,12vw,58px))) rotate(calc(-1 * var(--pot-food-angle)))!important;
  overflow:hidden!important;
  cursor:pointer!important;
}
.app-shell:not(.auth-gate) .pot-stage[data-pot-view="visual"] .pot-food-label:not(button){cursor:default!important}
.app-shell:not(.auth-gate) .pot-stage[data-pot-view="visual"] .pot-food-label>.pot-food-visual,
.app-shell:not(.auth-gate) .pot-stage[data-pot-view="visual"] .pot-food-label>.pot-vegetable-label{width:100%!important;max-width:100%!important}
.app-shell:not(.auth-gate) .pot-stage[data-pot-view="visual"] .pot-food-label img,
.app-shell:not(.auth-gate) .pot-stage[data-pot-view="visual"] .pot-food-label>.food-text-fallback{
  display:block!important;
  width:clamp(19px,5.5vw,27px)!important;
  height:clamp(19px,5.5vw,27px)!important;
  max-width:100%!important;
  max-height:27px!important;
  border-radius:5px!important;
  object-fit:contain!important;
  font-size:clamp(5px,1.6vw,7px)!important;
  padding:1px!important;
}
.app-shell:not(.auth-gate) .pot-stage[data-pot-view="visual"] .pot-food-label b{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  font-size:clamp(5px,1.6vw,7px)!important;
  line-height:1!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  text-align:center!important;
}
.app-shell:not(.auth-gate) .pot-stage[data-pot-view="list"]>.pot-foods{
  inset:31px 5px 5px!important;
  display:block!important;
  overflow:hidden!important;
  z-index:5!important;
}
.app-shell:not(.auth-gate) .pot-stage[data-pot-view="list"] .pot-food-list{position:static!important;height:100%!important;max-height:100%!important}

/* The meal-photo control is a single native multi-image picker.  Uploaded
   files stay as small, non-destructive thumbnails; there is no delete affordance
   and no full-screen preview in the check-in card. */
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-picker{
  grid-template-rows:28px minmax(0,1fr)!important;
  gap:3px!important;
  align-content:center!important;
}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-open-control{
  grid-row:1!important;
  width:100%!important;
  height:28px!important;
  min-height:28px!important;
  display:grid!important;
  place-items:center!important;
  padding:2px 4px!important;
  border:1px solid #edb08b!important;
  border-radius:8px!important;
  background:#fff0d4!important;
  color:#b8613d!important;
  font-size:8px!important;
  font-weight:900!important;
  line-height:1!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  cursor:pointer!important;
}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb-strip{
  grid-row:2!important;
  width:100%!important;
  height:100%!important;
  min-height:26px!important;
  display:flex!important;
  align-items:center!important;
  gap:3px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  touch-action:pan-x!important;
}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb,
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb-empty{
  box-sizing:border-box!important;
  width:28px!important;
  height:28px!important;
  min-width:28px!important;
  min-height:28px!important;
  flex:0 0 28px!important;
  display:grid!important;
  place-items:center!important;
  position:relative!important;
  overflow:hidden!important;
  border:1px solid #dccab7!important;
  border-radius:7px!important;
  background:#fffdf8!important;
  color:var(--v1-muted)!important;
  font-size:14px!important;
  line-height:1!important;
}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-remove-control,
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.local-photo-preview{display:none!important}

/* r42test54: keep the lower summary card stretched, make the camera control
   compact, and keep its thumbnails clickable without offering deletion. */
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.vegetables-section{
  height:100%!important;
  min-height:0!important;
  align-self:stretch!important;
}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-picker{
  min-width:0!important;
  display:flex!important;
  align-items:center!important;
  gap:4px!important;
  overflow:hidden!important;
}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-open-control{
  flex:0 0 28px!important;
  width:28px!important;
  height:28px!important;
  min-height:28px!important;
  padding:4px!important;
  border-radius:8px!important;
}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-open-control img{
  display:block!important;
  width:18px!important;
  height:18px!important;
  object-fit:contain!important;
}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb-strip{
  flex:1 1 auto!important;
  width:auto!important;
  min-width:0!important;
  height:32px!important;
  min-height:32px!important;
  display:flex!important;
  align-items:center!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb{
  appearance:none!important;
  -webkit-appearance:none!important;
  margin:0!important;
  padding:0!important;
  cursor:zoom-in!important;
}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.local-photo-preview{
  display:grid!important;
  place-items:center!important;
  position:fixed!important;
  inset:0!important;
  z-index:120!important;
  padding:18px!important;
  background:rgba(30,24,19,.72)!important;
}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.local-photo-preview img{
  display:block!important;
  width:min(88vw,520px)!important;
  height:min(76vh,720px)!important;
  object-fit:contain!important;
  border-radius:14px!important;
  box-shadow:0 14px 36px rgba(0,0,0,.24)!important;
}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.local-photo-preview .local-photo-close{
  position:absolute!important;
  top:16px!important;
  right:16px!important;
  z-index:1!important;
  width:36px!important;
  height:36px!important;
  padding:0!important;
  border:0!important;
  border-radius:50%!important;
  background:#fff0d4!important;
  color:#26221d!important;
  font-size:26px!important;
  line-height:36px!important;
  cursor:pointer!important;
}

/* The pot artwork includes a large transparent/table area.  The visual mode
   must keep every food label inside the bowl, even when there are many items. */
.app-shell:not(.auth-gate) .pot-stage[data-pot-view="visual"]>.scene-base{
  object-fit:contain!important;
  object-position:center!important;
}
.app-shell:not(.auth-gate) .pot-stage[data-pot-view="visual"] .pot-food-label{
  --pot-food-radius:clamp(24px,8vw,42px);
  top:48%!important;
  width:clamp(28px,8vw,40px)!important;
  transform:translate(-50%,-50%) rotate(var(--pot-food-angle)) translateY(calc(-1 * var(--pot-food-radius))) rotate(calc(-1 * var(--pot-food-angle)))!important;
}
.app-shell:not(.auth-gate) .pot-stage[data-pot-view="visual"] .pot-food-label img,
.app-shell:not(.auth-gate) .pot-stage[data-pot-view="visual"] .pot-food-label>.food-text-fallback{
  width:clamp(17px,5vw,24px)!important;
  height:clamp(17px,5vw,24px)!important;
  max-height:24px!important;
}

/* r42test55: the summary is one seven-row grid.  The vegetable action and
   meal-photo control each occupy one compact cell; supplements use the
   remaining full-width row.  Keep the same seven rows at narrow widths so a
   media query cannot create implicit overlapping rows. */
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  grid-template-rows:34px 15px minmax(120px,1fr) 58px minmax(86px,1fr) 40px 52px!important;
  grid-template-areas:"head head" "heading heading" "pot pot" "veg photo" "supplement supplement" "notes notes" "footer footer"!important;
  gap:4px!important;
}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.vegetables-section{
  grid-area:veg!important;
  height:100%!important;
  min-height:0!important;
  align-self:stretch!important;
  border-radius:12px!important;
}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section{
  grid-area:photo!important;
  grid-template-columns:30px minmax(0,1fr)!important;
  grid-template-rows:22px minmax(0,1fr)!important;
  height:100%!important;
  min-height:0!important;
  padding:3px 4px!important;
  gap:2px 4px!important;
}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .cat-art{
  grid-column:1!important;
  grid-row:1/3!important;
  width:100%!important;
  height:100%!important;
  max-height:52px!important;
}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy{
  grid-column:2!important;
  grid-row:1!important;
  min-width:0!important;
  width:100%!important;
  overflow:hidden!important;
}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy .eyebrow,
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy strong,
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-state{
  max-width:100%!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  line-height:1!important;
}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy .eyebrow{font-size:6.5px!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-copy strong{font-size:8.5px!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-state{font-size:6px!important}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-picker{
  grid-column:2!important;
  grid-row:2!important;
  min-width:0!important;
  width:100%!important;
  height:100%!important;
  display:flex!important;
  align-items:center!important;
  gap:3px!important;
  overflow:hidden!important;
}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-open-control{
  flex:0 0 24px!important;
  width:24px!important;
  height:24px!important;
  min-height:24px!important;
  padding:3px!important;
  border-radius:7px!important;
}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-open-control img{
  width:17px!important;
  height:17px!important;
}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb-strip{
  flex:1 1 auto!important;
  width:auto!important;
  min-width:0!important;
  height:26px!important;
  min-height:26px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb,
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb-empty{
  width:24px!important;
  height:24px!important;
  min-width:24px!important;
  min-height:24px!important;
  flex-basis:24px!important;
  border-radius:6px!important;
}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section{
  grid-area:supplement!important;
  height:100%!important;
  min-height:0!important;
  align-self:stretch!important;
}
.app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.supplement-section .supplement-table-row{
  min-height:17px!important;
  height:17px!important;
}
.app-shell:not(.auth-gate) .pot-stage[data-pot-view="visual"] .pot-food-label{
  --pot-food-radius:clamp(34px,13vw,62px)!important;
  width:clamp(48px,14vw,66px)!important;
  min-height:30px!important;
  padding:2px!important;
  border-radius:9px!important;
  transform:translate(-50%,-50%) rotate(var(--pot-food-angle)) translateY(calc(-1 * var(--pot-food-radius))) rotate(calc(-1 * var(--pot-food-angle)))!important;
}
.app-shell:not(.auth-gate) .pot-stage[data-pot-view="visual"] .pot-food-label img,
.app-shell:not(.auth-gate) .pot-stage[data-pot-view="visual"] .pot-food-label>.food-text-fallback{
  width:clamp(20px,5.5vw,28px)!important;
  height:clamp(20px,5.5vw,28px)!important;
  max-height:28px!important;
  font-size:clamp(7px,1.9vw,9px)!important;
}
.app-shell:not(.auth-gate) .pot-stage[data-pot-view="visual"] .pot-food-label b{
  font-size:clamp(8px,2.1vw,10px)!important;
  line-height:1.1!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  word-break:break-all!important;
}

@media(max-width:375px){
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]{
    grid-template-rows:32px 14px minmax(116px,1fr) 54px minmax(78px,1fr) 38px 50px!important;
    gap:3px!important;
  }
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section{
    grid-template-columns:27px minmax(0,1fr)!important;
    grid-template-rows:20px minmax(0,1fr)!important;
    padding:2px 3px!important;
    gap:2px 3px!important;
  }
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-open-control{
    flex-basis:22px!important;
    width:22px!important;
    height:22px!important;
    min-height:22px!important;
    padding:2px!important;
  }
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-open-control img{width:16px!important;height:16px!important}
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb,
  .app-shell:not(.auth-gate) .summary-compact[data-page="summary"]>.photographer-section .photo-thumb-empty{
    width:22px!important;
    height:22px!important;
    min-width:22px!important;
    min-height:22px!important;
    flex-basis:22px!important;
  }
}
